OSDN Git Service

* cgraph.c (cgraph_function_body_availability): Fix test of externally
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-11-16  Jan Hubicka  <jh@suse.cz>
2
3         * cgraph.c (cgraph_function_body_availability): Fix test of externally
4         visible.
5
6 2008-11-16  Joshua Kinard  <kumba@gentoo.org>
7
8         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
9         to -mips4.
10
11 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
12
13         PR target/38052
14         * config/mips/mips.c (mips_cfun_call_saved_reg_p)
15         (mips_cfun_might_clobber_call_saved_reg_p): New functions,
16         split out from...
17         (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
18         rather than call_really_used_regs when handling $gp.
19
20 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
21
22         PR target/38052
23         * config/mips/mips.c (machine_function): Update the comment
24         above global_pointer.
25         (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
26         that a function doesn't need a global pointer.
27         (mips_current_loadgp_style): Update accordingly.
28         (mips_restore_gp): Likewise.
29         (mips_output_cplocal): Likewise.
30         (mips_expand_prologue): Likewise.
31
32 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
33
34         * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
35         parameter.  Use DImode for computing the number of registers.
36         (function_arg): Adjust for above change.
37         (function_value): Likewise.
38
39 2008-11-15  Zdenek Dvorak  <ook@ucw.cz>
40
41         PR tree-optimization/37950
42         * tree-flow-inline.h (memory_partition): Return NULL when aliases were
43         not computed for the current function.
44
45 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
46
47         PR target/38123
48         * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
49         gpr and other COMPONENT_REFs.
50
51 2008-11-15  Richard Guenther  <rguenther@suse.de>
52
53         PR tree-optimization/38051
54         * tree-ssa-alias.c (update_alias_info_1): Manually find
55         written variables.
56
57 2008-11-15  Joshua Kinard  <kumba@gentoo.org>
58
59         * doc/invoke.texi (-mfix-r10000): Document.
60         * config/mips/mips.opt (mfix-r10000): New option.
61         * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
62         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
63         (MIPS_COMPARE_AND_SWAP_12): Likewise.
64         (MIPS_SYNC_OP): Likewise.
65         (MIPS_SYNC_OP_12): Likewise.
66         (MIPS_SYNC_OLD_OP_12): Likewise.
67         (MIPS_SYNC_NEW_OP_12): Likewise.
68         (MIPS_SYNC_OLD_OP): Likewise.
69         (MIPS_SYNC_NAND): Likewise.
70         (MIPS_SYNC_OLD_NAND): Likewise.
71         (MIPS_SYNC_EXCHANGE): Likewise.
72         (MIPS_SYNC_EXCHANGE_12): Likewise.
73         (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
74         delay slots.
75         (MIPS_SYNC_NEW_NAND): Likewise.
76         * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
77         (mips_init_print_operand_punct): Treat '~' as a punctuation character.
78         (mips_output_sync_loop): New function.
79         (mips_override_options): Make -march=r10000 imply -mfix-r10000.
80         Make -mfix-r10000 require branch-likely instructions.
81         * config/mips/sync.md (sync_compare_and_swap<mode>): Use
82         mips_output_sync_loop.
83         (compare_and_swap_12): Likewise.
84         (sync_add<mode>): Likewise.
85         (sync_<optab>_12): Likewise.
86         (sync_old_<optab>_12): Likewise.
87         (sync_new_<optab>_12): Likewise.
88         (sync_nand_12): Likewise.
89         (sync_old_nand_12): Likewise.
90         (sync_new_nand_12): Likewise.
91         (sync_sub<mode>): Likewise.
92         (sync_old_add<mode>): Likewise.
93         (sync_old_sub<mode>): Likewise.
94         (sync_new_add<mode>): Likewise.
95         (sync_new_sub<mode>): Likewise.
96         (sync_<optab><mode>): Likewise.
97         (sync_old_<optab><mode>): Likewise.
98         (sync_new_<optab><mode>): Likewise.
99         (sync_nand<mode>): Likewise.
100         (sync_old_nand<mode>): Likewise.
101         (sync_new_nand<mode>): Likewise.
102         (sync_lock_test_and_set<mode>): Likewise.
103         (test_and_set_12): Likewise.
104
105 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
106
107         * gcc.c (cc1_options): Fix comment.
108
109 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
110
111         PR c++/37561
112         * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
113         argtype instead of result_type.
114
115 2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>
116
117         * ira-int.h (struct ira_loop_tree_node): Improve comments for
118         subloop_next/next and subloops/childen fields.
119
120 2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
121
122         * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
123         (STANDARD_INCLUDE_DIR): Redefine to "/include".
124         (LOCAL_INCLUDE_DIR): Undefine.
125         * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
126
127 2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>
128
129         PR rtl-optimization/37397
130         * ira-int.h (struct ira_allocno): New member bad_spill_p.
131         (ALLOCNO_BAD_SPILL_P): New macro.
132
133         * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
134
135         * ira-build.c (ira_create_allocno): Initialize
136         ALLOCNO_BAD_SPILL_P.
137         (create_cap_allocno, propagate_allocno_info,
138         remove_unnecessary_allocnos): Set up or update
139         ALLOCNO_BAD_SPILL_P.
140         (update_bad_spill_attribute): New function.
141         (ira_build): Call it.
142
143         * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
144         
145 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
146
147         PR tree-optimization/38104
148         * gimplify.c (gimple_regimplify_operands): Add referenced vars
149         before calling mark_symbols_for_renaming, not after it.
150
151 2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>
152
153         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
154         (OVERRIDE_OPTIONS): Likewise.
155
156 2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
157             Andrew Stubbs  <ams@codesourcery.com>
158             Gunnar Von Boehn  <gunnar@genesi-usa.com>
159
160         PR target/36134
161         * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
162         the shorter LEA insn over ADD.L where possible.
163
164 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
165
166         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
167         systems, which are assumend to always provide SSP-support in glibc.
168         * configure: Regenerate.
169
170         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/kFreeBSD,
171         GNU/kNetBSD systems in the `*-*-linux*' case.
172         * configure: Regenerate.
173
174 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
175
176         PR middle-end/36125
177         * function.c (gimplify_parameters): For callee copies parameters,
178         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
179
180 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
181
182         PR target/28102
183         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*', x86
184         parts into the `i[34567]86-*-linux*' and parts that are independent of
185         the processor architecture into the `*-*-linux*' cases.
186         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
187         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
188         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
189         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
190         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
191         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
192         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
193
194 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
195
196         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
197         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
198         (ls2_idiv): Likewise idiv3.
199         (ls2_prefetch): New reservation.
200         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
201         * config/mips/mips.md (type): Add imul3nc and idiv3.
202         (length): Handle idiv3.
203         (any_mod): New code_iterator.
204         (u): Handle MOD and UMOD.
205         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
206         (prefetch): Handle TARGET_LOONGSON_2EF.
207
208 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
209
210         PR c++/27017
211         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
212         (prune_unused_types_walk): Call it for non-perennial local classes.
213         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
214         entry, just set it to 2 and recurse on children, don't walk attributes
215         again.
216
217 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
218
219         * c-common.c (warn_about_parentheses): Add missing whitespace
220         in warning.
221
222 2008-11-13  Paul Brook  <paul@codesourcery.com>
223
224         * doc/invoke.texi: Document --fix-cortex-m3.
225         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
226         Cortex-M3 cpu is selected.
227         (output_move_double): Avoid overlapping base register and first
228         destination register when fix_cm3_ldrd.
229         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
230
231 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
232
233         PR bootstrap/38100
234         * gimple.h (gimple_range_check_failed): Remove prototype.
235         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
236         in guarding #if.
237         (gimple_range_check_failed): Removed.
238
239 2008-11-13  Andrew Haley  <aph@redhat.com>
240
241         PR bootstrap/38088
242         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
243         __LONG_LONG_MAX__.
244
245 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
246
247         PR c++/36478
248         Revert:
249         2007-05-07  Mike Stump  <mrs@apple.com>
250         * doc/invoke.texi (Warning Options): Document that -Wempty-body
251         also checks for and while statements in C++.
252
253 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
254
255         PR debug/27574
256         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
257         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
258         - which clones are reachable - as "abstract and needed".
259         * cgraph.c (cgraph_release_function_body):  If a node is
260         "abstract and needed", do not release its DECL_INITIAL() content
261         that will be needed to emit debug info.
262
263 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
264
265         PR target/27880
266         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
267         to set HAVE_GETIPINFO.
268         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
269         * configure: Regenerate.
270         * config.in: Regenerate.
271
272 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
273
274         PR bootstrap/38010
275         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
276
277 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
278
279         Revert:
280         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
281         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
282
283 2008-11-12  Jason Merrill  <jason@redhat.com>
284
285         PR c++/38007
286         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
287         special casing.
288
289 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
290
291         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
292         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
293         atmega32u6 devices.
294         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
295         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
296
297 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
298
299         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
300         packed-stack special handling.
301         (FRAME_ADDR_RTX): Add definition.
302
303 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
304
305         PR target/35366
306         * fold-const.c (native_encode_string): New function.
307         (native_encode_expr): Use it for STRING_CST.
308
309 2008-11-12  DJ Delorie  <dj@redhat.com>
310
311         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
312         insns if the intermediate value will be used later.
313
314 2008-11-12  Andreas Schwab  <schwab@suse.de>
315
316         * config/m68k/m68k.c (print_operand): Mask off extra extension
317         bits when writing out the representation of real values.
318
319 2008-11-12  Ira Rosen  <irar@il.ibm.com>
320
321         PR tree-optimization/38079
322         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
323         with vect_dump.
324
325 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
326
327         PR c++/35334
328         * c-pretty-print.c (pp_c_complex_expr): New function.
329         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
330
331         PR target/35366
332         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
333         than INNER and INNER is a constant, forcibly align INNER as much
334         as needed.
335
336 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
337
338         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
339
340 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
341
342         PR rtl-optimization/37363
343         * simplify-rtx.c (simplify_plus_minus): Don't create (const (minus ...))
344         expresisons.
345
346 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
347
348         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
349         handling.
350
351 2008-11-10  Catherine Moore  <clm@codesourcery.com>
352
353         * config.gcc (mips64vrel-*-elf*): Include the tm_file
354         prior to vr.h.
355         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
356         (BASE_DRIVER_SELF_SPECS): Remove.
357         (DRIVER_SELF_SPECS): New definition.
358         * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
359         BASE_DRIVER_SELF_SPECS.
360         * config/mips/sde.h: Likewise.
361         * config/mips/iris6.h: Likewise.
362         * config/mips/vr.h: Likewise.
363         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New. 
364
365 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
366
367         PR rtl-optimizations/37948
368         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
369         (ira_create_copy, ira_add_allocno_copy): New parameter.
370
371         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
372         to ira_add_allocno_copy.
373         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
374         parameter to process_regs_for_copy.
375         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
376         Fix typo in passing second allocno to ira_add_allocno_copy.
377
378         * ira-color.c (update_conflict_hard_regno_costs): Use head of
379         coalesced allocnos list.
380         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
381         the graph.
382         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
383         (add_ira_allocno_to_ordered_bucket): Rename to
384         add_allocno_to_ordered_bucket.
385         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
386         head of coalesced allocnos list.
387         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
388         Check that it is aready calculated.
389         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
390         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
391         list.
392         (coalesce_allocnos): Do extended coalescing too.
393
394         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
395         parameter to ira_add_allocno_copy.
396
397         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
398         parameter.
399         (print_copy): Print copy origination too.
400
401         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
402         equivalent memory.
403         
404 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
405
406         PR rtl-optimization/37514
407         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
408         flag_ira_share_spill_slots to 2 if it's already non-zero.
409         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
410         flag_ira_share_spill_slots is 2.
411
412 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
413
414         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
415         (prologue_enter_32): Set FB to SP - 4.
416
417 2008-11-10  DJ Delorie  <dj@redhat.com>
418
419         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
420         constraint for single-bit-clear in lower byte of HI constant, vs
421         Imb which just ignores the upper byte.
422         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
423         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
424         (iorhi3_16): Check for single bit set, not single bit clear.
425
426 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
427
428         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
429
430         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
431
432 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
433
434         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
435         values living in memory and use more precise alignment information.
436
437 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
438
439         PR middle-end/35314
440         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
441         after __mf_check call if the call must end a bb.
442
443 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
444
445         PR middle-end/37807
446         PR middle-end/37809
447         * combine.c (force_to_mode): Do not process vector types.
448
449         * rtlanal.c (nonzero_bits1): Do not process vector types.
450         (num_sign_bit_copies1): Likewise.
451
452 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
453
454         * config/i386/gnu.h: Add copyright and licensing header.
455         * config/gnu.h: Likewise.
456
457 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
458
459         * fwprop.c (fwprop_done): Call df_remove_problem.
460
461 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
462
463         PR middle-end/37379
464         * tree-scalar-evolution.c (instantiate_scev_1): Return
465         chrec_dont_know for VL_EXP_CLASS_P.
466         
467 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
468
469         * reg-stack.c (reg_to_stack): Add missing braces in memset
470         size calculation.
471
472 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
473
474         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
475         (NO_PROFILE_COUNTERS): New define.
476
477 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
478
479         PR target/26397
480         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
481         
482 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
483
484         PR target/35574
485         * config/sparc/constraints.md (D): New.
486         * config/sparc/predicates.md (const_double_or_vector_operand): New.
487         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
488         'D' constraint.
489         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
490         Use the 'D' constraint in addition to 'F' in some alternatives.
491         (DF splitter): Generalize for V64mode.
492         * doc/md.texi (SPARC): Document the 'D' constraint.
493
494 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
495
496         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
497
498 2008-11-06  Ben Elliston  <bje@au.ibm.com>
499
500         * gcc.c: Remove ancient comment about a bug in Sun cc.
501
502 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
503
504         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
505
506 2008-11-06  Ben Elliston  <bje@au.ibm.com>      
507
508         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
509
510 2008-11-06  Ben Elliston  <bje@au.ibm.com>
511
512         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
513         description.
514
515 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
516
517         PR target/38016
518         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
519         just MEM_P.
520
521 2008-11-05  Martin Jambor  <mjambor@suse.cz>
522
523         PR middle-end/37861
524         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
525         pointer arithmetics into array_ref if the array is accessed
526         through an indirect_ref.
527
528 2008-11-05  Richard Guenther  <rguenther@suse.de>
529
530         PR middle-end/37742
531         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
532         qualified pointer conversion before stripping qualifiers.
533         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
534         * tree-flow.h (may_propagate_address_into_dereference): Declare.
535         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
536         function.
537         (ccp_fold): Use it.
538         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
539         properly canonicalize binary ops.
540         (forward_propagate_addr_expr_1): Use
541         may_propagate_address_into_dereference.
542
543 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
544
545         PR middle-end/37286
546         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
547         Initialize uninitialized input registers with a NaN.
548
549 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
550
551         PR middle-end/37833
552
553         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
554
555 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
556
557         PR middle-end/37943
558
559         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
560         exits and conditions.
561         * testsuite/gcc.dg/graphite/pr37943.c: New.
562
563 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
564             Andrew Pinski  <andrew_pinski@playstation.sony.com>
565
566         PR c/35430
567         * c-common.c (warn_for_sign_compare): For complex result_type
568         use component's type.
569
570 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
571
572         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
573
574         * print-tree.c (print_node): Don't print DECL_INITIAL
575         for PARM_DECL.
576
577         PR c/37106
578         * c-common.c (parse_optimize_options): Save and restore
579         flag_strict_aliasing around decode_options call.
580
581 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
582
583         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
584         (host_detect_local_cpu): Use it instead of casted strings to
585         compare vendor signatures.
586
587 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
588
589         PR target/37989
590         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
591         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
592
593 2008-11-03  Catherine Moore  <clm@codesourcery.com>
594
595         * config/mips.c (mips_conditional_register_usage):  Handle the
596         DSP control register.
597         * doc/extend.texi: Document the DSP control register.
598
599 2008-11-03  Steve Ellcey <sje@cup.hp.com>
600             Jakub Jelinek  <jakub@redhat.com>
601
602         * omp-low.c (expand_omp_for_generic): If iter_type has different
603         precision than type and type is a pointer type, cast n1 and n2
604         first to an integer type with the same precision as pointers
605         and only afterwards to iter_type.
606
607 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
608
609         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
610         (UNSPEC_GOTSYM_OFF): New unspec.
611         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
612         (pic_add_dot_plus_eight): Likewise.
613         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
614         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
615         UNSPEC_PIC_BASE operands.
616         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
617         (arm_output_addr_const_extra): Handle it.
618
619 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
620
621         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
622         integer class to full integer class if the offset is not word-aligned.
623
624 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
625
626         PR rtl-opt/37782
627         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
628         mode count is in.
629         (doloop_optimize): Update call to doloop_modify.
630
631 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
632
633         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
634
635 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
636
637         PR other/37463
638         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
639         gcc_cv_as_cfi_directive.
640         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
641         merging read-only and read-write sections or assembler emits
642         read-write .eh_frame sections.
643         * configure: Regenerate.
644         
645 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
646
647         Revert:
648         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
649
650         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
651         problem.
652         (rs6000_emit_prologue): Invert logic.
653         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
654         (reg:P 11) instead of match_operand.
655         (*save_fpregs_<mode>): Likewise.
656         (*restore_gpregs_<mode>): Likewise.
657         (*return_and_restore_gpregs_<mode>): Likewise.
658         (*return_and_restore_fpregs_<mode>): Likewise.
659         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
660         (reg:P 11) insted of match_operand.
661         (*restore_gpregs_spe): Likewise.
662         (*return_and_restore_gpregs_spe): Likewise.
663
664 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
665
666         PR tree-optimization/37684
667         * gcc.dg/graphite/pr37684.c: New.
668         * graphite.c (exclude_component_ref): New.
669         (is_simple_operand): Call exclude_component_ref.
670
671 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
672
673         PR tree-optimization/36908
674         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
675         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
676         (number_of_rw_in_partition): New.
677         (partition_contains_all_rw): New.
678         (ldist_gen): Do not distribute when one of the partitions
679         contains all the memory operations.
680
681 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
682
683         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
684         EDGE_IRREDUCIBLE_LOOP.
685
686 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
687
688         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
689         where we have one entry point in the loop which isn't the head.
690
691 2008-11-03  Richard Guenther  <rguenther@suse.de>
692
693         PR middle-end/37573
694         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
695
696 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
697
698         PR middle-end/37858
699         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
700         for ipa and simple ipa passes.
701
702 2008-11-02  Richard Guenther  <rguenther@suse.de>
703
704         PR tree-optimization/37542
705         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
706         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
707         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
708         (vn_nary_op_insert_stmt): Likewise.
709         (visit_use): Likewise.
710
711 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
712
713         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
714         (*swap): Remove.
715         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
716         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
717         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
718         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
719         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
720         peephole2's): Replace unspec with rotate.
721         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
722
723 2008-11-02  Richard Guenther  <rguenther@suse.de>
724
725         PR tree-optimization/37991
726         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
727         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
728         (set_ssa_val_to): Print if the value changed.
729         (simplify_binary_expression): Strip useless conversions.
730
731 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
732
733         PR target/37939
734         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
735         operand.
736
737 2008-11-01  Richard Guenther  <rguenther@suse.de>
738
739         PR middle-end/37976
740         * builtins.c (fold_builtin_strspn): Return a size_t.
741         (fold_builtin_strcspn): Likewise.
742
743 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
744
745         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
746         attribute for struct return convention.
747
748 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
749
750         * config/rs6000/crtsavres.asm: Really, really delete.
751
752 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
753
754         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
755         problem.
756         (rs6000_emit_prologue): Invert logic.
757         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
758         (reg:P 11) instead of match_operand.
759         (*save_fpregs_<mode>): Likewise.
760         (*restore_gpregs_<mode>): Likewise.
761         (*return_and_restore_gpregs_<mode>): Likewise.
762         (*return_and_restore_fpregs_<mode>): Likewise.
763         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
764         (reg:P 11) insted of match_operand.
765         (*restore_gpregs_spe): Likewise.
766         (*return_and_restore_gpregs_spe): Likewise.
767
768 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
769
770         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
771         list of word switches that take args.
772
773 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
774
775         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
776         (s390_output_pool_entry): Call it through for_each_rtx.
777
778         PR middle-end/37730
779         * expr.c (store_constructor): For vectors, if target is a MEM, use
780         target's MEM_ALIAS_SET instead of elttype alias set.
781
782 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
783
784         PR target/37909
785         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
786         no address.
787
788 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
789
790         PR target/37878
791         * config/rs6000/predicates.md (word_offset_memref_operand):
792         Restructure code and look inside auto-inc/dec addresses.
793         
794 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
795
796         PR target/32277
797         * libgcov.c ( __gcov_indirect_call_profiler): Check
798         TARGET_VTABLE_USES_DESCRIPTORS.
799
800 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
801
802         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
803         (INITIAL_FRAME_POINTER_OFFSET): Remove.
804         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
805         offset if eliminating soft frame pointer.
806         * config/spu/spu.md (stack_protect_set, stack_protect_test)
807         (stack_protect_test_si): Add initial machine description
808         for Stack Smashing Protector
809
810 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
811
812         PR 11492
813         * c-common.c (min_precision): Move to...
814         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
815         * tree.h (tree_int_cst_min_precision): Declare.
816         * c-common.h (min_precision): Delete declaration.
817         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
818         multiplication of non-negative integer constants.
819         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
820         tree_int_cst_min_precision.
821         (finish_enum): Likewise.
822
823 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
824
825         PR middle-end/36578
826         * convert.c (convert_to_real): Do not optimize conversions of
827         binary arithmetic operations between binary and decimal
828         floating-point types.  Consider mode of target type in determining
829         decimal type for arithmetic.  Unless
830         flag_unsafe_math_optimizations, do not optimize binary conversions
831         where this may change rounding behavior.
832         * real.c (real_can_shorten_arithmetic): New.
833         * real.h (real_can_shorten_arithmetic): Declare.
834
835 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
836         
837         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
838         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
839         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
840         appropriate.
841         (must_save_p): For some workarounds, interrupts need to clobber a
842         P register.
843         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
844         and LC1 for WA_05000257.
845         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
846         WA_05000283 and WA_05000315.
847         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
848         (movbi): Add alternative to set CC to 1; improve code for setting
849         CC to 0.
850         (dummy_load): New pattern.
851
852 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
853
854         PR middle-end/37870
855         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
856         BLKmode for non-memory, convert using a wider MODE_INT mode
857         or through memory.
858
859         PR middle-end/37913
860         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
861         that haven't been removed yet.
862
863 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
864
865         * config/bfin/bfin.c (struct machine_function): New member
866         has_loopreg_clobber.
867         (bfin_expand_movmem): Set it when generating memcpy insns.
868         (n_regs_saved_by_prologue, expand_prologue_reg_save,
869         expand_epilogue_reg_restore): If we have hardware loops,
870         memcpy insns (indicated by has_loopreg_clobber) or function
871         calls, we need to save the loop registers.
872
873 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
874
875         * config/i386/i386.c (core2_cost): Fix typos in comments.
876
877 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
878
879         PR c/37924
880         * combine.c (make_compound_operation): Don't call make_extraction with
881         non-positive length.
882         (simplify_shift_const_1): Canonicalize count even if complement_p.
883
884 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
885
886         * convert.c (strip_float_extensions): Do not remove or introduce
887         conversions between binary and decimal floating-point types.
888
889 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
890
891         PR middle-end/37931
892         * fold-const.c (distribute_bit_expr): Convert common, left and
893         right arguments to type.
894
895 2008-10-28  Nick Clifton  <nickc@redhat.com>
896
897         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
898         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
899         call_really_used_regs array rather than the call_used_regs array.
900         (mn10300_get_live_callee_saved_regs, expand_prologue,
901         expand_epilogue, output_tst): Likewise.
902
903 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
904
905         PR target/37378
906         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
907         (df_get_entry_block_def_set): Neither here.
908         (df_get_regular_block_artificial_uses): Add EH_USES registers.
909
910         PR tree-optimization/37879
911         * predict.c (tree_estimate_probability): Check if last_stmt is
912         non-NULL before dereferencing it.
913
914 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
915
916         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
917         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
918         (ira_fast_allocation): Remove the prototype.
919         
920         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
921         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
922         (color_pass): Modify the updated costs.
923         (ira_color): Rename to color.  Make it static.
924         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
925         (ira_color): New function.
926         
927         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
928         change.
929
930         * ira-lives.c (last_call_num, allocno_saved_at_call): New
931         variables.
932         (set_allocno_live, clear_allocno_live, mark_ref_live,
933         mark_ref_dead): Invalidate corresponding element of
934         allocno_saved_at_call.
935         (process_bb_node_lives): Increment last_call_num.  Setup
936         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
937         allocno was already saved.
938         (ira_create_allocno_live_ranges): Initiate last_call_num and
939         allocno_saved_at_call.
940
941         * ira-build.c (ira_create_allocno): Initiate
942         ALLOCNO_UPDATED_COVER_CLASS_COST.
943         (create_cap_allocno, propagate_allocno_info,
944         remove_unnecessary_allocnos): Remove setting updated costs.
945         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
946
947         * ira.c (ira):  Don't call ira_fast_allocation.
948
949         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
950         updated costs.
951         
952 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
953
954         PR middle-end/37813
955         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
956
957         * ira-int.h (ira_hard_regno_cover_class): New.
958
959         * ira-lives.c (mark_reg_live, mark_reg_dead,
960         process_bb_node_lives): Use ira_hard_regno_cover_class.
961
962         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
963         (setup_hard_regno_cover_class): New function.
964         (ira_init): Call setup_hard_regno_cover_class.
965
966         * ira-costs.c (cost_class_nums): Add comment.
967         (find_allocno_class_costs): Initiate cost_class_nums.
968         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
969
970 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
971
972         PR middle-end/37884
973         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
974         Rename to copy_info_to_removed_store_destinations.  Propagate
975         conflict hard regs and register stack attribute.
976
977 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
978
979         PR middle-end/37316
980         * pa.c (function_arg_padding):  Pad complex and vector types
981         upward in 64-bit runtime.
982         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
983
984 2008-10-26  Matthias Klose  <doko@ubuntu.com>
985
986         * doc/install.texi: Document requirements on antlr.
987
988 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
989
990         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
991         first.
992
993 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
994
995         PR target/37841
996         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
997         is defined, use it to modify the constant offset.
998
999         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
1000
1001         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
1002         and short arguments to the correct location as mandated by the ABI.
1003
1004 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1005
1006         PR rtl-optimization/37769
1007         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
1008
1009 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1010
1011         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
1012         unwind-dw2-Os-4-200.o.
1013
1014 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
1015
1016         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
1017         (convert_for_assignment): Remove ic_argpass_nonproto cases.
1018
1019 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
1020
1021         PR tree-optimization/36038
1022         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
1023         add sizetype IV with initial value zero instead of pointer type.
1024
1025 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1026
1027         PR c/7543
1028         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
1029         around bit operation.
1030         * profile.c (is_edge_inconsistent): Likewise.
1031         * fold-const.c (truth_value_p): Move from here...
1032         * tree.h (truth_value_p): ... to here.
1033         * c-tree.h (c_expr): Update description of original_code.
1034         * c-typeck.c (parser_build_unary_op): Set original_code.
1035         (parser_build_binary_op): Update call to warn_about_parentheses.
1036         * c-common.c (warn_about_parentheses): Take two additional
1037         arguments of the operands. Use a switch. Quote operators
1038         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
1039         Add warning about !x | y and !x & y.
1040         * c-common.h (warn_about_parentheses): Update declaration.
1041
1042 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
1043
1044         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
1045         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
1046         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
1047         New variables.
1048         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
1049         (check-%): For test targets listed in lang_checks_parallelized
1050         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
1051         run the testing in multiple make goals, possibly parallel, and
1052         afterwards run dg-extract-results.sh to merge the sum and log files.
1053
1054 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
1055
1056         * config/mips/mips.c (mips_canonicalize_move_class): New function.
1057         (mips_move_to_gpr_cost): Likewise.
1058         (mips_move_from_gpr_cost): Likewise.
1059         (mips_register_move_cost): Make more fine-grained.
1060
1061 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
1062
1063         * graphite.c (graphite_apply_transformations): Check for
1064         -fgraphite-identity.
1065         * toplev.c (process_options): Add graphite_identity.
1066         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
1067
1068 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
1069
1070         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
1071         mulhisihl and mulhisihh builtins.
1072
1073         From Jie Zhang  <jie.zhang@analog.com>
1074         * config/bfin/bfin.md (composev2hi): Put operands into vector
1075         with correct order.
1076         
1077 2008-10-22  Chao-ying Fu  <fu@mips.com>
1078
1079         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
1080
1081 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
1082
1083         From Mike Frysinger  <michael.frysinger@analog.com>
1084         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
1085         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
1086         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
1087         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
1088         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
1089         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
1090         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
1091         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
1092         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
1093         __ADSPBF51x__ for all of them.
1094         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
1095         -mcpu bf512, bf514, bf516, and bf518.
1096         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1097         bf512-none, bf514-none, bf516-none, and bf518-none.
1098         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1099         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1100         * doc/invoke.texi (Blackfin Options): Document that
1101         -mcpu now accepts bf512, bf514, bf516, and bf518.
1102
1103 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
1104
1105         PR middle-end/37882
1106         * fold-const.c (build_range_type): For 1 .. signed_max
1107         range call build_nonstandard_inter_type if signed_type_for
1108         returned a type with bigger precision.
1109
1110 2008-10-22  Richard Guenther  <rguenther@suse.de>
1111
1112         * tree.def (COMPLEX_TYPE): Constrain element type.
1113         * tree.c (build_complex_type): Assert that.
1114         * tree-ssa-structalias.c (could_have_pointers): Complex types
1115         cannot have pointers.
1116
1117 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1118
1119         PR c/30949
1120         * c-typeck.c (convert_for_assignment): Do not give declaration's
1121         location for builtins. Spell out which type was expected and which
1122         was given.
1123
1124 2008-10-22  Nick Clifton  <nickc@redhat.com>
1125
1126         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
1127         the fdpic register to be a target when running in fdpic mode.
1128
1129 2008-10-22 Rafael Espindola  <espindola@google.com>
1130
1131         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
1132         newly created statements.
1133
1134 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1135
1136         PR target/37633
1137         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
1138         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
1139         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
1140
1141 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
1142
1143         PR target/37880
1144         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
1145         Adjust -mcmodel=medium description for 2005-07-31 changes.
1146
1147 2008-10-22  Jan Hubicka  <jh@suse.cz>
1148             Jakub Jelinek  <jakub@redhat.com>
1149
1150         PR middle-end/35853
1151         * doc/invoke.texi: Remove references to obsoleted -d dumps.
1152
1153 2008-10-21  Richard Henderson  <rth@redhat.com>
1154
1155         PR 37815
1156         * emit-rtl.c (get_spill_slot_decl): Export.
1157         * emit-rtl.h (get_spill_slot_decl): Declare.
1158         * var-tracking.c (vt_add_function_parameters): Relax assertion
1159         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
1160
1161 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
1162
1163         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
1164         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
1165         of from insn.
1166
1167 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
1168
1169         PR middle-end/37669
1170         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
1171         processed by get_maxval_strlen.
1172
1173 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
1174
1175         PR target/35485
1176         * tree.c (get_file_function_name): Copy first_global_object_name.
1177         Centralize call to clean_symbol_name.
1178
1179 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
1180
1181         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
1182         * config/svr4.h (SVR4_ASM_SPEC): New.
1183         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1184         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1185
1186         * doc/invoke.texi (Option Summary): Add -T to linker options.
1187         (Link Options): Document -T.
1188         
1189 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
1190
1191         * tree-inline.c (tree_inlinable_function_p): Remove tuples
1192         debugging hack.
1193
1194         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1195
1196         PR debug/37020
1197         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
1198
1199 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
1200
1201         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
1202         part of expression.
1203
1204 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
1205
1206         * doc/install.texi: Fix typos in previous patch.
1207
1208 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
1209
1210         * doc/install.texi: Document in-tree building of gcc and mpfr.
1211
1212 2008-10-19  Richard Guenther  <rguenther@suse.de>
1213
1214         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
1215
1216 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1217
1218         PR c/30260
1219         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
1220         (build_enumerator): Convert enumerators that fit in integer to
1221         integer type.
1222
1223 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
1224
1225         * config/i386/i386.md (unnamed peephole2): Do not force memory
1226         operands of arith or logical instructions into registers for
1227         non-TARGET_READ_MODIFY targets.
1228
1229         (ffs_cmove): Change operand 0 predicate to register_operand.
1230         Change operand 1 predicate to nonimmediate_operand.
1231         (ffsdi2): Ditto.
1232         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
1233
1234 2008-10-18  Richard Guenther  <rguenther@suse.de>
1235
1236         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
1237         VIEW_CONVERT_EXPR case against invalid gimple.
1238
1239 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1240
1241         * c-parser.c (c_parser_binary_expression): Silence the
1242         uninitialized variable warning emitted for binary_loc.
1243
1244 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
1245
1246         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
1247         translation cache.
1248
1249 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
1250
1251         PR c/33192
1252         * c-typeck.c (build_unary_op): Use omit_one_operand for
1253         IMAGPART_EXPR of real argument.
1254
1255 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
1256
1257         PR tree-optimization/37664
1258         * fold-const.c (fold_binary): When optimizing comparison with
1259         highest or lowest type's value, don't consider TREE_OVERFLOW.
1260
1261 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
1262
1263         PR target/35483
1264         * Makefile.in (coverage.o): Depend on $(TM_P_H).
1265         * coverage.c: Include tm_p.h.
1266         * config/rs6000/x-aix (jc1): Override LDFLAGS.
1267         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
1268         dollar signs from PREFIX.
1269         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
1270         instead of manual strip_name_encoding.
1271
1272 2008-10-16  Richard Guenther  <rguenther@suse.de>
1273
1274         PR middle-end/37418
1275         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
1276         volatile qualified functions or methods as relevant.
1277
1278 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
1279
1280         PR tree-optimization/37525
1281         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
1282         sizetype unsigned constants, both in the case of C and bounds.
1283
1284 2008-10-15  Jan Hubicka  <jh@suse.cz>
1285
1286         * ira-emit.c (change_regs): Return false when replacing reg by itself.
1287
1288 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
1289
1290         PR target/37633
1291         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
1292         HARD_REGNO_CALL_PART_CLOBBERED.
1293
1294 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1295
1296         PR middle-end/37535
1297         * ira-lives.c (mark_early_clobbers): Remove.
1298         (make_pseudo_conflict, check_and_make_def_use_conflicts,
1299         check_and_make_def_conflicts,
1300         make_early_clobber_and_input_conflicts,
1301         mark_hard_reg_early_clobbers): New functions.
1302         (process_bb_node_lives): Call
1303         make_early_clobber_and_input_conflicts and
1304         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
1305
1306         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
1307         early clobbers of pseudo-registers.
1308         
1309 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1310
1311         PR middle-end/37674
1312         * ira-build.c (ira_flattening): Recalculate
1313         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
1314         from the scratch instead of the propagation.
1315         
1316 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
1317
1318         * doc/rtl.texi (const_double): Remove the "addr" operand.
1319         Describe CONST_DOUBLE_* macros under const_double rather
1320         than const_vector.
1321         (const_fixed): Fix the operand description.
1322         (const): Add an @findex directive.
1323         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
1324         after the constant rtl table.
1325         (fix): Combine floating-point and fixed-point descriptions.
1326         Fix hyphenation.
1327         * sched-deps.c (sched_analyze_2): Remove reference to
1328         CONST_DOUBLE_CHAIN.
1329
1330 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
1331
1332         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
1333         UNSPEC_GOTSYM_OFFs.
1334         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
1335         for UNSPEC_GOTSYM_OFFs.
1336         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
1337         (add_GOT_to_pic_reg): Use it.
1338         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
1339
1340 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
1341             Harsha Jagasia  <harsha.jagasia@amd.com>
1342
1343         PR tree-optimization/37485
1344         * graphite.c (gmp_cst_to_tree): Moved.
1345         (iv_stack_entry_is_constant): New.
1346         (iv_stack_entry_is_iv): New.
1347         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
1348         (loop_iv_stack_insert_constant): New.
1349         (loop_iv_stack_pop): Use new datatpype.
1350         (loop_iv_stack_get_iv): Same.
1351         (loop_iv_stack_get_iv_from_name): Same.
1352         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
1353         (loop_iv_stack_patch_for_consts): New.
1354         (loop_iv_stack_remove_constants): New.
1355         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
1356         (translate_clast): Call loop_iv_stack_patch_for_consts and
1357         loop_iv_stack_remove_constants.
1358         (gloog): Use new datatype.  Redirect construction edge to end
1359         block to avoid accidental deletion.
1360         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
1361         iv stack entry.
1362         (union iv_stack_entry_data): New.  Data in iv stack entry.
1363         (struct iv_stack_entry): New.  Datatype for iv stack entries.
1364
1365 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
1366
1367         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
1368         * graphite.c (free_scop): Same.
1369         (build_scops): Same.
1370         (free_scattering): New.
1371         (build_cloog_prog): Call free_scattering.
1372         (patch_phis_for_virtual_defs): Fix memleak.
1373         (graphite_trans_bb_strip_mine): Same.
1374         (limit_scops): Same.
1375
1376 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
1377             Harsha Jagasia  <harsha.jagasia@amd.com>
1378
1379         PR tree-optimization/37828
1380         * graphite.c (graphite_trans_loop_block): Do not loop block
1381         single nested loops.
1382
1383 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
1384
1385         PR tree-optimization/37686
1386         * tree-loop-linear.c (linear_transform_loops): Build a
1387         loop nest vector.  Pass it to lambda_compute_access_matrices.
1388         * tree-data-ref.h (struct access_matrix): Store the loop nest
1389         relative to which it encodes the information.
1390         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
1391         (am_vector_index_for_loop): Reimplemented: iterate over the
1392         loop nest for finding the loop index in the access matrix.
1393         (lambda_compute_access_matrices): Update declaration.
1394         * lambda-code.c (build_access_matrix): Pass the loop nest and
1395         record it.
1396         (lambda_compute_access_matrices): Same.
1397
1398 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
1399
1400         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
1401         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
1402         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
1403         already implies hard float.  Also fix several insn condition
1404         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
1405
1406 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
1407
1408         PR target/35483
1409         Based on patches by Laurent Vivier.
1410         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
1411         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
1412         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
1413         dollar sign to underscore.
1414         (ASM_OUTPUT_EXTERNAL): Same.
1415         (ASM_OUTPUT_LABELREF): New.
1416         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
1417
1418         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
1419         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
1420         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
1421         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
1422
1423 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
1424
1425         PR tree-optimization/36881
1426         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
1427         that each value doesn't need runtime relocations, for !flag_pic
1428         check that each value is just a valid initializer constant.
1429
1430 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
1431
1432         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
1433         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
1434         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
1435         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
1436         GR_AND_ACC_REGS.
1437         (REG_CLASS_NAMES): Update accordingly.
1438         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
1439         rather than an unpredictable descriptive string.
1440         * config/mips/mips.c (mips_register_move_cost): Remove comment.
1441         (mips_register_move_cost): Check for specific COP*_REGS classes,
1442         instead of ALL_COP_AND_GR_REGS.
1443         (mips_ira_cover_classes): New function.
1444         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
1445         (TARGET_IRA_COVER_CLASSES): Define.
1446
1447 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
1448
1449         PR c++/37553
1450         * tree.c (build_type_attribute_qual_variant): Hash on the
1451         unqualified type, and don't overwrite an existing
1452         (type_hash_eq): Make the TYPE_NAME of the types significant, to
1453         allow distinguishing between wchar_t and its underlying type. This
1454         also means that we'll retain a little more typedef information.
1455
1456 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
1457             Dmitry Melnik  <dm@ispras.ru>
1458             Dmitry Zhurikhin  <zhur@ispras.ru>
1459             Alexander Monakov  <amonakov@ispras.ru>
1460             Maxim Kuvyrkov  <maxim@codesourcery.com>
1461
1462         * target.h (struct gcc_target): Update prototypes of needs_block_p
1463         and gen_spec_check.
1464         * haifa-sched.c (create_check_block_twin): Update calls to the above.
1465         * sel-sched.c (create_speculation_check): Likewise.
1466         * doc/tm.texi: Provide documentation for new target hooks.
1467                 
1468         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
1469         (ia64_gen_spec_insn): Removed.
1470         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
1471         ia64_gen_spec_check): New static functions.
1472         (ia64_alloc_sched_context, ia64_init_sched_context,
1473         ia64_set_sched_context, ia64_clear_sched_context,
1474         ia64_free_sched_context, ia64_get_insn_spec_ds,
1475         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
1476         (ia64_needs_block_p): Change prototype.
1477         (ia64_gen_check): Rename to ia64_gen_spec_check.
1478         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
1479         into declaration, add special memory dependencies handling.
1480         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1481         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1482         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
1483         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
1484         Define new target hooks.
1485         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1486         (ia64_optimization_options): Turn on selective scheduling with -O3,
1487         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
1488         default with selective scheduling.
1489         (ia64_override_options): Initialize align_loops and align_functions
1490         to 32 and 64, respectively.  Set global selective scheduling flags
1491         according to target-dependent flags.
1492         (rtx_needs_barrier): Support UNSPEC_LDS_A.
1493         (group_barrier_needed): Use new mstop-bit-before-check flag.
1494         Add heuristic.
1495         (dfa_state_size): Make global.
1496         (spec_check_no, max_uid): Remove.
1497         (mem_ops_in_group, current_cycle): New variables.
1498         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
1499         Initialize new variables.
1500         (is_load_p, record_memory_reference): New functions.
1501         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
1502         reached.
1503         (ia64_variable_issue): Change use of current_sched_info to
1504         sched_deps_info.  Update comment.  Note if a load or a store is issued.
1505         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
1506         advance if maximal number of loads or stores was issued on current
1507         cycle.
1508         (scheduled_good_insn): New static helper function.
1509         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
1510         a group barrier is needed.  Fix vertical spacing.  Guard the code
1511         doing state transition with last_scheduled_insn check.
1512         Mark that a stop bit should be before current insn if there was a 
1513         cycle advance.  Update current_cycle and mem_ops_in_group.
1514         (ia64_h_i_d_extended): Change use of current_sched_info to
1515         sched_deps_info. Reallocate stops_p by larger chunks.
1516         (struct _ia64_sched_context): New structure.
1517         (ia64_sched_context_t): New typedef.
1518         (ia64_alloc_sched_context, ia64_init_sched_context,
1519         ia64_set_sched_context, ia64_clear_sched_context,
1520         ia64_free_sched_context): New static functions.
1521         (gen_func_t): New typedef.
1522         (get_spec_load_gen_function): New function.
1523         (SPEC_GEN_EXTEND_OFFSET): Declare.      
1524         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
1525         (get_mode_no_for_insn): Change the condition that prevents use of
1526         special hardware registers so it can now handle pseudos.
1527         (get_spec_unspec_code): New function.
1528         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
1529         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
1530         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
1531         during selective scheduling.
1532         (ia64_speculate_insn): Use ds_get_speculation_types when
1533         determining whether we need to change the pattern.
1534         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
1535         (ia64_spec_check_src_p): Support new speculation/check codes.
1536         (struct bundle_state): New field.
1537         (issue_nops_and_insn): Initialize it.
1538         (insert_bundle_state): Minimize mid-bundle stop bits.
1539         (important_for_bundling_p): New function.
1540         (get_next_important_insn): Use important_for_bundling_p.
1541         (bundling): When shifting TImode from unimportant insns, ignore
1542         also group barriers.  Assert that best state is found before
1543         the backward bundling pass.  Print number of mid-bundle stop bits.
1544         Minimize mid-bundle stop bits.  Check correct calculation of
1545         mid-bundle stop bits.
1546         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
1547         (final_emit_insn_group_barriers): Emit stop bits before insns starting
1548         a new cycle.
1549         (sel2_run): New variable.
1550         (ia64_reorg): When flag_selective_scheduling2 is set, run the
1551         selective scheduling pass instead of schedule_ebbs.
1552         
1553         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
1554         (UNSPEC_LDS_A): New UNSPEC.
1555         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
1556         movti_internal, movsf_internal, movdf_internal,
1557         movxf_internal): Make visible.  Add speculable* attributes.
1558         (output_c_nc): New mode attribute.
1559         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
1560         mov<mode>_nc, zero_extend<mode>di2_nc,
1561         advanced_load_check_nc_<mode>): New insns.
1562         (zero_extend*): Add speculable* attributes.
1563
1564         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
1565         (msched-stop-bits-after-every-cycle): Likewise.
1566         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
1567         Likewise.
1568         (msched-spec-verbose): Remove.
1569         (msched-prefer-non-data-spec-insns,
1570         msched-prefer-non-control-spec-insns,
1571         msched-count-spec-in-critical-path,
1572         msel-sched-dont-check-control-spec): Use Target  Report Var
1573         instead of Common Report Var.
1574
1575         * config/ia64/itanium2.md: Remove incorrect bypass.
1576         
1577         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
1578
1579 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
1580
1581         PR middle-end/37805
1582         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1583         and -fhelp=separate.
1584
1585 2008-10-14  Ben Elliston  <bje@au.ibm.com>
1586
1587         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
1588
1589 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
1590
1591         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
1592         non-integer modes.
1593
1594 2008-10-13  Matthias Klose  <doko@ubuntu.com>
1595
1596         * config/pa/linux-atomic.c: Work around missing header file
1597         for hppa64-linux-gnu targets.
1598
1599 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1600             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
1601             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1602             Grace Cao  <grace_cao@playstation.sony.com>
1603
1604         * doc/invoke.texi (-mgen-cell-microcode): Document.
1605         (-mwarn-cell-microcode): Document.
1606         * cfglayout.c (locator_location): Export.
1607         * rtl.h (locator_location): Define prototype.
1608         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
1609         New predicate.
1610         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
1611         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
1612         (mwarn-cell-microcode): New option.
1613         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
1614         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
1615         cell and not already set.
1616         Turn off string instructions if not generating cell microcode.
1617         (rs6000_final_prescan_insn): New function that warns about microcoded
1618         instructions.
1619         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
1620         * config/rs6000/rs6000.md
1621         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
1622         the instruction would have been microcoded on the Cell.  Set
1623         cell_micro to always on unnamed patterns for the string instructions.
1624         (cell_micro): Update definition, remove load/store conditional
1625         microcoded.
1626         (sign_extend:DI): Define new pattern for non microcoded version.
1627         (sign_extend:SI): Likewise.
1628         (compare (div:P)): Set cell_micro to not.
1629         (andsi3): Define as an expand.
1630         (andsi3_mc): New pattern.
1631         (andsi3_nomc): New pattern.
1632         (andsi3_internal0_nomc): New pattern.
1633         (andsi3_internal2): Rename to ...
1634         (andsi3_internal2_mc): this and enable iff generating microcode.
1635         (andsi3_internal3): Rename to ...
1636         (andsi3_internal3_mc): this and enable iff generating microcode.
1637         (andsi3_internal4): Enable iif generating microcode.
1638         (andsi3_internal5): Rename to ..
1639         (andsi3_internal5_mc): this and enable iff generating microcode.
1640         (andsi3_internal5_nomc): New pattern.
1641         (extzvdi_internal1): Enable iff generating microcode.
1642         (extzvdi_internal2): Likewise.
1643         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
1644         (anddi3): Change to expand.
1645         (anddi3_mc): Rename from anddi3.
1646         (anddi3_no_mc): New pattern.
1647         (anddi3_internal2): Rename to ..
1648         (anddi3_internal2_mc): this and enable iff generating microcode.
1649         (anddi3_internal2_nomc): New pattern.
1650         (anddi3_internal3): Rename to ..
1651         (anddi3_internal3_mc): this and enable iff generating microcode.
1652         (anddi3_internal3_nomc): New pattern.
1653         (movti_string): Set cell_micro to always if TARGET_STRING.
1654         (stmsi8): Set cell_micro to always.
1655         (stmsi7): Likewise.
1656         (stmsi6): Likewise.
1657         (stmsi5): Likewise.
1658         (stmsi4): Likewise.
1659         (stmsi3): Likewise.
1660         (stmsi8_power): Likewise.
1661         (stmsi7_power): Likewise.
1662         (stmsi6_power): Likewise.
1663         (stmsi5_power): Likewise.
1664         (stmsi4_power): Likewise.
1665         (stmsi3_power): Likewise.
1666         (movsi_update2): Enable iff generating microcode.
1667         (movhi_update3): Likewise.
1668         (lmw): Set cell_micro to always.
1669
1670 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
1671
1672         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
1673         * config/s390/s390.c (machine_function): Remove
1674         decomposed_literal_pool_addresses_ok_p.
1675         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
1676         the difference of two labels.
1677         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1678         (s390_pool_offset): New function.
1679         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1680         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1681
1682 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
1683
1684         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1685         (powerpc*-*-linux-gnu*): Describe.
1686         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1687         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1688         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1689         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1690         config/rs6000/e500crtres32gpr.asm,
1691         config/rs6000/e500crtres64gpr.asm,
1692         config/rs6000/e500crtres64gprctr.asm,
1693         config/rs6000/e500crtrest32gpr.asm,
1694         config/rs6000/e500crtrest64gpr.asm,
1695         config/rs6000/e500crtresx32gpr.asm,
1696         config/rs6000/e500crtresx64gpr.asm,
1697         config/rs6000/e500crtsav32gpr.asm,
1698         config/rs6000/e500crtsav64gpr.asm,
1699         config/rs6000/e500crtsav64gprctr.asm,
1700         config/rs6000/e500crtsavg32gpr.asm,
1701         config/rs6000/e500crtsavg64gpr.asm,
1702         config/rs6000/e500crtsavg64gprctr.asm: Use it.
1703         * config/rs6000/crtsavres.asm: Really remove.
1704
1705 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
1706
1707         Fix PR/25502
1708         * c-format.c (convert_format_name_to_system_name): Use
1709         TARGET_OVERRIDES_FORMAT_INIT.
1710         * config.gcc (extra_options): Add for mingw targets mingw.opt.
1711         * config/i386/mingw.opt: New.
1712         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1713         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1714         (ms_printf_length_specs): Removed const specifier.
1715         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1716         * doc/invoke.texi (Wno-pedantic-ms-format): New.
1717
1718 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1719
1720         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1721         * doc/install.texi: Bump recommended MPFR to 2.3.2.
1722
1723 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
1724
1725         PR middle-end/37808
1726         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1727         sure that ref has valid bb.
1728         
1729 2008-10-12  Richard Henderson  <rth@redhat.com>
1730
1731         PR middle-end/37447
1732         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1733         * alias.c (value_addr_p, stack_addr_p): Remove.
1734         (nonoverlapping_memrefs_p): Remove IRA special case.
1735         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1736         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1737         * reload1.c (alter_reg): Use it.
1738
1739 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
1740
1741         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1742         of registers instead of eax, ebx, ecx and edx.  Use for loop
1743         and check register for non-zero value before the call
1744         to decode_caches_intel.
1745
1746 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1747
1748         PR rtl-optimization/37448
1749         * df.h: (df_ref_class): New enum.
1750         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1751         (struct df_ref): Replaced with union df_ref_d.
1752         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1753         New members of df_ref_d union.
1754         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1755         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1756         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1757         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1758         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1759         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1760         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1761         (df_scan_bb_info, df_bb_regno_first_def_find,
1762         df_bb_regno_last_def_find, df_find_def, df_find_use,
1763         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1764         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1765         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1766         df_get_artificial_defs, df_get_artificial_uses, union_defs)
1767         Replaced struct df_ref * with df_ref.
1768         * df-scan.c (df_collection_rec, df_null_ref_rec,
1769         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1770         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1771         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1772         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1773         df_reorganize_refs_by_reg_by_reg,
1774         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1775         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1776         df_sort_and_compress_refs, df_install_ref, df_install_refs,
1777         df_ref_record, df_get_conditional_uses, df_get_call_refs,
1778         df_bb_refs_record, df_exit_block_uses_collect,
1779         df_record_exit_block_uses, df_reg_chain_mark,
1780         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1781         df_ref * with df_ref.
1782         (df_ref_record, df_uses_record, df_ref_create_structure): Added
1783         df_ref_class parameter.
1784         (df_scan_problem_data): Added new pools for different types of refs.
1785         (df_scan_free_internal, df_scan_alloc, df_free_ref,
1786         df_ref_create_structure): Processed new ref pools.
1787         (df_scan_start_dump): Added counts of refs and insns.
1788         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1789         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1790         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1791         code to pass df_ref_class down to ref creation functions.
1792         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1793         df_reg_chain_mark): Use macros to hide references to df_refs.
1794         (df_ref_chain_change_bb): Removed.
1795         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1796         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1797         Enhanced to understand df_ref union structure.
1798         * fwprop.c (local_ref_killed_between_p, use_killed_between,
1799         all_uses_available_at, update_df, try_fwprop_subst,
1800         forward_propagate_subreg, forward_propagate_and_simplify,
1801         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1802         df_ref * with df_ref.
1803         (use_killed_between, all_uses_available_at): Use macros to hide
1804         references to df_refs.
1805         * regstat.c (regstat_bb_compute_ri,
1806         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1807         df_ref.
1808         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1809         see_handle_relevant_refs, see_analyze_one_def,
1810         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1811         struct df_ref * with df_ref.
1812         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1813         global_conflicts): Replaced struct df_ref * with df_ref.
1814         * ddg.c (create_ddg_dep_from_intra_loop_link,
1815         add_cross_iteration_register_deps, build_inter_loop_deps):
1816         Replaced struct df_ref * with df_ref.
1817         (create_ddg_dep_from_intra_loop_link,
1818         add_cross_iteration_register_deps): Use macros to hide references
1819         to df_refs.
1820         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1821         df_ref * with df_ref.
1822         * df-core.c (df_bb_regno_first_def_find,
1823         df_bb_regno_last_def_find, df_find_def, df_find_use,
1824         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1825         debug_df_ref): Replaced struct df_ref * with df_ref.
1826         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1827         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1828         df_ref.
1829         * web.c (union_defs, entry_register, replace_ref, web_main):
1830         Replaced struct df_ref * with df_ref.
1831         (union_defs, replace_ref): Use macros to hide references to df_refs.
1832         * global.c (compute_regs_asm_clobbered, build_insn_chain):
1833         Replaced struct df_ref * with df_ref.
1834         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1835         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1836         Replaced struct df_ref * with df_ref.
1837         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1838         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1839         with df_ref.
1840         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1841         * df-byte-scan.c (df_compute_accessed_bytes_extract,
1842         df_compute_accessed_bytes_strict_low_part,
1843         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1844         Replaced struct df_ref * with df_ref.
1845         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1846         * init-regs.c (initialize_uninitialized_regs): Replaced struct
1847         df_ref * with df_ref.
1848         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1849         check_dependency, check_dependencies, record_uses): Replaced
1850         struct df_ref * with df_ref.
1851         (invariant_for_use, check_dependency): Use macros to hide
1852         references to df_refs.
1853         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1854         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1855         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1856         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1857         references to df_refs.
1858         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1859         with df_ref.
1860         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1861         * df-problems.c (df_rd_bb_local_compute_process_def,
1862         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1863         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1864         df_chain_remove_problem, df_chain_create_bb_process_use,
1865         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1866         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1867         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1868         df_byte_lr_simulate_artificial_refs_at_top,
1869         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1870         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1871         df_simulate_uses, df_simulate_artificial_refs_at_end,
1872         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1873         df_ref.
1874         (df_chain_dump): Use macros to hide references to df_refs.
1875         * config/mips/mips.c (r10k_simplify_address): Replaced struct
1876         df_ref * with df_ref.
1877         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1878         mark_artificial_uses, mark_reg_dependencies,
1879         byte_dce_process_block): Replaced struct df_ref * with df_ref.
1880
1881 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1882
1883         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1884         head comment.
1885         (array_ref_element_size): Likewise.
1886         (array_ref_low_bound): Likewise.
1887         (array_ref_up_bound): Likewise.
1888         * expr.c (contains_packed_reference): Likewise.
1889         (array_ref_element_size): Likewise.
1890         (array_ref_low_bound): Likewise.
1891         (array_ref_up_bound): Likewise.
1892         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1893         with ARRAY_RANGE_REF.
1894         (idx_find_step): Likewise.
1895         (idx_record_use): Likewise.
1896         (strip_offset_1): Likewise.
1897         (idx_remove_ssa_names): Likewise.
1898
1899 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
1900             Andi Kleen  <ak@linux.intel.com>
1901
1902         * config/i386/cpuid.h (__cpuid_count): New defines.
1903         * config/i386/driver-i386.c (struct cache_desc): New structure.
1904         (describe_cache): Use struct cache_desc to pass cache descriptions.
1905         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1906         (detect_caches_amd): Use struct cache_desc to describe caches.
1907         (decode_caches_intel): Use struct cache_desc to pass cache
1908         descriptions.  Update descriptions to match latest (rev -032,
1909         December 2007) CPUID documentation.  Do not check valid bit here.
1910         Check for Xeon MP value 0x49 problems.
1911         (detect_caches_cpuid2): New function, split from detect_caches_intel.
1912         Check valid bit before calling decode_caches_intel.  Detect number
1913         of times to repeat CPUID instruction.
1914         (detect_caches_cpuid4): New function.
1915         (detect_caches_intel): Depending on max_level, call
1916         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
1917         only when other methods fail to provide valid L2 cache description.
1918
1919 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1920
1921         PR middle-end/37608
1922         * pa.md (call, call_value): Generate an rtx for register r4 and pass
1923         it to PIC call patterns.
1924         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
1925         code generation and attributes from pattern.  Change peephole2 to
1926         split for noreturn case.  Revise split pattern for non noreturn case.
1927         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1928         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1929         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
1930         asserts.
1931
1932 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
1933
1934         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1935         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1936         and fp_type.
1937         (divdf3): Reformat long line.
1938
1939 2008-10-11  Michael J. Eager  <eager@eagercon.com>
1940
1941         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1942         -mfpu options.
1943         (rs6000_handle_option): Process -mfpu options.
1944         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1945         (enum fpu_type_t): New.
1946         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
1947         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1948         fp_type.
1949         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1950         (floatdidf2): Add TARGET_SINGLE_FPU condition.
1951         * config/rs6000/rs6000.opt (-mfpu): New.
1952         (-mxilinx-fpu): New.
1953         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1954         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1955         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1956         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1957         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1958
1959 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
1960
1961         PR target/35760
1962         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1963         LO_SUM on Darwin if mode has just one unit.
1964
1965 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
1966
1967         PR debug/37002
1968         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1969         has been optimized out.
1970
1971 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
1972
1973         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1974         instead of PIC_DIRECT_ADDR_P.
1975         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1976         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1977         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1978         (PIC_OFFSET_P): Rename to...
1979         (PCREL_SYMOFF_P): ...this.
1980         (PIC_DIRECT_ADDR_P): Delete.
1981         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1982         PIC_OFFSET_P.
1983         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1984         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1985         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1986         * config/sh/sh.c (print_operand): Remove CONST handling.
1987         (unspec_caller_rtx_p): Rewrite to use split_const and check
1988         the operands of UNSPEC bases.
1989         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1990         with (unspec [A B] UNSPEC_SYMOFF).
1991         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1992         UNSPEC_PCREL_SYMOFF.
1993         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1994         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1995         (UNSPEC_EXTRACT_U16): Likewise.
1996         (UNSPEC_SYMOFF): Likewise.
1997         (UNSPEC_PCREL_SYMOFF): Likewise.
1998         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1999         of constants.
2000         (movsi_const_16bit): Likewise.
2001         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
2002         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
2003         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
2004         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
2005         with (unspec [A B] UNSPEC_SYMOFF).
2006         (symPLT_label2reg): Replace (minus A (minus B pc)) with
2007          (unspec [A B] PCREL_UNSPEC_SYMOFF).
2008         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
2009         (Csu): Likewise UNSPEC_EXTRACT_U16.
2010         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
2011         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
2012
2013 2008-10-10  Stepan Kasal  <skasal@redhat.com>
2014
2015         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
2016         for loop strip mining and loop blocking.
2017
2018 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
2019
2020         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
2021         vary types depending on debug info.
2022
2023 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
2024
2025         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
2026         before ensuring it's already computed.
2027
2028 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
2029
2030         * rtl.h (locator_eq): New decl.
2031         * cfglayout.c (locator_scope): New function.
2032         (insn_scope): Use it.
2033         (locator_eq): New function.
2034         (fixup_reorder_chain): Search for last insn in src bb
2035         that has locator set or first insn in dest bb.  Use
2036         locator_eq instead of == to compare locators.
2037         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
2038         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
2039         == to compare locators.
2040
2041         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
2042         as used.
2043         * gimple-low.c (lower_function_body, lower_gimple_return,
2044         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
2045         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
2046         goto_block on edges if goto_locus is known.
2047
2048         PR middle-end/37774
2049         * tree.h (get_object_alignment): Declare.
2050         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
2051         get_object_alignment if needed.
2052         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
2053         handling to ...
2054         (get_object_alignment): ... here.  New function.  Try harder to
2055         determine alignment from get_inner_reference returned offset.
2056
2057 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
2058
2059         * graphite.c (gloog): Don't call find_unreachable_blocks
2060         before delte_unreachable_blocks.
2061
2062         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
2063         goto_locus of true_edge into RTL locator.
2064
2065 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
2066
2067         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
2068         (*jcc_btdi_mask_rex64): Ditto.
2069         (*jcc_btsi): Ditto.
2070         (*jcc_btsi_mask): Ditto.
2071         (*jcc_btsi_1): Ditto.
2072         (*jcc_btsi_mask_1): Ditto.
2073
2074 2008-10-08  Paul Brook  <paul@codesourcery.com>
2075
2076         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
2077         compatible profiler (__gnu_mcount_nc).
2078         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2079
2080 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2081
2082         * config/i386/i386.c (initial_ix86_tune_features): Add
2083         X86_TUNE_USE_VECTOR_FP_CONVERTS.
2084         * config/i386/i386.h (ix86_tune_indices): Likewise.
2085         (TARGET_USE_VECTOR_FP_CONVERTS): New.
2086
2087         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
2088         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
2089         for FP to FP splitters.
2090
2091 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2092
2093         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
2094         splitter.
2095
2096 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
2097
2098         PR target/36635
2099         PR target/37290
2100         PR rtl-optimization/37341
2101         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
2102         to ORIG_BB, pass through ORIG_BB recursively.
2103         (cse_condition_code_reg): Adjust caller.
2104
2105 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
2106
2107         * sdbout.c (sdbout_one_type): Treat the value type
2108         CONST_DECL for enumerals.
2109
2110 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2111
2112         * config/i386/i386.md: Remove trailing white spaces.
2113
2114 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2115
2116         PR rtl-optimization/37448
2117         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
2118         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
2119         Make unsigned long.
2120         (struct output_info) [count]: Renamed total_created and made
2121         unsigned long.
2122         (struct output_info) [size]: Renamed total_allocated and made
2123         unsigned long.
2124         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
2125         Properly keep track of desc->size.
2126         (print_statistics, dump_alloc_pool_statistics): Enhance the
2127         printing of statistics to print the number of elements and to use
2128         unsigned longs.
2129         
2130 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
2131
2132         PR middle-end/37576
2133         * opts.h (CL_SAVE): Move up to flags range.
2134         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
2135         CL_COMMON): Renumber.
2136         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
2137         * opts.c (common_handle_option): Revert last change.
2138
2139 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2140
2141         * config/i386/i386-protos.h (ix86_schedule): New.
2142
2143         * config/i386/i386.c (ix86_schedule): New.
2144         (override_options): Add schedule to processor_alias_table.  Set
2145         ix86_schedule from the schedule field in processor_alias_table.
2146         (ix86_function_specific_save): Save ix86_schedule.
2147         (ix86_function_specific_restore): Restore ix86_schedule.
2148
2149         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
2150         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
2151         and generic32.
2152
2153         * config/i386/i386.opt: Add schedule.
2154
2155         * config/i386/ppro.md: Remove generic32.
2156
2157 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
2158
2159         PR c/35437
2160         * expr.c (count_type_elements): Handle ERROR_MARK.
2161
2162 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
2163
2164         PR debug/29609
2165         PR debug/36690
2166         PR debug/37616
2167         * basic-block.h (struct edge_def): Add goto_block field.
2168         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
2169         one insn with locus corresponding to edge's goto_locus if !optimize.
2170         * profile.c (branch_prob): Copy edge's goto_block.
2171         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
2172         emitted jumps.
2173         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
2174         locator in between the merged basic blocks if !optimize and needed.
2175         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
2176         goto_locus into RTL locator.  For unconditional jump use that
2177         locator for the jump insn.
2178         (expand_gimple_cond): Convert goto_block and goto_locus into
2179         RTL locator for all remaining edges.  For unconditional jump
2180         use that locator for the jump insn.
2181         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
2182         there is more than one edge or insn locator along the forwarding
2183         edges and !optimize.  If there is just one, set e->goto_locus.
2184         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
2185         edge's goto_block.
2186         (move_block_to_fn): Adjust edge's goto_block.
2187
2188 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2189
2190         PR middle-end/37731
2191         * expmed.c (expand_mult): Properly check DImode constant in
2192         CONST_DOUBLE.
2193
2194 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
2195
2196         PR debug/37738
2197         * dwarf2out.c (common_block_die_table): New variable.
2198         (common_block_die_table_hash, common_block_die_table_eq): New
2199         functions.
2200         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
2201         COMMON block in the current scope rather than globally.  Optimize
2202         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
2203         DW_OP_addr SYMBOL_REF+off.
2204
2205 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2206
2207         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
2208         Return true for non-addressable GIMPLE operands.
2209
2210 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2211
2212         PR target/24765
2213         * config/i386/i386.c (initial_ix86_tune_features): Remove
2214         X86_TUNE_USE_BIT_TEST.
2215         * config/i386/i386.h (ix86_tune_indices): Likewise.
2216         (TARGET_USE_BIT_TEST): Removed.
2217
2218 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2219
2220         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
2221
2222 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
2223
2224         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
2225         (mul<mode>3_mul3): ... into this new template.
2226
2227 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2228
2229         * gimplify.c (gimplify_arg): Add location argument.  Use it.
2230         (gimplify_call_expr): Pass location to gimplify_arg.
2231         (gimplify_modify_expr_to_memcpy): Same.
2232         (gimplify_modify_expr_to_memset): Same.
2233
2234 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2235
2236         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2237         Update calls to build_unary_op and build_indirect_ref for location
2238         changes.
2239
2240 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2241
2242         build_modify_expr.
2243         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
2244         * c-typeck.c (array_to_pointer_conversion): Pass location to
2245         build_unary_op.
2246         (function_to_pointer_conversion): Use error_at and warning_at.
2247         (build_indirect_ref): Same.
2248         (build_array_ref): Pass location to build_binary_op.
2249         (parser_build_unary_op): Do not set location after calling
2250         build_unary_op.
2251         (build_unary_op): Add location argument.  Use it throughout.  Set
2252         EXPR_LOCATION before returning new tree.
2253         (build_modify_expr): Same.
2254         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
2255         returning node.
2256         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
2257         build_indirect_ref, build_modify_expr.
2258         (c_finish_omp_for): Same.  Use error_at instead of error.
2259         * c-common.c (c_common_truthvalue_conversion): Pass location to
2260         build_unary_op.
2261         (warn_for_div_by_zero): Add location argument.
2262         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
2263         build_unary_op, warn_for_div_by_zero.
2264         * c-parser.c (c_parser_typeof_specifier): Use
2265         protected_set_expr_location.
2266         (c_parser_statement_after_labels): Same.
2267         (c_parser_condition): Same.
2268         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
2269         (c_parser_conditional_expression): Use protected_set_expr_location.
2270         (c_parser_unary_expression): Pass location to build_indirect_ref.
2271         (c_parser_postfix_expression_after_primary): Pass location to
2272         build_indirect_ref, build_unary_op.
2273         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
2274
2275 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
2276
2277         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
2278         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
2279         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
2280         r14000 and r16000.
2281         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
2282         (mips_issue_rate): Handle PROCESSOR_R10000.
2283         * config/mips/mips.md (cpu): Add r10000.
2284         Include r10000.md.
2285         * config/mips/10000.md: New file.
2286
2287 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
2288
2289         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
2290         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
2291         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
2292
2293 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
2294
2295         * config/darwin-protos.h (machopic_function_base_name): Delete.
2296         (machopic_function_base_sym): Likewise.
2297         (machopic_gen_offset): Declare.
2298         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
2299         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
2300         * config/darwin.c (machopic_function_base_name): Delete.
2301         (machopic_function_base_sym): Likewise.
2302         (gen_pic_offset): Rename to...
2303         (machopic_gen_offset): ...this and remove the pic_base argument.
2304         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
2305         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
2306         crtl->uses_pic_offset_table.
2307         (machopic_indirect_data_reference): Use new machopic_gen_offset
2308         interface.
2309         (machopic_legitimize_pic_address): Likewise.
2310         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
2311
2312         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
2313         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
2314         * config/i386/i386.c (output_set_got): Likewise.
2315         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
2316         instead of a MINUS.
2317         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
2318         (legitimate_address_p): Likewise.
2319         (output_pic_addr_const): Likewise.
2320         (output_addr_const_extra): Likewise.
2321         (ix86_delegitimize_address): Expect darwin_local_data_pic to
2322         match an UNSPEC rather than a MINUS.
2323         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
2324         (builtin_setjmp_receiver): Use machopic_gen_offset.
2325         * config/i386/predicates.md (pic_symbolic_operand): Handle
2326         UNSPEC_MACHOPIC_OFFSET.
2327
2328         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2329         Use machopic_gen_offset and machopic_operand_p.
2330         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
2331         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
2332         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
2333         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
2334         Set crtl->uses_pic_offset_table.
2335
2336 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
2337
2338         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
2339         Declare.
2340         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
2341         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
2342         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
2343         (constant_pool_expr_p): Use split_const and check the base.
2344         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
2345         instead of a MINUS.
2346         (legitimate_constant_pool_address_p): Check toc_relative_p
2347         instead of constant_pool_expr_p.
2348         (print_operand_address): Always use output_addr_const for
2349         constant pool addresses.
2350         (rs6000_output_addr_const_extra): New function.
2351         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
2352
2353 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
2354
2355         PR middle-end/37535
2356
2357         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2358         (mark_ref_live, mark_ref_dead): Use them.
2359         (def_conflicts_with_inputs_p): Remove.
2360         (mark_early_clobbers): New function.
2361         (process_bb_node_lives): Call preprocess_constraints and
2362         mark_early_clobbers.
2363
2364         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
2365
2366 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
2367
2368         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
2369         lib with -mthread switch.
2370
2371 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
2372
2373         PR c++/37410
2374         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
2375         function in two, making it call a new and reusable
2376         dwarf2out_imported_module_or_decl() that takes the containing
2377         BLOCK of the declaration in argument.
2378         (dwarf2out_imported_module_or_decl_real): New function.
2379         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
2380         IMPORTED_DECL in account.
2381         * tree.def: Added IMPORTED_DECL node type.
2382         * tree.h: Added accessors for IMPORTED_DECL nodes.
2383         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
2384
2385 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2386
2387         * doc/gimple.texi: Fix some typos, wrap some long lines,
2388         fix some broken wraps with continuations.
2389         * tree-ssa-reassoc.c: Fix comment typos.
2390
2391 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2392
2393         PR target/37603
2394         * pa.c (legitimize_pic_address): Force function labels to memory in
2395         word mode.
2396
2397 2008-10-04  Anton Blanchard  <anton@samba.org>
2398
2399         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
2400         (rs6000_split_atomic_op): Same.
2401         (rs6000_split_compare_and_swap): Same.
2402         (rs6000_split_compare_and_swapqhi): Same.
2403
2404 2008-10-04  Richard Guenther  <rguenther@suse.de>
2405
2406         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
2407         instead of pointer equality.
2408         (vn_nary_op_eq): Likewise.
2409
2410 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2411
2412         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
2413         condition.
2414         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
2415         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
2416
2417 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
2418
2419         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
2420         Revert previous change.
2421
2422 2008-10-03  Tom Tromey  <tromey@redhat.com>
2423
2424         * stringpool.c (ggc_alloc_string): Terminate string.
2425
2426 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
2427
2428         * gimplify.c (gimplify_function_tree): For -finstrument-functions
2429         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
2430         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
2431
2432         PR debug/37726
2433         * gimplify.c (declare_vars): Use gimple_bind_block instead of
2434         gimple_block.
2435
2436 2008-10-03  Pascal Obry  <obry@adacore.com>
2437
2438         * gcov.c (create_file_names): Properly handle UNIX and DOS
2439         directory separators.
2440         (make_gcov_file_name): Likewise + convert the ':' DOS drive
2441         separator to '~' to ensure clean filenames on Windows.
2442
2443 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
2444
2445         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
2446         Add a null terminator to the stripped name.
2447
2448 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
2449
2450         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
2451         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2452         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
2453         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
2454         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2455         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
2456         TARGET_SINGLE_FLOAT.
2457
2458 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
2459
2460         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
2461
2462 2008-10-02  Richard Guenther  <rguenther@suse.de>
2463
2464         PR middle-end/37713
2465         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
2466         and VECTOR_TYPE recurse with useless_type_conversion_p which
2467         properly handles void pointer conversion.
2468
2469 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
2470
2471         PR target/37528
2472         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
2473         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
2474
2475 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2476
2477         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2478         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
2479         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
2480         they translate to non builtins.
2481         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
2482         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
2483         __builtin_vec_promote, __builtin_vec_extract, and
2484         __builtin_vec_insert.
2485         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
2486         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
2487         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
2488         * config/rs6000/altivec.h (vec_extract): Define
2489         (vec_insert): Define.
2490         (vec_splats): Define.
2491         (vec_promote): Define.
2492
2493 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2494             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
2495             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
2496
2497         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
2498         Altivec intrinsics.
2499         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
2500         prototype.  Add new parameter, blk.
2501         Use BLKmode for the MEM if blk is true.
2502         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
2503         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
2504         ALTIVEC_BUILTIN_STVRXL.
2505         Update usage of altivec_expand_lv_builtin.
2506         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
2507         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
2508         (altivec_init_builtins): If compiling for the Cell, also define the
2509         cell VMX builtins.
2510         * config/rs6000/rs6000.h (rs6000_builtins): Define
2511         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
2512         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
2513         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
2514         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
2515         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
2516         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
2517         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
2518         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
2519         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
2520         UNSPEC_STVRX, and UNSPEC_STVRXL.
2521         (altivec_lvlx): New pattern.
2522         (altivec_lvlxl): New pattern.
2523         (altivec_lvrx): New pattern.
2524         (altivec_lvrxl): New pattern.
2525         (altivec_stvlx): New pattern.
2526         (altivec_stvlxl): New pattern.
2527         (altivec_stvrx): New pattern.
2528         (altivec_stvrxl): New pattern.
2529         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
2530         (vec_lvlxl): Likewise.
2531         (vec_lvrx): Define if PPU is defined.
2532         (vec_lvrxl): Likewise.
2533         (vec_stvlx): Define if PPU is defined.
2534         (vec_stvlxl): Likewise.
2535         (vec_stvrx): Define if PPU is defined.
2536         (vec_stvrxl): Likewise.
2537
2538 2008-10-01  Geert Bosch  <bosch@adacore.com>
2539
2540         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
2541
2542 2008-10-01  Richard Guenther  <rguenther@suse.de>
2543
2544         PR tree-optimization/37617
2545         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
2546         do not add to the NEW_SETS.
2547
2548 2008-10-01  Richard Guenther  <rguenther@suse.de>
2549
2550         PR middle-end/37285
2551         * tree-vrp.c (execute_vrp): If we optimized away the default
2552         case make sure to promote the label that got in place of it
2553         to a default case label.
2554
2555 2008-10-01  Richard Henderson  <rth@redhat.com>
2556
2557         PR tree-opt/35737
2558         * tree-complex.c (set_component_ssa_name): Don't optimize
2559         is_gimple_min_invariant values with ssa_names in abnormal phis.
2560
2561 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
2562
2563         PR tree-optimization/37662
2564         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
2565         commutative binary operation if they are in the wrong order and
2566         fold_build2 produces non-GIMPLE.
2567
2568 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
2569
2570         PR tree-optimization/37662
2571         PR tree-optimization/37663
2572         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
2573         get_value_range with non-SSA_NAME.  Don't assert operands have been
2574         folded, instead just bail out.
2575
2576 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2577
2578         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
2579
2580 2008-09-30  Richard Guenther  <rguenther@suse.de>
2581
2582         PR middle-end/37491
2583         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
2584         build restrict-qualified pointers.
2585         (vectorizable_store): Move alias check later.
2586         (vectorizable_load): Likewise.
2587
2588 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
2589
2590         * c-common.c (empty_if_body_warning): Remove.
2591         * c-common.h (empty_if_body_warning): Remove.
2592         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
2593         here the -Wempty-body warning for `if' and `else' statements.
2594         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
2595
2596 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
2597
2598         * config/i386/i386.opt: Add msse2avx.
2599
2600         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
2601         * config/i386/linux64.h (ASM_SPEC): Likewise.
2602
2603         * doc/invoke.texi: Document -msse2avx.
2604
2605 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2606
2607         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
2608
2609 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
2610
2611         * ifcvt.c (noce_emit_store_flag): If using condition from original
2612         jump, reverse it if if_info->cond was reversed.
2613
2614 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2615
2616         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2617         non-constant memory if it cannot be forced to constant memory.
2618         Overhaul surrounding code and factor out common condition.
2619
2620 2008-09-29  Jeff Law <law@redhat.com>
2621
2622         * reload1.c (alter_reg): Add missing curly braces.
2623
2624 2008-09-29  Michael J. Eager  <eager@eagercon.com>
2625
2626         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2627         are easy.
2628         * config/rs6000/rs6000.c (rs6000_override_options): Move
2629         rs6000_init_hard_regno_mode_ok after all options changed.
2630         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2631         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2632         -msimple-fpu flags.  Add warning messages if single FP not configured.
2633         (rs6000_file_start): Output gnu_attribute for single-float.
2634         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2635         (rs6000_legitimize_address): Likewise.
2636         (rs6000_legitimize_reload_address): Likewise.
2637         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2638         TARGET_SINGLE_FLOAT.
2639         (function_arg_advance): Likewise (partial conversion).
2640         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2641         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2642         TARGET_SINGLE_FLOAT.
2643         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2644         (rs6000_emit_prologue): Likewise.
2645         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2646         TARGET_SINGLE_FLOAT.
2647         (rs6000_libcall_value): Likewise.
2648         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2649         (TARGET_DOUBLE_FLOAT): New default to 1
2650         (TARGET_SIMPLE_FPU): New default to 0
2651         (TARGET_SINGLE_FPU): New default to 0
2652         (TARGET_SINGLE_FLOAT_MODE): New.
2653         (TARGET_DOUBLE_FLOAT_MODE): New.
2654         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2655         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2656         UNITS_PER_FP_WORD
2657         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2658         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2659         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2660         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2661         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2662         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2663         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2664         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2665         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2666         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2667         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2668         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2669         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2670         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2671         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2672         cmptf_internal1, *cmptf_internal2): Condition on
2673         TARGET_DOUBLE_FLOAT.
2674         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2675         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2676         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2677         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2678         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2679         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2680         TARGET_SINGLE_FLOAT.
2681         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2682         * config/rs6000/rs6000.opt (-msingle-float): New.
2683         (-mdouble-float): New.
2684         (-msimple-fpu): New.
2685         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2686         -msingle-float, -mdouble-float, -msimple-fpu options.
2687         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2688         _SOFT_DOUBLE for -msingle-float.
2689         * config.gcc: New config for target=powerpc-xilinx-eabi.
2690
2691 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
2692
2693         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2694         have exit and entry.
2695         (new_scop): Take entry and exit edge to define new SCoP.
2696         (sd_region_p): New structure used during SCoP detection.
2697         (move_scops): Delete.
2698         (move_sd_regions): New.
2699         (scopdet_info): Change the definition from edges back to basic_blocks.
2700         (scopdet_edge_info):  Work on basic_blocks and rename to
2701         scopdet_basic_block_info.
2702         (split_difficult_bb): At the moment removed. We should later
2703         add it at another place.
2704         (build_scops_1): Work on basic_blocks.
2705         (bb_in_sd_region): New.
2706         (find_single_entry_edge): New.
2707         (find_single_exit_edge): New.
2708         (create_single_entry_edge): New.
2709         (sd_region_without_exit): New.
2710         (create_single_exit_edge): New.
2711         (unmark_exit_edges): New.
2712         (mark_exit_edges): New.
2713         (create_sese_edges): New.
2714         (build_graphite_scops): New.
2715         (build_scops): Make SCoPs SESE.
2716         (limit_scops): Use the new functions.
2717
2718 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
2719
2720         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2721
2722 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2723
2724         PR target/37640
2725         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2726         address to a register before taking the lower part.
2727
2728 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2729
2730         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2731         for SHmedia.
2732
2733 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2734             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
2735
2736         PR tree-opt/36891
2737         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2738         the newly created variable.
2739         Create a VECTOR_CST of all 1s for vector types.
2740
2741 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2742
2743         PR middle-end/36575
2744         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2745
2746 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2747
2748         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2749         order to convert between modes.
2750         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2751
2752 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2753
2754         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2755         if needed.
2756
2757 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
2758
2759         Revert:
2760         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2761         * ira-lives.c:...
2762         * doc/rtl.texi:...
2763
2764 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
2765
2766         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2767         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2768         them to yield false with MIPS16.
2769
2770 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
2771
2772         PR middle-end/37275
2773         * dwarf2out.c (tls_mem_loc_descriptor): New function.
2774         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
2775         mem_loc_descriptor failed.  Accept UNSPEC.
2776         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
2777         fail if one of the loc_descriptor calls for pieces failed.
2778         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2779         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
2780         if loc_descriptor_from_tree_1 on offset failed.
2781
2782         PR middle-end/37576
2783         * opts.c (common_handle_option): Don't call print_specific_help with
2784         CL_SAVE as first argument.
2785
2786 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2787             Steve Ellcey  <sje@cup.hp.com>
2788
2789         * configure: Regenerate for new libtool.
2790         * aclocal.m4: Ditto.
2791
2792 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
2793
2794         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2795         alias set on MEM when saving stack pointer.
2796         * config/rs6000/rs6000.md (allocate_stack): Likewise
2797
2798 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
2799
2800         PR tree-optimization/37574
2801         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2802         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2803         instead of vector_type for constants. Take computation out of loop.
2804         (vect_get_vec_def_for_operand): Use only vectype for constant case,
2805         and use only vector_type for invariant case.
2806         (get_initial_def_for_reduction): Use vectype instead of vector_type.
2807
2808 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
2809
2810         PR c/37645
2811         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2812         the decl is a VAR_DECL or FUNCTION_DECL.
2813
2814 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2815
2816         PR middle-end/37535
2817         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2818         (mark_ref_live, mark_ref_dead): Use them.
2819         (def_conflicts_with_inputs_p): Remove.
2820         (mark_early_clobbers): New function.
2821         (process_bb_node_lives): Call preprocess_constraints and
2822         mark_early_clobbers.
2823
2824         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2825
2826 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2827
2828         PR middle-end/37448
2829         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2830         (ira_compress_allocno_live_ranges): New prototype.
2831
2832         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2833         (coalesced_allocnos_living_at_program_points): New.
2834         (coalesced_allocnos_live_at_points_p,
2835         set_coalesced_allocnos_live_points): New functions.
2836         (coalesce_spill_slots): Rewrite.
2837         
2838         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2839         ira_compress_allocno_live_ranges): New functions.
2840
2841         * ira-build.c (ira_flattening): Call
2842         ira_compress_allocno_live_ranges.
2843         (ira_build): Ditto.
2844
2845 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
2846
2847         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2848         optimization.
2849
2850 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
2851
2852         * combine.c (make_compound_operation): Handle the 'E' format.
2853         (count_rtxs): Likewise.
2854         (update_table_tick): Likewise.
2855         (get_last_value_validate): Likewise.
2856
2857 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2858
2859         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2860
2861 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2862
2863         * matrix-reorg.c (transform_allocation_sites): Initializers 
2864         added to avoid the warning.
2865
2866 2008-09-25  Martin Jambor  <mjambor@suse.cz>
2867
2868         * cgraph.c (free_nodes): New variable.
2869         (NEXT_FREE_NODE): New macro.
2870         (cgraph_create_node): Reuse nodes from the free list.  Do not
2871         update uid if doing so.
2872         (cgraph_remove_node): Add the node to the free list.
2873
2874 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
2875
2876         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2877
2878 2008-09-24  Richard Henderson  <rth@redhat.com>
2879
2880         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2881         * unwind-dw2.c (execute_stack_op): Handle it.
2882
2883 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
2884
2885         Revert:
2886         2008-09-24  Michael J. Eager  <eager@eagercon.com>
2887
2888 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
2889
2890         * c-common.c (fname_decl): New location argument.
2891         * c-common.h (fname_decl): Same.
2892         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2893         {warning,error}.
2894         (c_parser_typeof_specifier): Same.
2895         (c_parser_parms_list_declarator): Same.
2896         (c_parser_asm_string_literal): Same.
2897         (c_parser_compound_statement_nostart): Same.
2898         (c_parser_label): Same.
2899         (c_parser_do_statement): Same.
2900         (c_parser_asm_statement): Same.
2901         (c_parser_unary_expression): Same.
2902         (c_parser_sizeof_expression): Same.
2903         (c_parser_postfix_expression): Same.
2904         (c_parser_pragma): Same.
2905         (c_parser_omp_clause_collapse): Same.
2906         (c_parser_omp_clause_num_threads): Same.
2907         (c_parser_omp_clause_schedule): Same.
2908         (c_parser_omp_all_clauses): Same.
2909         (c_parser_omp_sections_scope): Same.
2910         (c_parser_omp_for_loop): Same.  Pass condition's location to
2911         c_objc_common_truthvalue_conversion.
2912         (c_parser_enum_specifier): Remove comment.
2913
2914 2008-09-24  Michael J. Eager  <eager@eagercon.com>
2915
2916         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2917         are easy.
2918         * config/rs6000/rs6000.c (rs6000_override_options): Move
2919         rs6000_init_hard_regno_mode_ok after all options changed.
2920         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2921         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2922         -msimple-fpu flags.  Add warning messages if single FP not configured.
2923         (rs6000_file_start): Output gnu_attribute for single-float.
2924         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2925         (rs6000_legitimize_address): Likewise.
2926         (rs6000_legitimize_reload_address): Likewise.
2927         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2928         TARGET_SINGLE_FLOAT.
2929         (function_arg_advance): Likewise.
2930         (function_arg): Likewise.
2931         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2932         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2933         TARGET_SINGLE_FLOAT.
2934         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2935         (rs6000_emit_prologue): Likewise.
2936         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2937         TARGET_SINGLE_FLOAT.
2938         (rs6000_libcall_value): Likewise.
2939         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2940         (TARGET_DOUBLE_FLOAT): New default to 1
2941         (TARGET_SIMPLE_FPU): New default to 0
2942         (TARGET_SINGLE_FPU): New default to 0
2943         (TARGET_SINGLE_FLOAT_MODE): New.
2944         (TARGET_DOUBLE_FLOAT_MODE): New.
2945         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2946         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2947         UNITS_PER_FP_WORD
2948         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2949         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2950         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2951         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2952         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2953         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2954         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2955         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2956         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2957         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2958         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2959         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2960         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2961         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2962         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2963         cmptf_internal1, *cmptf_internal2): Condition on
2964         TARGET_DOUBLE_FLOAT.
2965         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2966         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2967         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2968         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2969         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2970         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2971         TARGET_SINGLE_FLOAT.
2972         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2973         * config/rs6000/rs6000.opt (-msingle-float): New.
2974         (-mdouble-float): New.
2975         (-msimple-fpu): New.
2976         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2977         -msingle-float, -mdouble-float, -msimple-fpu options.
2978         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2979         _SOFT_DOUBLE for -msingle-float.
2980         * config.gcc: New config for target=powerpc-xilinx-eabi.
2981
2982 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2983
2984         * config/sparc/constraints.md: New file.
2985         * config/sparc/sparc.md: Include it.
2986         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2987         (sparc_extra_constraint_check): Delete.
2988         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2989         (memory_ok_for_ldd): New predicate.
2990         (sparc_extra_constraint_check): Delete.
2991         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2992         (CONST_OK_FOR_LETTER_P): Likewise.
2993         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2994         (EXTRA_CONSTRAINT): Likewise.
2995
2996 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
2997
2998         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2999
3000 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
3001
3002         * alias.c (find_base_value): Use FIND_BASE_TERM.
3003         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
3004
3005 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
3006
3007         * config/i386/i386.c: Include cselib.h.
3008         (ix86_pic_register_p): New function.
3009         (ix86_delegitimize_address): Use it to check for the PIC register.
3010
3011 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
3012
3013         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
3014         * config/i386/i386.c (ix86_find_base_term): Don't check for
3015         SYMBOL_REF and LABEL_REF.
3016
3017 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
3018
3019         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
3020         constant PLUS in a CONST.
3021
3022 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
3023
3024         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
3025         check for sibcall support for w64.
3026
3027 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
3028
3029         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
3030
3031 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
3032
3033         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
3034         parser_build_binary_op.
3035         * c-decl.c (build_enumerator): Pass location to build_binary_op.
3036         * c-typeck.c (build_array_ref): Same.
3037         (parser_build_unary_op): New location argument.
3038         (pointer_diff): Pass location to build_binary_op,
3039         c_objc_common_truthvalue_conversion.
3040         (build_modify_expr): Same.
3041         (build_unary_op): New location argument.
3042         (build_binary_op): New location argument.
3043         (c_objc_common_truthvalue_conversion): Pass location to
3044         c_*common_truthvalue_conversion.
3045         * c-convert.c (convert): Same.
3046         * c-common.c (binary_op_error): New location argument.
3047         (pointer_int_sum): Pass location to build_binary_op.
3048         (c_common_truthvalue_conversion): New location argument.
3049         (warn_for_sign_compare): Same.
3050         * c-common.h: Add location argument to c_common_truthvalue_conversion,
3051         binary_op_error, build_binary_op, warn_for_sign_compare.
3052         * c-parser.c (c_parser_condition): Pass location to
3053         c_*common_truthvalue_conversion.
3054         (c_parser_conditional_expression): Save condition's location and pass
3055         it on down.
3056         (c_parser_binary_expression): Same, but for the binary operator's
3057         location.
3058         (c_parser_omp_for_loop): Pass location to
3059         c_objc_common_truthvalue_conversion.
3060
3061 2008-09-23  Martin Jambor  <mjambor@suse.cz>
3062
3063         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
3064         (cgraph_node_remove_callees): New temporary f.  Hold the next item
3065         in f when looping.
3066         (cgraph_node_remove_callers): Likewise.
3067
3068         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
3069         (ipa_node_removal_hook): Likewise.
3070
3071         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
3072         gimple_call_copy_skip_args and moved to the gimple_call section.
3073         * gimple.c (gimple_copy_call_skip_args): Renamed to
3074         gimple_call_copy_skip_args.  Changed al users.
3075
3076 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
3077
3078         * ira-color.c (start_allocno_priorities): Rename to
3079         setup_allocno_priorities.  Use costs and
3080         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
3081         range lengths.  Get rid off doubles.
3082         (ira_fast_allocations): Call start_allocno_priorities.
3083         
3084 2008-09-22  David Daney  <ddaney@avtrex.com>
3085
3086         PR target/37593
3087         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
3088         register if TARGET_LONG_CALLS.
3089
3090 2008-09-22  Richard Guenther  <rguenther@suse.de>
3091
3092         PR tree-optimization/37145
3093         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
3094         value-numbering union accesses with their offset and size only.
3095         (visit_reference_op_load): Fix simplification of inserted conversions.
3096         * tree-ssa-pre.c (find_or_generate_expression): Do not
3097         recursively generate expressions if running FRE.
3098
3099 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
3100
3101         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
3102         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
3103         New patterns.
3104
3105 2008-09-22  Richard Guenther  <rguenther@suse.de>
3106
3107         PR tree-optimization/37145
3108         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
3109         (phi_translate_1): Constant fold references.
3110
3111 2008-09-22  Ira Rosen  <irar@il.ibm.com>
3112
3113         PR tree-optimization/37482
3114         * tree-vectorizer.h (struct _slp_instance): Add new field.
3115         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
3116         (get_earlier_stmt): New function.
3117         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
3118         function.
3119         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
3120         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
3121         asserts that GSI points to the scalar statement being vectorized.
3122         Set new statement location according to GSI.
3123         (vect_schedule_slp_instance): Use GSI of
3124         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
3125
3126 2008-09-21  Jan Hubicka  <jh@suse.cz>
3127
3128         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
3129         (ipcp_insert_stage): Update dead_nodes bitmap.
3130
3131 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
3132
3133         PR target/37528 
3134         * config/i386/t-cygming (SHLIB_LC): Remove.
3135         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
3136         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
3137
3138 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
3139
3140         PR middle-end/37170
3141         PR middle-end/37280
3142         * final.c (mark_symbol_ref_as_used): New helper function.
3143         (output_operand): Instead of just looking inside MEMs for
3144         SYMBOL_REFs, use new helper function and for_each_rtx.
3145         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
3146         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
3147         Make head comment more general.
3148         * config/darwin.c (machopic_output_indirection): Handle weak
3149         references here, like in assemble_external.
3150
3151 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
3152
3153         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
3154         (sparc_emit_float_lib_cmp): Change return type.
3155         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
3156         (gen_compare_operator): New function.
3157         (sparc_emit_float_lib_cmp): Return the new operator to be used in
3158         the comparison sequence.  Minor tweaks.
3159         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
3160         that the final operator and the result of sparc_emit_float_lib_cmp
3161         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
3162         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
3163         buneq, bunge, bunle, bltgt): Assert that the final operator and the
3164         result of sparc_emit_float_lib_cmp match for software TFmode.
3165         (movqicc, movhicc, movsicc, movdicc): Merge into...
3166         (mov<I:mode>cc): ...this.
3167         (movsfcc, movdfcc, movtfcc): Merge into...
3168         (mov<F:mode>cc): ...this.
3169         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
3170         into...
3171         (mov<I:mode>_cc_v9): ...this.
3172         (movdi_cc_sp64_trunc): Delete.
3173         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
3174         movdi_cc_reg_sp64): Merge into...
3175         (mov<I:mode>_cc_reg_sp64): ...this.
3176         (movsf_cc_sp64): Rename into...
3177         (movsf_cc_v9): ...this.
3178         (movdf_cc_sp64): Rename into...
3179         (movdf_cc_v9): ...this.
3180         (movtf_cc_hq_sp64): Rename into...
3181         (movtf_cc_hq_v9): ...this.
3182         (movtf_cc_sp64): Rename into...
3183         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
3184
3185 2008-09-21  Diego Novillo  <dnovillo@google.com>
3186
3187         * doc/gccint.texi: Include generic.texi and gimple.texi.
3188         Re-order index.
3189         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
3190         (GIMPLE): Move to gimple.texi.
3191         (Annotations): Remove references to to stmt_ann_t and
3192         ssa_name_ann_t.
3193         (SSA Operands): Rename from 'Statement Operands'.
3194         * doc/generic.texi: New.
3195         * doc/gimple.texi: New.
3196         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
3197         * Makefile.in (TEXI_GCCINT_FILES):
3198         * gimple.c (gimple_copy_call_skip_args): Rename from
3199         giple_copy_call_skip_args.  Update all users.
3200         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
3201
3202 2008-09-21  Ira Rosen  <irar@il.ibm.com>
3203
3204         PR tree-optimization/37539
3205         * tree-vect-transform.c (vect_transform_strided_load): Save vector
3206         statement in related statement field only for the first load of the
3207         group of loads with the same data reference.
3208
3209 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
3210
3211         * config/mips/mips.h (TUNE_OCTEON): New macro.
3212         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
3213         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
3214         * config/mips/octeon.md: New file.
3215         * config/mips/mips.md: Include octeon.md.  Restore
3216         semi-alphabetical order of include files.
3217
3218 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
3219
3220         PR target/37571
3221         * config/i386/i386.md (*jcc_fused_1): Removed.
3222         (*jcc_fused_2): Likewise.
3223         (*jcc_fused_3): Likewise.
3224         (*jcc_fused_4): Likewise.
3225
3226 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
3227
3228         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
3229         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
3230         * target.h (gcc_target): Add ira_cover_classes.
3231         * ira.c: Remove IRA_COVER_CLASSES guards.
3232         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
3233         instead of IRA_COVER_CLASSES.
3234         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
3235         (setup_class_translate): Likewise.
3236         (setup_reg_class_intersect_union): Likewise.
3237         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
3238         test of targetm.ira_cover_classes.
3239         * opts.c (decode_options): Use targetm.ira_cover_classes instead
3240         of IRA_COVER_CLASSES.
3241         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
3242         (TARGET_INITIALIZER): Include it.
3243         * targhooks.h (default_ira_cover_classes): Declare.
3244         * targhooks.c (default_ira_cover_classes): New function.
3245
3246 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
3247         
3248         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
3249         
3250 2008-09-19  Ian Lance Taylor  <iant@google.com>
3251
3252         * varasm.c (narrowing_initializer_constant_valid_p): Return
3253         NULL_TREE if ENDTYPE is not an integer.
3254
3255 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3256
3257         PR tree-opt/30930
3258         * tree-ssa.c (execute_update_addresses_taken): Also update
3259         DECL_GIMPLE_REG_P for vector and complex types.
3260
3261 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
3262             Jan Hubicka  <jh@suse.cz>
3263
3264         PR middle-end/37567
3265         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
3266         empty before freeing them.
3267         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
3268
3269 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
3270
3271         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
3272         * config/xtensa/predicates.md (tls_symbol_operand): New.
3273         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
3274         (TARGET_CANNOT_FORCE_MEM): Define.
3275         (xtensa_tls_symbol_p): New.
3276         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
3277         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
3278         (xtensa_tls_module_base): New.
3279         (xtensa_call_tls_desc): New.
3280         (xtensa_legitimize_tls_address): New.
3281         (xtensa_legitimize_address): Handle TLS symbols.
3282         (xtensa_tls_referenced_p_1): New.
3283         (xtensa_tls_referenced_p): New.
3284         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
3285         UNSPEC_DTPOFF.
3286         (XTENSA_BUILTIN_THREAD_POINTER): New.
3287         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
3288         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
3289         builtin.  Add declarations for __builtin_thread_pointer and
3290         __builtin_set_thread_pointer.
3291         (xtensa_fold_builtin): Recognize new builtins.
3292         (xtensa_expand_builtin): Expand new builtins.
3293         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
3294         (TARGET_THREADPTR): Define.
3295         (HAVE_AS_TLS): Define default value.
3296         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
3297         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
3298         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
3299         (UNSPECV_SET_TP): New.
3300         (sym_TPOFF, sym_DTPOFF): New.
3301         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
3302         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
3303         * configure: Regenerated.
3304         
3305 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
3306
3307         PR target/37394
3308         * config/ia64/ia64.c (ia64_optimization_options): Move
3309         checking and setting flag_schedule_insns_after_reload and
3310         ia64_flag_schedule_insns2 back to ...
3311         (ia64_override_options): Here.
3312
3313 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3314
3315         PR rtl-opt/37451
3316         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
3317         zero extend count after the correction to it is done.
3318         (doloop_optimize): Update call to doloop_modify, don't zero extend
3319         count before call.
3320
3321 2008-09-18  Martin Jambor  <mjambor@suse.cz>
3322
3323         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
3324
3325         * ipa-prop.c: Correct comments.
3326         * ipa-prop.h: Likewise.
3327
3328 2008-09-18  Jan Hubicka  <jh@suse.cz>
3329
3330         PR middle-end/37448
3331         * ipa-reference.c (ipa_reference_local_vars_info_d,
3332         ipa_reference_global_vars_info_d,
3333         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
3334         ipa_reference_vars_info_t): Move here from ipa-reference.h
3335         (node_duplication_hook_holder, node_removal_hook_holder): New.
3336         (get_reference_vars_info_from_cgraph): Rename to ...
3337         (get_reference_vars_info): ... this one, use cgraph uids.
3338         (get_local_reference_vars_info, get_global_reference_vars_info):
3339         Use cgraph instead of decl.
3340         (ipa_reference_get_read_local, ipa_reference_get_written_local):
3341         Remove.
3342         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
3343         ipa_reference_get_written_global,
3344         ipa_reference_get_not_written_global): Use cgraph argument.
3345         (check_call): Simplify avail check.
3346         (scan_stmt_for_static_refs): Update.
3347         (propagate_bits): Update.
3348         (merge_callee_local_info): Remove.
3349         (init_function_info): Use cgraph nodes.
3350         (clean_function_local_data): Break out from ...
3351         (clean_function): ... here.
3352         (copy_local_bitmap, copy_global_bitmap): New functions.
3353         (duplicate_node_data, remove_node_data): New functions.
3354         (generate_summary): Register hooks; use visibility instead of
3355         master clones.
3356         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
3357         * ipa-reference.h (ipa_reference_local_vars_info_d,
3358         ipa_reference_global_vars_info_d,
3359         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
3360         ipa_reference_vars_info_t): Move to ipa-reference.c
3361         (ipa_reference_get_read_local, ipa_reference_get_written_local):
3362         Remove.
3363         (ipa_reference_get_read_global, ipa_reference_get_written_global,
3364         ipa_reference_get_not_read_global,
3365         ipa_reference_get_not_written_global): Update prototype.
3366         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
3367         (init_state): Remove.
3368         (node_duplication_hook_holder, node_removal_hook_holder): New.
3369         (get_function_state, set_function_state): Use VECtor.
3370         (analyze_function): Check body availability.
3371         (add_new_function): Likewise.
3372         (duplicate_node_data, remove_node_data): New.
3373         (generate_summary): Register hooks; do not care about clones.
3374         (propafate): Do not care about clones; recursive functions are
3375         not looping.
3376         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
3377         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
3378         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
3379         static.
3380         * tree-flow.h (function_ann_d): Remove reference_vars_info.
3381         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
3382         Update call of ipa-reference accesors.
3383
3384 2008-09-18  Simon Baldwin  <simonb@google.com>
3385
3386         * c-opts.c (c_common_handle_option): Add handling for
3387         -Wbuiltin-macro-redefined command line option.
3388         * c.opt: Added builtin-macro-redefined option.
3389         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
3390         documentation.
3391
3392 2008-09-18  Richard Guenther  <rguenther@suse.de>
3393
3394         PR tree-optimization/37258
3395         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
3396         and signedness for integral types.
3397         (vn_phi_eq): Require compatible types.
3398
3399 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
3400
3401         PR debug/34037
3402         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
3403         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
3404         VAR_DECL.
3405         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
3406         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
3407         ggc_free other TREE_LIST nodes from that chain.
3408         * function.c (instantiate_decls): Instantiate also DECL_RTL
3409         of vars in cfun->local_decls, free that list afterwards.
3410
3411 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
3412
3413         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
3414         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
3415
3416 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
3417
3418         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
3419         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
3420
3421 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
3422
3423         PR tree-optimization/37102
3424         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
3425         from a node. Check to see if another PHI is dead.
3426         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
3427         remove real PHIs which have no uses.
3428         (rewrite_out_of_ssa): Call eliminate_useless_phis.
3429
3430 2008-09-18  Richard Guenther  <rguenther@suse.de>
3431
3432         PR middle-end/37284
3433         * tree-cfg.c (remove_useless_stmts_1): Remove
3434         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
3435
3436 2008-09-18  Nick Clifton  <nickc@redhat.com>
3437
3438         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
3439         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
3440         to frv_secondary_reload_class.
3441         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3442         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
3443         (frv_secondary_reload_class): Omit unused parameter.
3444         (frv_secondary_reload): New function.  Handle the case when
3445         secondary_reload_class() is called before the reload_(in|out)
3446         _optabs have been initialised.
3447         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
3448         unused parameter.
3449         * config/frv/frv.md: Define an exclusion set between fr550_m0
3450         and fr550_f0.
3451
3452 2008-09-18  Richard Guenther  <rguenther@suse.de>
3453
3454         PR tree-optimization/37456
3455         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
3456         want to insert after ends a BB insert on the single fallthru
3457         outgoing edge.
3458
3459 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3460
3461         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
3462         Mention -march=z9-109, z9-ec and z10.
3463
3464 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
3465
3466         PR rtl-optimization/37544
3467         * regrename.c (maybe_mode_change): Exit early when copy_mode
3468         is narrower than orig_mode and narrower than new_mode.
3469
3470 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
3471
3472         PR middle-end/37499
3473         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
3474
3475         * sched-rgn.c (ref_counts): Remove.
3476         (insn_referenced): New static variable.
3477         (INSN_REF_COUNT): Remove.
3478         (sched_run_compute_dependencies): Use insn_referenced instead of
3479         INSN_REF_COUNT.
3480         (add_branch_dependences): Likewise.  Delete dead assignment.
3481
3482 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
3483
3484         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
3485         consumer is an asm.  Add comment why this is important.
3486         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
3487         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
3488
3489 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
3490
3491         * expr.c (emit_group_store): Do not shift before moving via a
3492         stack slot.
3493
3494 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3495
3496         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
3497         from aggregate to non-aggregate type if the bit pattern is not fully
3498         preserved afterwards.
3499
3500 2008-09-17  Richard Guenther  <rguenther@suse.de>
3501
3502         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
3503         (verify_gimple_assign): ... this.  Split into ...
3504         (verify_gimple_assign_unary): ... this,
3505         (verify_gimple_assign_binary): ... that,
3506         (verify_gimple_assign_single): ... and this.
3507         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
3508         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
3509         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
3510         (verify_types_in_gimple_reference): Be forgiving with
3511         VIEW_CONVERT_EXPRs.
3512         (verify_gimple_phi): Deal with virtual operands.
3513
3514         * tree.def (PREDICT_EXPR): Change to tcc_expression.
3515
3516 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3517
3518         * tree.c (get_callee_fndecl): Don't call the language hook.
3519         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
3520         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
3521         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
3522
3523 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
3524
3525         * tree.c (protected_set_expr_location): Don't unnecessarily
3526         check for error_mark_node.
3527
3528 2008-09-17  Art Haas  <ahaas@impactweather.com>
3529
3530         * ipa-reference.c (analyze_function): Declare step only if
3531         ENABLE_CHECKING is defined.
3532
3533 2008-09-17  Jan Hubicka  <jh@suse.cz>
3534
3535         PR c++/18071
3536         * tree.h (DECL_INLINE): remove.
3537         (DECL_DECLARED_INLINE_P): Update docs.
3538         (DECL_NO_INLINE_WARNING_P): new.
3539         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
3540         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
3541
3542 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
3543             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3544
3545         PR bootstrap/37441
3546         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
3547         false.
3548
3549 2008-09-17  Jan Hubicka  <jh@suse.cz>
3550
3551         * ipa-reference.c (ipa_obstack): Remove.
3552         (local_info_obstack, global_info_obstack): New.
3553         (add_static_var): We now handle variables only.
3554         (mark_address_taken, mark_load, mark_store): New functions based on ...
3555         (check_operand): ... remove.
3556         (get_asm_stmt_operands): Rename to ...
3557         (check_asm_memory_clobber): ... this. Look only for memory clobber.
3558         (scan_stmt_for_static_refs): Rewrite.
3559         (scan_op_for_static_refs): Rename to ...
3560         (scan_initializer_for_static_refs): do not look for VAR_DECL
3561         initializers; stop recursion on types and decls.
3562         (ipa_init): Use proper obstacks.
3563         (analyze_variable): Use scan_initializer_for_static_refs.
3564         (init_function_info): Use local obstack.
3565         (analyze_function): Simplify.
3566         (add_new_function): We don't need visited_nodes obstack.
3567         (generate_summary): Use proper obstacks; cleanup after propagation.
3568
3569 2008-09-17  Richard Guenther  <rguenther@suse.de>
3570
3571         PR middle-end/37385
3572         PR tree-optimization/37491
3573         * alias.c (get_alias_set): Use the canonical type.
3574         * tree-vect-transform.c (vectorizable_store): Use the type of
3575         the lhs for the vector type.  Adjust checking.
3576         (vectorizable_load): Adjust checking.
3577
3578 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
3579             Adam Nemet  <anemet@caviumnetworks.com>
3580
3581         PR rtl-optimization/37483
3582         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
3583         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
3584         Rearrange code to better match the original comment.  Check
3585         t_unconditional first.  Improve comment.
3586
3587 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
3588
3589         PR c/37529
3590         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
3591         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
3592
3593         PR c++/37530
3594         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
3595         GIMPLE_TRY if cleanup sequence is empty.
3596
3597 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3598
3599         PR middle-end/37263
3600         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
3601         eliminate IV if the cost are the same.
3602
3603 2008-09-16  Richard Guenther  <rguenther@suse.de>
3604
3605         PR middle-end/37380
3606         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
3607         if not necessary.
3608
3609 2008-09-16  Richard Guenther  <rguenther@suse.de>
3610
3611         PR tree-optimization/37508
3612         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
3613
3614 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3615
3616         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
3617
3618 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3619
3620         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
3621         use gen_floatdidf2 directly.
3622         (floatunssidf2): Likewise.
3623         (floatsidf_ppc64_mfpgpr): Remove.
3624         (floatsidf_ppc64): Remove.
3625         (floatunssidf_ppc64): Remove.
3626
3627 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
3628
3629         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
3630         rather than update_cost_queue.
3631
3632         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
3633         in every call starting with the second one, instead of only when
3634         alias_bitmap_obstack.elements != NULL.
3635
3636         * tree-predcom.c (filter_suitable_components): Free all refs in
3637         act->refs vector before calling release_component.
3638         (add_ref_to_chain): Free ref if not adding it to chain->refs.
3639
3640         * tree-data-ref.c (free_subscripts): Free all subscript objects.
3641
3642         * tree-loop-linear.c (linear_transform_loops): Initialize
3643         lambda_obstack only after calling perfect_loop_nest_depth.
3644         Goto free_and_continue instead of just continue for later failures.
3645
3646         PR middle-end/37479
3647         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
3648
3649         PR libmudflap/36397
3650         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
3651
3652 2008-09-14  Andreas Schwab  <schwab@suse.de>
3653
3654         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
3655
3656 2008-09-14  Jan Hubicka  <jh@suse.cz>
3657
3658         * invoke.texi (-fconserve-stack): Document.
3659         * opts.c (decode_options): Handle conserve_stack.
3660         * common.opt (fconvserve_stack): New.
3661
3662 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
3663
3664         * config.host: Add x-aix to host_xmake_file.
3665         * config/rs6000/t-aix52: Do not override LDFLAGS.
3666         * config/rs6000/x-aix: New file.
3667
3668 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
3669
3670         PR target/19636
3671         PR target/24894
3672         PR target/31644
3673         PR target/31786
3674         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
3675         is not recognized as a valid register usage. Allow REG_X to be used
3676         as a base pointer.
3677         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
3678         forces a reload when using a base register.
3679
3680 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
3681
3682         * config/i386/cygming-crtend.c (register_frame_ctor): If
3683         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
3684         directly with atexit.
3685         (deregister_frame_ctor): Rename to ...
3686         (deregister_frame_dtor): Use to call __gcc_deregister_frame
3687         if !DEFAULT_USE_CXA_ATEXIT.
3688
3689 2008-09-13  Jan Hubicka  <jh@suse.cz>
3690
3691         * cgraph.c: Include value-prof.h
3692         * Makefile.in (cgraph.o): Add value-prof.h dependency.
3693
3694 2008-09-13  Jan Hubicka  <jh@suse.cz>
3695
3696         PR middle-end/32581
3697         * tree-profile.c (add_abnormal_goto_call_edges): New function.
3698         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3699         tree_gen_one_value_profiler, tree_gen_average_profiler,
3700         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
3701
3702 2008-09-13  Jan Hubicka  <jh@suse.cz>
3703
3704         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
3705         too many bytes on misalligned blocks.
3706
3707 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3708
3709         * doc/cfg.texi: Fix some typos.
3710         * doc/extend.texi: Likewise.
3711         * doc/install.texi: Likewise.
3712         * doc/invoke.texi: Likewise.
3713         * doc/rtl.texi: Likewise.
3714         * doc/tree-ssa.texi: Likewise.
3715
3716 2008-09-13  Richard Guenther  <rguenther@suse.de>
3717
3718         PR middle-end/30141
3719         * tree-nested.c (finalize_nesting_tree_1): Generate valid
3720         gimple stores for memory rhs.
3721
3722 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
3723
3724         PR rtl-optimization/37489
3725         * cse.c (fold_rtx): Don't return const_true_rtx for float
3726         compare if FLOAT_STORE_FLAG_VALUE is undefined.
3727
3728 2008-09-13  Jan Hubicka  <jh@suse.cz>
3729
3730         PR tree-optimization/37392
3731         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3732
3733 2008-09-13  Martin Jambor  <mjambor@suse.cz>
3734             Jan Hubicka  <jh@suse.cz>
3735
3736         * cgraph.c (free_edges): New variable.
3737         (NEXT_FREE_EDGE): New macro.
3738         (cgraph_free_edge): New function.
3739         (cgraph_remove_edge): Call cgraph_remove_edge_1.
3740         (cgraph_node_remove_callees): Likewise.
3741         (cgraph_node_remove_callers): Likewise.
3742         (cgraph_create_edge): Reuse edges from the free list.  Do not
3743         update uid if doing so.
3744         (cgraph_remove_*_hook): Add free call.
3745
3746 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3747
3748         * ira-color.c (conflict_allocno_vec): Delete.
3749         (update_cost_queue_elem): New structure.
3750         (update_cost_queue): New variable.
3751         (update_cost_queue_tail): Likewise.
3752         (update_cost_queue_elems): Likewise.
3753         (allocno_update_cost_check): Delete.
3754         (initiate_cost_update): Allocate update_cost_queue_elems
3755         instead of allocno_update_cost_check.
3756         (finish_cost_update): Update the free()s accordingly.
3757         (start_update_cost): New function.
3758         (queue_update_cost): Likewise.
3759         (get_next_update_cost): Likewise.
3760         (update_copy_costs_1): Inline into...
3761         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
3762         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3763         once we've established they are equal.  Don't allocate update
3764         costs if there is nothing to add to them.
3765         (update_conflict_hard_regno_costs): Remove ALLOCNO and
3766         DIVISOR arguments.  Use a queue instead of recursive calls;
3767         process all the allocnos in the initial queue, rather than
3768         a single allocno.
3769         (assign_hard_reg): Use queue_update_cost instead of
3770         conflict_allocno_vec.  Queue coalesced allocnos instead
3771         of calling update_conflict_hard_regno_costs for each one.
3772         Just call update_conflict_hard_regno_costs once for the
3773         entire queue.
3774         (ira_color): Remove conflict_allocno_vec handling.
3775
3776 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
3777
3778         PR tree-optimization/37484
3779         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3780         (save_var_name): Same.
3781         (initialize_cloog_names): Same.
3782         (initialize_cloog_names): Same.
3783
3784 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
3785
3786         * tree-scalar-evolution.c (set_instantiated_value): Set
3787         instantiated_below.
3788
3789 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
3790
3791         PR rtl-opt/37377
3792
3793         * ira-build.c (common_loop_tree_node_dominator): Remove.
3794         (copy_live_ranges_to_removed_store_destinations): New function.
3795         (regno_top_level_allocno_map): Move to top level from ...
3796         (ira_flattening): ... here.  Use
3797         copy_live_ranges_to_removed_store_destinations.
3798
3799         * ira-emit.c (generate_edge_moves): Fix a comment.
3800
3801 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
3802
3803         PR target/37466
3804         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3805         scratch register after 'set' pattern.
3806
3807 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3808
3809         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3810         information passed to mark_reg_pointer.
3811         * explow.c (force_reg): Likewise.
3812
3813 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3814
3815         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3816         when building for the celledp architecture.
3817
3818 2008-09-12  Richard Guenther  <rguenther@suse.de>
3819
3820         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3821
3822 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
3823
3824         PR rtl-optimization/37424
3825         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3826         the regnos instead of the addresses.
3827
3828 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
3829
3830         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3831
3832 2008-09-11  Richard Guenther  <rguenther@suse.de>
3833
3834         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3835         entering the weaker equivalence recording.
3836
3837         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3838
3839 2008-09-11  Jeff Law <law@redhat.com>
3840
3841         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3842         by assign_stack_local on the IRA path for stack slot sharing
3843         as well as the non-IRA path.
3844
3845 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
3846
3847         * config/i386/i386.h: Fix whitespace issues.
3848
3849 2008-09-11  Martin Jambor  <mjambor@suse.cz>
3850
3851         * ipa-prop.h (struct ipa_param_flags): Removed.
3852         (struct ipa_param_descriptor): New structure.
3853         (struct ipa_node_params): ipcp_lattices, param_decls and
3854         param_flags moved to ipa_param_description.
3855         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3856         descriptors.  Renamed all users.
3857         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3858         changed to access descriptors.  Renamed all users.
3859         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3860         to access descriptors. Renamed all users.
3861         * ipa-cp.c (ipcp_init_cloned_node): Call
3862         ipa_initialize_node_params instead of ipa_count_formal_params and
3863         ipa_create_param_decls_array.
3864         (ipcp_analyze_node): Likewise.
3865         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3866         descriptors.  Renamed all users.
3867         (ipcp_initialize_node_lattices): Remove allocation.
3868         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3869         ipa_initialize_node_params instead of ipa_count_formal_params and
3870         ipa_create_param_decls_array.
3871         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3872         ipa_populate_param_decls, made static, added parameter info,
3873         renamed mt to node, removed allocation, changed to use
3874         descriptors.
3875         (ipa_count_formal_params): Made static, added parameter info,
3876         renamed mt to node.
3877         (ipa_initialize_node_params): New function.
3878         (ipa_check_stmt_modifications): Changed to use descriptors.
3879         (ipa_detect_param_modifications): Removed allocation, changed to
3880         use descriptors.
3881         (ipa_note_param_call): Changed to use descriptors.
3882         (ipa_analyze_params_uses): Removed allocation.
3883         (ipa_free_node_params_substructures): Changed to use descriptors.
3884         (ipa_edge_duplication_hook): Use the unused attribute.
3885         (ipa_node_duplication_hook): Use the unused attribute, changed to
3886         use descriptors, changed to duplicate descriptors.
3887
3888         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3889         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
3890         indirect inlining.  Made static.
3891         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3892         functions called only once.
3893         (cgraph_decide_recursive_inlining): Don't call
3894         ipa_propagate_indirect_call_infos, pass new_edges to
3895         cgraph_mark_inline_edge instead.
3896         (cgraph_decide_inlining_of_small_functions): Don't call
3897         ipa_propagate_indirect_call_infos, pass new_edges to
3898         cgraph_mark_inline_edge instead.
3899         (cgraph_decide_inlining): Don't call
3900         ipa_propagate_indirect_call_infos.
3901         * ipa-prop.c: Check that vectors are allocated.
3902
3903         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3904         iff a new cgraph edges have been created.
3905         (cgraph_decide_inlining): New variable redo_always_inline.
3906         Flattening and always_inlining loop until callgraph stabilizes.
3907         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3908         true iff new cgraph edges have been created.
3909         (propagate_info_to_inlined_callees): Likewise.
3910         (ipa_propagate_indirect_call_infos): Likewise.
3911
3912 2008-09-11  Richard Guenther  <rguenther@suse.de>
3913
3914         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3915         (set_prologue_iterations): Likewise.
3916         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3917         Likewise.
3918         (vect_update_init_of_dr): Likewise.
3919         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3920         type verification.
3921         * fold-const.c (fold_unary): Do not generate calculations
3922         in sub-types.
3923
3924 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
3925
3926         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
3927         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3928         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3929
3930         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3931         a bool.
3932         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3933         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
3934         before finalizing the changes.
3935         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3936         for BIT_IOR_EXPR.
3937         (simplify_truth_ops_using_ranges): New.
3938         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3939         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3940         whether a simplification was made.
3941         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
3942         use a switch statement and also call simplify_truth_ops_using_ranges.
3943
3944 2008-09-11  Jan Hubicka  <jh@suse.cz>
3945
3946         * ggc-common.c (loc_array): Make static.
3947         * dce.c (rest_of_handle_ud_dce): Free worklist.
3948
3949 2008-09-11  Jan Hubicka  <jh@suse.cz>
3950
3951         * cgraph.c (cgraph_release_function_body): Plug memory leak on
3952         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3953         function so we are sure we do not dangle it forever.
3954         * function.c (outer_function_chain, find_function_data): Remove.
3955         (function_context_stack): New.
3956         (push_function_context, pop_function_context): Update.
3957         * function.h (struct function): Remove pointer outer.
3958         (outer_function_chain, find_function_data): Remove.
3959         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3960
3961 2008-09-11  Jan Hubicka  <jh@suse.cz>
3962
3963         PR middle-end/37448
3964         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3965
3966 2008-09-11  Jan Hubicka  <jh@suse.cz>
3967
3968         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3969
3970 2008-09-11  Jan Hubicka  <jh@suse.cz>
3971
3972         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3973         (free_var_map_entry): New function.
3974         (redirect_edge_var_map_destroy): Use it.
3975
3976 2008-09-11  Jan Hubicka  <jh@suse.cz>
3977
3978         PR middle-end/37448
3979         * tree-inline.c (add_lexical_block): Replace with ...
3980         (prepend_lexical_block): ... prepend at begginig.
3981         (remap_blocks): Use it and reverse later.
3982         (expand_call_inline): Use prepend_lexical_block.
3983
3984 2008-09-11  Jan Hubicka  <jh@suse.cz>
3985
3986         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3987
3988 2008-09-11  Jan Hubicka  <jh@suse.cz>
3989
3990         * function.c (free_after_compilation): Call insn_locators_free.
3991         * cfglayout.c (insn_locators_free): New function.
3992         * rtl.h (insn_locators_free): Declare.
3993
3994 2008-09-11  Jan Hubicka  <jh@suse.cz>
3995
3996         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3997         vector pointer.
3998         (cond_move_process_if_block): Update call.
3999
4000 2008-09-11  Jan Hubicka  <jh@suse.cz>
4001
4002         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
4003         * vec.c: Include hashtab.h
4004         (vec_descriptor, ptr_hash_entry): New structures.
4005         (vec_desc_hash, vec_ptr_map): New static variables.
4006         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
4007         register_overhead, free_overhead, vec_heap_free): New functions.
4008         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
4009         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
4010         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
4011         New functions.
4012
4013 2008-09-11  Ira Rosen  <irar@il.ibm.com>
4014
4015         PR tree-optimization/37474
4016         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
4017         length of load permutation.
4018
4019 2008-09-11  Andreas Schwab  <schwab@suse.de>
4020
4021         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
4022
4023 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
4024
4025         PR target/37382
4026         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
4027         * dse.c (find_shift_sequence): Use extract_low_bits instead of
4028         simplify_gen_subreg.
4029
4030 2008-09-11  Ira Rosen  <irar@il.ibm.com>
4031
4032         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
4033         for alias check.
4034
4035 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
4036
4037         PR middle-end/37338
4038         * gimplify.c (gimplify_body): Call default_rtl_profile.
4039
4040         PR target/36904
4041         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
4042         instead of tok->val.node if not expanding to something else.  Handle
4043         intervening CPP_PADDING tokens.
4044         (altivec_categorize_keyword): Remove unneeded comparisons.
4045
4046 2008-09-10  Richard Guenther  <rguenther@suse.de>
4047
4048         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
4049
4050 2008-09-10  Richard Guenther  <rguenther@suse.de>
4051
4052         PR middle-end/37432
4053         * tree-inline.c (insert_init_stmt): Make sure to not
4054         insert invalid gimple stores.
4055
4056 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
4057
4058         PR tree-optimization/37388
4059         * toplev.c (process_options): Fail and warn when graphite
4060         flags are used, but the compiler has not been configured
4061         with graphite libraries.
4062         * graphite.c (graphite_transform_loops): Remove printfs
4063         to dump_file for the case when graphite is not available.
4064
4065 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
4066
4067         PR target/37434:
4068         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
4069         the even element into register.
4070         (ix86_expand_vector_init_general): Don't use
4071         ix86_expand_vector_init_interleave on V16QImode and V8HImode
4072         if we can't move from GPR to SSE register directly.
4073
4074 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
4075
4076         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
4077         not lose track of the number of NOPs needed.  Number of NOPs needed
4078         for sync vs. loads workaround was switched; corrected.  Run second
4079         pass for all workarounds.  No NOPs needed after call insns.  Change
4080         second pass to use find_next_insn_start and find_load helpers in order
4081         to properly detect parallel insns.
4082         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
4083
4084 2008-09-10  Jan Hubicka  <jh@suse.cz>
4085
4086         * value-prof.c (gimple_ic): Fix tuplification bug.
4087         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
4088         var warning.
4089
4090 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
4091
4092         PR tree-optimization/37353
4093         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
4094         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
4095         calls instead of cond_dead_built_in_calls.
4096         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
4097         initalize the vector only before adding first entry.  Use VEC_safe_push
4098         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
4099         shrink_wrap_conditional_dead_built_in_calls call.
4100
4101 2008-09-10  Ira Rosen  <irar@il.ibm.com>
4102
4103         PR tree-optimization/37385
4104         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
4105         argument, and use it as a vector type if not NULL.
4106         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
4107         vectorized rhs.
4108         (vect_setup_realignment): Call vect_create_data_ref_ptr with
4109         additional argument.
4110         (vectorizable_load): Likewise.
4111
4112 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
4113
4114         * config/i386/i386.md (SWI32): New mode iterator.
4115         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
4116         of SWI.
4117
4118 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
4119
4120         PR rtl-optimization/37435
4121         * caller-save.c (insert_restore, insert_save): Check the mode by
4122         reg_save_code.
4123
4124 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4125
4126         PR other/37265
4127         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
4128         splay tree lookup.
4129         (dw2_output_indirect_constant_1): Use unstripped name in symbol
4130         reference.
4131
4132 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
4133
4134         * doc/invoke.texi (ARM Options): Correct errors in discussion
4135         of -mfloat-abi, -mhard-float, and -msoft-float.
4136
4137 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
4138             Jan Hubicka  <jh@suse.cz>
4139
4140         PR middle-end/37356
4141         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
4142         calling gimple_regimplify_operands on it.  Iterate over all newly
4143         added statements, not just the last one.
4144         (insert_init_stmt): Insert stmt into seq first, then call
4145         gimple_regimplify_operands on it.  Don't create new gimplification
4146         context, nor find referenced vars.
4147
4148 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
4149
4150         PR other/37419
4151         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
4152         to pointer to vector pointer.
4153         * ipa-prop.c (ipa_propagate_indirect_call_infos,
4154         propagate_info_to_inlined_callees): Likewise.
4155         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
4156         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
4157         ipa_check_create_edge_args.
4158         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
4159         argument to pointer to vector pointer.
4160         (cgraph_decide_inlining_of_small_function): Adjust
4161         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
4162         calls.
4163
4164         PR target/37438
4165         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
4166         optimizing for size, not speed.
4167
4168         PR rtl-optimization/37408
4169         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
4170         if parm is promoted.
4171
4172 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
4173
4174         PR tree-optimization/37375
4175         * tree-scalar-evolution.c (scev_info_str): Add field
4176         instantiated_below.
4177         (new_scev_info_str, eq_scev_info, find_var_scev_info,
4178         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
4179         set_instantiated_value): Pass instantiated_below.
4180         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
4181         to above functions.
4182         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
4183         the definitions are not instantiated.
4184
4185         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
4186         (block_before_loop): New.
4187         * tree-data-ref.c (dr_analyze_indices): Update uses of
4188         instantiate_scev.
4189         * graphite.c (block_before_scop): New.
4190         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
4191         basic block, not a loop for determining the parameters.
4192         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
4193         scop.
4194         (idx_record_params, find_params_in_bb, find_scop_parameters,
4195         build_loop_iteration_domains, add_conditions_to_domain): Update calls
4196         to instantiate_scev.
4197
4198         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
4199
4200 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
4201
4202         PR rtl-opt/37333
4203
4204         * ira-build.c (ira_create_allocno): Setup frequency to 0.
4205
4206         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
4207         Check zero freq and increase if necessary.
4208
4209 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
4210
4211         * ira-conflicts.c (process_regs_for_copy): Check that the hard
4212         regno is in the right range.  Add comments.
4213
4214 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4215
4216         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
4217         warnings.
4218         * mips-tfile.c (copy_object): Cast alloca result to int *.
4219         * mips-tdump.c (print_symbol): Cast xmalloc return values to
4220         proper types.
4221         Rename class to sclass.
4222         (read_tfile): Cast read_seek return values to proper types.
4223         Cast xcalloc return value to proper type.
4224
4225 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4226
4227         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
4228         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
4229         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
4230
4231 2008-09-09  Jan Hubicka  <jh@suse.cz>
4232
4233         * profile.c (is_edge_inconsistent): Add debug output; ignore
4234         negative count on fake edges.
4235         (is_inconsistent): Add debug output.
4236
4237 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
4238
4239         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
4240         dump message.
4241         (choose_ready): When first insn is chosen from the ready list, also
4242         dump it.
4243
4244 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
4245
4246         PR rtl-optimization/37360
4247         * haifa-sched.c (max_issue): Do not assert that we never issue more
4248         insns than issue_rate.  Add comment.
4249
4250 2008-09-09  Richard Guenther  <rguenther@suse.de>
4251
4252         * tree-cfg.c (verify_types_in_gimple_op): Remove.
4253         (verify_types_in_gimple_call): Rename to ...
4254         (verify_gimple_call): ... this.  Enhance.
4255         (verify_types_in_gimple_cond): Remove.
4256         (verify_gimple_comparison): New function ...
4257         (verify_types_in_gimple_assign): ... split out from here.
4258         (verify_types_in_gimple_return): Rename to ...
4259         (verify_gimple_return): ... this.  Enhance.
4260         (verify_types_in_gimple_switch): Rename to ...
4261         (verify_gimple_switch): ... this.  Enhance.
4262         (verify_gimple_goto): New function.
4263         (verify_types_in_gimple_phi): Rename to ...
4264         (verify_gimple_phi): ... this.  Enhance.
4265         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
4266         Fold in single-statement cases from verify_types_in_gimple_seq_2.
4267         (verify_types_in_gimple_seq_2): Remove cases handled in
4268         verify_types_in_gimple_stmt.
4269
4270 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
4271
4272         * config/bfin/bfin.c (n_regs_to_save): New static variable.
4273         (push_multiple_operation, pop_multiple_operation): Set it.
4274         (workaround_rts_anomaly): New function.
4275         (workaround_speculation): New function, broken out of bfin_reorg.
4276         (bfin_reorg): Call the new functions.
4277
4278 2008-09-09  Richard Guenther  <rguenther@suse.de>
4279
4280         PR middle-end/37354
4281         PR middle-end/30165
4282         * gimplify.c (gimplify_conversion): Change conversions of
4283         non-register type to VIEW_CONVERT_EXPRs.
4284         (gimplify_addr_expr): If we need to make the operand
4285         addressable make sure to use a properly initialized
4286         temporary for that so it gets a valid gimple store.
4287
4288 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
4289
4290         * function.h (struct function): Add function_start_locus.
4291         * cfgexpand.c (gimple_expand_cfg): Use it.
4292         * c-parser.c (c_parser_declaration_or_fndef): Set it.
4293
4294 2008-09-09  Richard Guenther  <rguenther@suse.de>
4295
4296         PR tree-optimization/37433
4297         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
4298         function calls.
4299
4300 2008-09-09  Richard Guenther  <rguenther@suse.de>
4301
4302         PR tree-optimization/37387
4303         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
4304         and bits to a common type.
4305
4306 2008-09-09  Nick Clifton  <nickc@redhat.com>
4307
4308         * config/v850/v850.md (return): Restore frame size restriction.
4309
4310 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
4311
4312         * c-common.c (c_expand_decl): Remove.
4313         * c-common.h (anon_aggr_type_p): Remove prototype.
4314         (DECL_ANON_UNION_ELEMS): Remove.
4315         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
4316         * c-decl.c (anon_aggr_type_p): Remove.
4317         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
4318         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
4319         * langhooks.h (struct lang_hooks): Remove expand_decl.
4320         * langhooks.c (lhd_expand_decl): Remove.
4321         * stmt.c (expand_anon_union_decl): Remove.
4322         * tree.h (expand_anon_union_decl): Remove prototype.
4323
4324 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
4325
4326         PR target/36609
4327         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
4328         zero.
4329         * config/avr/avr.md  (QISI) : Define mode iterator.
4330         (negated_tst<mode>) : Redefine as split using mode macro.
4331         (reversed_tstqi): Define insn as reversed compare with zero.
4332         (reversed_tsthi): Ditto.
4333         (reversed_tstsi): Ditto.
4334
4335 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
4336
4337         PR middle-end/37393
4338         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
4339         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
4340
4341         PR middle-end/37414
4342         * predict.c (optimize_function_for_size_p): Don't segfault if
4343         FUN is NULL.
4344         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
4345         tree_swap_operands_p): Don't test cfun != NULL before calling
4346         optimize_function_for_s*_p.
4347
4348 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
4349
4350         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
4351         end of the search.
4352
4353 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
4354
4355         * crx/crx.h (IRA_COVER_CLASSES): Define.
4356
4357 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
4358
4359         PR middle-end/37337
4360         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
4361         even when a stmt has been gimple_modified_p, but after fold_stmt is
4362         not any longer.  Remove unneeded may_have_exposed_new_symbols
4363         initializations.
4364
4365 2008-09-08  Richard Guenther  <rguenther@suse.de>
4366
4367         PR tree-optimization/37421
4368         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
4369         valueize the RHS.
4370
4371 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
4372
4373         PR middle-end/37415
4374         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
4375
4376 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4377
4378         PR driver/37409
4379         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
4380         * pa-hpux10.h (LINK_SPEC): Likewise.
4381         * pa-hpux11.h (LINK_SPEC): Likewise.
4382
4383 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4384
4385         * pa32-regs.h (IRA_COVER_CLASSES): Define.
4386         * pa64-regs.h (IRA_COVER_CLASSES): Define.
4387
4388 2008-09-07  Helge Deller  <deller@gmx.de>
4389
4390         * pa/linux-atomic.c: New file.
4391         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
4392         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
4393
4394 2008-09-07  Richard Guenther  <rguenther@suse.de>
4395             Ira Rosen  <irar@il.ibm.com>
4396
4397         PR tree-optimization/36630
4398         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
4399         Call STRIP_NOPS before calling evolution_part_in_loop_num.
4400
4401 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
4402             Ira Rosen  <irar@il.ibm.com>
4403
4404         PR tree-optimization/35642
4405         * config/rs6000/altivec.md (mulv8hi3): Implement.
4406
4407 2008-09-06  Jeff Law <law@redhat.com>
4408
4409         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
4410
4411 2008-09-06  Jan Hubicka  <jh@suse.cz>
4412
4413         PR tree-optimization/14703
4414         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
4415         declarations.
4416         * passes.c (init_optimization_passes): Recompute inline parameters.
4417
4418 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
4419
4420         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
4421         DECL being null.
4422
4423 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
4424             Peter Fuerst  <post@pfrst.de>
4425
4426         * doc/invoke.texi: Document -mr10k-cache-barrier=.
4427         * doc/extend.texi: Document __builtin_mips_cache.
4428         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
4429         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
4430         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
4431         __GCC_HAVE_BUILTIN_MIPS_CACHE.
4432         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
4433         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
4434         (set_push_mips_isas): New variable.
4435         (mips_r10k_cache_barrier): New variable.
4436         (cache): New availability predicate.
4437         (mips_builtins): Add an entry for __builtin_mips_cache.
4438         (mips_build_cvpointer_type): New function.
4439         (MIPS_ATYPE_CVPOINTER): New macro.
4440         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
4441         mode is VOIDmode.
4442         (r10k_simplified_address_p, r10k_simplify_address)
4443         (r10k_uncached_address_p, r10k_safe_address_p)
4444         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
4445         (r10k_needs_protection_p_call, r10k_needs_protection_p)
4446         (r10k_insert_cache_barriers): New functions.
4447         (mips_reorg_process_insns): Delete cache barriers after a
4448         branch-likely instruction.
4449         (mips_reorg): Call r10k_insert_cache_barriers.
4450         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
4451         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
4452         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
4453         (mips_cache, r10k_cache_barrier): New define_insns.
4454
4455 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
4456
4457         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
4458         * ira-color.c (setup_allocno_left_conflicts_num): Use
4459         hard_reg_set_equal_p instead of a comparison with
4460         ira_zero_hard_reg_set.
4461         * ira.c (setup_reg_subclasses): Likewise.
4462         (setup_cover_and_important_classes): Likewise.
4463         (setup_class_translate): Likewise.
4464         (setup_reg_class_intersect_union): Likewise.
4465         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
4466         (ira_init_once): Don't initialize them.
4467
4468 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
4469
4470         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
4471
4472 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
4473
4474         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
4475
4476 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4477
4478         Improved branch hints, safe hints, and scheduling.
4479
4480         * haifa-sched.c (sched_emit_insn) : Define.
4481         * sched-int.h (sched_emit_insn) : Add prototype.
4482         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
4483         -mhint-max-distance -msafe-hints) : Document.
4484         * config/spu/spu.c (spu_flag_var_tracking): New.
4485         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
4486         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
4487         TARGET_ASM_FILE_START): Define.
4488         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
4489         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
4490         (spu_emit_branch_hint): Add blocks argument.
4491         (insert_branch_hints, insert_nops): Remove.
4492         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
4493         uses_ls_unit, spu_sched_init_global, spu_sched_init,
4494         spu_sched_reorder, asm_file_start): New functions.
4495         (clock_var, spu_sched_length, pipe0_clock,
4496         pipe1_clock, prev_clock_var, prev_priority,
4497         spu_ls_first, prev_ls_clock): New static variables.
4498         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
4499         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
4500         (nopn_nv): Add a non-volatile version of nop.
4501         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
4502         -mhint-max-distance, -msafe-hints): New options.
4503
4504 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
4505             Samuel Tardieu  <sam@rfc1149.net>
4506
4507         * opts.c (decode_options): Combine nested if statements.
4508
4509         PR target/37283
4510         * opts.c (decode_options): Handle more relationships among
4511         unit-at-a-time, toplevel-reorder, and section-anchors.
4512
4513 2008-09-05  David Daney  <ddaney@avtrex.com>
4514
4515         * doc/install.texi (--enable-reduced-reflection): Document new option.
4516
4517 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
4518
4519         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
4520         constantpool_mem_p.
4521         (constantpool_operand): New.
4522         (move_operand): Disallow sub-word modes for the constant pool.
4523         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
4524         (xtensa_secondary_reload_class): Replace with....
4525         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
4526         Set icode for sub-word reloads from the constant pool.
4527         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
4528         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
4529         * config/xtensa/xtensa.md (reload<mode>_literal): New.
4530         * config/xtensa/xtensa-protos.h: Update prototypes.
4531
4532 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
4533
4534         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
4535         (REG_CLASS_NAMES): Update.
4536         (REG_CLASS_CONTENTS): Update.
4537         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
4538         of ALL_REGS for regs 77 and 78.
4539         * function.c (instantiate_virtual_regs_in_insn): Assert that
4540         return value of simplify_gen_subreg is not NULL.
4541
4542 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
4543
4544         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
4545         (gen_rtvec_v): Fix coding standards.
4546
4547 2008-09-04  Jan Hubicka  <jh@suse.cz>
4548
4549         * i386.c (decide_alg): Be more conservative about optimizing for size.
4550
4551 2008-09-04  Ian Lance Taylor  <iant@google.com>
4552
4553         * varasm.c (narrowing_initializer_constant_valid_p): New
4554         static function.
4555         (initializer_constant_valid_p): Call it.
4556
4557 2008-09-04  Jeff Law  <law@redhat.com>
4558
4559         * fold-const.c (native_encode_real): Fix computation of WORDS.
4560         (native_interpret_real): Likewise.
4561
4562 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
4563
4564         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
4565
4566 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
4567
4568         * ira-conflicts.c (process_regs_for_copy): Check insn to check
4569         that the cost is already taken into account in ira-costs.c
4570
4571         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
4572
4573         * ira-build.c (print_copy, print_copies, ira_debug_copy,
4574         ira_debug_copies): New.
4575         (ira_bulid): Call print_copies.
4576
4577         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
4578
4579 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
4580
4581         PR target/32783
4582         * config/rs6000/rs6000.c (optimization_options): Remove check of
4583         flag_toplevel_order.
4584
4585 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
4586
4587         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
4588         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
4589         second operand is a reg_imm10_operand.
4590         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
4591         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
4592         (*seq_<GPR:mode><GPR2:mode>): Rename to
4593         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
4594         ISA_HAS_SEQ_SNE.
4595         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
4596         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
4597         ISA_HAS_SEQ_SNE.
4598         (*sne_<GPR:mode><GPR2:mode>): Rename to
4599         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
4600         ISA_HAS_SEQ_SNE.
4601
4602 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
4603
4604         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
4605         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
4606         combining an arithmetic right shift by more than 31 and a
4607         trunction.  Don't match for out-of-range shift amounts.  Set
4608         attribute mode to <MODE>.
4609         (*lshr32_trunc<mode>): Name the pattern combining a logical right
4610         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
4611         (*<optab>_trunc<mode>_exts): New pattern for truncated right
4612         shifts by less than 32.
4613         (extv): Change predicate on first operand to accept registers.
4614         Change predicate of the other operands from immediate_operand to
4615         const_int_operand.  Expand exts when source is a register.
4616         (extzv): Change predicate of the constant operands from
4617         immediate_operand to const_int_operand.
4618         (extzv<mode>): Change predicate of the constant operands from
4619         immediate_operand to const_int_operand and no constraint. Also
4620         remove mode.
4621         (*extzv_trunc<mode>_exts): New pattern.
4622
4623 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
4624
4625         * config/mips/mips.h (ISA_HAS_CINS): New macro.
4626         * config/mips/mips-protos.h (mask_low_and_shift_p,
4627         mask_low_and_shift_len): Declare.
4628         * config/mips/mips.c (mask_low_and_shift_p,
4629         mask_low_and_shift_len): New functions.
4630         (mips_print_operand): Handle new operand prefix "m".
4631         * config/mips/mips.md (*cins<mode>): New pattern.
4632
4633 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
4634
4635         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
4636         optimizing for size.
4637
4638 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
4639
4640         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
4641         regardless of epilogue_completed.
4642
4643 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
4644
4645         PR middle-end/37359
4646         * ira-lives.c (process_bb_node_lives): Check setjmp.
4647
4648 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
4649
4650         PR middle-end/37243
4651         * ira-build.c (form_loop_tree): Reverse BB walk.
4652         (create_bb_allocnos): Likewise.
4653         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
4654         (mark_reg_store): Rename to...
4655         (mark_ref_live): ...this and take a df_ref argument instead of
4656         note_stores arguments.  Assert that we have a register.
4657         (mark_reg_clobber): Delete.
4658         (def_conflicts_with_inputs_p): New function.
4659         (mark_reg_conflicts): Delete.
4660         (mark_reg_death): Rename to...
4661         (mark_ref_dead): ...this and take a df_ref argument instead of
4662         a register.  Assert that we have a register.
4663         (process_bb_node_lives): Hoist frequency calculation out of
4664         instruction walk.  Convert from a forwards scan to a backwards scan.
4665         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
4666         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
4667         (create_allocno_live_ranges): Don't create regs_set.
4668
4669 2008-09-04  Ian Lance Taylor  <iant@google.com>
4670
4671         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
4672         or REG_LABEL_TARGET.
4673         * calls.c (emit_library_call_value_1): Use MEM_P rather than
4674         comparing MODE with MEM.
4675         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
4676         comparing with GF_PREDICT_TAKEN.
4677         (gimple_get_lhs): Change code to enum gimple_code.
4678         (gimple_set_lhs): Likewise.
4679         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
4680         * omp-low.c (find_omp_clause): Change kind parameter to enum
4681         omp_clause_code.
4682         * tree-flow.h (find_omp_clause): Update declaration.
4683         * regrename.c (clear_dead_regs): Change kind parameter to enum
4684         reg_note.
4685         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
4686         GET_MODE.
4687         * see.c (see_get_extension_data): Change return type to enum
4688         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
4689         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
4690         (see_gen_normalized_extension): Change extension_code parameter to
4691         enum entry_type.
4692         (see_seek_pre_extension_expr): Change extension_code to enum
4693         entry_type.
4694         (see_merge_one_def_extension): Likewise.
4695         (see_handle_relevant_defs): Likewise.
4696         (see_handle_relevant_uses): Likewise.
4697         (see_analyze_one_def): Likewise.
4698         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
4699         GIMPLE_ASM rather than ASM_EXPR.
4700         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
4701         GIMPLE_RETURN rather than RETURN_EXPR.
4702         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
4703         (evaluate_stmt): Likewise.
4704         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
4705         to enum vect_relevant.
4706         (vect_mark_stmts_to_be_vectorized): Change assertion to not
4707         compare gimple codes with tree codes.
4708
4709 2008-09-04  Paul Brook  <paul@codesourcery.com>
4710
4711         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
4712
4713 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
4714
4715         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
4716         pointer check lost in the recent no-unit-at-a-time patch.
4717
4718 2008-09-04  Jan Hubicka  <jh@suse.cz>
4719
4720         PR middle-end/37343
4721         * tree-switch-conversion.c (check_final_bb): Accept only IP
4722         invariants.
4723
4724 2008-09-04  Jan Hubicka  <jh@suse.cz>
4725
4726         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
4727         Break out from ...
4728         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
4729         using_ranges argument.
4730         (vrp_evaluate_conditional): Avoid bogus warning for type range.
4731         (vrp_visit_cond_stmt): Update call of
4732         vrp_evaluate_conditional_warnv_with_ops
4733
4734 2008-09-04  Jan Hubicka  <jh@suse.cz>
4735
4736         PR tree-optimization/37345
4737         PR tree-optimization/37358
4738         PR tree-optimization/37357
4739         * tree.c (build_function_type_skip_args): Build distinct type copy;
4740         set TYPE_CONTEXT.
4741         (build_function_decl_skip_args): Set type of new decl not orig decl;
4742         clear DECL_VINDEX for methods turned into functions.
4743
4744 2008-09-04  Nick Clifton  <nickc@redhat.com>
4745
4746         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
4747         * configure: Regenerate.
4748         * config.in: Regenerate.
4749         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
4750         alignment field, if it is supported.
4751
4752 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
4753
4754         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
4755         libraries.
4756
4757 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
4758
4759         * config/rs6000/rs6000.c (processor_target_table): Do not
4760         enable VMX for POWER6.
4761
4762 2008-09-03  Anton Blanchard  <anton@samba.org>
4763
4764         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
4765         emit memory barrier before operation.
4766
4767 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
4768
4769         PR testsuite/37325
4770         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
4771         default_elf_asm_output_external.
4772
4773 2008-09-03  Jeff Law  <law@redhat.com>
4774
4775         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
4776
4777 2008-09-03  Richard Henderson  <rth@redhat.com>
4778
4779         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
4780         memory barrier to below the test-and-set.
4781         (alpha_split_lock_test_and_set_12): Likewise.
4782
4783 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
4784
4785         PR rtl-opt/37243
4786
4787         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
4788         all_allocnos.
4789
4790         * ira-color.c (print_loop_title): Use all_allocnos.
4791         (color_pass): Ditto.  Don't add border_allocnos.  Check that
4792         subloop allocno in the correspdoning bitmap all_allocnos.
4793
4794         * ira-emit.c (change_loop): Use all_allocnos.
4795
4796         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
4797         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
4798         (create_cap_allocno): Remove setting mentioned_allocnos.
4799         (create_insn_allocnos): Ditto.
4800         (remove_unnecessary_allocnos): Use all_allocnos.
4801         (check_allocno_creation): Check that allocnos are in the
4802         corresponding bitmap all_allocnos.
4803
4804 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
4805
4806         PR rtl-opt/37243
4807
4808         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
4809         (process_regs_for_copy): Process subregs.  Refine check when cost
4810         is taken into account in ira-costs.c.
4811         (process_reg_shuffles): Use REG_SUBREG_P.
4812         (add_insn_allocno_copies): Ditto.  Ignore modes.
4813
4814         * ira-color.c (conflict_allocno_vec): New.
4815         (COST_HOP_DIVISOR): New macro.
4816         (update_copy_costs_1): Use it.
4817         (update_conflict_hard_regno_costs): New function.
4818         (assign_hard_reg): Use it.
4819         (ira_color): Allocate and free conflict_allocno_vec.
4820
4821 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
4822
4823         PR rtl-opt/37296
4824
4825         * ira-int.h (ira_sort_insn_chain): Remove.
4826
4827         * ira.c (basic_block_order_nums, chain_insn_order,
4828         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
4829         (ira): Don't call ira_sort_insn_chain.
4830
4831         * reload1.c (reload): Don't call ira_sort_insn_chain.
4832
4833 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4834
4835         PR middle-end/37293
4836         * cgraphunit.c (update_call_expr): Remove eh regions from statements
4837         which become non throw.
4838         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
4839         update_call_expr after updating the flags on the decl.
4840
4841 2008-09-03  Jan Hubicka  <jh@suse.cz>
4842
4843         PR tree-optimization/37315
4844         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
4845         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
4846         (cgraph_analyze_functions): Use node->analyzed
4847         (cgraph_mark_functions_to_output): Likewise.
4848         (cgraph_expand_function): All functions can be released after
4849         expanding.
4850         (cgraph_optimize): Use gimple_has_body_p.
4851         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
4852         (cgraph_decide_inlining_incrementally): Likewise.
4853         (inline_transform): Inline transform.
4854         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
4855         copy fields needed.
4856         (inlinable_function_p): Drop gimple_body check.
4857         (expand_call_inline): Use gimple_has_body_p.
4858         * gimple.c (gimple_has_body_p): New.
4859         * gimple.h (gimple_has_body_p): Add prototype.
4860         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
4861         (dump_function_to_file): Use gimple_has_body_p check.
4862
4863 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
4864
4865         PR c++/37346
4866         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
4867         substatements.
4868         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
4869
4870 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
4871
4872         From Michael Frysinger  <michael.frysinger@analog.com>
4873         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
4874         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
4875         for bf538.
4876
4877 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
4878
4879         Add picoChip port.
4880         * doc/extend.texi: Document picoChip builtin functions.
4881         * doc/invoke.texi: Document picoChip options.
4882         * doc/contrib.texi: Add picoChip contribution.
4883         * doc/md.texi: Document picoChip constraints.
4884         * config.gcc: Add picochip-*-*.
4885         * config/picochip/: Add new port.
4886
4887 2008-09-03  Richard Guenther  <rguenther@suse.de>
4888
4889         PR tree-optimization/37328
4890         * tree-sra.c (sra_build_assignment): Gimplify properly.
4891         (generate_copy_inout): Take the correct stmt as definition,
4892         remove bogus assert.
4893
4894 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
4895
4896         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
4897         attributes.
4898
4899         From Michael Frysinger  <michael.frysinger@analog.com>
4900         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
4901
4902 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
4903
4904         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
4905         (__gthread_setspecific): Revert 2008-08-31 change to
4906         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
4907
4908 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
4909
4910         * diagnostic.c (error_at): New.
4911         * toplev.h (error_at): New prototype.
4912         * c-typeck.c (build_array_ref): Call error_at instead of error.
4913         Pass location to pedwarn.
4914
4915 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
4916
4917         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
4918
4919 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4920
4921         * dwarf2out.c (tree_add_const_value_attribute): Only handle
4922         VAR_DECL and CONST_DECL.
4923
4924 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
4925             Jakub Jelinek  <jakub@redhat.com>
4926
4927         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
4928         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
4929         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
4930         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
4931         Don't set ix86_save_varrargs_registers.
4932         (ix86_setup_incoming_varargs): Assume cum != NULL.
4933         (ix86_va_start): Check ix86_varargs_gpr_size and
4934         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
4935         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
4936         from frame pointer if ix86_varargs_gpr_size == 0.
4937         (ix86_compute_frame_layout): Updated.
4938         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
4939         (ix86_varargs_gpr_size): Define.
4940         (ix86_varargs_fpr_size): Likewise.
4941         (machine_function): Remove save_varrargs_registers.
4942         Add varargs_gpr_size and varargs_fpr_size.
4943
4944 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4945
4946         * config/alpha/alpha.c (va_list_skip_additions,
4947         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
4948         (alpha_gimplify_va_arg): Call unshare_expr on second use of
4949         offset_field.
4950
4951         PR tree-optimization/36766
4952         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
4953         for already removed basic blocks.
4954
4955         PR target/36332
4956         * real.c (real_maxval): Clear a lower bit to make real_maxval
4957         match get_max_float for IBM long double format.
4958
4959 2008-09-02  Andreas Schwab  <schwab@suse.de>
4960
4961         * configure.ac: Use m4_quote to quote the expansion of m4_do.
4962         * configure: Regenerate.
4963
4964 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
4965
4966         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
4967         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
4968         checking for a non-VOID CONSTANT_P.
4969
4970 2008-09-02  Jan Hubicka  <jh@suse.cz>
4971
4972         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
4973         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
4974         sdiv_pow2_cheap
4975
4976 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
4977
4978         * expr.c (emit_group_store): Don't assert stack temp mode size.
4979
4980 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
4981             Tobias Grosser  <grosser@fim.uni-passau.de>
4982             Jan Sjodin  <jan.sjodin@amd.com>
4983             Harsha Jagasia  <harsha.jagasia@amd.com>
4984             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4985             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
4986             Adrien Eliche  <aeliche@isty.uvsq.fr>
4987
4988         Merge from graphite branch.
4989         * graphite.c: New.
4990         * graphite.h: New.
4991         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
4992         * doc/invoke.texi (-floop-block, -floop-interchange,
4993         -floop-strip-mine): Document new flags.
4994         * tree-into-ssa.c (gimple_vec): Moved...
4995         * tree-loop-distribution.c (rdg_component): Moved...
4996         * cfgloopmanip.c: Include tree-flow.h.
4997         (update_dominators_in_loop): New.
4998         (create_empty_if_region_on_edge): New.
4999         (create_empty_loop_on_edge): New.
5000         (loopify): Use update_dominators_in_loop.
5001         * tree-pass.h (pass_graphite_transforms): Declared.
5002         * configure: Regenerate.
5003         * tree-phinodes.c (make_phi_node): Export.
5004         (add_phi_node_to_bb): New, split from create_phi_node.
5005         * tree-chrec.c (for_each_scev_op): New.
5006         * tree-chrec.h (for_each_scev_op): Declared.
5007         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
5008         (remove_statement): Call get_phi_with_result.
5009         * config.in (HAVE_cloog): Undef.
5010         * gdbinit.in (pgg): New.
5011         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
5012         * tree-ssa-loop.c (graphite_transforms): New.
5013         (gate_graphite_transforms): New.
5014         (pass_graphite_transforms): New.
5015         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
5016         HAVE_cloog): Defined.
5017         * tree-vectorizer.c (rename_variables_in_bb): Export.
5018         * tree-data-ref.c (dr_may_alias_p): Export.
5019         (stmt_simple_memref_p): New.
5020         (find_data_references_in_stmt): Export.
5021         (find_data_references_in_loop): Export.
5022         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
5023         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
5024         (create_rdg_vertices): Export.
5025         (build_empty_rdg): New.
5026         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
5027         * tree-data-ref.h (rdg_component): ... here.
5028         (scop_p): New.
5029         (struct data_reference): Add a field scop.
5030         (DR_SCOP): New.
5031         (find_data_references_in_loop): Declared.
5032         (find_data_references_in_stmt): Declared.
5033         (create_rdg_vertices): Declared.
5034         (dr_may_alias_p): Declared.
5035         (stmt_simple_memref_p): Declared.
5036         (struct rdg_edge): Add a field ddr_p relation.
5037         (build_empty_rdg): Declared.
5038         * lambda.h (lambda_matrix): Declare a VEC of.
5039         (find_induction_var_from_exit_cond): Declared.
5040         (lambda_vector_compare): New.
5041         * common.opt (fgraphite, floop-strip-mine,
5042         floop-interchange, floop-block): New flags.
5043         * lambda-code.c (find_induction_var_from_exit_cond): Export.
5044         * cfgloop.c (is_loop_exit): New.
5045         * cfgloop.h (is_loop_exit): Declared.
5046         (create_empty_if_region_on_edge): Declared.
5047         (create_empty_loop_on_edge): Declared.
5048         * tree-flow.h (add_phi_node_to_bb): Declared.
5049         (make_phi_node): Declared.
5050         (rename_variables_in_bb): Declared.
5051         (perfect_loop_nest_depth): Declared.
5052         (graphite_transform_loops): Declared.
5053         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
5054         (graphite.o-warn): Add -Wno-error.
5055         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
5056         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
5057         (INCLUDES): Add PPLINC, CLOOGINC.
5058         (OBJS-common): Add graphite.o.
5059         (graphite.o): Add rule.
5060         * gimple.h (gimple_vec): ... here.
5061         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
5062         * passes.c (init_optimization_passes): Schedule
5063         pass_graphite_transforms.
5064
5065 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
5066
5067         PR target/37283
5068         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
5069         and -fno-toplevel-reorder after handle_options.
5070
5071 2008-09-02  Paul Brook  <paul@codesourcery.com>
5072
5073         * config/arm/arm.c (arm_tune_cortex_a9): Define.
5074         (arm_override_options): Set arm_tune_cortex_a9.
5075         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
5076         (arm_issue_rate): Handle cortexa9.
5077         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
5078         * config/arm/arm-cores.def: Add cortex-a9.
5079         * config/arm/arm-tune.md: Regenerate.
5080         * config/arm/arm.md: Include cortex-a9.md.
5081         (generic_sched, generic_vfp): Add cortexa9.
5082         * config/arm/cortex-a9.md: New file.
5083
5084 2008-09-02  Richard Guenther  <rguenther@suse.de>
5085
5086         PR tree-optimization/37327
5087         * tree-vrp.c (register_new_assert_for): Make sure to not have
5088         TREE_OVERFLOW set on the bound.
5089
5090 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
5091
5092         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
5093
5094         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
5095         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
5096         spec_info->mask.
5097
5098 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
5099
5100         * gcc/config/spu/spu.md (divdf3): Removed.
5101
5102 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
5103
5104         PR tree-optimization/37095
5105         * cgraph.c (cgraph_node): When creating new cgraph node after
5106         assembler_name_hash has been populated, record it in the hash
5107         table.
5108
5109 2008-09-01  Paul Brook  <paul@codesourcery.com>
5110
5111         * doc/invoke.texi: Document -mword-relocations.
5112         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5113         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5114         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5115         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
5116         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
5117         (arm_emit_movpair): New function.
5118         (arm_print_operand <c>): Handle sybolic addresses.
5119         * config/arm/arm.h (TARGET_USE_MOVT): Define.
5120         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5121         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
5122         * config/arm/arm.opt: Add -mword-relocations.
5123         * config/arm/arm.md (movsi): Use arm_emit_movpair.
5124         (arm_movt, arm_movw): New.
5125
5126 2008-09-01  Paul Brook  <paul@codesourcery.com>
5127
5128         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
5129         Allow Interworking on ARMv4 EABI based targets.
5130         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
5131         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
5132
5133 2008-09-01  Paul Brook  <paul@codesourcery.com>
5134
5135         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
5136         optimized LT0 test.  Remove optimization for GT.
5137
5138 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5139
5140         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
5141         openmp applications.
5142         * pa-hpux11.h (LIB_SPEC): Likewise.
5143
5144         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
5145         is defined.
5146
5147 2008-09-01  Jan Hubicka  <jh@suse.cz>
5148
5149         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
5150         present, use only counts; when guessed use only frequencies.
5151         (estimate_bb_frequencies): Use function_frequency.
5152         * profile.c (compute_branch_probabilities): Exit early when
5153         profile reading failed. Set profile_status.
5154         (branch_prob): Do not set profile_status.
5155
5156 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
5157
5158         * tree.c (protected_set_expr_location): New.
5159         * tree.h (protected_set_expr_location): New prototype.
5160         * c-tree.h (build_array_ref): Add argument.
5161         (parser_build_unary_op): Same.
5162         * c-typeck.c (build_indirect_ref): Handle new location argument.
5163         (build_array_ref): Same.
5164         (parser_build_unary_op): Same.
5165         * gimplify.c (gimplify_asm_expr): Set input_location before calling
5166         error.
5167         * c-omp.c (c_finish_omp_atomic): Pass location when calling
5168         build_indirect_ref.
5169         * c-common.c (finish_label_address_expr): Handle new location argument.
5170         * c-common.h (build_indirect_ref): Add argument.
5171         (finish_label_address_expr): Same.
5172         * c-parser.c (c_parser_unary_expression): Pass location to build
5173         functions.
5174         (c_parser_postfix_expression): Same.
5175
5176 2008-09-01  Paul Brook  <paul@codesourcery.com>
5177
5178         * config/arm/arm.md: Include cortex-r4f.md.
5179         (attr fpu): Update type list.
5180         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
5181         fconstd, fcmps and fcmpd.
5182         (attr tune_cortexr4): Define.
5183         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
5184         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
5185         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
5186         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
5187         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
5188         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
5189         cortex_a8_vfp_farith: Ditto.
5190         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
5191         * config/arm/cortex-r4.md: Use tune_cortexr4.
5192         * config/arm/cortex-r4f.md: New file.
5193
5194 2008-09-01  Richard Guenther  <rguenther@suse.de>
5195
5196         PR tree-optimization/37305
5197         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
5198         the result of constant conversions.
5199         (fold_gimple_assign): Likewise.
5200
5201 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
5202
5203         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
5204         #ifdef ENABLE_CHECKING.
5205
5206 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
5207
5208         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
5209         * sched-int.h (print_insn, print_pattern, print_value): Declare also
5210         when !INSN_SCHEDULING.
5211
5212 2008-09-01  Andreas Schwab  <schwab@suse.de>
5213
5214         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
5215
5216 2008-09-01  Paul Brook  <paul@codesourcery.com>
5217
5218         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
5219
5220 2008-09-01  Jan Hubicka  <jh@suse.cz>
5221
5222         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
5223
5224         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
5225         Pass speed operand.
5226         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
5227         * gimplify.c (gimplify_init_constructor): Add speed operand.
5228         * tree-sra.c (decide_block_copy): Likewise.
5229         * tree-inline.c (estimate_move_cost): Likewise.
5230         * config/alpha/alpha.h (MOVE_RATIO): Update.
5231         * config/frv/frv.c (MOVE_RATIO): Update.
5232         * config/spu/spu.h (MOVE_RATIO): Update.
5233         * config/sparc/sparc.h (MOVE_RATIO): Update.
5234         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
5235         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
5236         * config/cris/cris.h (MOVE_RATIO): Update.
5237         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
5238         * config/arm/arm.h (MOVE_RATIO): Update.
5239         * config/pa/pa.md: Update uses of MOVE_RATIO
5240         * config/pa/pa.h (MOVE_RATIO): Update.
5241         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
5242         CLEAR_RATIO, SET_RATIO): Update.
5243         * config/h8300/h8300.h (MOVE_RATIO): Update.
5244         * config/v850/v850.h (MOVE_RATIO): Update.
5245         * config/bfin/bfin.h (MOVE_RATIO): Update.
5246
5247 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
5248             Dmitry Melnik  <dm@ispras.ru>
5249             Dmitry Zhurikhin  <zhur@ispras.ru>
5250             Alexander Monakov  <amonakov@ispras.ru>
5251             Maxim Kuvyrkov  <maxim@codesourcery.com>
5252
5253         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
5254         sel-sched-dump.c, sel-sched-ir.c: New files.
5255         * Makefile.in (OBJS-common): Add selective scheduling object files.
5256         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
5257         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
5258         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
5259         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
5260         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
5261         (make_forwarder_block): Update loop latch if we have redirected
5262         the loop latch edge.
5263         * cfgloop.c (get_loop_body_in_custom_order): New function.
5264         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
5265         (CP_FALLTHRU_PREHEADERS): Likewise.
5266         (get_loop_body_in_custom_order): Declare.
5267         * cfgloopmanip.c (has_preds_from_loop): New.
5268         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
5269         Assert that the preheader edge will be fall thru when it is set.
5270         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
5271         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
5272         fsel-sched-substitution, fselective-scheduling): New flags.
5273         * cse.c (hash_rtx_cb): New.
5274         (hash_rtx): Use it.
5275         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
5276         sel_sched_insn_cnt): New counters.
5277         * final.c (compute_alignments): Export.  Free dominance
5278         info after loop_optimizer_finalize.
5279         * genattr.c (main): Output maximal_insn_latency prototype.
5280         * genautomata.c (output_default_latencies): New.
5281         Factor its code from ...
5282         (output_internal_insn_latency_func): ... here.
5283         (output_internal_maximal_insn_latency_func): New.
5284         (output_maximal_insn_latency_func): New.
5285         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
5286         (struct hard_reg_set_iterator): New.
5287         (hard_reg_set_iter_init, hard_reg_set_iter_set,
5288         hard_reg_set_iter_next): New functions.
5289         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
5290         * lists.c (remove_free_INSN_LIST_node,
5291         remove_free_EXPR_LIST_node): New functions.
5292         * loop-init.c (loop_optimizer_init): When
5293         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
5294         calling create_preheaders.
5295         (loop_optimizer_finalize): Do not verify flow info after reload.
5296         * recog.c (validate_replace_rtx_1): New parameter simplify.
5297         Default it to true.  Update all uses.  Factor out simplifying
5298         code to ...
5299         (simplify_while_replacing): ... this new function.
5300         (validate_replace_rtx_part,
5301         validate_replace_rtx_part_nosimplify): New.
5302         * recog.h (validate_replace_rtx_part,
5303         validate_replace_rtx_part_nosimplify): Declare.
5304         * rtl.c (rtx_equal_p_cb): New.
5305         (rtx_equal_p): Use it.
5306         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
5307         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
5308         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
5309         * vecprim.h: Add a vector type for unsigned int.
5310         * haifa-sched.c: Include vecprim.h and cfgloop.h.
5311         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
5312         ready_try, cycle_issued_insns, spec_info): Make global.
5313         (readyp): Initialize.
5314         (dfa_lookahead): New global variable.
5315         (old_max_uid, old_last_basic_block): Remove.
5316         (h_i_d): Make it a vector.
5317         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
5318         through HID macro.
5319         (after_recovery, adding_bb_to_current_region_p):
5320         New variables to handle correct insertion of the recovery code.
5321         (struct ready_list): Move declaration to sched-int.h.
5322         (rgn_n_insns): Removed.
5323         (rtx_vec_t): Move to sched-int.h.
5324         (find_insn_reg_weight): Remove.
5325         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
5326         (haifa_init_h_i_d, haifa_finish_h_i_d):
5327         New functions to initialize / finalize haifa instruction data.
5328         (extend_h_i_d, init_h_i_d): Rewrite.
5329         (unlink_other_notes): Move logic to add_to_note_list.  Handle
5330         selective scheduler.
5331         (ready_lastpos, ready_element, ready_sort, reemit_notes,
5332         find_fallthru_edge): Make global, remove static prototypes.
5333         (max_issue): Make global.  Add privileged_n and state parameters.  Use
5334         them.
5335         (extend_global, extend_all): Removed.
5336         (init_before_recovery): Add new param.  Fix the handling of the case
5337         when we insert a recovery code before the EXIT which has a predecessor
5338         with a fallthrough edge to it.
5339         (create_recovery_block): Make global.  Rename to
5340         sched_create_recovery_block.  Update.
5341         (change_pattern): Rename to sched_change_pattern.  Make global.
5342         (speculate_insn): Rename to sched_speculate_insn.  Make global.
5343         Split haifa-specific functionality into ...
5344         (haifa_change_pattern): New static function.
5345         (sched_extend_bb): New static function.
5346         (sched_init_bbs): New function.
5347         (current_sched_info): Change type to struct haifa_sched_info.
5348         (insn_cost): Adjust for selective scheduling.
5349         (dep_cost_1): New function.  Move logic from ...
5350         (dep_cost): ... here.
5351         (dep_cost): Use dep_cost_1.
5352         (contributes_to_priority_p): Use sched_deps_info instead of
5353         current_sched_info.
5354         (priority): Adjust to work with selective scheduling.  Process the
5355         corner case when all dependencies don't contribute to priority.
5356         (rank_for_schedule): Use ds_weak instead of dep_weak.
5357         (advance_state): New function.  Move logic from ...
5358         (advance_one_cycle): ... here.
5359         (add_to_note_list, concat_note_lists): New functions.
5360         (rm_other_notes): Make static.  Adjust for selective scheduling.
5361         (remove_notes, restore_other_notes): New functions.
5362         (move_insn): Add two arguments.  Update assert.  Don't call
5363         reemit_notes.
5364         (choose_ready): Remove lookahead variable, use dfa_lookahead.
5365         Remove more_issue, max_points.  Move the code to initialize
5366         max_lookahead_tries to max_issue.
5367         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
5368         ready.  Adjust use of move_insn.  Call restore_other_notes.
5369         (luid): Remove.
5370         (sched_init, sched_finish): Move Haifa-specific initialization/
5371         finalization to ...
5372         (haifa_sched_init, haifa_sched_finish): ... respectively.
5373         New functions.
5374         (setup_sched_dump): New function.
5375         (haifa_init_only_bb): New static function.
5376         (haifa_speculate_insn): New static function.
5377         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
5378         (extend_ready, extend_all): Remove.
5379         (sched_extend_ready_list, sched_finish_ready_list): New functions.
5380         (create_check_block_twin, add_to_speculative_block): Use
5381         haifa_insns_init instead of extend_global.  Update to use new
5382         initialization functions.  Change parameter.  Factor out code from
5383         create_check_block_twin to ...
5384         (sched_create_recovery_edges) ... this new function.
5385         (add_block): Remove.
5386         (sched_scan_info): New.
5387         (extend_bb): Use sched_scan_info.
5388         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
5389         static functions for walking through scheduling region.
5390         (sched_luids): New vector variable to replace uid_to_luid.
5391         (luids_extend_insn): New function.
5392         (sched_max_luid): New variable.
5393         (luids_init_insn): New function.
5394         (sched_init_luids, sched_finish_luids): New functions.
5395         (insn_luid): New debug function.
5396         (sched_extend_target): New function.
5397         (haifa_init_insn): New static function.
5398         (sched_init_only_bb): New hook.
5399         (sched_split_block): New hook.
5400         (sched_split_block_1): New function.
5401         (sched_create_empty_bb): New hook.
5402         (sched_create_empty_bb_1): New function.
5403         (common_sched_info, ready): New global variables.
5404         (current_sched_info_var): Remove.
5405         (move_block_after_check): Use common_sched_info.
5406         (haifa_luid_for_non_insn): New static function.
5407         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
5408         (increase_insn_priority): New.
5409         * modulo-sched.c: (issue_rate): Remove static declaration.
5410         (sms_sched_info): Change type to haifa_sched_info.
5411         (sms_sched_deps_info, sms_common_sched_info): New variables.
5412         (setup_sched_infos): New.
5413         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
5414         Do not call regstat_free_calls_crossed.
5415         (sms_print_insn): Use const_rtx.
5416         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
5417         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
5418         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
5419         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
5420         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
5421         current_sched_info to use it.
5422         (enum reg_pending_barrier_mode): Move to sched-int.h.
5423         (h_d_i_d): New variable. Initialize to NULL.
5424         ({true, output, anti, spec, forward}_dependency_cache): Initialize
5425         to NULL.
5426         (estimate_dep_weak): Remove static declaration.
5427         (sched_has_condition_p): New function.  Adjust users of
5428         sched_get_condition to use it instead.
5429         (conditions_mutex_p): Add arguments indicating which conditions are
5430         reversed.  Use them.
5431         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
5432         argument to indicate whether returned condition is reversed.  Do not
5433         generate new rtx when condition should be reversed; indicate it by
5434         setting new argument instead.
5435         (add_dependence_list_and_free): Add deps parameter.
5436         Update all users.  Do not free dependence list when
5437         deps context is readonly.
5438         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
5439         contexts.
5440         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
5441         (remove_from_deps): New. Use the above functions.
5442         (cur_insn, can_start_lhs_rhs_p): New static variables.
5443         (add_or_update_back_dep_1): Initialize present_dep_type.
5444         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
5445         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
5446         haifa_note_dep): New functions implementing dependence hooks for
5447         the Haifa scheduler.
5448         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
5449         note_dep): New functions.
5450         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
5451         functions.
5452         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
5453         (free_deps): Initialize deps->reg_last.
5454         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
5455         sched_analyze_insn): Update to use dependency hooks infrastructure
5456         and readonly contexts.
5457         (deps_analyze_insn): New function.  Move part of logic from ...
5458         (sched_analyze): ... here.  Also move some logic to ...
5459         (deps_start_bb): ... here.  New function.
5460         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
5461         sel_sched_p.
5462         (sched_deps_init): New function.  Move code from ...
5463         (init_dependency_caches): ... here.  Remove.
5464         (init_deps_data_vector): New.
5465         (sched_deps_finish): New function.  Move code from ...
5466         (free_dependency_caches): ... here.  Remove.
5467         (init_deps_global, finish_deps_global): Adjust for use with
5468         selective scheduling.
5469         (get_dep_weak): Move logic to ...
5470         (get_dep_weak_1): New function.
5471         (ds_merge): Move logic to ...
5472         (ds_merge_1): New static function.
5473         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
5474         (ds_get_max_dep_weak): New function.
5475         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
5476         (n_insns): Rename to rgn_n_insns.
5477         (debug_ebb_dependencies): New function.
5478         (init_ready_list): Use it.
5479         (begin_schedule_ready): Use sched_init_only_bb.
5480         (ebb_print_insn): Indicate when an insn starts a new cycle.
5481         (contributes_to_priority, compute_jump_reg_dependencies,
5482         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
5483         (add_block1): Remove to ebb_add_block.
5484         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
5485         (schedule_ebb): Initialize them.  Use remove_notes instead of
5486         rm_other_notes.  Use haifa_local_init/finish.
5487         (schedule_ebbs): Use haifa_sched_init/finish.
5488         * sched-int.h: Include vecprim.h, remove rtl.h.
5489         (struct ready_list): Delete declaration.
5490         (sched_verbose_param, enum sched_pass_id_t,
5491         bb_vec_t, insn_vec_t, rtx_vec_t): New.
5492         (struct sched_scan_info_def): New structure.
5493         (sched_scan_info, sched_scan, sched_init_bbs,
5494         sched_init_luids, sched_finish_luids, sched_extend_target,
5495         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
5496         (struct common_sched_info_def): New.
5497         (common_sched_info, haifa_common_sched_info,
5498         sched_emulate_haifa_p): Declare.
5499         (sel_sched_p): New.
5500         (sched_luids): Declare.
5501         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
5502         (sched_max_luid, insn_luid): Declare.
5503         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
5504         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
5505         print_insn, print_pattern, print_value, haifa_classify_insn,
5506         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
5507         setup_sched_dump, sched_init, sched_finish,
5508         sel_insn_is_speculation_check): Export.
5509         (struct ready_list): Move from haifa-sched.c.
5510         (ready_try, ready, max_issue): Export.
5511         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
5512         sched_init_only_bb, sched_split_block, sched_split_block_1,
5513         sched_create_empty_bb, sched_create_empty_bb_1,
5514         sched_create_recovery_block, sched_create_recovery_edges): Export.
5515         (enum reg_pending_barrier_mode): Export.
5516         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
5517         (deps_t): New.
5518         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
5519         print_insn field.  Move add_block and fix_recovery_cfg to
5520         common_sched_info_def.  Move compute_jump_reg_dependencies,
5521         use_cselib  ...
5522         (struct sched_deps_info_def): ... this new structure.
5523         (sched_deps_info): Declare.
5524         (struct spec_info_def): Remove weakness_cutoff, add
5525         data_weakness_cutoff and control_weakness_cutoff.
5526         (spec_info): Declare.
5527         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
5528         dep_count field.
5529         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
5530         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
5531         (current_sched_info): Change type to struct haifa_sched_info.
5532         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
5533         (h_d_i_d): New variable.
5534         (HDID): New accessor macro.
5535         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
5536         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
5537         and HDID.
5538         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
5539         (enum SCHED_FLAGS): Update for selective scheduler.
5540         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
5541         (init_dependency_caches, free_dependency_caches): Delete declarations.
5542         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
5543         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
5544         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
5545         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
5546         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
5547         ds_to_dt): Export.
5548         (rm_other_notes): Delete declaration.
5549         (schedule_block): Remove one argument.
5550         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
5551         ready_element, ready_lastpos, sched_extend_ready_list,
5552         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
5553         concat_note_lists): Export.
5554         (struct region): Move from sched-rgn.h.
5555         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
5556         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
5557         BLOCK_TO_BB, CONTAINING_RGN): Export.
5558         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
5559         (current_nr_blocks, current_blocks, target_bb): Likewise.
5560         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
5561         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
5562         sched_rgn_local_init, extend_regions,
5563         rgn_make_new_region_out_of_new_block, compute_priorities,
5564         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
5565         extend_rgns, deps_join rgn_setup_common_sched_info,
5566         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
5567         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
5568         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
5569         increase_insn_priority): Likewise.
5570         * sched-rgn.c: Include sel-sched.h.
5571         (ref_counts): New static variable.  Use it ...
5572         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
5573         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
5574         (sched_is_disabled_for_current_region_p): Delete static declaration.
5575         (struct region): Move to sched-int.h.
5576         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
5577         ebb_head): Define and initialize.
5578         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
5579         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
5580         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
5581         sched-int.h.
5582         (find_single_block_region): Add new argument to indicate that EBB
5583         regions should be constructed.
5584         (debug_live): Delete declaration.
5585         (current_nr_blocks, current_blocks, target_bb):
5586         Remove static qualifiers.
5587         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
5588         declaration.
5589         (init_regions): Delete declaration.
5590         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
5591         rgn_estimate_number_of_insns): New.
5592         (too_large): Use estimate_number_of_insns.
5593         (haifa_find_rgns): New. Move the code from ...
5594         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
5595         (free_trg_info): New.
5596         (compute_trg_info): Allocate candidate tables here instead of ...
5597         (init_ready_list): ... here.
5598         (rgn_print_insn): Use const_rtx.
5599         (contributes_to_priority, extend_regions): Delete static declaration.
5600         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
5601         (add_block1): Rename to rgn_add_block.
5602         (debug_rgn_dependencies): Delete static qualifier.
5603         (new_ready): Use sched_deps_info.  Simplify.
5604         (rgn_common_sched_info, rgn_const_sched_deps_info,
5605         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
5606         New.
5607         (region_sched_info): Rename to rgn_const_sched_info.
5608         (deps_join): New, extracted from ...
5609         (propagate_deps): ... here.
5610         (compute_block_dependences, debug_dependencies): Update for selective
5611         scheduling.
5612         (free_rgn_deps, compute_priorities): New functions.
5613         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
5614         sched_rgn_compute_dependencies): New functions.
5615         (schedule_region): Use them.
5616         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
5617         rgn_setup_common_sched_info, rgn_setup_sched_infos):
5618         New functions.
5619         (schedule_insns): Call new functions that were split out.
5620         (rgn_make_new_region_out_of_new_block): New.
5621         (get_rgn_sched_max_insns_priority): New.
5622         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
5623         scheduling when appropriate.
5624         * sched-vis.c: Include insn-attr.h.
5625         (print_value, print_pattern): Make global.
5626         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
5627         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
5628         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
5629         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
5630         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
5631         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
5632         hooks.  Initialize them to 0.
5633         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
5634         * target.h (struct gcc_target): Add them.  Rename gen_check field to
5635         gen_spec_check.
5636         * flags.h (sel_sched_switch_set): Declare.
5637         * opts.c (sel_sched_switch_set): New variable.
5638         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
5639         pipelining is disabled from command line.
5640         (common_handle_option): Record whether selective scheduling is
5641         requested from command line.
5642         * doc/invoke.texi: Document new flags and parameters.
5643         * doc/tm.texi: Document new target hooks.
5644         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
5645         ia64_gen_check.
5646         (dfa_state_size): Do not declare locally.
5647         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
5648         * config/rs6000/rs6000.c (rs6000_init_sched_context,
5649         rs6000_alloc_sched_context, rs6000_set_sched_context,
5650         rs6000_free_sched_context): New functions.
5651         (struct _rs6000_sched_context): New.
5652         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
5653         scheduling.
5654         (rs6000_sched_finish): Do not run for selective scheduling.
5655
5656 2008-08-31  Jan Hubicka  <jh@suse.cz>
5657
5658         * frv.c (frv_rtx_costs): Update forward declaration.
5659         * spu.c (spu_rtx_costs): Likewise.
5660         * pdp11.c: Include df.h
5661         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
5662         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
5663         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
5664         * iq2000.c (iq2000_address_cost): Add speed argument.
5665         (iq2000_rtx_costs): Likewise.
5666         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
5667         update call of mn10300_address_cost.
5668         * mcore.c: Include df.h
5669         (mcore_rtx_costs): Update prototype.
5670         * score3.c: Include df.h
5671         (score3_rtx_costs): Remove speed argument.
5672         * score7.c: Include df.h
5673         (score7_address_cost): Remove speed argument.
5674         * score-protos.h (score_address_cost): Update prototype.
5675         * score.c: Include df.h
5676         (score_rtx_costs): Update call of costs functions.
5677         * v850.c (v850_rtx_costs): Add bool argument.
5678
5679 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
5680
5681         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
5682
5683 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5684
5685         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
5686         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
5687
5688 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5689
5690         * mkmap-flat.awk: Add option pe_dll.
5691         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
5692         * config/i386/t-cygwin (SHLIB_LC): Add.
5693         * config/i386/t-mingw32 (SHLIB_LC): Add.
5694         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
5695         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
5696         (LINK_SPEC): Support libgcc_s.
5697         (LIBGCC_SPEC): Support libgcc_s.
5698         (LIBGCC_SONAME): New.
5699
5700 2008-08-31  Jan Hubicka  <jh@suse.cz>
5701
5702         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
5703         mistakely had old version of patch.
5704
5705         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
5706         (ipcp_estimate_growth): New.
5707         (ipcp_insert_stage): Use ipcp_estimate_growth.
5708         * profile.c (branch_prob): When reading failed, do not consider
5709         profile as read.
5710
5711 2008-08-31  Jan Hubicka  <jh@suse.cz>
5712
5713         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
5714         loop is optimized for speed.
5715
5716 2008-08-31  Richard Guenther  <rguenther@suse.de>
5717
5718         PR middle-end/37289
5719         * fold-const.c (fold_binary): Retain conversions in folding
5720         ~A + 1 to -A.
5721
5722 2008-08-31  Jan Hubicka  <jh@suse.cz>
5723
5724         * postreload-gcse.c (eliminate_partially_redundant_loads):
5725         Use optimize_bb_for_size_p.
5726         * predict.c (maybe_hot_frequency_p): Make inline.
5727         (maybe_hot_count_p): Break out from ...
5728         (maybe_hot_bb_p): ... this one.
5729         (maybe_hot_edge_p): Simplify.
5730         * basic-block.h (probably_cold_bb_p): Remove.
5731
5732 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
5733
5734         PR target/37168
5735         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
5736         prototype.
5737         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
5738         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
5739         Also split V4SFmode.
5740         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
5741         vector float modes.
5742
5743 2008-08-31  Jan Hubicka  <jh@suse.cz>
5744
5745         * predict.c (PROB_VERY_LIKELY): Make small enough so things
5746         become cold.
5747         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
5748
5749 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
5750
5751         PR debug/37287
5752         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
5753         add source coords.
5754
5755         * dwarf2out.c (native_encode_initializer): Subtract min_index for
5756         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
5757
5758 2008-08-31  Jan Hubicka  <jh@suse.cz>
5759
5760         * sparc.h (BRANCH_COST): Fix macro definition.
5761         * avr.c (avr_operand_rtx_cost): Add speed argument.
5762         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
5763
5764 2008-08-31  Richard Guenther  <rguenther@suse.de>
5765
5766         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
5767         types instead of operands.  Re-instantiate verifying of
5768         binary expression operands.
5769
5770 2008-08-30  Jan Hubicka  <jh@suse.cz>
5771
5772         * fwprop.c (should_replace_address): Add speed attribute.
5773         (PR_OPTIMIZE_FOR_SPEED): New flag.
5774         (propagate_rtx_1): Use it.
5775         (propagate_rtx): Set it.
5776         (try_fwprop_subst): Update call of rtx_costs.
5777         (forward_propagate_and_simplify): LIkewise.
5778         * hooks.c (hook_int_rtx_bool_0): New
5779         (hook_bool_rtx_int_int_intp_false): Replace by ...
5780         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
5781         * hooks.h (hook_int_rtx_bool_0): New
5782         (hook_bool_rtx_int_int_intp_false): Replace by ...
5783         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
5784         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
5785         (prepare_cmp_insn): UPdate call of rtx_cost.
5786         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
5787         (reload_cse_simplify_operands): Update call of rtx_cost.
5788         (reload_cse_move2add): call of rtx_cost.
5789         * target.h (struct gcc_target): Update rtx_costs and address_costs.
5790         * rtlanal.c (rtx_cost): Add speed argument.
5791         (address_cost): Add speed argument
5792         (default_address_cost): Likewise.
5793         (insn_rtx_cost): Likewise.
5794         * cfgloopanal.c (seq_cost): Add speed argument.
5795         (target_reg_cost, target_spill_cost): Turn to array.
5796         (init_set_costs): Update for speed.
5797         (estimate_reg_pressure_cost): Add speed argument.
5798         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
5799         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
5800         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
5801         (seq_cost): Add speed argument.
5802         (computation_cost): Add speed arugment.
5803         (add_cost, multiply_by_const, get_address_cost): add speed argument.
5804         (force_expr_to_var_cost): Update for profile info.
5805         (force_var_cost): Likewise.
5806         (split_address_cost): Likewise.
5807         (ptr_difference_cost): Likewise.
5808         (difference_cost): Likewise.
5809         (get_computation_cost_at): Likewise.
5810         (determine_iv_cost): Likewise.
5811         (ivopts_global_cost_for_size): Likewise.
5812         (rewrite_use_address): Likewise.
5813         (tree_ssa_iv_optimize_loop): Initialize speed field.
5814         * cse.c (optimize_this_for_speed_p): New static var.
5815         (notreg_cost): Update call of rtx_cost.
5816         (cse_extended_basic_block): set optimize_this_for_speed_p.
5817         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
5818         (noce_try_cmove_arith): Likewise.
5819         (noce_try_sign_mask): LIkewise.
5820         * expr.c (compress_float_constant): Update rtx_cost calls.
5821         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
5822         argument.
5823         (addr_to_parts): Likewise.
5824         (create_mem_ref): Likewise.
5825         * dse.c (find_shift_sequence): Add speed argument.
5826         (replace_read): Update call.
5827         * calls.c (precompute_register_parameters): Update call of rtx_cost.
5828         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
5829         * neg_cost, shift_cost, shiftadd_cost,
5830         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
5831         mul_highpart_cost): Increase dimension.
5832         (init_expmed): Initialize for both size and speed.
5833         (expand_shift): Use profile.
5834         (synth_mult): Use profile.
5835         (choose_mult_variant): Use profile.
5836         (expand_mult): Use profile.
5837         (expand_mult_highpart_optab): Use profile.
5838         (expand_mult_highpart): Use profile.
5839         (expand_smod_pow2): Use profile.
5840         (expand_divmod): Use profile.
5841         * simplify-rtx.c (simplify_binary_operation_1): Update call of
5842         rtx_cost.
5843         * loop-invariant.c (create_new_invariant): Use profile.
5844         (gain_for_invariant): Add speed parameter.
5845         (best_gain_for_invariant): Likewise.
5846         (find_invariants_to_move): Likewise.
5847         (move_single_loop_invariants): Set it.
5848         * target-def.h (TARGET_RTX_COSTS): Use hook.
5849         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
5850         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
5851         * output.h (default_address_cost): Update prototype.
5852         * combine.c (optimize_this_for_speed_p): New static var.
5853         (combine_validate_cost): Update call of rtx_cost.
5854         (combine_instructions): Set optimize_this_for_speed_p.
5855         (expand_compound_operation): Update call of rtx_cost.
5856         (make_extraction):Update call of rtx_cost.
5857         (force_to_mode):Update call of rtx_cost.
5858         (distribute_and_simplify_rtx):Update call of rtx_cost.
5859         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
5860         (estimate_reg_pressure_cost): Update prototype.
5861         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
5862         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
5863         Remove.
5864         * config/alpha/alpha.c (alpha_rtx_costs): Update.
5865         (alpha_rtx_costs): Update.
5866         * config/frv/frv.c (frv_rtx_costs): Update.
5867         * config/s390/s390.c (s390_rtx_costs): Update.
5868         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
5869         (m32c_rtx_costs): Update.
5870         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
5871         (spu_rtx_costs): Update.
5872         * config/sparc/sparc.c (sparc_rtx_costs): Update.
5873         * config/m32r/m32r.c (m32r_rtx_costs): Update.
5874         * config/i386/i386.c (:ix86_address_cost): Update.
5875         (ix86_rtx_costs): Update.
5876         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
5877         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
5878         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
5879         * config/crx/crx.c (crx_address_cost): Update.
5880         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
5881         * config/stormy16/stormy16.c
5882         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
5883         * config/m68hc11/m68hc11.c
5884         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
5885         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
5886         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
5887         Update.
5888         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
5889         Update
5890         * config/ia64/ia64.c (ia64_rtx_costs): Update.
5891         * config/m68k/m68k.c (m68k_rtx_costs): Update.
5892         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
5893         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
5894         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
5895         (mcore_rtx_costs): update.
5896         * config/score/score3.c (score3_rtx_costs): Update.
5897         * config/score/score7.c (score7_rtx_costs): Update.
5898         * config/score/score3.h (score3_rtx_costs):Update.
5899         * config/score/score7.h (score7_rtx_costs): Update.
5900         * config/score/score.c (score_rtx_costs): Update.
5901         * config/arm/arm.c (arm_address_cost): Update.
5902         (arm_rtx_costs_1): Update.
5903         (arm_rtx_costs_1): Update.
5904         (arm_size_rtx_costs): Update.
5905         (arm_size_rtx_costs): Update.
5906         (arm_size_rtx_costs): Update.
5907         (arm_xscale_rtx_costs): Update.
5908         (arm_thumb_address_cost): Update.
5909         * config/pa/pa.c (hppa_address_cost): Update.
5910         * config/mips/mips.c (mips_rtx_costs): Update.
5911         * config/vax/vax.c (vax_address_cost): Update.
5912         * config/h8300/h8300.c (h8300_shift_costs): Update.
5913         (h8300_rtx_costs): Update.
5914         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
5915         (v850_rtx_costs): Update.
5916         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
5917         * config/bfin/bfin.c
5918         (bfin_address_cost): Update.
5919         (bfin_rtx_costs): Update.
5920         * stmt.c (lshift_cheap_p): Update.
5921
5922 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5923
5924         PR middle-end/36444
5925         * expmed.c (extract_bit_field_1): Check the mode size to make
5926         sure the vector modes have the same size.
5927
5928 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
5929
5930         * dojump.c (top level): Include basic-block.h to declare
5931         optimize_insn_for_speed_p
5932
5933         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
5934
5935         * opts.h (CL_SAVE): New option class for marking options that are
5936         target specific options usable in the target attribute.
5937         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
5938
5939         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
5940         can easily find the target specific options that are safe to use
5941         in the attribute or pragma.
5942
5943         * attribs.c (decl_attributes): Change #pragma GCC option to
5944         #pragma GCC target, and attribute((option(...))) to
5945         attribute((target(...))).
5946
5947         * doc/extend.texi (target attribute): Change from option
5948         attribute.  Delete push/pop/reset.
5949         (#pragma GCC target): Change from #pragma GCC option.  Delete
5950         push/pop/reset.
5951         (#pragma GCC push_options): Document new pragma.
5952         (#pragma GCC pop_options): Document new pragma.
5953         (#pragma GCC reset_options): Document new pragma.
5954
5955         * targhooks.c (default_target_option_valid_attribute_p): Add
5956         warning about port not supporting target attributes.
5957         (default_target_option_pragma_parse): New function, warn about
5958         #pragma GCC target not being supported.
5959
5960         * targhooks.h (default_target_option_pragma_parse): Add
5961         declaration.
5962
5963         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
5964         TI_CURRENT_OPTION_PRAGMA.
5965         (current_target_pragma): Rename from current_option_pragma.
5966
5967         * target.h: (struct target_option): Delete booleans for changing
5968         the optimization level on hot/cold functions.  Change signature of
5969         pragma_parse hook to take a second tree.
5970
5971         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
5972
5973         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
5974         that the declaration is done at global scope.
5975
5976         * langhooks.c (add_builtin_function_common): Move most of the code
5977         from add_builtin_function here, calling the hook passed in.
5978         (add_builtin_function): Call add_builtin_function_common with
5979         standard builtin hook.
5980         (add_builtin_function_ext_scope): New function to add builtins to
5981         global scope.
5982
5983         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
5984         hook.
5985         (add_builtin_function_ext_scope): Add declaration.
5986
5987         * c-pragma.c (handle_pragma_target): Rename from
5988         handle_pragma_option, #pragma GCC option is now #pragma GCC
5989         target.  Move warning about port not supporting target options to
5990         default pragma parse hook.  Remove push/pop/reset from this
5991         pragma.
5992         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
5993         (option_stack): Delete static variable.
5994         (optimize_stack): Ditto.
5995         (optons_stack): New stack of saved target and optimization
5996         options.
5997         (handle_pragma_push_options): New function to handle pushing both
5998         target and optimization options.
5999         (handle_pragma_pop_options): New function to handle popping both
6000         target and optimization options.
6001         (handle_pragma_reset_options): New function to handle resetting
6002         both target and optimization options to their initial state.
6003         (init_pragma): Rename handle_pragma_option to
6004         handle_pragma_target.  Add support for push_options, pop_options,
6005         and reset_options pragmas.
6006
6007         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
6008         default_target_option_pragma_parse.
6009         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
6010         default_target_option_valid_attribute_p.
6011         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
6012         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
6013         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
6014         optimization level on hot/cold functions.
6015
6016         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
6017         if the caller and callee have different optimization levels.
6018
6019         * c-common.c (handle_target_attribute): Rename from
6020         handle_option_attribute, attribute((option(...))) is now
6021         attribute((target(...))).  Move warning if the port does not
6022         support target attributes to the default hook.
6023         (handle_hot_attribute): Delete code to change the optimization
6024         level of hot functions.
6025         (handle_cold_attribute): Ditto.
6026
6027         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
6028         argument that is the binary tree options to use if there are no
6029         arguments.  Call ix86_valid_target_attribute_tree instead of
6030         ix86_valid_option_attribute_tree.
6031         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
6032         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
6033         ix86_pragma_option_parse.
6034
6035         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
6036         Rename from ix86_valid_option_attribute_tree.
6037
6038         * config/i386/i386.c (ix86_add_new_builtins): New function to add
6039         new builtins when the ISA changes.
6040         (ix86_valid_target_attribute_tree): Rename from
6041         ix86_valid_option_attribute_tree.  Change callers.  If the
6042         function specified optimization options, use those as the starting
6043         point before setting up the target attributes.  If the
6044         optimization options were changed in the course of setting the
6045         target attributes, record the new optimization options.
6046         (ix86_valid_target_attribute_tree_inner_p): Rename from
6047         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
6048         ix86_add_new_builtins if the ISA changed.
6049         (ix86_valid_target_attribute_p): Rename from
6050         ix86_valid_option_attribute_p.  Change callers.
6051         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
6052         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
6053         as delayed builtin functions.
6054         (struct builtin_isa): New structure to record builtin functions
6055         that should be delayed until the ISA for that function is used.
6056         (ix86_builtins_isa): Change from int to struct to track builtin
6057         functions we want to declare at some point.
6058         (def_builtin): If the front end can delay defining the builtin
6059         functions, don't create builtins for ISAs not part of the default
6060         options.
6061         (def_builtin_const): Ditto.
6062         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
6063         __builtin_ia32_pcmov_v2di to be different builtin functions.
6064         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
6065         a structure instead of an int.
6066         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
6067         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
6068         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
6069         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
6070
6071         * config/ia64/ia64.h
6072         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
6073         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
6074
6075         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
6076         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
6077         (LANG_HOOKS_INITIALIZER): Add
6078         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
6079
6080 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
6081
6082         PR target/37270
6083         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
6084         the reload address with the index register for SFmode
6085         access with a displacement.
6086
6087 2008-08-30  Jan Hubicka  <jh@suse.cz>
6088
6089         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
6090         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
6091         * dojump.c (do_jump): Likewise.
6092         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
6093         (note-if_info): Add BRANCH_COST.
6094         (noce_try_store_flag_constants, noce_try_addcc,
6095         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
6096         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
6097         find_if_case_2): Use computed branch cost.
6098         * expr.h (BRANCH_COST): Update default.
6099         * predict.c (predictable_edge_p): New function.
6100         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
6101         Update BRANCH_COST call.
6102         * basic-block.h (predictable_edge_p): Declare.
6103         * config/alpha/alpha.h (BRANCH_COST): Update.
6104         * config/frv/frv.h (BRANCH_COST): Update.
6105         * config/s390/s390.h (BRANCH_COST): Update.
6106         * config/spu/spu.h (BRANCH_COST): Update.
6107         * config/sparc/sparc.h (BRANCH_COST): Update.
6108         * config/m32r/m32r.h (BRANCH_COST): Update.
6109         * config/i386/i386.h (BRANCH_COST): Update.
6110         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
6111         BRANCH_COST.
6112         * config/sh/sh.h (BRANCH_COST): Update.
6113         * config/pdp11/pdp11.h (BRANCH_COST): Update.
6114         * config/avr/avr.h (BRANCH_COST): Update.
6115         * config/crx/crx.h (BRANCH_COST): Update.
6116         * config/xtensa/xtensa.h (BRANCH_COST): Update.
6117         * config/stormy16/stormy16.h (BRANCH_COST): Update.
6118         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
6119         * config/iq2000/iq2000.h (BRANCH_COST): Update.
6120         * config/ia64/ia64.h (BRANCH_COST): Update.
6121         * config/rs6000/rs6000.h (BRANCH_COST): Update.
6122         * config/arc/arc.h (BRANCH_COST): Update.
6123         * config/score/score.h (BRANCH_COST): Update.
6124         * config/arm/arm.h (BRANCH_COST): Update.
6125         * config/pa/pa.h (BRANCH_COST): Update.
6126         * config/mips/mips.h (BRANCH_COST): Update.
6127         * config/vax/vax.h (BRANCH_COST): Update.
6128         * config/h8300/h8300.h (BRANCH_COST): Update.
6129         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
6130         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
6131         * doc/tm.texi (BRANCH_COST): Update.
6132
6133 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
6134
6135         PR target/37283
6136         * config/arm/arm.c (arm_optimization_options): Set
6137         flag_section_anchors to 2 instead of 1 to distinguish it from
6138         -fsection-anchors given explicitely on the command line.
6139
6140 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
6141
6142         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
6143         final insn of a split.
6144
6145 2008-08-30  Jan Hubicka  <jh@suse.cz>
6146
6147         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
6148         optimized for speed.
6149         * final.c (compute_alignments): Use optimize_bb_for_size_p.
6150         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
6151         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
6152         flag_gcse_after_reload_set): New static vars.
6153         (common_handle_option): Enable those flags for profile-use.
6154         (decode_options): Remove optimize_size flags that are handled
6155         on higher granuality.
6156         * tree-vectorizer.c (vectorize_loops): Use
6157         optimize_loop_nest_for_speed_p.
6158         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
6159         * tree-predcom.c (tree_predictive_commoning): Use
6160         optimize_loop_for_speed_p.
6161         * varasm.c (assemble_start_function): Use
6162         optimize_function_for_speed_p.
6163         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
6164         * predict.c (optimize_loop_for_speed_p): Fix walk.
6165
6166 2008-08-30  Jan Hubicka  <jh@suse.cz>
6167
6168         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
6169         functions.
6170         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
6171         profile presence locally.
6172
6173 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
6174
6175         PR bootstrap/37086
6176         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
6177         versions before 4.0.
6178
6179 2008-08-29  Jan Hubicka  <jh@suse.cz>
6180
6181         * tree-inline.c (insert_init_stmt): Insert sequence even when
6182         not in SSA form.
6183
6184 2008-08-29  Jeff Law  <law@redhat.com>
6185
6186         * mn10300.c (mn10300_secondary_reload_class): We need secondary
6187         reloads for AM33-2 if IN is a pseudo with an equivalent memory
6188         location and class is an FP register.
6189
6190 2008-08-29  Jan Hubicka  <jh@suse.cz>
6191
6192         * see.c (see_merge_one_def_extension): Silence used uninitialized
6193         warning.
6194         * matrix-reorg.c (check_allocation_function): Likewise.
6195         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
6196
6197 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
6198
6199         PR c/37261
6200         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
6201         compute new & and | in type rather than TREE_TYPE (arg0).
6202
6203         * dwarf2out.c (fortran_common): Update comment.
6204         (gen_variable_die): Swap com_die and var_die variables in Fortran
6205         COMMON block handling code.
6206
6207         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
6208
6209         * dwarf2out.c (gen_const_die): New function.
6210         (size_of_die, value_format, output_die): Output larger
6211         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
6212         (native_encode_initializer): New function.
6213         (tree_add_const_value_attribute): Call it.
6214         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
6215
6216         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
6217         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
6218         TREE_THIS_VOLATILE to add_type_attribute.
6219
6220         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
6221         types.
6222         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
6223         types.
6224
6225         * dwarf2out.c (loc_by_reference): New function.
6226         (add_location_or_const_value_attribute): Use it.
6227
6228         PR fortran/23057
6229         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
6230         as DW_TAG_variable children of DW_TAG_common_block rather than
6231         DW_TAG_member children.  Put DW_AT_external to individual
6232         DW_TAG_variable DIEs, not to DW_TAG_common_block.
6233
6234         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
6235         loc_descriptor_from_tree_1.
6236
6237         PR fortran/29635
6238         PR fortran/23057
6239         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
6240         arguments to imported_module_or_decl.
6241         (debug_nothing_tree_tree): Removed.
6242         (debug_nothing_tree_tree_tree_bool): New prototype.
6243         * debug.c (do_nothing_debug_hooks): Adjust.
6244         (debug_nothing_tree_tree): Removed.
6245         (debug_nothing_tree_tree_tree_bool): New function.
6246         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
6247         (gen_variable_die): Put all common vars for the
6248         same COMMON block under one DW_TAG_common_block.
6249         (declare_in_namespace): Return new context_die, for Fortran
6250         return the module DIE instead of adding extra declarations into
6251         the namespace.
6252         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
6253         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
6254         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
6255         DW_AT_declaration.
6256         (dwarf2out_global_decl): Don't skip Fortran global vars.
6257         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
6258         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
6259         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
6260         DW_TAG_imported_declaration as child of previous
6261         DW_TAG_imported_module.
6262         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
6263         * sdbout.c (sdb_debug_hooks): Likewise.
6264         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6265
6266 2008-08-29  Jan Hubicka  <jh@suse.cz>
6267
6268         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
6269
6270         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
6271         * ipa-cp.c (n_cloning_candidates): New static variable.
6272         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
6273         (ipcp_print_all_lattices): Improve debug output.
6274         (ipcp_cloning_candidate_p): New function.
6275         (ipcp_initialize_node_lattices): Use it.
6276         (ipcp_init_stage): Do only analyzis here; prettier debug output.
6277         (ipcp_propagate_stage): Prettier debug output.
6278         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
6279         (ipcp_print_all_structures): Remove.
6280         (ipcp_need_redirect_p): Test !n_cloning_candidates.
6281         (ipcp_insert_stage): Prettier debug output; call
6282         cgraph_remove_unreachable_nodes before propagating.
6283         (pass_ipa_cp): Schedule function removal pass.
6284         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
6285         debug output.
6286         (cgraph_maybe_hot_edge_p): Move to ...
6287         * predict.c (cgraph_maybe_hot_edge_p) ... here.
6288         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
6289         (common_handle_option): Set them; enable ipa-cp when profiling.
6290         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
6291         (ipa_print_all_jump_functions): Likewise.
6292         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
6293         (ipa_print_node_params, ipa_print_all_params): New.
6294         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
6295         ipa_print_all_param_flags): Remove.
6296         (ipa_print_node_params, ipa_print_all_params): New.
6297
6298 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
6299
6300         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
6301         change from 2008-04-03.
6302         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
6303
6304 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
6305
6306         PR rtl-opt/37251
6307         * ira-color.c (push_allocnos_to_stack): Truncate
6308         removed_splay_allocno_vec.
6309
6310 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
6311
6312         PR rtl-opt/37243
6313         * ira-color (ira_fast_allocation): Don't assign hard registers to
6314         global allocnos.
6315
6316 2008-08-29  Jan Hubicka  <jh@suse.cz>
6317
6318         PR middle-end/37278
6319         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
6320         for cold internal loops.
6321
6322 2008-08-29  Richard Guenther  <rguenther@suse.de>
6323
6324         * tree-ssa-structalias.c (create_variable_info_for): Do not
6325         create fields for heap vars or vars with a noalias state.
6326         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
6327         from ESCAPED.
6328
6329 2008-08-29  Richard Guenther  <rguenther@suse.de>
6330
6331         * common.opt (ftree-store-ccp): Mark as preserved for
6332         backward compatibility.
6333         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
6334         * tree-pass.h (pass_store_ccp): Remove.
6335         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
6336         (first_vdef): Remove declaration.
6337         (get_value_loaded_by): Likewise.
6338         * tree-ssa-ccp.c (do_store_ccp): Remove.
6339         (get_default_value): Simplify as do_store_ccp is always false
6340         now.  Do not initialize mem_ref.
6341         (set_value_varying): Likewise.
6342         (canonicalize_float_value): Likewise.
6343         (set_lattice_value): Likewise.
6344         (likely_value): Likewise.
6345         (surely_varying_stmt_p): Likewise.
6346         (ccp_initialize): Likewise.
6347         (ccp_lattice_meet): Likewise.
6348         (ccp_visit_phi_node): Likewise.
6349         (ccp_fold): Likewise.
6350         (evaluate_stmt): Likewise.
6351         (visit_assignment): Likewise.
6352         (ccp_visit_stmt): Likewise.
6353         (execute_ssa_ccp): Fold into ...
6354         (do_ssa_ccp): ... this.
6355         (do_ssa_store_ccp): Remove.
6356         (gate_store_ccp): Likewise.
6357         (pass_store_ccp): Likewise.
6358         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
6359         initialize mem_ref.
6360         * tree-ssa-propagate.c (first_vdef): Remove.
6361         (get_value_loaded_by): Likewise.
6362         (replace_vuses_in): Likewise.
6363         (substitute_and_fold): Do not call replace_vuses_in.
6364         * opts.c (decode_options): Do not set flag_tree_store_ccp.
6365
6366 2008-08-29  Richard Guenther  <rguenther@suse.de>
6367
6368         PR middle-end/37236
6369         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
6370         PARAM_NOALIAS tags with is_heapvar.
6371         * tree-ssa-operands.c (access_can_touch_variable): Offset
6372         based tests do not apply for heapvars.  Fix offset test.
6373
6374 2008-08-29  Jan Hubicka  <jh@suse.cz>
6375
6376         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
6377         (-fipa-cp-clone): Enabled by default at -O3.
6378         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
6379         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
6380
6381 2008-08-29  Jan Hubicka  <jh@suse.cz>
6382
6383         * tree.c (build_function_type_skip_args,
6384         build_function_decl_skip_args): New functions.
6385         * tree.h (build_function_type_skip_args,
6386         build_function_decl_skip_args): Declare.
6387         * gimple.c (giple_copy_call_skip_args): New function.
6388         (giple_copy_call_skip_args): Declare.
6389
6390         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
6391         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
6392         (ipcp_node_modifiable_p): ... this one; use
6393         tree_versionable_function_p.
6394         (ipcp_create_replace_map): Improve debug output.
6395         (ipcp_need_redirect_p): Return false when not clonning.
6396         (ipcp_update_callgraph): Skip args.
6397         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
6398         skip args.
6399         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
6400         (save_inline_function_body): Update call of tree_function_versioning.
6401         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
6402         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
6403         argument.
6404         (tree_function_versioning): Likewise.
6405         * tree-inline.h (tree_function_versioning): Update prototype.
6406
6407 2008-08-29  Jan Hubicka  <jh@suse.cz>
6408
6409         * loop-unswitch.c (unswitch_single_loop): Use
6410         optimize_loop_for_speed_p.
6411         * tree-ssa-threadupdate.c (mark_threaded_blocks):
6412         Use optimize_function_for_size_p.
6413         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
6414         * postreload-gcse.c (eliminate_partially_redundant_load):
6415         Use optimize_bb_for_size_p.
6416         * value-prof.c (gimple_divmod_fixed_value_transform,
6417         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
6418         gimple_stringops_transform): Use optimize_bb_for_size_p.
6419         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
6420         * final.c (compute_alignments): Use optimize_function_for_size_p.
6421         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
6422         (fold_builtin_strcpy, fold_builtin_fputs): Use
6423         optimize_function_for_size_p.
6424         * fold-const.c (tree_swap_operands_p): Use
6425         optimize_function_for_size_p.
6426         * recog.c (relax_delay_slots): Likewise.
6427         * tree-ssa-math-opts.c (replace_reciprocal):
6428         Use optimize_bb_for_speed_p.
6429         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
6430         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
6431         optimize_function_for_size_p.
6432         (cgraph_decide_inlining_of_small_function): Use
6433         optimize_function_for_size_p.
6434         * global.c (find_reg): Use optimize_function_for_size_p.
6435         * opts.c (decode_options): Do not clear flag_tree_ch,
6436         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
6437         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
6438         work it out from profile.
6439         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
6440         optimize_loop_for_speed_p.
6441         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
6442         Constify argument.
6443         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
6444         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
6445         * tree-eh.c (decide_copy_try_finally): Use
6446         optimize_function_for_size_p.
6447         * local-alloc.c (block_alloc): Pass BB pointer.
6448         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
6449         * gcse.c (gcse_main): Use optimize_function_for_size_p.
6450         * loop-unroll.c (decide_unrolling_and_peeling):
6451         Use optimize_loop_for_size_p.
6452         (decide_peel_completely): Likewise.
6453         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
6454         optimize_loop_for_size_p.
6455         (vect_enhance_data_refs_alignment): Likewise.
6456         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
6457         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
6458         Update call.
6459         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
6460         (try_crossjump_bb): Use optimize_bb_for_size_p.
6461         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
6462         optimize_loop_for_speed_p.
6463         * bb-reorder.c (find_traces_1_round): Likewise.
6464         (copy_bb): Use optimize_bb_for_speed_p.
6465         (duplicate_computed_gotos): Likewise.
6466         * basic-block.h (optimize_loop_nest_for_size_p,
6467         optimize_loop_nest_for_speed_p): New.
6468         * stmt.c (expand_case): Use optimize_insn_for_size_p.
6469
6470 2008-08-29  Tristan Gingold  <gingold@adacore.com>
6471
6472         * gcov.c (main): Call expandargv.
6473
6474 2008-08-29  Jan Hubicka  <jh@suse.cz>
6475
6476         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
6477         is not cold.
6478         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
6479         Constify arguments.
6480         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
6481         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
6482         Constify.
6483         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
6484
6485 2008-08-29  Jan Hubicka  <jh@suse.cz>
6486
6487         * tree-pass.h (pass_strip_predict_hints): Declare.
6488         * predict.c (strip_builtin_expect): Rename to ...
6489         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
6490         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
6491         (tree_estimate_probability): Do not strip builtin_expect.
6492         (pass_strip_predict_hints): New pass.
6493         * tree-inline.c (expand_call_inline): When inlining cold function,
6494         predict it as unlikely.
6495         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
6496
6497 2008-08-29  Richard Guenther  <rguenther@suse.de>
6498
6499         PR tree-optimization/37207
6500         * tree-vrp.c (extract_range_from_binary_expr): Also try
6501         to constant fold if only one of the operands is a constant.
6502
6503 2008-08-29  Nick Clifton  <nickc@redhat.com>
6504
6505         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
6506         the same way as SYMBOL_REFs.
6507
6508 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
6509
6510         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
6511
6512 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
6513
6514         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
6515         * config/mips/mips.md (branch_likely): Remove const.  Fix
6516         comment formatting.
6517         (define_delay for type "branch"): Change to only apply for branch
6518         with likely variant.
6519         (define_delay for type "branch" and "branch_likely" no).  New delay
6520         definition.
6521         (equality_op): New code iterator.
6522         (bbv, bbinv): New code attributes.
6523         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
6524         patterns.
6525
6526 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6527             Andrew Pinski  <pinskia@gcc.gnu.org>
6528
6529         PR 18050
6530         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
6531
6532 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
6533
6534         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
6535         rule that a symbolic constant must be defined and >= 0 for the
6536         corresponding facility to be present at compile-time.
6537         * gthr-posix.c: Likewise.
6538
6539 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
6540
6541         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
6542         * config/mips/mips.md (D): New mode attribute.
6543         (mulsi3, muldi3): Merge it into ...
6544         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
6545         (muldi3_mul3): New pattern.
6546         (mulsi3_mult3): Rename to mulsi3_mul3.
6547
6548 2008-08-28  Jan Hubicka  <jh@suse.cz>
6549
6550         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
6551         to fail.
6552         * predict.c (always_optimize_for_size_p): Rename to ...
6553         (optimize_function_for_size): ... this one; make extern.
6554         (optimize_function_for_speed_p): New.
6555         (optimize_bb_for_size_p, optimize_bb_for_size_p,
6556         optimize_edge_for_size_p,optimize_edge_for_size_p,
6557         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
6558         * basic-block.h (optimize_function_for_size_p,
6559         optimize_function_for_speed_p): Declare.
6560         * i386.md (optimize_size checks): Replace them by appropriate
6561         predicate.
6562         (standard_80387_constant_p, ix86_compute_frame_layout,
6563         ix86_expand_epilogue, ix86_decompose_address,
6564         print_operand, emit_i387_cw_initialization,
6565         inline_memory_move_cost, ix86_pad_returns,
6566         ix86_reorg): Replace optimize_size checks.
6567
6568 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6569
6570         * rtl.h (simplify_subreg_regno): Declare.
6571         * rtlanal.c (simplify_subreg_regno): New function, split out from...
6572         * simplify-rtx.c (simplify_subreg): ...here.
6573         * reload.c (find_reloads): Use simplify_subreg_regno instead of
6574         subreg_offset_representable_p.
6575
6576 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6577
6578         PR c/30949
6579         * c-typeck.c (convert_for_assignment): Give a note describing what
6580         was passed and what was expected.
6581
6582 2008-08-28  Joey Ye  <joey.ye@intel.com>
6583
6584         * doc/extend.texi: Document AVX built-in functions.
6585         * doc/invoke.texi: Document -mavx.
6586
6587 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
6588             Joey Ye  <joey.ye@intel.com>
6589             Xuepeng Guo  <xuepeng.guo@intel.com>
6590
6591         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
6592
6593         * config/i386/cpuid.h (bit_FMA): New.
6594         (bit_XSAVE): Likewise.
6595         (bit_OSXSAVE): Likewise.
6596         (bit_AVX): Likewise.
6597
6598         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
6599         define.  Use ASM_OUTPUT_AVX_PREFIX.
6600
6601         * config/i386/gmmintrin.h: New.
6602
6603         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
6604         (OPTION_MASK_ISA_AVX_SET): New.
6605         (OPTION_MASK_ISA_FMA_SET): Likewise.
6606         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
6607         (OPTION_MASK_ISA_FMA_SET): Likewise.
6608         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
6609         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
6610         (pta_flags): Add PTA_AVX and PTA_FMA.
6611         (override_options): Handle PTA_AVX and PTA_FMA.
6612         (init_cumulative_args): Handle warn_avx.
6613         (classify_argument): Return 0 for COImode and OImode.  Return
6614         1 and X86_64_AVX_CLASS for 256bit vector types.
6615         (examine_argument): Handle X86_64_AVX_CLASS.
6616         (construct_container): Likewise.
6617         (function_arg_advance_32): Pass OImode and 256bit vector types
6618         in AVX register.
6619         (function_arg_advance_64): Take a new argument to indicate if a
6620         parameter is named.  Handle 256bit vector types.  Return
6621         immediately for unnamed 256bit vector mode parameters.
6622         (function_arg_advance): Updated.
6623         (function_arg_32): Add comments for TImode.  Handle OImode
6624         and 256bit vector types.
6625         (function_arg_64): Take a new argument to indicate if a
6626         parameter is named.  Handle 256bit vector types.  Return NULL
6627         for unnamed 256bit vector mode parameters.
6628         (function_arg): Updated.
6629         (setup_incoming_varargs_64): Support
6630         AVX encoding for *sse_prologue_save_insn.
6631         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
6632         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
6633         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
6634         enabled, otherwise return -3.
6635         (standard_sse_constant_opcode): Handle AVX and 256bit vector
6636         modes.
6637         (print_reg): Support AVX registers.  Handle 'x' and 't'.
6638         Handle 'd' to duplicate the operand.
6639         (print_operand): Likewise.  Also support AVX vector compare
6640         instructions.
6641         (output_387_binary_op): Support AVX.
6642         (output_fp_compare): Likewise.
6643         (ix86_expand_vector_move_misalign): Likewise.
6644         (ix86_attr_length_vex_default): New.
6645         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
6646         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
6647         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
6648         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
6649         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
6650         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
6651         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
6652         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
6653         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
6654         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
6655         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
6656         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
6657         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
6658         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
6659         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
6660         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
6661         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
6662         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
6663         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
6664         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
6665         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
6666         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
6667         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
6668         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
6669         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
6670         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
6671         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
6672         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
6673         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
6674         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
6675         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
6676         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
6677         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
6678         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
6679         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
6680         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
6681         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
6682         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
6683         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
6684         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
6685         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
6686         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
6687         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
6688         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
6689         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
6690         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
6691         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
6692         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
6693         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
6694         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
6695         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
6696         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
6697         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
6698         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
6699         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
6700         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
6701         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
6702         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
6703         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
6704         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
6705         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
6706         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
6707         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
6708         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
6709         and IX86_BUILTIN_MOVMSKPS256,
6710         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
6711         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
6712         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
6713         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
6714         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
6715         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
6716         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
6717         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
6718         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
6719         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
6720         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
6721         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
6722         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
6723         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
6724         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
6725         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
6726         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
6727         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
6728         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
6729         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
6730         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
6731         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
6732         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
6733         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
6734         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
6735         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6736         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
6737         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
6738         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
6739         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
6740         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
6741         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
6742         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
6743         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
6744         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
6745         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
6746         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
6747         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
6748         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
6749         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
6750         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
6751         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
6752         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
6753         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
6754         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
6755         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
6756         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
6757         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
6758         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
6759         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
6760         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
6761         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
6762         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
6763         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
6764         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
6765         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
6766         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
6767         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
6768         IX86_BUILTIN_CMPPS,
6769         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
6770         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
6771         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
6772         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
6773         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
6774         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
6775         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
6776         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
6777         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
6778         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
6779         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
6780         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
6781         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6782         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
6783         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
6784         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
6785         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
6786         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
6787         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
6788         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
6789         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
6790         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
6791         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
6792         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
6793         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
6794         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
6795         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
6796         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
6797         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
6798         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
6799         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
6800         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
6801         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
6802         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
6803         IX86_BUILTIN_MOVMSKPS256.
6804         (ix86_init_mmx_sse_builtins): Support AVX builtins.
6805         (ix86_expand_args_builtin): Likewise.
6806         (ix86_expand_special_args_builtin): Likewise.
6807         (ix86_hard_regno_mode_ok): Handle AVX modes.
6808         (ix86_expand_vector_init_duplicate): Likewise.
6809         (ix86_expand_vector_init_one_nonzero): Likewise.
6810         (ix86_expand_vector_init_one_var): Likewise.
6811         (ix86_expand_vector_init_concat): Likewise.
6812         (ix86_expand_vector_init_general): Likewise.
6813         (ix86_expand_vector_set): Likewise.
6814         (ix86_vector_mode_supported_p): Likewise.
6815         (x86_extended_reg_mentioned_p): Check INSN_P before using
6816         PATTERN.
6817
6818         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6819         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
6820
6821         * config/i386/i386.h (TARGET_AVX): New.
6822         (TARGET_FMA): Likewise.
6823         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
6824         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
6825         (VALID_AVX256_REG_MODE): New.
6826         (AVX256_VEC_FLOAT_MODE_P): Likewise.
6827         (AVX_FLOAT_MODE_P): Likewise.
6828         (AVX128_VEC_FLOAT_MODE_P): Likewise.
6829         (AVX256_VEC_FLOAT_MODE_P): Likewise.
6830         (AVX_VEC_FLOAT_MODE_P): Likewise.
6831         (ASM_OUTPUT_AVX_PREFIX): Likewise.
6832         (ASM_OUTPUT_OPCODE): Likewise.
6833         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
6834         support.
6835         (SSE_REG_MODE_P): Allow 256bit vector modes.
6836         (ix86_args): Add a warn_avx field.
6837
6838         * config/i386/i386.md (UNSPEC_PCMP): New.
6839         (UNSPEC_VPERMIL): Likewise.
6840         (UNSPEC_VPERMIL2): Likewise.
6841         (UNSPEC_VPERMIL2F128): Likewise.
6842         (UNSPEC_MASKLOAD): Likewise.
6843         (UNSPEC_MASKSTORE): Likewise.
6844         (UNSPEC_CAST): Likewise.
6845         (UNSPEC_VTESTP): Likewise.
6846         (UNSPECV_VZEROALL): Likewise.
6847         (UNSPECV_VZEROUPPER): Likewise.
6848         (XMM0_REG): Likewise.
6849         (XMM1_REG): Likewise.
6850         (XMM2_REG): Likewise.
6851         (XMM3_REG): Likewise.
6852         (XMM4_REG): Likewise.
6853         (XMM5_REG): Likewise.
6854         (XMM6_REG): Likewise.
6855         (XMM8_REG): Likewise.
6856         (XMM9_REG): Likewise.
6857         (XMM10_REG): Likewise.
6858         (XMM11_REG): Likewise.
6859         (XMM12_REG): Likewise.
6860         (XMM13_REG): Likewise.
6861         (XMM14_REG): Likewise.
6862         (XMM15_REG): Likewise.
6863         (prefix): Likewise.
6864         (prefix_vex_imm8): Likewise.
6865         (prefix_vex_w): Likewise.
6866         (length_vex): Likewise.
6867         (maxmin): Likewise.
6868         (movoi): Likewise.
6869         (*avx_ashlti3): Likewise.
6870         (*avx_lshrti3): Likewise.
6871         (*avx_setcc<mode>): Likewise.
6872         (*fop_<mode>_comm_mixed_avx): Likewise.
6873         (*fop_<mode>_comm_avx): Likewise.
6874         (*fop_<mode>_1_mixed_avx): Likewise.
6875         (*fop_<mode>_1_avx): Likewise.
6876         (*avx_<code><mode>3): Likewise.
6877         (*avx_ieee_smin<mode>3): Likewise.
6878         (*avx_ieee_smax<mode>3): Likewise.
6879         (mode): Add OI, V8SF and V4DF.
6880         (length): Support VEX prefix.
6881         (*cmpfp_i_mixed): Set prefix attribute.
6882         (*cmpfp_i_sse): Likewise.
6883         (*cmpfp_iu_mixed): Likewise.
6884         (*cmpfp_iu_sse): Likewise.
6885         (*movsi_1): Support AVX.
6886         (*movdi_2): Likewise.
6887         (*movdi_1_rex64): Likewise.
6888         (*movti_internal): Likewise.
6889         (*movti_rex64): Likewise.
6890         (*movsf_1): Likewise.
6891         (*movdf_nointeger): Likewise.
6892         (*movdf_integer_rex64): Likewise.
6893         (*movtf_internal): Likewise.
6894         (zero_extendsidi2_32): Likewise.
6895         (zero_extendsidi2_rex64): Likewise.
6896         (*extendsfdf2_mixed): Likewise.
6897         (*extendsfdf2_sse): Likewise.
6898         (*truncdfsf_fast_mixed): Likewise.
6899         (*truncdfsf_fast_sse): Likewise.
6900         (*truncdfsf_mixed): Likewise.
6901         (fix_trunc<mode>di_sse): Likewise.
6902         (fix_trunc<mode>si_sse): Likewise.
6903         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6904         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6905         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6906         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6907         (*rcpsf2_sse): Likewise.
6908         (*rsqrtsf2_sse): Likewise.
6909         (*sqrt<mode>2_sse): Likewise.
6910         (sse4_1_round<mode>2): Likewise.
6911         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
6912         Support AVX.  Set length attribute properly for AVX.
6913
6914         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
6915         (VECTOR_MODES (FLOAT, 32)): Likewise.
6916         (VECTOR_MODE (INT, DI, 8)): Likewise.
6917         (VECTOR_MODE (INT, HI, 32)): Likewise.
6918         (VECTOR_MODE (INT, QI, 64)): Likewise.
6919         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
6920         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
6921         (VECTOR_MODE (INT, DI, 4)): Removed.
6922         (VECTOR_MODE (INT, SI, 8)): Likewise.
6923         (VECTOR_MODE (INT, HI, 16)): Likewise.
6924         (VECTOR_MODE (INT, QI, 32)): Likewise.
6925         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
6926         (INT_MODE (OI, 32)): Likewise.
6927
6928         * config/i386/i386.opt (mavx): New.
6929         (mfma): Likewise.
6930
6931         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
6932
6933         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
6934         (*mov<mode>_internal_avx): New.
6935         (*movv2sf_internal_rex64_avx): Likewise.
6936         (*movv2sf_internal_avx): Likewise.
6937
6938         * config/i386/predicates.md (const_4_to_5_operand): New.
6939         (const_6_to_7_operand): Likewise.
6940         (const_8_to_11_operand): Likewise.
6941         (const_12_to_15_operand): Likewise.
6942         (avx_comparison_float_operator): Likewise.
6943
6944         * config/i386/sse.md (AVX256MODEI): New.
6945         (AVX256MODE): Likewise.
6946         (AVXMODEQI): Likewise.
6947         (AVXMODE): Likewise.
6948         (AVX256MODEF2P): Likewise.
6949         (AVX256MODE2P): Likewise.
6950         (AVX256MODE4P): Likewise.
6951         (AVX256MODE8P): Likewise.
6952         (AVXMODEF2P): Likewise.
6953         (AVXMODEF4P): Likewise.
6954         (AVXMODEDCVTDQ2PS): Likewise.
6955         (AVXMODEDCVTPS2DQ): Likewise.
6956         (avxvecmode): Likewise.
6957         (avxvecpsmode): Likewise.
6958         (avxhalfvecmode): Likewise.
6959         (avxscalarmode): Likewise.
6960         (avxcvtvecmode): Likewise.
6961         (avxpermvecmode): Likewise.
6962         (avxmodesuffixf2c): Likewise.
6963         (avxmodesuffixp): Likewise.
6964         (avxmodesuffixs): Likewise.
6965         (avxmodesuffix): Likewise.
6966         (vpermilbits): Likewise.
6967         (pinsrbits): Likewise.
6968         (mov<mode>): Likewise.
6969         (*mov<mode>_internal): Likewise.
6970         (push<mode>1): Likewise.
6971         (movmisalign<mode>): Likewise.
6972         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6973         (avx_movdqu<avxmodesuffix>): Likewise.
6974         (avx_lddqu<avxmodesuffix>): Likewise.
6975         (<plusminus_insn><mode>3): Likewise.
6976         (*avx_<plusminus_insn><mode>3): Likewise.
6977         (*avx_vm<plusminus_insn><mode>3): Likewise.
6978         (mul<mode>3): Likewise.
6979         (*avx_mul<mode>3): Likewise.
6980         (*avx_vmmul<mode>3): Likewise.
6981         (divv8sf3): Likewise.
6982         (divv4df3): Likewise.
6983         (avx_div<mode>3): Likewise.
6984         (*avx_div<mode>3): Likewise.
6985         (*avx_vmdiv<mode>3): Likewise.
6986         (avx_rcpv8sf2): Likewise.
6987         (*avx_vmrcpv4sf2): Likewise.
6988         (sqrtv8sf2): Likewise.
6989         (avx_sqrtv8sf2): Likewise.
6990         (*avx_vmsqrt<mode>2): Likewise.
6991         (rsqrtv8sf2): Likewise.
6992         (avx_rsqrtv8sf2): Likewise.
6993         (*avx_vmrsqrtv4sf2): Likewise.
6994         (<code><mode>3): Likewise.
6995         (*avx_<code><mode>3_finite): Likewise.
6996         (*avx_<code><mode>3): Likewise.
6997         (*avx_vm<code><mode>3): Likewise.
6998         (*avx_ieee_smin<mode>3): Likewise.
6999         (*avx_ieee_smax<mode>3): Likewise.
7000         (avx_addsubv8sf3): Likewise.
7001         (avx_addsubv4df3): Likewise.
7002         (*avx_addsubv4sf3): Likewise.
7003         (*avx_addsubv2df3): Likewise.
7004         (avx_h<plusminus_insn>v4df3): Likewise.
7005         (avx_h<plusminus_insn>v8sf3): Likewise.
7006         (*avx_h<plusminus_insn>v4sf3): Likewise.
7007         (*avx_h<plusminus_insn>v2df3): Likewise.
7008         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
7009         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
7010         (*avx_maskcmp<mode>3): Likewise.
7011         (avx_nand<mode>3): Likewise.
7012         (*avx_<code><mode>3): Likewise.
7013         (*avx_nand<mode>3): Likewise.
7014         (*avx_<code><mode>3): Likewise.
7015         (*avx_cvtsi2ss): Likewise.
7016         (*avx_cvtsi2ssq): Likewise.
7017         (*avx_cvtsi2sd): Likewise.
7018         (*avx_cvtsi2sdq): Likewise.
7019         (*avx_cvtsd2ss): Likewise.
7020         (avx_cvtss2sd): Likewise.
7021         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
7022         (avx_cvtps2dq<avxmodesuffix>): Likewise.
7023         (avx_cvttps2dq<avxmodesuffix>): Likewise.
7024         (*avx_cvtsi2sd): Likewise.
7025         (*avx_cvtsi2sdq): Likewise.
7026         (avx_cvtdq2pd256): Likewise.
7027         (avx_cvtpd2dq256): Likewise.
7028         (avx_cvttpd2dq256): Likewise.
7029         (*avx_cvtsd2ss): Likewise.
7030         (*avx_cvtss2sd): Likewise.
7031         (avx_cvtpd2ps256): Likewise.
7032         (avx_cvtps2pd256): Likewise.
7033         (*avx_movhlps): Likewise.
7034         (*avx_movlhps): Likewise.
7035         (avx_unpckhps256): Likewise.
7036         (*avx_unpckhps): Likewise.
7037         (avx_unpcklps256): Likewise.
7038         (*avx_unpcklps): Likewise.
7039         (avx_movshdup256): Likewise.
7040         (avx_movsldup256): Likewise.
7041         (avx_shufps256): Likewise.
7042         (avx_shufps256_1): Likewise.
7043         (*avx_shufps_<mode>): Likewise.
7044         (*avx_loadhps): Likewise.
7045         (*avx_storelps): Likewise.
7046         (*avx_loadlps): Likewise.
7047         (*avx_movss): Likewise.
7048         (*vec_dupv4sf_avx): Likewise.
7049         (*vec_concatv2sf_avx): Likewise.
7050         (*vec_concatv4sf_avx): Likewise.
7051         (*vec_setv4sf_0_avx): Likewise.
7052         (*vec_setv4sf_avx): Likewise.
7053         (*avx_insertps): Likewise.
7054         (avx_vextractf128<mode>): Likewise.
7055         (vec_extract_lo_<mode>): Likewise.
7056         (vec_extract_hi_<mode>): Likewise.
7057         (vec_extract_lo_<mode>): Likewise.
7058         (vec_extract_hi_<mode>): Likewise.
7059         (vec_extract_lo_v16hi): Likewise.
7060         (vec_extract_hi_v16hi): Likewise.
7061         (vec_extract_lo_v32qi): Likewise.
7062         (vec_extract_hi_v32qi): Likewise.
7063         (avx_unpckhpd256): Likewise.
7064         (*avx_unpckhpd): Likewise.
7065         (avx_movddup256): Likewise.
7066         (*avx_movddup): Likewise.
7067         (avx_unpcklpd256): Likewise.
7068         (*avx_unpcklpd): Likewise.
7069         (avx_shufpd256): Likewise.
7070         (avx_shufpd256_1): Likewise.
7071         (*avx_punpckhqdq): Likewise.
7072         (*avx_punpcklqdq): Likewise.
7073         (*avx_shufpd_<mode>): Likewise.
7074         (*avx_storehpd): Likewise.
7075         (*avx_loadhpd): Likewise.
7076         (*avx_loadlpd): Likewise.
7077         (*avx_movsd): Likewise.
7078         (*vec_concatv2df_avx): Likewise.
7079         (*avx_<plusminus_insn><mode>3): Likewise.
7080         (*avx_<plusminus_insn><mode>3): Likewise.
7081         (*avx_mulv8hi3): Likewise.
7082         (*avxv8hi3_highpart): Likewise.
7083         (*avx_umulv8hi3_highpart): Likewise.
7084         (*avx_umulv2siv2di3): Likewise.
7085         (*avx_mulv2siv2di3): Likewise.
7086         (*avx_pmaddwd): Likewise.
7087         (*avx_mulv4si3): Likewise.
7088         (*avx_ashr<mode>3): Likewise.
7089         (*avx_lshr<mode>3): Likewise.
7090         (*avx_ashl<mode>3): Likewise.
7091         (*avx_<code><mode>3): Likewise.
7092         (*avx_eq<mode>3): Likewise.
7093         (*avx_gt<mode>3): Likewise.
7094         (*avx_nand<mode>3): Likewise.
7095         (*avx_nand<mode>3): Likewise.
7096         (*avx_<code><mode>3): Likewise.
7097         (*avx_<code><mode>3): Likewise.
7098         (*avx_packsswb): Likewise.
7099         (*avx_packssdw): Likewise.
7100         (*avx_packuswb): Likewise.
7101         (*avx_punpckhbw): Likewise.
7102         (*avx_punpcklbw): Likewise.
7103         (*avx_punpckhwd): Likewise.
7104         (*avx_punpcklwd): Likewise.
7105         (*avx_punpckhdq): Likewise.
7106         (*avx_punpckldq): Likewise.
7107         (*avx_pinsr<avxmodesuffixs>): Likewise.
7108         (*avx_pinsrq): Likewise.
7109         (*avx_loadld): Likewise.
7110         (*vec_extractv2di_1_rex64_avx): Likewise.
7111         (*vec_extractv2di_1_avx): Likewise.
7112         (*vec_dupv2di_avx): Likewise.
7113         (*vec_concatv2si_avx): Likewise.
7114         (*vec_concatv4si_1_avx): Likewise.
7115         (*vec_concatv2di_avx): Likewise.
7116         (*vec_concatv2di_rex64_avx): Likewise.
7117         (*avx_uavgv16qi3): Likewise.
7118         (*avx_uavgv8hi3): Likewise.
7119         (*avx_psadbw): Likewise.
7120         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
7121         (*avx_phaddwv8hi3): Likewise.
7122         (*avx_phadddv4si3): Likewise.
7123         (*avx_phaddswv8hi3): Likewise.
7124         (*avx_phsubwv8hi3): Likewise.
7125         (*avx_phsubdv4si3): Likewise.
7126         (*avx_phsubswv8hi3): Likewise.
7127         (*avx_pmaddubsw128): Likewise.
7128         (*avx_pmulhrswv8hi3): Likewise.
7129         (*avx_pshufbv16qi3): Likewise.
7130         (*avx_psign<mode>3): Likewise.
7131         (*avx_palignrti): Likewise.
7132         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7133         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7134         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7135         (*avx_mpsadbw): Likewise.
7136         (*avx_packusdw): Likewise.
7137         (*avx_pblendvb): Likewise.
7138         (*avx_pblendw): Likewise.
7139         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7140         (avx_ptest256): Likewise.
7141         (avx_roundp<avxmodesuffixf2c>256): Likewise.
7142         (*avx_rounds<ssemodesuffixf2c>): Likewise.
7143         (*avx_aesenc): Likewise.
7144         (*avx_aesenclast): Likewise.
7145         (*avx_aesdec): Likewise.
7146         (*avx_aesdeclast): Likewise.
7147         (avx_vzeroupper): Likewise.
7148         (avx_vzeroupper_rex64): Likewise.
7149         (avx_vpermil<mode>): Likewise.
7150         (avx_vpermilvar<mode>3): Likewise.
7151         (avx_vpermil2<mode>3): Likewise.
7152         (avx_vperm2f128<mode>3): Likewise.
7153         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7154         (avx_vbroadcastss256): Likewise.
7155         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
7156         (avx_vinsertf128<mode>): Likewise.
7157         (vec_set_lo_<mode>): Likewise.
7158         (vec_set_hi_<mode>): Likewise.
7159         (vec_set_lo_<mode>): Likewise.
7160         (vec_set_hi_<mode>): Likewise.
7161         (vec_set_lo_v16hi): Likewise.
7162         (vec_set_hi_v16hi): Likewise.
7163         (vec_set_lo_v32qi): Likewise.
7164         (vec_set_hi_v32qi): Likewise.
7165         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7166         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7167         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
7168         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
7169         (vec_init<mode>): Likewise.
7170         (*vec_concat<mode>_avx): Likewise.
7171         (blendbits): Support V8SF and V4DF.
7172         (sse2_movq128): Support AVX.
7173         (<sse>_movnt<mode>): Likewise.
7174         (sse2_movntv2di): Likewise.
7175         (sse_rcpv4sf2): Likewise.
7176         (sse_sqrtv4sf2): Likewise.
7177         (sse_rsqrtv4sf2): Likewise.
7178         (<sse>_comi): Likewise.
7179         (<sse>_ucomi): Likewise.
7180         (sse_cvtss2si): Likewise.
7181         (sse_cvtss2si_2): Likewise.
7182         (sse_cvtss2siq): Likewise.
7183         (sse_cvtss2siq_2): Likewise.
7184         (sse_cvttss2si): Likewise.
7185         (sse_cvttss2siq): Likewise.
7186         (sse2_cvtsd2si): Likewise.
7187         (sse2_cvtsd2si_2): Likewise.
7188         (sse2_cvtsd2siq): Likewise.
7189         (sse2_cvtsd2siq_2): Likewise.
7190         (sse2_cvttsd2si): Likewise.
7191         (sse2_cvttsd2siq): Likewise.
7192         (sse2_cvtdq2pd): Likewise.
7193         (*sse2_cvtpd2dq): Likewise.
7194         (*sse2_cvttpd2dq): Likewise.
7195         (*sse2_cvtpd2ps): Likewise.
7196         (sse2_cvtps2pd): Likewise.
7197         (sse3_movshdup): Likewise.
7198         (sse3_movsldup): Likewise.
7199         (sse_storehps): Likewise.
7200         (*sse4_1_extractps): Likewise.
7201         (sse2_storelpd): Likewise.
7202         (vec_dupv2df_sse3): Likewise.
7203         (*vec_concatv2df_sse3): Likewise.
7204         (*sse4_1_pextrb): Likewise.
7205         (*sse4_1_pextrb_memory): Likewise.
7206         (*sse2_pextrw): Likewise.
7207         (*sse4_1_pextrw_memory): Likewise.
7208         (*sse4_1_pextrd): Likewise.
7209         (*sse4_1_pextrq): Likewise.
7210         (sse2_pshufd_1): Likewise.
7211         (sse2_pshuflw_1): Likewise.
7212         (sse2_pshufhw_1): Likewise.
7213         (*sse2_storeq_rex64): Likewise.
7214         (*vec_dupv4si): Likewise.
7215         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
7216         (sse2_pmovmskb): Likewise.
7217         (*sse2_maskmovdqu): Likewise.
7218         (*sse2_maskmovdqu_rex64): Likewise.
7219         (sse_ldmxcsr): Likewise.
7220         (sse_stmxcsr): Likewise.
7221         (abs<mode>2): Likewise.
7222         (sse4_1_movntdqa): Likewise.
7223         (sse4_1_phminposuw): Likewise.
7224         (sse4_1_extendv8qiv8hi2): Likewise.
7225         (*sse4_1_extendv8qiv8hi2): Likewise.
7226         (sse4_1_extendv4qiv4si2): Likewise.
7227         (*sse4_1_extendv4qiv4si2): Likewise.
7228         (sse4_1_extendv2qiv2di2): Likewise.
7229         (*sse4_1_extendv2qiv2di2): Likewise.
7230         (sse4_1_extendv4hiv4si2): Likewise.
7231         (*sse4_1_extendv4hiv4si2): Likewise.
7232         (sse4_1_extendv2hiv2di2): Likewise.
7233         (*sse4_1_extendv2hiv2di2): Likewise.
7234         (sse4_1_extendv2siv2di2): Likewise.
7235         (*sse4_1_extendv2siv2di2): Likewise.
7236         (sse4_1_zero_extendv8qiv8hi2): Likewise.
7237         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
7238         (sse4_1_zero_extendv4qiv4si2): Likewise.
7239         (*sse4_1_zero_extendv4qiv4si2): Likewise.
7240         (sse4_1_zero_extendv2qiv2di2): Likewise.
7241         (*sse4_1_zero_extendv2qiv2di2): Likewise.
7242         (sse4_1_zero_extendv4hiv4si2): Likewise.
7243         (*sse4_1_zero_extendv4hiv4si2): Likewise.
7244         (sse4_1_zero_extendv2hiv2di2): Likewise.
7245         (*sse4_1_zero_extendv2hiv2di2): Likewise.
7246         (sse4_1_zero_extendv2siv2di2): Likewise.
7247         (*sse4_1_zero_extendv2siv2di2): Likewise.
7248         (sse4_1_ptest): Likewise.
7249         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
7250         (sse4_2_pcmpestri): Likewise.
7251         (sse4_2_pcmpestrm): Likewise.
7252         (sse4_2_pcmpistri): Likewise.
7253         (sse4_2_pcmpistrm): Likewise.
7254         (aesimc): Likewise.
7255         (aeskeygenassist): Likewise.
7256
7257 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
7258
7259         * config/i386/predicates.md (vzeroall_operation): New.
7260
7261         * config/i386/sse.md (avx_vzeroall): New.
7262         (*avx_vzeroall): Likewise.
7263
7264 2008-08-28  Paul Brook  <paul@codesourcery.com>
7265             Mark Shinwell  <shinwell@codesourcery.com>
7266             Richard Earnshaw  <richard.earnshaw@arm.com>
7267
7268         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
7269         (TARGET_MIN_ANCHOR_OFFSET): New.
7270         (arm_override_options): Set correct anchor ranges for Thumb-1
7271         and Thumb-2 if required.
7272         (legitimize_pic_address): Handle case involving a TLS symbol
7273         reference with an addend.
7274         (arm_optimization_options): Enable section anchors at -O1 and
7275         above.
7276         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
7277         * config/arm/arm-protos.h (arm_optimization_options): New.
7278
7279 2008-08-28  Nick Clifton  <nickc@redhat.com>
7280
7281         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
7282         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
7283         attribute.
7284
7285         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
7286         * config/v850/v850.md (return): Remove frame size restriction.
7287
7288         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
7289
7290         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
7291
7292         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
7293
7294         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
7295
7296 2008-08-28  Paul Brook  <paul@codesourcery.com>
7297
7298         * config/arm/vfp11.md: Update license notice.
7299         * config/arm/cortex-r4.md: Ditto.
7300
7301 2008-08-28  Richard Guenther  <rguenther@suse.de>
7302
7303         PR tree-optimization/37207
7304         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
7305         tuplification bug.
7306
7307 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
7308
7309         PR c++/36741
7310         * tree.c (int_fits_type_p): Don't forget unsigned integers
7311           of type sizetype which higher end word equals -1.
7312
7313 2008-08-28  Ira Rosen  <irar@il.ibm.com>
7314
7315         * target.h (struct vectorize): Add new target builtin.
7316         * tree-vectorizer.c (destroy_loop_vec_info): Call
7317         vect_free_slp_instance instead of vect_free_slp_node.
7318         * tree-vectorizer.h (enum slp_load_perm_type): New.
7319         (struct _slp_instance): Add new fields.
7320         (SLP_INSTANCE_LOAD_PERMUTATION): New.
7321         (SLP_INSTANCE_LOADS): New.
7322         (vect_free_slp_tree): Remove.
7323         (vect_free_slp_instance): Declare.
7324         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
7325         (vectorizable_load): Add argument.
7326         (vect_transform_slp_perm_load): New.
7327         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
7328         vectorizable_load.
7329         (vect_get_place_in_interleaving_chain): New function.
7330         (vect_free_slp_tree): Make static.
7331         (vect_free_slp_instance): New function.
7332         (vect_build_slp_tree): Add new arguments. Allow load permutations and
7333         collect the load location in the interleaving chain.
7334         (vect_supported_slp_permutation_p): New function.
7335         (vect_supported_load_permutation_p): Likewise.
7336         (vect_analyze_slp_instance): In case of loads permutation, call
7337         vect_supported_load_permutation_p to check that the permutation is
7338         supported.
7339         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
7340         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
7341         (vect_create_mask_and_perm): New function.
7342         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
7343         (vectorizable_load): Add an argument. Don't keep the created vectors
7344         statements in the node if permutation is required. Call
7345         vect_transform_slp_perm_load to generate the permutation.
7346         (vect_transform_stmt): Add new argument. Call vectorizable_load with
7347         additional argument.
7348         (vect_schedule_slp_instance): In case of loads permutation, allocate
7349         vectorized statements structure for all the related SLP nodes. Call
7350         vect_transform_stmt with addditional argument.
7351         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
7352         * config/spu/spu.c (spu_builtin_vec_perm): New.
7353         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
7354         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
7355         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
7356         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
7357
7358 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
7359
7360         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
7361         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
7362         __gthread_cond_signal, __gthread_cond_timedwait,
7363         __gthread_cond_timedwait_recursive): New functions.
7364         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
7365         Likewise.
7366         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
7367         thread interfaces.
7368
7369 2008-08-28  Richard Guenther  <rguenther@suse.de>
7370
7371         PR middle-end/37005
7372         * fold-const.c (maybe_canonicalize_comparison_1): Require
7373         undefined overflow only for canonicalizing A +- CST cmp CST.
7374         Make sure to not generate new constants that are not inside
7375         their TYPE_MIN/MAX_VALUE range.
7376         (maybe_canonicalize_comparison): Remove undefined overflow
7377         checking from here.
7378         (fold_binary): Remove now duplicate folding.
7379
7380 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
7381
7382         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
7383         use not updated in the last change.
7384
7385 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
7386
7387         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
7388         (IRA_COVER_CLASSES): Add FPUL_REGS.
7389
7390 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7391
7392         PR 37217
7393         * c-common.c (conversion_warning): Check for null operands.
7394
7395 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7396
7397         PR c/31673
7398         * c-decl.c (check_for_loop_decls): Improve error message. Give
7399         hint.
7400
7401 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7402
7403         PR c/37186
7404         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
7405         (convert_for_assignment): Pass corrent OPT_W* parameter to
7406         WARN_FOR_ASSIGNMENT.
7407
7408 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
7409
7410         PR c++/35321
7411         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
7412
7413 2008-08-27  Paul Brook  <paul@codesourcery.com>
7414
7415         * config.gcc: Loosen checks for arm uclinux eabi targets.
7416
7417 2008-08-27  Paul Brook  <paul@codesourcery.com>
7418
7419         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
7420         _clzsi2.
7421         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
7422
7423 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
7424
7425         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
7426         the enumerators of an ENUMERAL_TYPE.
7427         * dbxout.c (dbxout_type): Ditto.
7428
7429 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7430
7431         PR rtl-opt/37219
7432         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
7433         (fwprop_addr): Check that the loop_father is not the outer loop.
7434
7435 2008-08-26  Paul Brook  <paul@codesourcery.com>
7436
7437         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
7438         Remove documentation entry for fmul type.
7439         Use fmuls to annotate single-precision multiplication patterns,
7440         fmuld to annotate double-precision multiplication patterns,
7441         fmacs to annotate single-precision multiply-accumulate patterns
7442         and fmacd to annotate double-precision multiply-accumulate patterns.
7443         * config/arm/vfp11.md: Update reservations accordingly.
7444         * config/arm/arm.md: Note that certain values of the "type"
7445         attribute are documented in vfp.md.
7446         * config/arm/arm1020e.md: Remove out of date duplicate comment.
7447         (v10_cvt): Use new fmul types.
7448
7449 2008-08-26  Paul Brook  <paul@codesourcery.com>
7450
7451         * config/arm/vfp.md: Move pipeline description for VFP11 to...
7452         * config/arm/vfp11.md: ...here.  New.
7453         * config/arm/arm.md: Include vfp11.md.
7454
7455 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
7456
7457         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
7458         parameter to inform call.
7459
7460 2008-08-26  Jeff Law  <law@redhat.com>
7461
7462         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
7463         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
7464         preferred class when copying a constant into a partial word register.
7465
7466 2008-08-26  Ben Elliston  <bje@au.ibm.com>
7467
7468         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
7469         * cp/typeck.c: Likewise.
7470         * cp/tree.c: Likewise.
7471         * gimple-low.c: Likewise.
7472         * jump.c: Likewise.
7473
7474 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
7475
7476         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
7477         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
7478
7479         * doc/passes.texi: Describe IRA.
7480
7481         * doc/tm.texi (IRA_COVER_CLASSES,
7482         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
7483
7484         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
7485         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
7486         -fira-propagate-cost, -fno-ira-share-save-slots,
7487         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
7488
7489         * flags.h (ira_algorithm): New enumeration.
7490         (flag_ira_algorithm, flag_ira_verbose): New external variable
7491         declarations.
7492
7493         * postreload.c (gate_handle_postreload): Don't do post reload
7494         optimizations unless the reload is completed.
7495
7496         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
7497         IRA.
7498
7499         * tree-pass.h (pass_ira): New external variable declaration.
7500
7501         * reload.h: Add 2008 to the Copyright.
7502
7503         * cfgloopanal.c: Include params.h.
7504         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
7505         mode.
7506
7507         * params.h (IRA_MAX_LOOPS_NUM): New macro.
7508
7509         * toplev.c (ira.h): New include.
7510         (flag_ira_algorithm, flag_ira_verbose): New external variables.
7511         (backend_init_target): Call ira_init.
7512         (backend_init): Call ira_init_once.
7513         (finalize): Call finish_ira_once.
7514
7515         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
7516         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
7517         external variables.
7518
7519         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
7520         may_move_out_cost): New external variable declarations.
7521         (move_table): New typedef.
7522
7523         * caller-save.c: Include headers output.h and ira.h.
7524         (no_caller_save_reg_set): New global variable.
7525         (save_slots_num, save_slots): New variables.
7526         (reg_save_code, reg_restore_code, add_stored_regs): Add
7527         prototypes.
7528         (init_caller_save): Set up no_caller_save_reg_set.
7529         (init_save_areas): Reset save_slots_num.
7530         (saved_hard_reg): New structure.
7531         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
7532         (initiate_saved_hard_regs, new_saved_hard_reg,
7533         finish_saved_hard_regs, saved_hard_reg_compare_func): New
7534         functions.
7535         (setup_save_areas): Add code for sharing stack slots.
7536         (all_blocks): New variable.
7537         (save_call_clobbered_regs): Process pseudo-register too.
7538         (mark_set_regs): Process pseudo-register too.
7539         (insert_one_insn): Put the insn after bb note in a empty basic
7540         block.  Add insn check.
7541
7542         * global.c (eliminable_regset): Make it external.
7543         (mark_elimination): Use DF_LR_IN for IRA.
7544         (pseudo_for_reload_consideration_p): New.
7545         (build_insn_chain): Make it external.  Don't ignore spilled
7546         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
7547         (gate_handle_global_alloc): New function.
7548         (pass_global_alloc): Add the gate function.
7549
7550         * opts.c (decode_options): Set up flag_ira.  Print the warning for
7551         -fira.
7552         (common_handle_option): Process -fira-algorithm and -fira-verbose.
7553
7554         * timevar.def (TV_IRA, TV_RELOAD): New passes.
7555
7556         * regmove.c (regmove_optimize): Don't do replacement of output for
7557         IRA.
7558
7559         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
7560         New external variable declarations.
7561
7562         * local-alloc.c (update_equiv_regs): Make it external.  Return
7563         true if jump label rebuilding should be done.  Rescan new_insn for
7564         notes.
7565         (gate_handle_local_alloc): New function.
7566         (pass_local_alloc): Add the gate function.
7567
7568         * alias.c (value_addr_p, stack_addr_p): New functions.
7569         (nonoverlapping_memrefs_p): Use them for IRA.
7570
7571         * common.opt (fira, fira-algorithm, fira-coalesce,
7572         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
7573         fira-verbose): New options.
7574
7575         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
7576         move_cost, may_move_in_cost, may_move_out_cost): Make the
7577         variables external.
7578         (move_table): Remove typedef.
7579         (init_move_cost): Make it external.
7580         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
7581         functions.
7582
7583         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
7584         setup_reg_classes): New function prototypes.
7585         (eliminable_regset): New external variable declaration.
7586         (build_insn_chain, update_equiv_regs): New function prototypes.
7587
7588         * Makefile.in (IRA_INT_H): New definition.
7589         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
7590         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
7591         (reload1.o, toplev.o): Add dependence on ira.h.
7592         (cfgloopanal.o): Add PARAMS_H.
7593         (caller-save.o): Add dependence on output.h and ira.h.
7594         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
7595         ira-emit.o, ira-lives.o): New entries.
7596
7597         * passes.c (pass_ira): New pass.
7598
7599         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
7600
7601         * reload1.c (ira.h): Include the header.
7602         (changed_allocation_pseudos): New bitmap.
7603         (init_reload): Initiate the bitmap.
7604         (compute_use_by_pseudos): Permits spilled registers in FROM.
7605         (temp_pseudo_reg_arr): New variable.
7606         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
7607         IRA.  Call alter_reg with the additional parameter.  Don't clear
7608         spilled_pseudos for IRA.  Restore original insn chain for IRA.
7609         Clear changed_allocation_pseudos at the end of reload.
7610         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
7611         (hard_regno_to_pseudo_regno): New variable.
7612         (count_pseudo): Check spilled pseudos.  Set up
7613         hard_regno_to_pseudo_regno.
7614         (count_spilled_pseudo): Check spilled pseudos. Update
7615         hard_regno_to_pseudo_regno.
7616         (find_reg): Use better_spill_reload_regno_p.  Check
7617         hard_regno_to_pseudo_regno.
7618         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
7619         code for IRA.
7620         (eliminate_regs_1): Use additional parameter for alter_reg.
7621         (finish_spills): Set up pseudo_previous_regs only for spilled
7622         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
7623         more arguments.  Don't clear live_throughout and dead_or_set for
7624         spilled pseudos.  Use additional parameter for alter_reg.  Call
7625         mark_allocation_change.  Set up changed_allocation_pseudos.
7626         Remove sanity check.
7627         (emit_input_reload_insns, delete_output_reload): Use additional
7628         parameter for alter_reg.  Call mark_allocation_change.
7629         (substitute, gen_reload_chain_without_interm_reg_p): New
7630         functions.
7631         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
7632
7633         * testsuite/gcc.dg/20080410-1.c: New file.
7634
7635         * config/s390/s390.h (IRA_COVER_CLASSES,
7636         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
7637
7638         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
7639
7640         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
7641
7642         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7643
7644         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
7645
7646         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7647
7648         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
7649
7650         2008-08-24  Jeff Law  <law@redhat.com>
7651         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
7652         when ignoring unavailable registers.
7653
7654         2008-08-24  Jeff Law  <law@redhat.com>
7655         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
7656         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
7657         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
7658         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
7659
7660         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
7661         * ira-build.c (allocno_range_compare_func): Stabilize sort.
7662
7663         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
7664         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
7665         * reload1.c (find_reg): Process registers in register allocation order.
7666
7667         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
7668         * toplev.c (backend_init_target): Move ira_init call from
7669         here...
7670         (lang_dependent_init_target): ...to here.
7671
7672         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
7673         * ira.c (setup_class_subset_and_memory_move_costs): Don't
7674         calculate memory move costs for NO_REGS.
7675
7676         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
7677         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
7678         STACK_REGS is defined.
7679
7680         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
7681         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
7682
7683         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
7684         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
7685
7686         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
7687         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
7688         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
7689         barrier.
7690
7691 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
7692             Dorit Nuzman  <dorit@il.ibm.com>
7693
7694         * gcc/config/spu/spu.md (vec_extract_evenv4si,
7695         vec_extract_evenv4sf, vec_extract_evenv8hi,
7696         vec_extract_evenv16qi, vec_extract_oddv4si,
7697         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
7698         vec_interleave_highv4sf, vec_interleave_lowv4sf,
7699         vec_interleave_highv4si, vec_interleave_lowv4si,
7700         vec_interleave_highv8hi, vec_interleave_lowv8hi,
7701         vec_interleave_highv16qi, vec_interleave_lowv16qi,
7702         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
7703
7704 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
7705
7706         PR target/36756
7707         * config/rs6000/rs6000.c (optimization_options): Don't default to
7708         section anchors without toplevel reorder.
7709
7710 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7711
7712         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
7713         (mfc_end_critical_section): Likewise.
7714
7715 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7716
7717         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
7718         all type qualifiers from element type to vector type.
7719
7720 2008-08-25  David Daney  <ddaney@avtrex.com>
7721
7722         * config/mips/mips.md (immediate_insn): Move up in file, fix
7723         comment typo, reformat.
7724         (fetchop_bit, atomic_hiqi_op memory_barrier,
7725         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
7726         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
7727         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
7728         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
7729         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
7730         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
7731         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
7732         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
7733         sync_old_nand<mode>, sync_new_nand<mode>,
7734         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
7735         test_and_set_12): Moved to sync.md.
7736         (sync.md): Include.
7737         * config/mips/sync.md: New file.
7738
7739 2008-08-25  Richard Henderson  <rth@redhat.com>
7740
7741         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
7742         (regsave): Likewise.
7743         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
7744         (output_cfi_directive): Likewise.
7745         (div_data_align): New.
7746         (output_cfi): Use it.
7747
7748 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
7749
7750         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
7751         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
7752         (TARGET_OCTEON): New macro.
7753         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
7754         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
7755         (ISA_HAS_POP): New macro.
7756         * config/mips/driver-native.c (host_detect_local_cpu): Handle
7757         Octeon.
7758         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
7759         Handle Octeon.
7760         * config/mips/mips.md (cpu): Add octeon.
7761         (type): Add pop attribute value.
7762         (popcount<mode>2): New pattern.
7763         * doc/invoke.texi (-march=@var{arch}): Add octeon.
7764
7765 2008-08-24  Jan Hubicka  <jh@suse.cz>
7766
7767         * doc/invoke.texi (-fipa-cp-clone): New option.
7768         (-fipa-cp): Update docs.
7769         (--param ipcp-unit-growth):New.
7770         * ipa-cp.c: Include fibheap.h, params.h
7771         (ipcp_initialize_node_lattices): When not cloning, all externally
7772         visible functions are bottom.
7773         (ipcp_need_redirect_p): Accept clones.
7774         (ipcp_insert_stage): Use cost driven heuristics.
7775         (max_count, dead_nodes): New static vars.
7776         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
7777         ipcp_const_param_count): New functions.
7778         * common.opt (ipa-cp-clone): New command line option.
7779         * params.def (ipcp-unit-growth): New.
7780
7781 2008-08-24  Jan Hubicka  <jh@suse.cz>
7782
7783         * tree-inline.c (tree_function_versioning): Look harder
7784         for referenced vars.
7785
7786 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
7787
7788         PR tree-optimization/37185
7789         * matrix-reorg.c (transform_access_sites): Update changed stmt.
7790
7791 2008-08-23  Jan Hubicka  <jh@suse.cz>
7792
7793         * ipa-cp.c (ipcp_analyze_node): New function.
7794         (ipcp_update_cloned_node): Use it.
7795         (ipcp_init_stage): Likewise.
7796         * ipa-inline.c (function_insertion_hook_holder): New static var.
7797         (analyze_function): Break out from ....
7798         (inline_generate_summary): Here; register insertion hook.
7799         (cgraph_decide_inlining): Remove hook.
7800         (add_new_function): New function.
7801
7802 2008-08-23  Jan Hubicka  <jh@suse.cz>
7803
7804         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
7805
7806 2008-08-23  Jan Hubicka  <jh@suse.cz>
7807
7808         * ipa-cp.c (constant_val_insert): Remove.
7809         (ipcp_propagate_one_const): Remove.
7810         (ipcp_create_replace_map): Always insert replacements to the map.
7811         (ipcp_insert_stage): Do not try to insert statements by hand.
7812         * tree-inline.c (insert_init_stmt): Break out from ...
7813         (setup_one_parameter): ... here; allow NULL BB pointer.
7814         (tree_function_versioning): Use setup_one_parameter to process
7815         replacement map.
7816
7817 2008-08-23  Jan Hubicka  <jh@suse.cz>
7818
7819         * tree.c (decl_address_ip_invariant_p): New function.
7820         * tree.h (decl_address_ip_invariant_p): Declare.
7821         * gimple.c (strip_invariant_refs): Break out from ...
7822         (is_gimple_invariant_address): ... here
7823         (is_gimple_ip_invariant_address): New function.
7824         (is_gimple_ip_invariant): New function.
7825         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
7826         Declare.
7827
7828         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
7829         (ipcp_lat_is_insertable): All constants are insertable.
7830         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
7831         IPA_CONST_VALUE_REF.
7832         (ipcp_initialize_node_lattices): Propagate all types of operands.
7833         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
7834         (ipcp_create_replace_map): Reformat.
7835         (ipcp_need_redirect_p): Simplify.
7836         (ipcp_insert_stage): Check that argument is used before clonning.
7837         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
7838         IPA_CONST_REF.
7839         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
7840         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
7841         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
7842         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
7843         (jump_func_type): Remove IPA_CONST_VALUE_REF.
7844         * tree-inline.c (tree_function_versioning): Add variables referenced
7845         by replacing trees.
7846
7847 2008-08-23  Jan Hubicka  <jh@suse.cz>
7848
7849         PR target/37094
7850         * i386.c (standard_80387_constant_p): Use optimize_size.
7851
7852 2008-08-23  Ira Rosen  <irar@il.ibm.com>
7853
7854         PR tree-optimization/37161
7855         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
7856         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
7857         (vect_determine_vectorization_factor): Move the scalar type
7858         retrieval to vect_get_smallest_scalar_type.
7859         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
7860         scalar type. Remove redundant computation.
7861         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
7862         (vect_get_slp_defs): Take the type of RHS into account if
7863         necessary by calling vect_get_smallest_scalar_type. Call
7864         vect_get_constant_vectors with additional argument.
7865
7866 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7867
7868         PR 35648
7869         * doc/invoke.texi (Wwrite-strings): Clarify description.
7870
7871 2008-08-23  Ira Rosen  <irar@il.ibm.com>
7872
7873         PR tree-optimization/37174
7874         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
7875         def stmt is a part of the loop before accessing its stmt_vec_info.
7876
7877 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
7878
7879         PR target/11259
7880         * config/avr/avr.md (UNSPEC_SWAP): New constants.
7881         (*swap): New insn pattern.
7882         (*ashlqi3): Rename from ashlqi3 insn pattern.
7883         (ashlqi3): New expanders.
7884         (*lshrqi3): Rename from lshrqi3 insn pattern.
7885         (lshrqi3): New expanders.
7886         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
7887         lshrqi3_const5, lshrqi3_const6): New splitters.
7888         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
7889         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
7890         peephole2 patterns.
7891
7892 2008-08-22  Richard Guenther  <rguenther@suse.de>
7893
7894         PR tree-optimization/37078
7895         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
7896         [+INF, +INF] ranges.
7897
7898 2008-08-22  Richard Guenther  <rguenther@suse.de>
7899
7900         PR tree-optimization/37143
7901         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
7902         a conversion statement instead of a copy.
7903
7904 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
7905
7906         PR target/37184
7907         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
7908         CCCmode, CCOmode and CCSmode destination modes.
7909
7910         PR target/37191
7911         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
7912         from different units in a single alternative.
7913         (*vec_extractv2sf_1): Ditto.
7914         (*vec_extractv2si_0): Ditto.
7915         (*vec_extractv2si_1): Ditto.
7916         * config/i386/sse.md (sse2_storehpd): Ditto.
7917         (sse2_storelpd): Ditto.
7918         (sse2_loadhpd): Ditto.
7919         (sse2_loadlpd): Ditto.
7920
7921         PR target/37197
7922         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
7923         (popcountsi2): Ditto.
7924         (clzdi2_abm): Ditto.
7925         (popcountdi2): Ditto.
7926         (clzhi2_abm): Ditto.
7927         (popcounthi2): Ditto.
7928
7929 2008-08-22  Richard Guenther  <rguenther@suse.de>
7930
7931         PR middle-end/36548
7932         PR middle-end/37125
7933         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
7934         if the multiplication does not overflow.
7935
7936 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
7937
7938         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
7939
7940 2008-08-21  Richard Henderson  <rth@redhat.com>
7941
7942         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
7943         spurrious comma from test.
7944         * configure: Rebuild.
7945
7946 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7947
7948         PR 30457
7949         * builtins.c (fold_builtin_next_arg): Add warning about undefined
7950         behaviour.
7951
7952 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
7953
7954         * c-tree.h (grokfield): New argument.
7955         * c-decl.c (grokfield): Handle new location argument.
7956         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
7957
7958 2008-08-21  Richard Guenther  <rguenther@suse.de>
7959
7960         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
7961
7962 2008-08-21  Jan Hubicka  <jh@suse.cz>
7963
7964         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
7965         (cgraph_add_function_insertion_hook,
7966         cgraph_remove_function_insertion_hook,
7967         cgraph_call_function_insertion_hooks): New functions.
7968         * cgraph.h (cgraph_add_function_insertion_hook,
7969         cgraph_remove_function_insertion_hook,
7970         cgraph_call_function_insertion_hooks): Declare.
7971         * ipa-reference.c (function_insertion_hook_holder): New variable.
7972         (check_operand, look_for_address_of): When checking late, do not care
7973         about module bitmaps.
7974         (add_new_function): New function.
7975         (generate_summary): Register hooks; zero module bitmaps.
7976         (propagate): Unregister hooks.
7977         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
7978         (add_new_function): New function.
7979         (generate_summary): Register hook.
7980         (propagate): Remove hook.
7981
7982         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
7983
7984         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
7985         * ipa-cp.c (ipcp_update_cloned_node): New function.
7986         (build_const_val): Handle functions correctly; bring type logic
7987         into sync with tree-inline.c
7988         (ipcp_init_stage):  Take care of computing stuff needed by
7989         indirect inlining; update clones.
7990         (ipcp_generate_summary): Break out of ipcp_driver.
7991         (ipcp_driver): Do only execution and transformation.
7992         (pass_ipa_cp): Make IPA_PASS.
7993         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
7994         offset to address.
7995         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
7996         ipcp, some info is already available.
7997         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
7998         * tree-inline.c (remap_ssa_name): Unshare expression.
7999
8000 2008-08-21  Richard Guenther  <rguenther@suse.de>
8001
8002         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
8003         a PHI ask VN if it is already available.
8004         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
8005         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
8006
8007 2008-08-21  Richard Guenther  <rguenther@suse.de>
8008
8009         PR middle-end/36817
8010         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
8011         makes sure to produce a result of the correct type.
8012
8013 2008-08-21  Jan Hubicka  <jh@suse.cz>
8014         Backport from LTO branch:
8015
8016         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
8017                     Jan Hubicka  <jh@suse.cz>
8018
8019         * ipa-pure-const.c
8020         (init_state, finish_state, set_function_state, generate_summary):
8021         New functions.
8022         (scan_stmt): Renamed from scan_function.  Changed to keep state in
8023         local static vars rather than cgraph aux field.
8024         (propagate): Renamed from static_execute. Changed to keep state in
8025         local static vars rather than cgraph aux field.
8026         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
8027         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
8028
8029         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
8030
8031         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
8032         * ipa-reference.c (init_function_info, generate_summary,
8033         propagate): New functions.
8034         (analyze_function):  Call init_function_info.
8035         (static_execute): Stripped into generate_summary and propagate.
8036         (pass_ipa_reference): Made into ipa_opt_pass.
8037
8038 2008-08-21  Richard Guenther  <rguenther@suse.de>
8039
8040         PR tree-optimization/37181
8041         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
8042         folding result.
8043         (extract_range_from_unary_expr): Likewise.
8044
8045 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8046
8047         * diagnostic.c (pedwarn_at): Rename as pedwarn.
8048         (pedwarn): Delete.
8049         * toplev.h (pedwarn_at): Likewise.
8050         * builtins.c: Update all calls to pedwarn.
8051         * c-lex.c: Likewise.
8052         * toplev.c: Likewise.
8053         * c-tree.h: Likewise.
8054         * c-decl.c: Likewise.
8055         * c-errors.c: Likewise.
8056         * c-typeck.c: Likewise.
8057         * c-common.c: Likewise.
8058         * c-parser.c: Likewise.
8059
8060 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
8061
8062         PR target/31070
8063         * config/sparc/sparc.c (function_arg_slotno): Handle structure
8064         with MODE_VECTOR_INT mode.
8065
8066 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8067
8068         PR middle-end/179
8069         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
8070         initialized outside the current module.
8071         (warn_uninitialized_var): Ignore left-hand side when walking the
8072         trees. Ignore address expressions. Examine VUSE operands in gimple
8073         statements with a variable declaration on the right-hand side.
8074
8075 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
8076
8077         PR bootstrap/37155
8078         * rtlanal.c (subreg_offset_representable_p): Revert last change.
8079
8080 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8081
8082         PR 35701
8083         * c-common.c (conversion_warning): Do not warn if applying bit-and
8084         operator to unsigned constant that fits in the target type.
8085
8086 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8087
8088         PR c++/35602
8089         * c-common.c (conversion_warning): Do not warn for artificial
8090         expressions.
8091
8092 2008-08-20  Richard Guenther  <rguenther@suse.de>
8093
8094         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
8095         (extract_range_from_binary_expr): Fall back to constant propagation.
8096         (extract_range_from_unary_expr): Likewise.
8097
8098 2008-08-20  Richard Guenther  <rguenther@suse.de>
8099
8100         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
8101         with TREE_THIS_VOLATILE on shared nodes.
8102         (fold_stmt_r): Likewise.
8103
8104 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
8105
8106         PR c/37171
8107         * c-parser.c (c_parser_attributes): For keywords use canonical
8108         spelling for attr_name.
8109
8110 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8111
8112         * value-prof.c (check_counter): Revert wrong call to error.
8113
8114 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8115
8116         * profile.c: Update calls to inform.
8117         * value-prof.c: Update calls to inform.
8118
8119 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8120
8121         * diagnostic.c (inform): Add an explicit location_t parameter.
8122         * toplev.h (inform): Update declaration.
8123         * builtins.c: Update all calls to inform.
8124         * c-common.c: Likewise.
8125         * c-decl.c: Likewise.
8126         * c-opts.c: Likewise.
8127         * c-pch.c: Likewise.
8128         * c-pragma.c: Likewise.
8129         * c-typeck.c: Likewise.
8130         * coverage.c: Likewise.
8131         * opts.c: Likewise.
8132         * toplev.c: Likewise.
8133         * tree-cfg.c: Likewise.
8134         * tree-ssa.c: Likewise.
8135
8136 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
8137
8138         PR target/37169
8139         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
8140         V2DI mode, for SSE4.1, use movq instead of vector set if the
8141         second element is zero and inter-unit moves are OK.
8142
8143 2008-08-20  Richard Guenther  <rguenther@suse.de>
8144
8145         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
8146         properly handle conversion/copy chains after tuplification.
8147
8148 2008-08-20  Richard Guenther  <rguenther@suse.de>
8149
8150         * passes.c (init_optimization_passes): Move the second
8151         forwprop pass before alias computation.  Remove the second
8152         DCE pass.  Remove the first dominator and phi copy/const
8153         prop passes.
8154
8155 2008-08-20  Nick Clifton  <nickc@redhat.com>
8156
8157         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
8158         support of this feature.  Do not assume that a sufficiently new
8159         assembler will support the feature regardless of the target type.
8160         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
8161         * configure: Regenerate.
8162
8163 2008-08-20  Richard Guenther  <rguenther@suse.de>
8164
8165         * tree-vrp.c (found_in_subgraph): Remove.
8166         (live): New global static.
8167         (live_on_edge): New function.
8168         (blocks_visited): Remove.
8169         (register_edge_assert_for_2): Use live_on_edge.
8170         (find_conditional_asserts): Remove code dealing with
8171         found_in_subgraph.  Do not walk the CFG.
8172         (find_switch_asserts): Likewise.
8173         (find_assert_locations_1): Renamed from find_assert_locations.
8174         Move finding assert locations for conditional and switch
8175         statements first.  Update live bitmap.  Do not walk the CFG.
8176         (find_assert_locations): New function.
8177         (insert_range_assertions): Remove entry of CFG walk.
8178         Adjust call to find_assert_locations.
8179         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
8180         that only can appear because of fake exit edges but assert we
8181         never try to insert on those.
8182         (fini_pre): Do not remove fake exit edges here...
8183         (execute_pre): ...but here, before committing edge inserts.
8184
8185 2008-08-19  Richard Guenther  <rguenther@suse.de>
8186
8187         * passes.c (init_optimization_passes): Exchange store-ccp
8188         with a ccp pass.
8189
8190 2008-08-19  Rafael Espíndola  <espindola@google.com>
8191
8192         * varasm.c (weak_decls): Move earlier in the file.
8193         (assemble_external): Add weak decls to the weak_decls list.
8194         (declare_weak): Don't add decls to the weak_decls list.
8195
8196 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
8197
8198         PR target/37157
8199         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
8200         before (sse2_shufpd_<mode>).
8201
8202 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
8203
8204         PR debug/37156
8205         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
8206         * tree.c (block_nonartificial_location): Likewise.
8207
8208 2008-08-19  Richard Guenther  <rguenther@suse.de>
8209
8210         PR tree-optimization/35972
8211         PR tree-optimization/23094
8212         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
8213         parameter.
8214         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
8215         handle MISALIGNED_INDIRECT_REF.
8216         (get_ref_from_reference_ops): New helper.
8217         (vn_reference_lookup_pieces): Walk the use-def chain using the
8218         alias-oracle if requested.
8219         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
8220         walking the use-def chain.
8221         (compute_avail): But not here.
8222         (create_component_ref_by_pieces_1): Properly handle
8223         MISALIGNED_INDIRECT_REF.
8224         (do_regular_insertion): Handle fully redundant
8225         expressions after PHI-translation also for SSA_NAME values, not
8226         only constants.  Correctly use edoubleprime for that.
8227
8228 2008-08-19  Ira Rosen  <irar@il.ibm.com>
8229
8230         * tree-vectorizer.c (supportable_widening_operation): Support
8231         multi-step conversion, return the number of steps in such conversion
8232         and the required intermediate types.
8233         (supportable_narrowing_operation): Likewise.
8234         * tree-vectorizer.h (vect_pow2): New function.
8235         (supportable_widening_operation): Change argument types.
8236         (supportable_narrowing_operation): Likewise.
8237         (vectorizable_type_promotion): Add an argument.
8238         (vectorizable_type_demotion): Likewise.
8239         * tree-vect-analyze.c (vect_analyze_operations): Call
8240         vectorizable_type_promotion and vectorizable_type_demotion with
8241         additional argument.
8242         (vect_get_and_check_slp_defs): Detect patterns.
8243         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
8244         types.
8245         (vect_analyze_slp_instance): Don't fail in case of multiple types.
8246         Call vect_build_slp_tree with correct arguments. Calculate unrolling
8247         factor according to the smallest type in the loop.
8248         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
8249         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
8250         supportable_widening_operation with correct arguments.
8251         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
8252         operands lists according to the number of vector statements in left
8253         or right node, if exists.
8254         (vect_gen_widened_results_half): Remove unused argument.
8255         (vectorizable_conversion): Call supportable_widening_operation,
8256         supportable_narrowing_operation, and vect_gen_widened_results_half
8257         with correct arguments.
8258         (vectorizable_assignment): Change documentation, support multiple
8259         types in SLP.
8260         (vectorizable_operation): Likewise.
8261         (vect_get_loop_based_defs): New function.
8262         (vect_create_vectorized_demotion_stmts): Likewise.
8263         (vectorizable_type_demotion): Support loop-aware SLP and general
8264         multi-step conversion. Call vect_get_loop_based_defs and
8265         vect_create_vectorized_demotion_stmts for transformation.
8266         (vect_create_vectorized_promotion_stmts): New function.
8267         (vectorizable_type_promotion): Support loop-aware SLP and general
8268         multi-step conversion. Call vect_create_vectorized_promotion_stmts
8269         for transformation.
8270         (vectorizable_store): Change documentation, support multiple
8271         types in SLP.
8272         (vectorizable_load): Likewise.
8273         (vect_transform_stmt): Pass SLP_NODE to
8274         vectorizable_type_promotion and vectorizable_type_demotion.
8275         (vect_schedule_slp_instance): Move here the calculation of number
8276         of vectorized statements for each node from...
8277         (vect_schedule_slp): ... here.
8278         (vect_transform_loop): Call vect_schedule_slp without the last
8279         argument.
8280
8281 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
8282
8283         PR bootstrap/37152
8284         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
8285         to == in assert statement.
8286         (vectorizable_reduction): Fix typo.
8287
8288 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
8289
8290         PR bootstrap/37153
8291         * value-prof.c (check_counter): Dereference pointer to overall
8292         count when printing it.
8293
8294 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
8295
8296         * profile.h: Really add it.
8297
8298 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
8299
8300         * mcf.c: Really add it.
8301
8302 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
8303             Vinodha Ramasamy  <vinodha@google.com>
8304
8305         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
8306         count_scale.
8307         * value-prof.c (check_counter): Fix the counter if
8308         flag_profile_correction is true.
8309         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
8310         tree_mod_subtract_transform):
8311         Follow check_counter parameter change.
8312         * common.opt (fprofile-correction): New option.
8313         * mcf.c: New file.
8314         * profile.h: Likewise.
8315         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
8316         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
8317         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
8318         functions.
8319         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
8320         flag_profile_correction is set.
8321
8322 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
8323
8324         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
8325
8326 2008-08-18  Tomas Bily  <tbily@suse.cz>
8327
8328         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
8329         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
8330         CONVERT_EXPR_P.
8331         * tree-data-ref.c (split_constant_offset_1): Likewise.
8332         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
8333         * tree-sra.c (sra_walk_expr): Likewise.
8334         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
8335         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
8336         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
8337         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
8338         Likewise.
8339         * gimple.c (gimple_assign_unary_nop_p): Likewise.
8340         * tree-vect-transform.c (vectorizable_type_demotion)
8341         (vectorizable_type_promotion): Likewise.
8342         * tree-inline.c (expand_call_inline):
8343         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
8344         (forward_propagate_addr_expr_1, forward_propagate_comparison)
8345         (tree_ssa_forward_propagate_single_use_vars): Likewise.
8346         * expr.c (expand_expr_real_1): Likewise.
8347         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
8348         (gimple_assign_unary_useless_conversion_p): Likewise.
8349         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8350         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
8351         * fold-const.c (fold_unary): Likewise.
8352         * tree.h (CONVERT_EXPR_P): Likewise.
8353         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
8354         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
8355         * tree-vrp.c:
8356         (register_edge_assert_for_2, extract_range_from_unary_expr)
8357         (register_edge_assert_for_1): Likewise.
8358
8359 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8360
8361         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
8362         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
8363         (enum real_value_const): Delete.
8364         (get_real_const): Delete.
8365         * real.c (get_real_const): Delete.
8366         (dconst_e_ptr): Define.
8367         (dconst_third_ptr): Define.
8368         (dconst_sqrt2_ptr): Define.
8369         * builtins.c: Update all callers.
8370
8371 2008-08-18  Richard Guenther  <rguenther@suse.de>
8372
8373         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
8374         statement iterator after statement removal.
8375
8376 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
8377
8378         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
8379         (detect_processor_freebsd): Likewise.
8380         (host_detect_local_cpu): Call newly added functions for FreeBSD.
8381
8382 2008-08-18  Richard Guenther  <rguenther@suse.de>
8383
8384         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
8385         and loads have the correct types.
8386
8387 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8388
8389         PR cpp/7263
8390         * c-opts.c (cpp_opts): Remove static.
8391         * c-parser.c (cpp_opts): Declare it extern.
8392         (disable_extension_diagnostics): Handle cpp options.
8393         (enable_extension_diagnostics): Likewise.
8394
8395 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8396
8397         * diagnostics.c (permerror_at): Rename as permerror.
8398         (permerror): Delete.
8399         * toplev.h: Likewise.
8400
8401 2008-08-18  Richard Guenther  <rguenther@suse.de>
8402
8403         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
8404         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
8405         Move call_cdce before build_alias.  Move copyrename2,
8406         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
8407         right after final inlining.
8408         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
8409         (pass_build_cfg): But instead via TODO_dump_func.
8410
8411 2008-08-18  Richard Guenther  <rguenther@suse.de>
8412
8413         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
8414         element index.
8415         (scalarize_init): If we failed to generate some initializers
8416         do not generate zeros for not instantiated members.  Instead
8417         rely on the copy out.
8418         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
8419         about missing flow-sensitive alias info only if we have
8420         aliases computed.
8421
8422 2008-08-17  Nick Clifton  <nickc@redhat.com>
8423
8424         * doc/extend.texi (Function Attributes): Fix typo in description
8425         if hot function attribute.
8426
8427 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
8428             Richard Sandiford  <rdsandiford@googlemail.com>
8429
8430         * doc/install.texi (--with-mips-plt): Document.
8431         * doc/invoke.texi (-mplt, -mno-plt): Document.
8432         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
8433         and handle ${with_mips_plt}.
8434         * config/mips/mips.opt (mplt): New option.
8435         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
8436         (TARGET_ABICALLS_PIC2): Likewise.
8437         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
8438         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
8439         (ASM_SPEC): Use !mabi=* instead of !mabi*.
8440         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
8441         to decide whether to output ".option picX" directives.
8442         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
8443         Pass -call_nonpic rather than -KPIC for -mplt.
8444         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
8445         on the command line.  Also remove it when -mabi=64 is used without
8446         -msym32.
8447         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
8448         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
8449         TARGET_ABICALLS_PIC0.
8450         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
8451         TARGET_ABICALLS.
8452         (mips16_build_function_stub): Only output ".option pic" directives
8453         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
8454         (mips16_build_call_stub): Fix comment and remove redundant
8455         ".set at"/"set .noat" directives.
8456         (mips_function_rodata_section): Use the default behaviour for
8457         TARGET_ABSOLUTE_ABICALLS.
8458         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
8459         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
8460         (mips_restore_gp): Do nothing if the current function doesn't use
8461         a global pointer.
8462         (mips_expand_prologue): Only save $gp if the current function uses it.
8463         Use a normal move for TARGET_ABICALLS_PIC0.
8464         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
8465
8466 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
8467
8468         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
8469         of function when handling GLOBAL_POINTER_REGNUM.
8470
8471 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
8472
8473         PR ada/20548
8474         * common.opt (-fstack-check): Do not declare the variable here.
8475         (-fstack-check=): New option variant.
8476         * doc/invoke.texi (Code Gen Options): Document it.
8477         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
8478         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
8479         (STACK_CHECK_STATIC_BUILTIN): New macro.
8480         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
8481         * opts.c: Include expr.h.
8482         (common_handle_option) <OPT_fold_stack_check_>: New case.
8483         <OPT_fstack_check>: Likewise.
8484         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
8485         consistently in the test for variable-sized types.  Adjust for
8486         new behaviour of flag_stack_check.
8487         * explow.c: Include except.h.
8488         (allocate_dynamic_stack_space): Do not take into account
8489         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
8490         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
8491         for variable-sized parameters.  Treat all parameters whose size is
8492         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
8493         stack checking is enabled.
8494         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
8495         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
8496         if generic stack checking is enabled.
8497         (expand_function_end): Adjust for new behaviour of flag_stack_check.
8498         * reload1.c (reload): Likewise.
8499         * stmt.c (expand_decl): Assert that all automatic variables have
8500         fixed size at this point and remove dead code.
8501         * flags.h (stack_check_type): New enumeration type.
8502         (flag_stack_check): Declare.
8503         * toplev.c (flag_stack_check): New global variable.
8504         * Makefile.in (opts.o): Add dependency on EXPR_H.
8505         (explow.o): Add dependency on except.h.
8506
8507 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
8508
8509         * config/avr/avr.c (avr_override_options): Reduce value of
8510         PARAM_INLINE_CALL_COST.
8511
8512 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
8513
8514         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
8515         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
8516         lieu of TYPE_MODE (type) throughout.
8517
8518 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
8519
8520         * config/arm/arm.c (add_minipool_backward_ref): Check for
8521         8-byte-aligned entries in second case of forcing insertion after a
8522         particular entry.  Change third case to avoid inserting
8523         non-8-byte-aligned entries before 8-byte-aligned ones.
8524
8525 2008-08-15  Richard Guenther  <rguenther@suse.de>
8526
8527         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
8528         strip components for unknown size accesses.
8529
8530 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
8531
8532         * config/s390/2097.md New file.
8533         * config/s390/s390.md ("z10prop" attribute): Define none,
8534         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
8535         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
8536         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
8537         possible values and apply them to insns as appropriate.
8538         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
8539         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
8540         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
8541         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
8542         ("bfp" mode attribute): Removed.  Every occurence replaced
8543         with <mode>.
8544         * config/s390/s390.c (struct "z10_cost"): Updated entries.
8545         * config/s390/2084.md (insn_reservation "x_itof"): Updated
8546         type attribute.
8547
8548 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8549
8550         PR c/28152
8551         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
8552         for keywords.
8553
8554 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
8555
8556         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
8557         additional argument. Support reduction when duplication is needed due
8558         to data-types of different sizes in the loop.
8559         (get_initial_def_for_induction): Fix printout.
8560         (vect_get_vec_def_for_stmt_copy): Support case where the
8561         vec_stmt_for_operand is a phi node.
8562         (vectorizable_reduction): Support reduction when duplication is needed
8563         due to data-types of different sizes in the loop.
8564         (vectorizable_call): Remove restriction to not vectorize in case we
8565         have data-types of different sizes in the loop.
8566         (vectorizable_conversion): Likewise.
8567         (vectorizable_operation): Likewise.
8568         (vectorizable_type_demotion): Likewise.
8569         (vectorizable_type_promotion): Likewise.
8570         (vectorizable_induction): Add restriction to not vectorize in case
8571         we have data-types of different sizes in the loop.
8572
8573 2008-08-14  Christophe Saout  <christophe@saout.de>
8574             Uros Bizjak  <ubizjak@gmail.com>
8575
8576         PR target/37101
8577         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
8578         (*vec_concatv2di_rex64_sse4_1): Ditto.
8579         (*vec_concatv2di_rex64_sse): Ditto.
8580
8581 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
8582
8583         PR middle-end/37103
8584         * fold-const.c (fold_widened_comparison): Do not allow
8585         sign changes that change the result even if shorter type
8586         is wider than arg1_unw's type.
8587
8588 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
8589
8590         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
8591         Skip if the multilib testing specifies -march that does not
8592         agree with the one specified in the testcase.
8593
8594 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
8595
8596         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
8597         zero extend SImode values being converted to TFmode before passing
8598         to libcalls.
8599
8600 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8601
8602         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
8603         __PPU__ when targeting the Cell/B.E. PPU processor.
8604
8605 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
8606
8607         * gimple.h (gimple_call_set_chain): Accept SSA variables.
8608         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
8609         Rematerialize the static chain, if any.
8610         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
8611         static chain.
8612
8613 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
8614
8615         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
8616         (new_loc_descr): Likewise.
8617         (add_loc_descr): Likewise.
8618         (size_of_loc_descr): Likewise.
8619         (size_of_locs): Likewise.
8620         (output_loc_operands): Likewise.
8621         (output_loc_sequence): Likewise.
8622         (new_reg_loc_descr): New.
8623         (build_cfa_loc): Use it.
8624         (build_cfa_aligned_loc): Likewise.
8625         (one_reg_loc_descriptor): Likewise.
8626         (based_loc_descr): Likewise.
8627
8628 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8629
8630         PR 30551
8631         * doc/invoke.texi (Wmain): Update.
8632         * c-decl.c (start_decl): warn_main is only 0 or 1.
8633         (start_function): Likewise. Fix formatting.
8634         (finish_function): Delete redundant warning.
8635         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
8636         * c-opts (c_common_handle_option): -Wall only has effect if
8637         warn_main is uninitialized. OPT_Wmain is automatically
8638         handled. -pedantic also enables Wmain.
8639         (c_common_post_options): Handle all logic for Wmain here.
8640         * c-common.c (warn_main): Delete.
8641         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
8642         * c-common.h (warn_main): Delete.
8643
8644 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
8645
8646         PR middle-end/36701
8647         * expr.c (emit_group_store): Allocate stack temp with the
8648         largest alignment when copying from register to stack.
8649
8650 2008-08-13  Richard Guenther  <rguenther@suse.de>
8651
8652         * tree.h (maybe_fold_offset_to_address): Declare.
8653         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
8654         (ccp_fold): Handle pointer conversions the same as fold_stmt.
8655         Likewise for POINTER_PLUS_EXPR.
8656         (maybe_fold_offset_to_reference): Enable disabled code.
8657         (maybe_fold_offset_to_address): New function.
8658         (fold_stmt_r): Use it.
8659         (fold_gimple_assign): Likewise.
8660         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
8661         (gimplify_expr): Likewise.
8662
8663 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8664
8665         * toplev.h (pedwarn_at): Fix declaration.
8666
8667 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
8668
8669         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8670         LINK_SPEC): Use %R in -Y P argument.
8671
8672 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8673
8674         PR c/15236
8675         * diagnostic.c (pedwarn_at): New.
8676         * toplev.h (pedwarn_at): Declare.
8677         * c-tree.h (build_enumerator): Update declaration.
8678         * c-decl.c (finish_enum): Update comment.
8679         (build_enumerator): Take a location parameter. Give a pedwarn but do
8680         not perform any conversion.
8681         * c-parser.c (c_parser_enum_specifier): Set correct location for
8682         enumerator.
8683
8684 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8685
8686         PR 35635
8687         * c-common.c (conversion_warning): Use a switch. Ignore boolean
8688         expressions except for conversions to signed:1 bitfields. Handle
8689         COND_EXPR with constant operands.
8690
8691 2008-08-13  Richard Guenther  <rguenther@suse.de>
8692
8693         PR tree-optimization/15255
8694         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
8695         (struct oecount_s): New struct and VEC types.
8696         (cvec): New global.
8697         (oecount_hash): New function.
8698         (oecount_eq): Likewise.
8699         (oecount_cmp): Likewise.
8700         (zero_one_operation): New function.
8701         (build_and_add_sum): Likewise.
8702         (undistribute_ops_list): Perform un-distribution of multiplication
8703         and division on the chain of summands.
8704         (should_break_up_subtract): Also break up subtracts for factors.
8705         (reassociate_bb): Delete dead visited statements.
8706         Call undistribute_ops_list.  Re-sort and optimize if it did something.
8707         * passes.c (init_optimization_passes): Move DSE before
8708         reassociation.
8709         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
8710         PHI nodes.
8711
8712 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
8713
8714         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
8715
8716         * doc/invoke.texi: Revert unintended checkin.
8717
8718 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
8719
8720         PR libgomp/26165
8721         * gcc.c (include_spec_function): Tweak call to find_a_file.
8722
8723 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
8724
8725         PR middle-end/37014
8726         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
8727         and TRUTH_ORIF_EXPR.
8728         * dojump.c (do_jump): Likewise.
8729
8730         PR tree-optimization/37084
8731         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
8732         if id->regimplify, don't assume stmt is a cast assignment.
8733
8734 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
8735
8736         * final.c (final_scan_insn): Use app_enable/app_disable functions.
8737
8738 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8739
8740         PR bootstrap/37097
8741         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
8742         by last change.
8743
8744 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8745
8746         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
8747         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
8748
8749         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
8750         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
8751         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
8752         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
8753         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
8754
8755         * doc/tm.texi (Storage Layout): Remove documentation for
8756         TARGET_FLOAT_FORMAT.
8757
8758         * simplify-rtx.c (simplify_binary_operation_1): Replace
8759         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
8760
8761 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8762
8763         * real.h (struct real_format): New member has_sign_dependent_rounding.
8764         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
8765         spu_single_format, ieee_double_format, mips_double_format,
8766         motorola_double_format, ieee_extended_motorola_format,
8767         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
8768         ieee_extended_intel_96_round_53_format, ibm_extended_format,
8769         mips_extended_format, ieee_quad_format, mips_quad_format,
8770         vax_f_format, vax_d_format, vax_g_format): Initialize it.
8771         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8772
8773         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
8774         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
8775         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
8776         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
8777         (ROUND_TOWARDS_ZERO): Likewise.
8778
8779         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
8780         (FLOAT_MODE_FORMAT): New macro.
8781         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
8782         (MODE_COMPOSITE_P): ... this new macro.
8783         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
8784         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
8785         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
8786
8787         * flags.h: Include "real.h".
8788
8789         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
8790         REAL_MODE_FORMAT_COMPOSITE_P.
8791         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
8792
8793         * doc/tm.texi (Storage Layout): Remove documentation of
8794         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
8795         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
8796         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
8797         they only apply to libgcc2.a.
8798
8799 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8800
8801         * config/spu/float_disf.c: New file.
8802         * config/spu/float_unsdisf.c: New file.
8803         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
8804         (LIB2FUNCS_EXCLUDE): Define.
8805
8806 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8807             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8808
8809         * real.h (struct real_format): New member round_towards_zero.
8810         * real.c (round_for_format): Respect fmt->round_towards_zero.
8811         (ieee_single_format, mips_single_format, motorola_single_format,
8812         spu_single_format, ieee_double_format, mips_double_format,
8813         motorola_double_format, ieee_extended_motorola_format,
8814         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
8815         ieee_extended_intel_96_round_53_format, ibm_extended_format,
8816         mips_extended_format, ieee_quad_format, mips_quad_format,
8817         vax_f_format, vax_d_format, vax_g_format): Initialize it.
8818         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8819
8820         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
8821         real_format to choose rounding mode when calling MPFR functions.
8822         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
8823         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
8824
8825         * real.h (real_to_decimal_for_mode): Add prototype.
8826         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
8827         Respect target rounding mode when generating decimal representation.
8828         (real_to_decimal): New stub for backwards compatibility.
8829         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
8830         real_to_decimal_for_mode instead of real_to_decimal.
8831
8832         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
8833
8834 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8835             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8836
8837         * real.c (spu_single_format): New variable.
8838         * real.h (spu_single_format): Declare.
8839
8840         * config/spu/spu.c (spu_override_options): Install SFmode format.
8841         (spu_split_immediate): Use integer mode to operate on pieces of
8842         floating-point values in all cases.
8843
8844         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
8845         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
8846         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
8847
8848 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8849
8850         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
8851
8852 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8853
8854         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
8855
8856 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
8857
8858         PR c++/36688
8859         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
8860         on the VAR_DECL instead of TYPE_READONLY on its type.
8861
8862 2008-08-12  Ira Rosen  <irar@il.ibm.com>
8863
8864         * tree-vectorizer.c: Depend on langhooks.h.
8865         (supportable_widening_operation): Add two arguments. Support double
8866         type conversions.
8867         (supportable_narrowing_operation): Likewise.
8868         * tree-vectorizer.h (supportable_widening_operation): Add two
8869         arguments.
8870         (supportable_narrowing_operation): Likewise.
8871         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
8872         supportable_widening_operation with correct arguments.
8873         * tree-vect-transform.c (vectorizable_conversion): Likewise.
8874         (vectorizable_type_demotion): Support double type conversions.
8875         (vectorizable_type_promotion): Likewise.
8876         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
8877
8878 2008-08-11  Michael Matz  <matz@suse.de>
8879
8880         * i386/i386.c (override_options): Move initialisation from
8881         flag_schedule_insns_after_reload to here from ...
8882         (optimization_options): ... here.
8883
8884 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
8885
8886         PR rtl-optimization/36998
8887         * dwarf2out.c (compute_barrier_args_size_1,
8888         compute_barrier_args_size): Temporarily remove assertions.
8889
8890 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8891
8892         PR middle-end/20644
8893         * tree-ssa.c (struct walk_data): Add new flag
8894         warn_possibly_uninitialized.
8895         (warn_uninitialized_var): Use it.
8896         (warn_uninitialized_vars): New.
8897         (execute_early_warn_uninitialized): Call it.
8898         (execute_late_warn_uninitialized): Likewise.
8899
8900 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8901
8902         PR middle-end/36238
8903         * reload1.c (gen_reload): Guard calls to get_secondary_mem
8904         for memory subregs.
8905
8906 2008-08-09  Jan Hubicka  <jh@suse.cz>
8907
8908         PR target/37055
8909         * optabs.c (maybe_emit_unop_insn): Remove produced code if
8910         expansion failed.
8911         (expand_fix): Be prepared for expansion to fail.
8912         (expand_sfix_optab): Remove instructions if expansion failed.
8913
8914 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
8915
8916         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
8917         avr31 architecture.
8918         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
8919         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8920
8921 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8922
8923         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
8924         mips/t-libgcc-mips16 to tmake_file.
8925         * config/mips/mips-protos.h (mips_call_type): New enum.
8926         (mips_pic_base_register, mips_got_load): Declare.
8927         (mips_restore_gp): Take an rtx argument.
8928         (mips_use_pic_fn_addr_reg_p): Declare.
8929         (mips_expand_call): Replace the sibcall_p argument with
8930         a mips_call_type argument.  Add a lazy_p parameter.
8931         (mips_split_call): Declare.
8932         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
8933         (MIPS16_PIC_TEMP): Likewise.
8934         (reg_class): Delete M16_NA_REGS.
8935         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
8936         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
8937         (mips_split_hi_p): Declare.
8938         * config/mips/mips.c (mips_split_hi_p): New array.
8939         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
8940         (mips_got_symbol_type_p): New function.
8941         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
8942         (mips16_stub_function_p): New function.
8943         (mips16_local_function_p): Likewise.
8944         (mips_use_pic_fn_addr_reg_p): Likewise.
8945         (mips_cannot_force_const_mem): Return false for HIGHs.
8946         Extend CONST_INT and symbolic handling to MIPS16, using
8947         mips_symbol_insns to check that the base symbol type is a
8948         legitimate constant.  Reject GOT-based constants if
8949         TARGET_MIPS16_PCREL_LOADS.
8950         (mips_const_insns): Check targetm.cannot_force_const_mem when
8951         decomposing a symbolic base and a large offset.
8952         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
8953         When calling a function that needs $25 from MIPS16 code,
8954         move the target address into $25 separately and add a USE
8955         to the call insn.
8956         (mips16_gp_pseudo_reg): Insert the initializer immediately
8957         before the first real insn.
8958         (mips_pic_base_register, mips_got_load): New functions.
8959         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
8960         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
8961         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
8962         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
8963         (mips_call_tls_get_addr): Update the call to mips_expand_call,
8964         also passing NULL_RTX rather than const0_rtx as the aux argument.
8965         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
8966         instead of TARGET_EXPLICIT_RELOCS.
8967         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
8968         (mips_load_call_address): Replace the sibcall_p argument with
8969         a mips_call_type argument.  Use mips_got_load.
8970         (mips16_local_alias): New structure.
8971         (mips16_local_aliases): New variable.
8972         (mips16_local_aliases_hash): New function.
8973         (mips16_local_aliases_eq): Likewise.
8974         (mips16_local_alias): Likewise.
8975         (mips16_stub_function): Likewise.
8976         (mips16_build_function_stub): Create a local alias for the target
8977         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
8978         .cpload directive and an R_MIPS_NONE relocation for the target
8979         function, then load the alias rather than the function itself.
8980         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
8981         (mips16_copy_fpr_return_value): Use mips16_stub_function and
8982         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
8983         (mips16_build_call_stub): Replace the FN parameter with an
8984         FN_PTR parameter.  Force the address into a register if it
8985         isn't a call_insn_operand; don't rely on the caller to do this.
8986         If a call to a locally-defined and locally-binding MIPS16
8987         function must be made indirectly, redirect the call to the
8988         function's local alias.  Use mips16_stub_function_p,
8989         mips16_stub_function, mips_expand_call and use_reg.
8990         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
8991         Use explicit %hi and %lo accesses where possible.
8992         Use MIPS_CALL to generate the correct code form of a
8993         jal instruction.  Add clobbers of $18 instead of uses.
8994         Update the call to mips_emit_call_insn.
8995         (mips_expand_call): Replace the SIBCALL_P argument with a
8996         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
8997         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
8998         allowing it to modify the call address.  Update the calls to
8999         mips_load_call_address and mips_emit_call_insn.
9000         (mips_split_call): New function.
9001         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
9002         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
9003         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
9004         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
9005         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
9006         if TARGET_MIPS16.
9007         (mips_cprestore_slot): New function.
9008         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
9009         and use mips_cprestore_slot.
9010         (mips_output_function_prologue): Handle TARGET_MIPS16 for
9011         LOADGP_OLDABI.
9012         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
9013         then use a copygp_mips16 instruction to set up $28.
9014         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
9015         (mips16_lay_out_constants): Call split_all_insns_noflow.
9016         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
9017         false if TARGET_MIPS16.
9018         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
9019         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
9020         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
9021         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
9022         MIPS16 code.  Allow MIPS16 o32 PIC.
9023         (mips_override_options): Allow MIPS16 o32 PIC.
9024         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
9025         after reload if TARGET_USE_GOT.
9026         (UNSPEC_COPYGP): New constant.
9027         (length): Use a default length of 8 for MIPS16 GOT loads.
9028         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
9029         (*got_page<mode>): Check mips_split_hi_p.
9030         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
9031         (unspec_got<mode>, unspec_call<mode>): New expanders.
9032         (load_got<mode>, load_call<mode>): Remove the length attributes.
9033         Use a got attribute instead of a type attribute.
9034         (copygp_mips16): New insn.
9035         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
9036         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
9037         (sibcall, sibcall_value, call, call_value): Update the calls
9038         to mips_expand_call.
9039         (call_internal, call_value_internal): Use mips_split_call.
9040         (call_value_multiple_internal): Likewise.
9041         (call_split): Move after call_internal (the insn it is split from).
9042         (call_internal_direct, call_value_internal_direct): Turn into
9043         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
9044         (call_direct_split, call_value_direct_split): New patterns.
9045         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
9046         and use M16_REGS instead of M16_NA_REGS.
9047         * config/mips/predicates.md (const_call_insn_operand): Replace
9048         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
9049         mips_use_pic_fn_addr_reg_p check.
9050         (move_operand): Reject HIGHs if mips_split_hi_p.
9051         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
9052         (__mips16_floatunsisf): Inline __mips16_floatsisf.
9053         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
9054         * config/mips/libgcc-mips16.ver: New file.
9055         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
9056         $(srcdir)/config/mips/libgcc-mips16.ver.
9057
9058 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
9059
9060         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
9061         in file.
9062         (mips_unspec_address, mips_unspec_offset_high): Likewise.
9063         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
9064         (mips16_cfun_returns_in_fpr_p): Likewise.
9065
9066 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
9067
9068         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
9069         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
9070         rather than 4 to PC.
9071
9072 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
9073
9074         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
9075         (FUNCTION_PROFILER): Save the static chain pointer into $2
9076         beforehand and restore it aftewards.
9077         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
9078         address directly into $25 and call the function through $25;
9079         do not clobber $3.  Pad the DImode version to cover the space
9080         left by the deleted $25 <- $3 move.
9081         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
9082         the removal of the $25 <- $3 move.
9083         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
9084         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
9085
9086 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
9087             Daniel Jacobowitz  <dan@codesourcery.com>
9088
9089         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
9090         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
9091         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
9092         * config/mips/mips.c (mips_start_function_definition): New function.
9093         (mips_end_function_definition): Likewise.
9094         (mips_output_function_prologue): Use mips_start_function_definition.
9095         (mips_output_function_epilogue): Use mips_end_function_definition.
9096         (build_mips16_function_stub): Use mips_start_function_definition
9097         and mips_end_function_definition.
9098         (build_mips16_call_stub): Likewise.
9099
9100 2008-08-09  Richard Guenther  <rguenther@suse.de>
9101
9102         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
9103         * gimple.h (gimple_call_fn): Adjust comment.
9104         (gimple_call_set_fndecl): New function.
9105         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
9106         longer having bare FUNCTION_DECL operand.
9107         (gimple_call_return_type): Likewise.
9108         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
9109
9110         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
9111         (gimple_mod_pow2): Likewise.
9112         (gimple_mod_subtract): Likewise.
9113         (gimple_ic): Likewise.
9114         (gimple_stringop_fixed_value): Likewise.
9115         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
9116         longer having bare FUNCTION_DECL operand.
9117         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
9118         * omp-low.c (optimize_omp_library_calls): Likewise.
9119         * cgraphunit.c (update_call_expr): Likewise.
9120         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
9121         (execute_convert_to_rsqrt): Likewise.
9122         * cfgexpand.c (gimple_to_tree): Simplify.
9123         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
9124         bare FUNCTION_DECL operand.
9125         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
9126         (convert_gimple_call): Use gimple_call_fndecl.
9127         * c-common.c (c_warn_unused_result): Likewise.
9128
9129 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9130
9131         PR c/17880
9132         * c-typeck.c (digest_init): Call verify_sequence_points from here.
9133         (c_finish_return): Likewise.
9134         (c_start_case): Likewise.
9135         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
9136         * c-parser.c (c_parser_condition): New. Call
9137         verify_sequence_points.
9138         (c_parser_paren_condition): Call c_parser_condition.
9139         (c_parser_for_statement): Call c_parser_condition.
9140
9141 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9142
9143         PR 36901
9144         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
9145         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
9146         Moved from diagnostic.h
9147         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
9148         DK_PERMERROR.
9149         (emit_diagnostic): New.
9150         (warning0, pedwarn0): Delete.
9151         (warning, warning_at, pedwarn, permerror): Return bool.
9152         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
9153         Moved to diagnostic.c.
9154         (struct diagnostic_context): Use correct type for
9155         classify_diagnostic.
9156         (diagnostic_report_diagnostic): Update declaration.
9157         (emit_diagnostic): Declare.
9158         * errors.c (warning): Return bool.
9159         * errors.h (warning): Update declaration.
9160         * toplev.h (warning0, pedwarn0): Delete.
9161         (warning, warning_at, pedwarn, permerror): Return bool.
9162         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
9163         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
9164         inform. Update all calls.
9165         (diagnose_mismatched_decls): Check return value of warning/pedwarn
9166         before giving informative note.
9167         (implicit_decl_warning): Likewise.
9168         * c-typeck.c (build_function_call): Likewise.
9169         * tree-sssa.c (warn_uninit): Likewise.
9170         * builtins.c (gimplify_va_arg_expr): Likewise.
9171
9172 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9173
9174         PR 7651
9175         * doc/invoke.texi (-Wextra): Move warning from here...
9176         (-Wuninitialized): ... to here.
9177
9178 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9179
9180         PR 28875
9181         * flags.h (set_Wunused): Delete
9182         * toplev.c (process_options): Handle Wunused flags here.
9183         * opts.c (maybe_warn_unused_parameter): Delete.
9184         (common_handle_option): Replace set_Wunused by warn_unused.
9185         (set_Wextra): Do not handle Wunused-parameter here.
9186         (set_Wunused): Delete.
9187         * c-opts.c (c_common_handle_option): Replace set_Wunused by
9188         warn_unused.
9189         * common.opt (Wunused): Add Var and Init.
9190         (Wunused-function): Likewise.
9191         (Wunused-label): Likewise.
9192         (Wunused-parameter): Likewise.
9193         (Wunused-value): Likewise.
9194         (Wunused-variable): Likewise.
9195
9196 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
9197
9198         * doc/invoke.texi: Add cpu_type power7.
9199         * config.in (HAVE_AS_VSX): New.
9200         * config.gcc: Add cpu_type power7.
9201         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
9202         VSX instructions.
9203         * configure: Regenerate.
9204         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
9205         power5.
9206         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
9207         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
9208         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
9209
9210 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
9211
9212         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
9213         type to vectorize.builtin_conversion.
9214         (vectorizable_conversion): Likewise.
9215         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
9216         integral type as input.
9217         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
9218         FIX_TRUNC_EXPR.
9219         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
9220         and ALTIVEC_BUILTIN_VCTSXS.
9221         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
9222         formatting.
9223
9224 2008-08-08  Richard Guenther  <rguenther@suse.de>
9225
9226         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
9227         (surely_varying_stmt_p): Calls are varying only if they are
9228         non-builtin and not indirect or have no result.
9229         (ccp_fold): Re-instantiate code before the tuples merge.
9230
9231 2008-08-08  Richard Guenther  <rguenther@suse.de>
9232
9233         PR tree-optimization/37056
9234         * gimple.h (gimple_assign_rhs_class): New helper function.
9235         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
9236         unary operations properly.
9237
9238 2008-08-07  Jan Hubicka  <jh@suse.cz>
9239
9240         * i386.h (ix86_size_cost): Declare.
9241         (ix86_cur_cost): New function macro.
9242         * i386.md (peepholes expanding size and splitters): Predicate by
9243         optimize_insn_for_speed_p.
9244         (peepholes reduce size and splitters): Predicate by
9245         optimize_insn_for_size_p.
9246         * i386.c (ix86_size_cost): Rename from ...
9247         (size_cost): This one.
9248         (override_options): Update.
9249         (decide_alg): Likewise.
9250         (ix86_expand_clear): Use RTL profile.
9251         (ix86_pad_returns): Use RTL profile.
9252
9253 2008-08-07  Jan Hubicka  <jh@suse.cz>
9254
9255         * recog.c (split_all_insns): Set RTL profile
9256         (peephole2_optimize): Likewise.
9257         * function.c (thread_prologue_and_epilogue_insns): Likewise.
9258         * combine.c (combine_instructions): Likewise.
9259
9260 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9261
9262         * c-common.c (c_common_reswords): Also warn about keyword "bool".
9263
9264 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
9265
9266         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
9267         value in a6 after the set_frame_ptr insn.
9268
9269 2008-08-07  Richard Henderson  <rth@redhat.com>
9270
9271         PR debug/37033
9272         * gcc.c (cpp_options): Pass along -g*.
9273
9274 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
9275
9276         * config/arm/arm.c (output_move_neon): Update comment describing
9277         big-endian vector layout.
9278         (arm_assemble_integer): Do not handle big-endian NEON vectors
9279         specially.
9280         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
9281         neon_vget_lane<mode>_sext_internal,
9282         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
9283         element indices for big-endian.
9284
9285 2008-08-07  Richard Henderson  <rth@redhat.com>
9286
9287         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
9288         * configure, config.in: Rebuild.
9289         * debug.h (dwarf2out_do_cfi_asm): Declare.
9290         * c-cppbuiltin.c (c_cpp_builtins): Use it.
9291         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
9292         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
9293         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
9294
9295 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
9296
9297         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
9298         movv2si_internal): Combine into mov<mode>_internal.
9299         (movv2si_internal_2): Remove.
9300
9301 2008-08-07  Jan Hubicka  <jh@suse.cz>
9302
9303         PR target/37048
9304         * i386.md (single stringop patterns): Enable unconditionally.
9305
9306 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
9307
9308         PR target/36992
9309         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
9310
9311         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
9312         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
9313
9314         * config/i386/sse.md (sse2_movq128): New.
9315
9316         * doc/extend.texi: Document __builtin_ia32_movq128.
9317
9318 2008-08-07  Richard Guenther  <rguenther@suse.de>
9319
9320         PR middle-end/37042
9321         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
9322         pointers can access anything.
9323
9324 2008-08-06  Jan Hubicka  <jh@suse.cz>
9325
9326         * optabs.c (emit_unop_insn): Break out to ...
9327         (maybe_emit_unop_insn): ... this one.
9328         (expand_sfix_optab): Use maybe variant.
9329         * optabs.h (maybe_emit_unop_insn): Declare.
9330
9331         * i386.md (mov0 patterns): Enable by default.
9332         (FP conversion expanders): Disable expansion of code expanding
9333         sequences when instruction should be optimized for size.
9334         (single strinop patterns): Enable when optimizing for size.
9335         (string expanders): Disable expanding of code expanding sequences
9336         when optimizning instruction for size.
9337         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
9338         per BB basis.
9339         (ix86_fp_comparison_sahf_cost): Likewise.
9340         (ix86_expand_branch): Likewise.
9341         (ix86_expand_ashl_const): Likewise.
9342         (ix86_split_ashl): Likewise.
9343         (ix86_expand_strlen): Likewise.
9344         (ix86_emit_fp_unordered_jump): Likewie.
9345
9346 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9347
9348         * c-common.c: Fix typo.
9349         (c_common_reswords): Activate more C++ keyword warnings.
9350
9351         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
9352
9353 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9354
9355         PR 26785
9356         * diagnostic.c (permerror_at): New.
9357         * toplev.h (permerror_at): Declare.
9358
9359 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
9360             Ira Rosen  <irar@il.ibm.com>
9361
9362         * tree-vect-transform.c (vect_model_simple_cost): Return
9363         immediately if stmt is pure SLP.
9364         (vect_model_store_cost): Ditto.
9365         (vect_model_load_cost): Ditto.
9366         (vectorizable_store): Remove PURE_SLP check before call
9367         to vect_model_store_cost.
9368         (vect_model_store_cost): When checking whether stmt describe
9369         strided access, add a check that it is not slp_node.
9370
9371 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9372
9373         PR 8715
9374         * c-common.c (warn_for_sign_compare): New. Handle separately the
9375         case that 'constant' is zero.
9376         * c-typeck.c (build_binary_op): Move code to c-common.c
9377
9378 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9379
9380         * config/alpha/alpha.c (alpha_preferred_reload_class,
9381         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
9382         alpha_output_mi_thunk_osf): Avoid C++ keywords.
9383         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
9384         * config/arm/arm.md: Likewise.
9385         * config/avr/avr-protos.h (preferred_reload_class,
9386         test_hard_reg_class, avr_simplify_comparison_p,
9387         out_shift_with_cnt, class_max_nregs): Likewise.
9388         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
9389         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
9390         preferred_reload_class, test_hard_reg_class): Likewise.
9391         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
9392         bfin_memory_move_cost, bfin_secondary_reload,
9393         bfin_output_mi_thunk): Likewise.
9394         * config/crx/crx.c (crx_secondary_reload_class,
9395         crx_memory_move_cost): Likewise.
9396         * config/frv/frv-protos.h (frv_secondary_reload_class,
9397         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
9398         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
9399         frv_secondary_reload_class, frv_class_likely_spilled_p,
9400         frv_class_max_nregs): Likewise.
9401         * config/h8300/h8300.c (h8300_classify_operand,
9402         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
9403         Likewise.
9404         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
9405         * config/ia64/ia64.c (ia64_preferred_reload_class,
9406         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
9407         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
9408         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
9409         Likewise.
9410         * config/m68hc11/m68hc11.c (preferred_reload_class,
9411         m68hc11_memory_move_cost): Likewise.
9412         * config/mcore/mcore.c (mcore_secondary_reload_class,
9413         mcore_reload_class): Likewise.
9414         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
9415         mips_class_max_nregs, mips_cannot_change_mode_class,
9416         mips_preferred_reload_class, mips_secondary_reload_class,
9417         mips_output_mi_thunk): Likewise.
9418         * config/mmix/mmix.c (mmix_preferred_reload_class,
9419         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
9420         Likewise.
9421         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9422         Likewise.
9423         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
9424         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
9425         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
9426         * config/rs6000/rs6000.c (paired_expand_vector_init,
9427         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
9428         compare_section_name, rs6000_memory_move_cost): Likewise.
9429         * config/s390/s390.c (s390_emit_compare_and_swap,
9430         s390_preferred_reload_class, s390_secondary_reload,
9431         legitimize_pic_address, legitimize_tls_address,
9432         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
9433         s390_class_max_nregs): Likewise.
9434         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
9435         * config/s390/s390.md: Likewise.
9436         * config/score/score-protos.h (score_secondary_reload_class,
9437         score_preferred_reload_class): Likewise.
9438         * config/score/score.c (score_preferred_reload_class,
9439         score_secondary_reload_class): Likewise.
9440         * config/score/score3.c (score3_output_mi_thunk,
9441         score3_preferred_reload_class, score3_secondary_reload_class,
9442         score3_hard_regno_mode_ok): Likewise.
9443         * config/score/score3.h (score3_preferred_reload_class,
9444         score3_secondary_reload_class): Likewise.
9445         * config/score/score7.c (score7_output_mi_thunk,
9446         score7_preferred_reload_class, score7_secondary_reload_class,
9447         score7_hard_regno_mode_ok): Likewise.
9448         * config/score/score7.h (score7_preferred_reload_class,
9449         score7_secondary_reload_class): Likewise.
9450         * config/sh/sh.c (prepare_move_operands, output_far_jump,
9451         output_branchy_insn, add_constant, gen_block_redirect,
9452         sh_insn_length_adjustment, sh_cannot_change_mode_class,
9453         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
9454         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
9455         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
9456         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
9457         xstormy16_preferred_reload_class): Likewise.
9458         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
9459         xtensa_expand_atomic, override_options,
9460         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
9461         Likewise.
9462         * reorg.c (try_merge_delay_insns): Likewise.
9463         * tree.c (merge_dllimport_decl_attributes): Likewise.
9464
9465         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
9466
9467 2008-08-06  Michael Matz  <matz@suse.de>
9468
9469         * Makefile.in (write_entries_to_file): Quote words.
9470         * gengtype.c: (read_input_line): Skip over leading white-space.
9471
9472 2008-08-06  Marc Gauthier  <marc@tensilica.com>
9473
9474         * config.gcc: Match more processor names for Xtensa.
9475         * configure.ac: Likewise.
9476         * doc/install.texi (Specific): Likewise.
9477         * configure: Regenerate.
9478
9479 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9480
9481         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
9482         * calls.c (avoid_likely_spilled_reg): Likewise.
9483         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
9484         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
9485         * config/i386/i386.c (ix86_expand_special_args_builtin,
9486         ix86_secondary_reload): Likewise.
9487         * except.c (struct eh_region, gen_eh_region_catch,
9488         remove_unreachable_regions, duplicate_eh_regions,
9489         assign_filter_values, build_post_landing_pads,
9490         sjlj_find_directly_reachable_regions, remove_eh_handler,
9491         reachable_next_level, foreach_reachable_handler,
9492         can_throw_internal_1, can_throw_external_1,
9493         collect_one_action_chain): Likewise.
9494         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
9495         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
9496         * function.c (update_temp_slot_address, instantiate_new_reg,
9497         instantiate_virtual_regs_in_rtx,
9498         instantiate_virtual_regs_in_insn): Likewise.
9499         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
9500         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
9501         gimplify_cleanup_point_expr): Likewise.
9502         * ipa-cp.c (ipcp_lattice_changed): Likewise.
9503         * passes.c (next_pass_1): Likewise.
9504         * print-tree.c (print_node_brief, print_node): Likewise.
9505         * profile.c (branch_prob): Likewise.
9506         * tree-dump.c (dump_register): Likewise.
9507         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
9508         Likewise.
9509         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
9510         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
9511         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
9512         copy_arguments_for_versioning, copy_static_chain): Likewise.
9513         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
9514         add_new_name_mapping, register_new_name_mapping): Likewise.
9515         * tree-mudflap.c (mf_xform_derefs): Likewise.
9516         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
9517         get_init_expr, combine_chains): Likewise.
9518         * tree-pretty-print.c (dump_generic_node): Likewise.
9519         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
9520         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
9521         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
9522         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
9523
9524 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
9525
9526         PR middle-end/37010
9527         * calls.c (expand_call): Use the biggest preferred stack
9528         boundary.
9529
9530 2008-08-06  Michael Matz  <matz@suse.de>
9531
9532         PR target/36613
9533         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
9534         for reused reload, instead of overwriting them.
9535
9536 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
9537
9538         PR middle-end/37009
9539         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
9540         for incoming stack boundary.
9541
9542         * function.c (assign_parm_find_entry_rtl): Update
9543         parm_stack_boundary.
9544
9545         * function.h (rtl_data): Add parm_stack_boundary.
9546
9547         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
9548         parm_stack_boundary for incoming stack boundary.
9549
9550 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
9551
9552         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
9553         for unrepresentable subregs or treat them as equal to other regs
9554         or subregs with the same register number.
9555
9556 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
9557
9558         PR middle-end/35432
9559         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
9560         if want_value.
9561
9562 2008-08-06  Jan Hubicka  <jh@suse.cz>
9563
9564         * predict.c (maybe_hot_frequency_p): When profile is absent, all
9565         frequencies might be hot.
9566
9567 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
9568
9569         * reload.c (find_reloads): Force constants into literal pool
9570         also if they are wrapped in a SUBREG.
9571
9572 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
9573
9574         PR target/35659
9575         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
9576         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
9577         Don't allow predicated instructions for data speculation.
9578         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
9579         declaration.
9580
9581 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
9582
9583         * haifa-sched.c (extend_global): Split to extend_global_data and
9584         extend_region_data.  Update all uses.
9585         (extend_all): Rename to extend_block_data.
9586
9587 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
9588
9589         * sched-rgn.c (new_ready): Check if instruction can be
9590         speculatively scheduled before attempting speculation.
9591         (debug_rgn_dependencies): Remove wrongful assert.
9592
9593 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
9594
9595         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
9596
9597 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
9598
9599         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
9600         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
9601         va_size, and type_size.
9602
9603 2008-08-04  Jason Merrill  <jason@redhat.com>
9604
9605         PR c++/37016
9606         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
9607         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
9608
9609 2008-08-05  Richard Henderson  <rth@redhat.com>
9610
9611         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
9612         * configure: Rebuild.
9613
9614 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9615
9616         PR tree-opt/37024
9617         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
9618         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
9619         is a conversion.
9620
9621 2008-08-05  Richard Henderson  <rth@redhat.com>
9622
9623         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
9624         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
9625         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
9626         * common.opt (fdwarf2-cfi-asm): New.
9627         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
9628         * config.in, configure: Rebuild.
9629         * dwarf2asm.c (dw2_asm_output_data_raw): New.
9630         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
9631         New.
9632         (dw2_force_const_mem): Externalize.
9633         * dwarf2asm.h: Update.
9634         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
9635         generate a real label.
9636         (output_cfi_directive): New.
9637         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
9638         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
9639         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
9640         and .cfi_lsda.
9641         (dwarf2out_end_epilogue): Emit .cfi_endproc.
9642         (output_loc_operands_raw, output_loc_sequence_raw): New.
9643         (output_cfa_loc_raw): New.
9644
9645 2008-08-05  Paul Brook  <paul@codesourcery.com>
9646
9647         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
9648         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
9649         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
9650         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
9651         * config/arm/arm.h (TARGET_VFPD32): Define.
9652         (TARGET_VFP3): Use TARGET_VFPD32.
9653         (fputype): Add FPUTYPE_VFP3D16.
9654         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
9655         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
9656         * config/arm/arm-cores.def: Add cortex-r4f.
9657         * config/arm/arm-tune.md: Regenerate.
9658
9659 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9660
9661         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
9662         Reword some comments throughout the file.
9663
9664         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
9665         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
9666         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
9667         MFC_MIN_DMA_LIST_ELEMENTS.
9668         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
9669         MFC_MAX_DMA_LIST_ELEMENTS.
9670
9671         (MFC_START_ENABLE): Remove PPU-only define.
9672         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
9673         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
9674
9675         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
9676         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
9677         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
9678         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
9679         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
9680         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
9681         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
9682
9683         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
9684         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
9685         (mfc_sdcrt, mfc_sdcrtst): Likewise.
9686         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
9687
9688         (spu_read_machine_status): Fix typo.
9689
9690 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9691
9692         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
9693         SUBREG of multi-word hard register.
9694         * config/spu/spu.c (valid_subreg): Likewise.
9695         (adjust_operand): Handle SUBREGs of multi-word hard registers.
9696
9697 2008-08-04  Richard Guenther  <rguenther@suse.de>
9698
9699         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
9700         the candidate with the stripped base if that base is different
9701         from the original base even for offset zero.
9702
9703 2008-08-04  Richard Guenther  <rguenther@suse.de>
9704
9705         PR middle-end/36691
9706         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
9707         check for no_overflow.
9708
9709 2008-08-04  Richard Guenther  <rguenther@suse.de>
9710
9711         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
9712
9713 2008-08-04  Paul Brook  <paul@codesourcery.com>
9714
9715         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
9716         (arm_order_regs_for_local_alloc): New function.
9717         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
9718         prototype.
9719         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
9720
9721 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
9722
9723         PR target/37012
9724         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
9725         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
9726         (ix86_expand_epilogue): Likewise.
9727
9728 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
9729
9730         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
9731         in comments.
9732
9733 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
9734
9735         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
9736         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
9737         (*movv2sf_internal_rex64): Ditto.
9738
9739 2008-08-03  Jan Hubicka  <jh@suse.cz>
9740
9741         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
9742         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
9743         * expmed.c (expand_smod_pow2): Likewise.
9744
9745 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
9746
9747         PR target/36992
9748         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
9749         alternative 0 of operand 1.
9750         (*vec_concatv2di_rex64_sse): Ditto.
9751         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
9752         of operand 1.
9753         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
9754         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
9755         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
9756         (*movv2sf_internal_rex64): Ditto.
9757
9758 2008-08-02  Richard Guenther  <rguenther@suse.de>
9759
9760         PR target/35252
9761         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
9762         (ssedoublesizemode): New mode attribute.
9763         (sse_shufps): Call gen_sse_shufps_v4sf.
9764         (sse_shufps_1): Macroize.
9765         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
9766         (sse2_shufpd_1): Macroize.
9767         (vec_extract_odd, vec_extract_even): New expanders.
9768         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
9769         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
9770         * i386.c (ix86_expand_vector_init_one_nonzero): Call
9771         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
9772         (ix86_expand_vector_set): Likewise.
9773         (ix86_expand_reduc_v4sf): Likewise.
9774
9775 2008-08-01  Doug Kwan  <dougkwan@google.com>
9776
9777         * matrix-reorg.c: Re-enable all code.
9778         (struct malloc_call_data): Change CALL_STMT to gimple type.
9779         (collect_data_for_malloc_call): Tuplify.
9780         (struct access_site_info): Change STMT to gimple type.
9781         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
9782         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
9783         (struct free_info): Change STMT to gimple type.
9784         (struct matrix_access_phi_node):  Change PHI to gimple type.
9785         (get_inner_of_cast_expr): Remove.
9786         (may_flatten_matrices_1): Tuplify.
9787         (may_flatten_matrices): Ditto.
9788         (mark_min_matrix_escape_level): Ditto.
9789         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
9790         (ssa_accessed_in_call_rhs): New
9791         (ssa_accessed_in_assign_rhs): New
9792         (record_access_alloc_site_info): Tuplify.
9793         (add_allocation_site): Ditto.
9794         (analyze_matrix_allocation_site): Ditto.
9795         (analyze_transpose): Ditto.
9796         (get_index_from_offset): Ditto.
9797         (update_type_size): Ditto.
9798         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
9799         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
9800         (analyze_accesses_for_phi_node): Tuplify.
9801         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
9802         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
9803         (analyze_matrix_accesses): Tuplify.
9804         (check_var_data): New call-back type for check_var_notmodified_p.
9805         (check_var_notmodified_p): Tuplify and use call-back struct to
9806         return statement found.
9807         (can_calculate_expr_before_stmt): Factor out statement related code
9808         into ...
9809         (can_calculate_stmt_before_stmt): New.
9810         (check_allocation_function): Tuplify.
9811         (find_sites_in_func): Ditto.
9812         (record_all_accesses_in_func): Ditto.
9813         (transform_access_sites): Ditto.
9814         (transform_allocation_sites): Ditto.
9815         (matrix_reorg): Re-enable.
9816         (gate_matrix_reorg): Re-enable.
9817
9818 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
9819
9820         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
9821         for labels for which it hasn't been set yet.  If it has been set,
9822         stop walking insns and continue with next worklist item.
9823         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
9824         if the only BARRIER is at the very end of a function.
9825
9826 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
9827
9828         * cfgexpand.c (expand_stack_alignment): Assert that
9829         stack_realign_drap and drap_rtx must match.
9830
9831         * function.c (instantiate_new_reg): If DRAP is used to realign
9832         stack, replace virtual_incoming_args_rtx with internal arg
9833         pointer.
9834
9835 2008-08-01  Richard Guenther  <rguenther@suse.de>
9836
9837         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
9838         loop information only if we initialized it.
9839         (execute_pre): Call fini_pre with in_fre.
9840         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
9841         if we do not unroll because we hit max-completely-peeled-insns.
9842         Use our estimation for consistency, do allow shrinking.
9843
9844 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
9845
9846         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
9847         with MIN_STACK_BOUNDARY.
9848         (ix86_update_stack_boundary): Likewise.
9849         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
9850         STACK_BOUNDARY.
9851
9852         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
9853         (MIN_STACK_BOUNDARY): This.
9854
9855 2008-08-01  Richard Guenther  <rguenther@suse.de>
9856
9857         PR middle-end/36997
9858         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
9859
9860 2008-08-01  Richard Guenther  <rguenther@suse.de>
9861
9862         PR tree-optimization/36988
9863         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
9864         do not matter if that doesn't change volatile qualification.
9865
9866 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
9867
9868         * configure.ac: Do not generate libada-mk.  Do not subst
9869         host_cc_for_libada.
9870         * libada-mk.in: Remove.
9871         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
9872         * configure: Regenerate.
9873
9874 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
9875
9876         * tree-pass.h: Added comment about not dumping passes with name
9877         starting with star in struct opt_pass.
9878         * passes.c (register_dump_files_1): Don't do dump for a pass with
9879         name starting with star.
9880         * doc/passes.texi (Pass manager): Mention pass names and special
9881         meaning of star prefix to avoid dump.
9882
9883 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
9884
9885         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
9886         to MIPS64r2.
9887         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
9888         (ISA_MIPS64R2): New macro.
9889         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
9890         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
9891         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
9892         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
9893         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
9894         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
9895         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
9896         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
9897         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
9898         Move up to keep list alphabetically sorted.
9899         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
9900         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
9901         processor.
9902         * doc/invoke.texi (MIPS Options): Add -mips64r2.
9903         (-march=@var{arch}): Add mips64r2.
9904
9905 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9906
9907         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
9908
9909 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
9910
9911         * expr.c (expand_assignment): Check for complete type.
9912
9913 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9914
9915         PR debug/36977
9916         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
9917
9918         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
9919         for stack alignment.
9920
9921         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
9922
9923 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9924
9925         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
9926         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
9927
9928 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
9929
9930         PR rtl-optimization/36419
9931         * dwarf2out.c (barrier_args_size): New variable.
9932         (compute_barrier_args_size, compute_barrier_args_size_1): New
9933         functions.
9934         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
9935         if not called yet in the current function, use barrier_args_size
9936         array to find the new args_size value.
9937         (dwarf2out_frame_debug): Free and clear barrier_args_size.
9938
9939 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9940
9941         PR debug/36980
9942         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
9943         rule 19.
9944
9945 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9946
9947         PR debug/36976
9948         * dwarf2out.c (dwarf2out_args_size_adjust): New.
9949         (dwarf2out_stack_adjust): Use it.
9950         (dwarf2out_frame_debug_expr): Likewise.
9951
9952 2008-07-31  Richard Guenther  <rguenther@suse.de>
9953
9954         PR tree-optimization/36978
9955         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
9956         the generated condition.
9957
9958 2008-07-31  Richard Guenther  <rguenther@suse.de>
9959
9960         * passes.c (init_optimization_passes): Always call
9961         pass_early_warn_uninitialized.
9962         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
9963         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
9964         * doc/passes.texi (Warn for uninitialized variables): Adjust.
9965
9966 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
9967
9968         PR c/36970
9969         * builtins.c (maybe_emit_free_warning): New function.
9970         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
9971         maybe_emit_free_warning for BUILT_IN_FREE.
9972
9973         PR debug/36278
9974         * dwarf2out.c (get_context_die): New function.
9975         (force_decl_die, force_type_die): Use it.
9976         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
9977         returns NULL, force generation of DW_TAG_typedef and put that into
9978         DW_AT_import.
9979
9980         PR preprocessor/36649
9981         * c-pch.c (c_common_read_pch): Save and restore
9982         line_table->trace_includes across PCH restore.
9983
9984 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
9985
9986         PR ada/36554
9987         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
9988
9989 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
9990
9991         PR 36974
9992         * final.c (call_from_call_insn): Handle COND_EXEC.
9993
9994 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
9995
9996         * builtins.c (std_gimplify_va_arg_expr): Replace
9997         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
9998         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
9999
10000 2008-07-30  Joey Ye  <joey.ye@intel.com>
10001             H.J. Lu  <hongjiu.lu@intel.com>
10002
10003         * builtins.c (expand_builtin_setjmp_receiver): Replace
10004         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
10005         (expand_builtin_apply_args_1): Likewise.
10006         (expand_builtin_longjmp): Need DRAP for stack alignment.
10007         (expand_builtin_apply): Likewise.
10008
10009         * caller-save.c (setup_save_areas): Call assign_stack_local_1
10010         instead of assign_stack_local to allow alignment reduction.
10011
10012         * calls.c (emit_call_1): Need DRAP for stack alignment if
10013         return pops.
10014         (expand_call): Replace virtual_incoming_args_rtx with
10015         crtl->args.internal_arg_pointer.
10016         * stmt.c (expand_nl_goto_receiver): Likewise.
10017
10018         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
10019         alignment and store to stack_alignment_estimated and
10020         max_used_stack_slot_alignment.
10021         (expand_one_var): Likewise.
10022         (expand_stack_alignment): New function.
10023         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
10024         and stack_alignment_estimated fields in rtl_data.  Call
10025         expand_stack_alignment at end.
10026
10027         * defaults.h (INCOMING_STACK_BOUNDARY): New.
10028         (MAX_STACK_ALIGNMENT): Likewise.
10029         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
10030         (SUPPORTS_STACK_ALIGNMENT): Likewise.
10031
10032         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
10033         stack alignment when generating virtual registers.
10034
10035         * function.c (assign_stack_local): Renamed to ...
10036         (assign_stack_local_1): This.  Add a parameter to indicate
10037         if it is OK to reduce alignment.
10038         (assign_stack_local): Use it.
10039         (instantiate_new_reg): Instantiate virtual incoming args rtx
10040         to vDRAP if stack realignment and DRAP is needed.
10041         (assign_parms): Collect parameter/return type alignment and
10042         contribute to stack_alignment_estimated.
10043         (locate_and_pad_parm): Likewise.
10044         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
10045         with crtl->args.internal_arg_pointer.
10046
10047         * function.h (rtl_data): Add new field drap_reg,
10048         max_used_stack_slot_alignment, stack_alignment_estimated,
10049         stack_realign_needed, need_drap, stack_realign_processed and
10050         stack_realign_finalized.
10051         (stack_realign_fp): New macro.
10052         (stack_realign_drap): Likewise.
10053
10054         * global.c (compute_regsets): Frame pointer is needed when
10055         stack is realigned.  Can eliminate frame pointer when stack is
10056         realigned and dynamic realigned argument pointer isn't used.
10057
10058         * reload1.c (update_eliminables):  Frame pointer is needed
10059         when stack is realigned.
10060         (init_elim_table): Can eliminate frame pointer when stack is
10061         realigned and dynamic realigned argument pointer isn't used.
10062
10063         * rtl.h (assign_stack_local_1): Declare new funtion.
10064
10065         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
10066         (TARGET_GET_DRAP_RTX): Likewise.
10067         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
10068         TARGET_GET_DRAP_RTX.
10069
10070         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
10071
10072         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
10073         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
10074
10075 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
10076             H.J. Lu  <hongjiu.lu@intel.com>
10077
10078         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
10079         vdrap_reg, stack_realign and drap_reg_saved.
10080         (add_cfi): Don't allow redefining CFA when DRAP is used.
10081         (reg_save): Handle stack alignment.
10082         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
10083         alignment.  Don't generate DWARF information for (set fp sp)
10084         when DRAP is used.
10085         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
10086         to INVALID_REGNUM.
10087         (int_loc_descriptor): Move prototype forward.  Also define if
10088         DWARF2_UNWIND_INFO is true.
10089         (output_cfa_loc): Handle DW_CFA_expression.
10090         (build_cfa_aligned_loc): New.
10091         (based_loc_descr): Update assert for stack realign.  For local
10092         variables, use sp+offset when stack is aligned without drap and
10093         fp+offset when stack is aligned with drap.  For arguments, use
10094         cfa+offset when drap is used to align stack.
10095
10096 2008-07-30  Joey Ye  <joey.ye@intel.com>
10097             H.J. Lu  <hongjiu.lu@intel.com>
10098
10099         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
10100         Break long line.
10101         (ix86_gen_andsp): New.
10102         (ix86_user_incoming_stack_boundary): Likewise.
10103         (ix86_default_incoming_stack_boundary): Likewise.
10104         (ix86_incoming_stack_boundary): Likewise.
10105         (ix86_can_eliminate): Likewise.
10106         (find_drap_reg): Likewise.
10107         (ix86_update_stack_boundary): Likewise.
10108         (ix86_get_drap_rtx): Likewise.
10109         (ix86_finalize_stack_realign_flags): Likewise.
10110         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
10111         (TARGET_GET_DRAP_RTX): Likewise.
10112         (override_options): Overide option value for new options.
10113         (ix86_function_ok_for_sibcall): Remove check for
10114         force_align_arg_pointer.
10115         (ix86_handle_cconv_attribute): Likewise.
10116         (ix86_function_regparm): Likewise.
10117         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
10118         (ix86_va_start): Replace virtual_incoming_args_rtx with
10119         crtl->args.internal_arg_pointer.
10120         (ix86_select_alt_pic_regnum): Check DRAP register.
10121         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
10122         (ix86_compute_frame_layout): Compute frame layout wrt stack
10123         realignment.
10124         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
10125         (ix86_expand_prologue): Decide if stack realignment is needed
10126         and generate prologue code accordingly.
10127         (ix86_expand_epilogue): Generate epilogue code wrt stack
10128         realignment is really needed or not.
10129
10130         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
10131         (ABI_STACK_BOUNDARY): Likewise.
10132         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
10133         (STACK_REALIGN_DEFAULT): Likewise.
10134         (INCOMING_STACK_BOUNDARY): Likewise.
10135         (MAX_STACK_ALIGNMENT): Likewise.
10136         (ix86_incoming_stack_boundary): Likewise.
10137         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
10138         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
10139         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
10140         (machine_function): Remove force_align_arg_pointer.
10141
10142         * config/i386/i386.md (BX_REG): New.
10143         (R13_REG): Likewise.
10144
10145         * config/i386/i386.opt (mforce_drap): New.
10146         (mincoming-stack-boundary): Likewise.
10147         (mstackrealign): Add Init(-1).
10148
10149         * config/i386/i386-protos.h (ix86_can_eliminate): New
10150
10151 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
10152
10153         * doc/extend.texi: Update force_align_arg_pointer.
10154
10155         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
10156         -mstackrealign.
10157
10158         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
10159         (INCOMING_STACK_BOUNDARY): Likewise.
10160         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
10161         (TARGET_GET_DRAP_RTX): Likewise.
10162
10163 2008-07-30  Andreas Schwab  <schwab@suse.de>
10164
10165         PR rtl-optimization/36929
10166         * dse.c (replace_inc_dec): Use emit_insn_before instead of
10167         add_insn_before and fix argument order.
10168         (replace_inc_dec_mem): Handle NULL rtx.
10169
10170 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
10171
10172         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
10173         function.
10174         (arm_compute_initial_elimination_offset): Use it.
10175         (arm_compute_save_reg_mask): Include static chain save slot when
10176         calculating alignment.
10177         (arm_get_frame_offsets): Ditto.
10178         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
10179         that we can use to decrement the stack when the stack decrement
10180         could be too big for an immediate value in a single insn.
10181         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
10182
10183 2008-07-30  Richard Guenther  <rguenther@suse.de>
10184
10185         PR tree-optimization/36967
10186         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
10187         Release defs of statements we remove.
10188
10189 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
10190
10191         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
10192         instead of NULL_RTVEC.
10193
10194 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
10195
10196         PR target/35866
10197
10198         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
10199         vector modes.
10200
10201 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
10202
10203         * final.c (call_from_call_insn): New.
10204         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
10205
10206 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
10207
10208         * configure.ac: Substitute ADA_CFLAGS.
10209         * configure: Regenerate.
10210         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
10211         * Makefile.in: Remove mention of X_* variables.
10212         * config/pa/x-ada-hpux10: Remove.
10213         * config/pa/x-ada: Remove.
10214
10215         * doc/fragments.texi: Update.
10216
10217 2008-07-30  Olivier Hainque  <hainque@adacore.com>
10218
10219         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
10220         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
10221         __dso_handle explicitly here.
10222
10223 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10224
10225         PR 34389
10226         * c-typeck.c (build_binary_op): Encapsulate code into...
10227         * c-common.c (shorten_binary_op): ...this new function.
10228         (conversion_warning): Use the new function. Handle non-negative
10229         constant in bitwise-and.
10230         * c-common.h (shorten_binary_op): Declare.
10231
10232 2008-07-30  Olivier Hainque  <hainque@adacore.com>
10233
10234         * scan.c (make_sstring_space): Add explicit conversions of
10235         allocator's return value.
10236         * fix-header.c (recognized_function): Likewise.
10237
10238 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10239
10240         * doc/cpp.texi: Update to GFDL 1.2.
10241         * doc/gcc.texi: Do not list GPL as Invariant Section.
10242         * doc/gccint.texi: Likewise.  Update copyright years.
10243         * doc/install.texi: Update copyright years.
10244
10245 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
10246
10247         PR target/36955
10248         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
10249         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
10250
10251 2008-07-29  Jan Hubicka  <jh@suse.cz>
10252
10253         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
10254         (grokdeclarator): Likewise.
10255         * langhooks.c (lhd_warn_unused_global_decl): Use
10256         DECL_DECLARED_INLINE_P.
10257         * print-tree.c (print_node): Remove DECL_INLINE check.
10258
10259 2008-07-29  Richard Guenther  <rguenther@suse.de>
10260
10261         PR tree-optimization/36945
10262         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
10263         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
10264         Record invariant addresses un-decomposed.
10265         (copy_reference_ops_from_call): Record reference call
10266         arguments properly.  Simplify.
10267         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
10268         helper split out from ...
10269         (create_component_ref_by_pieces): ... here.  Simplify.
10270         Prepare for recursive invocation for call arguments.
10271         (create_expression_by_pieces): Adjust call to
10272         create_component_ref_by_pieces.
10273         (compute_avail): Process operand 2 of reference ops.
10274
10275 2008-07-29  Richard Guenther  <rguenther@suse.de>
10276
10277         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
10278
10279 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
10280
10281         * c-format.c (check_format_types): Revert unwanted checkin.
10282
10283 2008-07-29  Jan Hubicka  <jh@suse.cz>
10284
10285         * flags.h (flag_really_no_inline): Remove.
10286         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
10287         * toplev.c (flag_really_no_inline): Remove.
10288         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
10289         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
10290         (cgraph_decide_inlining_incrementally): Likewise.
10291         (compute_inline_parameters): Likewise.
10292         * opts.c (decode_options): Simplify.
10293         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
10294         * common.opt (finline): Initialize to 1.
10295         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
10296
10297 2008-07-29  Jan Hubicka  <jh@suse.cz>
10298
10299         * predict.c (always_optimize_for_size_p): New function.
10300         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
10301         optimize_edge_for_size_p, optimize_edge_for_speed_p,
10302         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
10303         functions.
10304         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
10305         * function.c (prepare_function_start): Set default profile.
10306         * function.h (rtl_data): Add maybe_hot_insn_p.
10307         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
10308         (construct_exit_block): Likewise.
10309         (tree_expand_cfg): Likewise.
10310         * basic-block.h
10311         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
10312         optimize_edge_for_size_p, optimize_edge_for_speed_p,
10313         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
10314         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
10315         Declare.
10316
10317 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10318
10319         PR 34985
10320         * c-decl.c (merge_decls): Merge USED flags.
10321
10322 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10323
10324         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
10325         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
10326         next_stack, lab_false and lab_over trees.
10327
10328 2008-07-28  Richard Guenther  <rguenther@suse.de>
10329
10330         PR tree-optimization/36957
10331         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
10332         (useless_type_conversion_p): Remove.
10333         (types_compatible_p): Remove.
10334         * gimple.h (tree_ssa_useless_type_conversion): Declare.
10335         (useless_type_conversion_p): Declare.
10336         (types_compatible_p): Declare.
10337         (gimple_expr_type): Return the base type only if it is
10338         trivially convertible to the subtype.
10339
10340 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
10341
10342         * configure.ac: Use the m4_do macro to concatenate the warnings into
10343         one string in ACX_PROG_CC_WARNING_OPTS,
10344         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
10345         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
10346         * configure: Regenerate.
10347
10348 2008-07-28  Richard Guenther  <rguenther@suse.de>
10349
10350         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
10351         (insert_fake_stores): Remove.
10352         (realify_fake_stores): Likewise.
10353         (execute_pre): Remove dead code.
10354         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
10355         (find_func_aliases): Deal with it here instead.
10356         Re-enable gcc_unreachable call.
10357
10358 2008-07-28  Richard Guenther  <rguenther@suse.de>
10359
10360         Merge from gimple-tuples-branch.
10361
10362         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
10363         * gimple.def: New file.
10364         * gsstruct.def: Likewise.
10365         * gimple-iterator.c: Likewise.
10366         * gimple-pretty-print.c: Likewise.
10367         * tree-gimple.c: Removed.  Merged into ...
10368         * gimple.c: ... here.  New file.
10369         * tree-gimple.h: Removed.  Merged into ...
10370         * gimple.h: ... here.  New file.
10371
10372         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
10373         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
10374         --enable-checking=gimple flag.
10375         * config.in: Likewise.
10376         * configure: Regenerated.
10377
10378         * tree-ssa-operands.h: Tuplified.
10379         * tree-vrp.c: Likewise.
10380         * tree-loop-linear.c: Likewise.
10381         * tree-into-ssa.c: Likewise.
10382         * tree-ssa-loop-im.c: Likewise.
10383         * tree-dump.c: Likewise.
10384         * tree-complex.c: Likewise.
10385         * cgraphbuild.c: Likewise.
10386         * tree-ssa-threadupdate.c: Likewise.
10387         * tree-ssa-loop-niter.c: Likewise.
10388         * tree-pretty-print.c: Likewise.
10389         * tracer.c: Likewise.
10390         * gengtype.c: Likewise.
10391         * tree-loop-distribution.c: Likewise.
10392         * tree-ssa-loop-unswitch.c: Likewise.
10393         * cgraph.c: Likewise.
10394         * cgraph.h: Likewise.
10395         * tree-ssa-loop-manip.c: Likewise.
10396         * value-prof.c: Likewise.
10397         * tree-ssa-loop-ch.c: Likewise.
10398         * tree-tailcall.c: Likewise.
10399         * value-prof.h: Likewise.
10400         * tree.c: Likewise.
10401         * tree.h: Likewise.
10402         * tree-pass.h: Likewise.
10403         * ipa-cp.c: Likewise.
10404         * tree-scalar-evolution.c: Likewise.
10405         * tree-scalar-evolution.h: Likewise.
10406         * target.h: Likewise.
10407         * lambda-mat.c: Likewise.
10408         * tree-phinodes.c: Likewise.
10409         * diagnostic.h: Likewise.
10410         * builtins.c: Likewise.
10411         * tree-ssa-alias-warnings.c: Likewise.
10412         * cfghooks.c: Likewise.
10413         * fold-const.c: Likewise.
10414         * cfghooks.h: Likewise.
10415         * omp-low.c: Likewise.
10416         * tree-ssa-dse.c: Likewise.
10417         * ipa-reference.c: Likewise.
10418         * tree-ssa-uncprop.c: Likewise.
10419         * toplev.c: Likewise.
10420         * tree-gimple.c: Likewise.
10421         * tree-gimple.h: Likewise.
10422         * tree-chrec.c: Likewise.
10423         * tree-chrec.h: Likewise.
10424         * tree-ssa-sccvn.c: Likewise.
10425         * tree-ssa-sccvn.h: Likewise.
10426         * cgraphunit.c: Likewise.
10427         * tree-ssa-copyrename.c: Likewise.
10428         * tree-ssa-ccp.c: Likewise.
10429         * tree-ssa-loop-ivopts.c: Likewise.
10430         * tree-nomudflap.c: Likewise.
10431         * tree-call-cdce.c: Likewise.
10432         * ipa-pure-const.c: Likewise.
10433         * c-format.c: Likewise.
10434         * tree-stdarg.c: Likewise.
10435         * tree-ssa-math-opts.c: Likewise.
10436         * tree-ssa-dom.c: Likewise.
10437         * tree-nrv.c: Likewise.
10438         * tree-ssa-propagate.c: Likewise.
10439         * ipa-utils.c: Likewise.
10440         * tree-ssa-propagate.h: Likewise.
10441         * tree-ssa-alias.c: Likewise.
10442         * gimple-low.c: Likewise.
10443         * tree-ssa-sink.c: Likewise.
10444         * ipa-inline.c: Likewise.
10445         * c-semantics.c: Likewise.
10446         * dwarf2out.c: Likewise.
10447         * expr.c: Likewise.
10448         * tree-ssa-loop-ivcanon.c: Likewise.
10449         * predict.c: Likewise.
10450         * tree-ssa-loop.c: Likewise.
10451         * tree-parloops.c: Likewise.
10452         * tree-ssa-address.c: Likewise.
10453         * tree-ssa-ifcombine.c: Likewise.
10454         * matrix-reorg.c: Likewise.
10455         * c-decl.c: Likewise.
10456         * tree-eh.c: Likewise.
10457         * c-pretty-print.c: Likewise.
10458         * lambda-trans.c: Likewise.
10459         * function.c: Likewise.
10460         * langhooks.c: Likewise.
10461         * ebitmap.h: Likewise.
10462         * tree-vectorizer.c: Likewise.
10463         * function.h: Likewise.
10464         * langhooks.h: Likewise.
10465         * tree-vectorizer.h: Likewise.
10466         * ipa-type-escape.c: Likewise.
10467         * ipa-type-escape.h: Likewise.
10468         * domwalk.c: Likewise.
10469         * tree-if-conv.c: Likewise.
10470         * profile.c: Likewise.
10471         * domwalk.h: Likewise.
10472         * tree-data-ref.c: Likewise.
10473         * tree-data-ref.h: Likewise.
10474         * tree-flow-inline.h: Likewise.
10475         * tree-affine.c: Likewise.
10476         * tree-vect-analyze.c: Likewise.
10477         * c-typeck.c: Likewise.
10478         * gimplify.c: Likewise.
10479         * coretypes.h: Likewise.
10480         * tree-ssa-phiopt.c: Likewise.
10481         * calls.c: Likewise.
10482         * tree-ssa-coalesce.c: Likewise.
10483         * tree.def: Likewise.
10484         * tree-dfa.c: Likewise.
10485         * except.c: Likewise.
10486         * except.h: Likewise.
10487         * cfgexpand.c: Likewise.
10488         * tree-cfgcleanup.c: Likewise.
10489         * tree-ssa-pre.c: Likewise.
10490         * tree-ssa-live.c: Likewise.
10491         * tree-sra.c: Likewise.
10492         * tree-ssa-live.h: Likewise.
10493         * tree-predcom.c: Likewise.
10494         * lambda.h: Likewise.
10495         * tree-mudflap.c: Likewise.
10496         * ipa-prop.c: Likewise.
10497         * print-tree.c: Likewise.
10498         * tree-ssa-copy.c: Likewise.
10499         * ipa-prop.h: Likewise.
10500         * tree-ssa-forwprop.c: Likewise.
10501         * ggc-page.c: Likewise.
10502         * c-omp.c: Likewise.
10503         * tree-ssa-dce.c: Likewise.
10504         * tree-vect-patterns.c: Likewise.
10505         * tree-ssa-ter.c: Likewise.
10506         * tree-nested.c: Likewise.
10507         * tree-ssa.c: Likewise.
10508         * lambda-code.c: Likewise.
10509         * tree-ssa-loop-prefetch.c: Likewise.
10510         * tree-inline.c: Likewise.
10511         * tree-inline.h: Likewise.
10512         * tree-iterator.c: Likewise.
10513         * tree-optimize.c: Likewise.
10514         * tree-ssa-phiprop.c: Likewise.
10515         * tree-vect-transform.c: Likewise.
10516         * tree-object-size.c: Likewise.
10517         * tree-outof-ssa.c: Likewise.
10518         * cfgloop.c: Likewise.
10519         * system.h: Likewise.
10520         * tree-profile.c: Likewise.
10521         * cfgloop.h: Likewise.
10522         * c-gimplify.c: Likewise.
10523         * c-common.c: Likewise.
10524         * tree-vect-generic.c: Likewise.
10525         * tree-flow.h: Likewise.
10526         * c-common.h: Likewise.
10527         * basic-block.h: Likewise.
10528         * tree-ssa-structalias.c: Likewise.
10529         * tree-switch-conversion.c: Likewise.
10530         * tree-ssa-structalias.h: Likewise.
10531         * tree-cfg.c: Likewise.
10532         * passes.c: Likewise.
10533         * ipa-struct-reorg.c: Likewise.
10534         * ipa-struct-reorg.h: Likewise.
10535         * tree-ssa-reassoc.c: Likewise.
10536         * cfgrtl.c: Likewise.
10537         * varpool.c: Likewise.
10538         * stmt.c: Likewise.
10539         * tree-ssanames.c: Likewise.
10540         * tree-ssa-threadedge.c: Likewise.
10541         * langhooks-def.h: Likewise.
10542         * tree-ssa-operands.c: Likewise.
10543         * config/alpha/alpha.c: Likewise.
10544         * config/frv/frv.c: Likewise.
10545         * config/s390/s390.c: Likewise.
10546         * config/m32c/m32c.c: Likewise.
10547         * config/m32c/m32c-protos.h: Likewise.
10548         * config/spu/spu.c: Likewise.
10549         * config/sparc/sparc.c: Likewise.
10550         * config/i386/i386.c: Likewise.
10551         * config/sh/sh.c: Likewise.
10552         * config/xtensa/xtensa.c: Likewise.
10553         * config/stormy16/stormy16.c: Likewise.
10554         * config/ia64/ia64.c: Likewise.
10555         * config/rs6000/rs6000.c: Likewise.
10556         * config/pa/pa.c: Likewise.
10557         * config/mips/mips.c: Likewise.
10558
10559 2008-07-28  Simon Baldwin  <simonb@google.com>
10560
10561         * c-pragma.c (handle_pragma_message): New function.
10562         (init_pragma): Register handle_pragma_message.
10563         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
10564         documentation.
10565
10566 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
10567
10568         PR tree-optimization/35252
10569         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
10570         REALPART_EXPR to be considered as same load operation.
10571
10572 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
10573
10574         PR tree-optimization/36830
10575         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
10576         (expressions_equal_p): Return false if only one operand is null.
10577
10578 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
10579
10580         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
10581         version requirements.
10582
10583 2008-07-26  Olivier Hainque  <hainque@adacore.com>
10584
10585         * collect2.c (symkind): New enum.  Symbol kinds we care about.
10586         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
10587         code and head comment accordingly.
10588         (scan_prog_file): Use symkind names instead of bare integers.
10589
10590 2008-07-25  Jan Hubicka  <jh@suse.cz>
10591
10592         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
10593         DECL_INLINE.
10594         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
10595         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
10596         * dojump.c (clear_pending_stack_adjust): Likewise.
10597         * print-tree.c (print_node): Ignore DECL_INLINE.
10598         * tree-inline.c (inlinable_function_p): Likewise.
10599
10600 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
10601
10602         * doc/extend.texi (hot attribute): Document that the hot attribute
10603         turns on -O3 for some ports.
10604         (cold attribute): Document that the cold attribute turns on -Os
10605         for some ports
10606
10607         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
10608         reflect function specific option support.
10609
10610         * target.h (struct target_option_hooks): Add fields to say whether
10611         the cold attribute implies -Os and the hot attribute implies -O3.
10612
10613         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
10614         By default, do not turn on -Os for cold functions.
10615         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
10616         not turn on -O3 for hot functions.
10617
10618         * c-common.c (handle_hot_attribute): Use target hook to determine
10619         if hot functions should enable -O3.
10620         (handle_cold_attribute): Use target hook to determine if cold
10621         functions should enable -Os.
10622
10623         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
10624         (override_options): Move disable scheduling to
10625         optimization_options.
10626         (optimization_options): Disable scheduling here, not
10627         override_options.
10628         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
10629         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
10630
10631         * config/ia64/ia64.c (ia64_override_options): Move setting
10632         scheduling flags to ia64_optimization_options.
10633         (ia64_optimization_options): Disable scheduling options here, and
10634         not in ia64_override_options.
10635         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
10636         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
10637
10638 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
10639
10640         PR target/36936
10641         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
10642
10643 2008-07-25  Martin Jambor  <mjambor@suse.cz>
10644
10645         PR tree-optimization/36926
10646         * ipa-prop.c (ipa_analyze_call_uses): Call
10647         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
10648
10649 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
10650
10651         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
10652         movv2si_internal): Add mem = reg alternative.
10653
10654 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
10655
10656         PR bootstrap/36918
10657         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
10658         DEFAULT_PCC_STRUCT_RETURN to 127.
10659
10660 2008-07-24  Jan Hubicka  <jh@suse.cz>
10661
10662         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
10663         (build_cgraph_edges): Likewise.
10664         * cgraph.c (cgraph_node): Do not update assembler hash.
10665         (cgraph_remove_node): Drop non-unit-at-a-time code.
10666         * tree-pass.h (pass_O0_always_inline): Remove.
10667         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
10668         * toplev.c (process_options): Flag unit-at-a-time does not imply
10669         no section anchors.
10670         * cgraphunit.c: Update comments.
10671         (decide_is_function_needed): Drop non-unit-at-a-time mode.
10672         (cgraph_assemble_pending_functions): Remove.
10673         (cgraph_reset_node): Drop non-unit-at-a-time code.
10674         (cgraph_finalize_function): Likewise.
10675         (cgraph_analyze_function): Likewise.
10676         (cgraph_finalize_compilation_unit): Likewise.
10677         (cgraph_expand_function): Likewise.
10678         (cgraph_optimize): Likesise.
10679         (save_inline_function_body): Likewise.
10680         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
10681         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
10682         * ipa-inline.c: Update comments.
10683         (enum inlining_mode): remove INLINE_SPEED.
10684         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
10685         (cgraph_mark_inline_edge): Likewise.
10686         (try_inline): Likewise.
10687         (cgraph_decide_inlining_incrementally): Likewise.
10688         (cgraph_gate_inlining): Remove.
10689         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
10690         (cgraph_gate_early_inlining): Likewise.
10691         (gate_inline_passes): Remove.
10692         (pass_inline_parameters, pass_ipa_inline): Remove gates.
10693         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
10694         pass_O0_always_inline): Remove.
10695         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
10696         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
10697         * opts.c (no_unit_at_a_time_default): Remove.
10698         (decode_options): Remove flag_unit_at_a_time reset and warning.
10699         * opts.h (no_unit_at_a_time_default): Remove.
10700         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
10701         early in GNU dialect.
10702         (merge_decls): Update comment; drop unit-at-a-time check.
10703         (finish_decl): Likewise.
10704         (grok_declaration): Remove flag_inline_trees code.
10705         (finish_functions): Return on function returning non-void on all
10706         statics.
10707         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
10708         * cfgexpand.c (expand_one_static_var): Remove.
10709         (expand_one_var): Remove expand_one_static_var call.
10710         (expand_used_vars_for_block): Remove flag_unit_a_time check.
10711         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
10712         and flag_unit_at_a-time compatibility checks.
10713         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
10714         * tree-inline.c (flag_inline_trees): Remove.
10715         (inlinable_function_p): Don't check it.
10716         (expand_call_inline): Remove non-unit-at-a-time code.
10717         * tree-inline.h (flag_inline_trees): Remove.
10718         * tree-optimize.c (execute_early_local_optimizations): Remove
10719         unit-at-a-time checks.
10720         (tree_rest_of_compilation): Likewise.
10721         * combine.c (setup_incoming_promotions): Likewise.
10722         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
10723         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
10724         * passes.c (pass_inline_parameters): Update comments; remove
10725         O0_alwaysinline pass.
10726         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
10727         (execute_one_pass): Likewise.
10728         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
10729         (ix86_function_sseregparm): Likewise.
10730         * arm.c (arm_function_in_section_p): Likewise.
10731         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
10732         * varpool.c: Update comments.
10733         (decide_is_variable_needed): Remove unit-at-a-time checks.
10734         (varpool_finalize_decl): Likewise.
10735
10736 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
10737
10738         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
10739         to 2 instead of -1.
10740         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
10741
10742 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
10743
10744         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
10745         imp symbol extension.
10746
10747         2008-07-23  Ian Lance Taylor  <iant@google.com>
10748
10749         * tree-vrp.c (infer_value_range): Ignore asm statements when
10750         looking for memory accesses for -fdelete-null-pointer-checks.
10751
10752 2008-07-24  Ben Elliston  <bje@au.ibm.com>
10753
10754         * config/spu/spu-c.c (__vector_keyword): New variable.
10755         (vector_keyword): Likewise.
10756         (spu_categorize_keyword): New function.
10757         (spu_macro_to_expand): Likewise.
10758         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
10759         compiling an ISO C dialect.
10760
10761 2008-07-24  Ben Elliston  <bje@au.ibm.com>
10762
10763         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
10764         conventional usage.
10765
10766 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10767
10768         * configure: Regenerate.
10769         * configure.ac: Require texinfo 4.7.
10770         * doc/install.texi: Document texinfo 4.7 requirement.
10771
10772 2008-07-23  Martin Jambor  <mjambor@suse.cz>
10773
10774         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
10775         rather than for DECL_SAVED_TREE.
10776         * ipa-prop.c: Include diagnostic.h.
10777         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
10778         thoroughly.
10779         (ipa_detect_param_modifications): Function rewritten from scratch.
10780         (ipa_compute_jump_functions): Changed accesses to modification flags.
10781         (ipa_free_node_params_substructures): Update flags destruction.
10782         (ipa_node_duplication_hook): Update flags duplication.
10783         (ipa_print_all_params_modified): Updated flag access.
10784         * ipa-prop.h (struct ipa_param_flags): New structure.
10785         (struct ipa_node_params): New field modification_analysis_done,
10786         modified_flags changed into param_flags.
10787         (ipa_is_ith_param_modified): Changed to use new flags.
10788         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
10789
10790         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
10791         ipa-cp.c and split into two functions.
10792         (ipa_print_node_jump_functions): New function.
10793         (compute_scalar_jump_functions): New function.
10794         (type_like_member_ptr_p): New function.
10795         (compute_pass_through_member_ptrs): New function.
10796         (fill_member_ptr_cst_jump_function): New function.
10797         (determine_cst_member_ptr): New function.
10798         (compute_cst_member_ptr_arguments): New function.
10799         (ipa_compute_jump_functions): Complete rewrite.
10800         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
10801         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
10802         (struct ipa_member_ptr_cst): New structure.
10803         (union jump_func_value): New field member_cst.
10804         * ipa-cp.c (ipcp_lat_is_insertable): New function.
10805         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
10806         jump function types.
10807         (ipcp_print_all_lattices): Slight fprintf rearrangement.
10808         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
10809         instead of ipcp_print_all_jump_functions.
10810         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
10811         only for replacable scalars.
10812
10813         * doc/invoke.texi (Optimize options): Add description of
10814         -findirect-inlining.
10815         * common.opt (flag_indirect_inlining): New flag.
10816         * opts.c (decode_options): Set flag_indirect_inlining when
10817         optimize >= 3.
10818
10819         * ipa-inline.c: Include ipa-prop.h.
10820         (inline_indirect_intraprocedural_analysis): New function.
10821         (inline_generate_summary): Allocate parameter and argument info
10822         structures, call inline_indirect_intraprocedural_analysis on each
10823         node when doing indirect inlining and deallocate indirect inlining
10824         data structures in the end.
10825         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
10826         (free_all_ipa_structures_after_iinln): New function.
10827         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
10828         done.
10829         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
10830
10831         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
10832         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10833         of computing the frequency separately.
10834         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10835         of computing the frequency separately.
10836         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
10837         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
10838         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
10839         (ipa_get_stmt_member_ptr_load_param): New function.
10840         (ipa_is_ssa_with_stmt_def): New function.
10841         (ipa_note_param_call): New function.
10842         (ipa_analyze_call_uses): New function.
10843         (ipa_analyze_stmt_uses): New function.
10844         (ipa_analyze_params_uses): New function.
10845         (ipa_free_node_params_substructures): Also free the param_calls linked
10846         list.
10847         (ipa_node_duplication_hook): Also duplicate the param_calls
10848         linked list.
10849         (ipa_print_node_param_flags): New function.
10850         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
10851         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
10852         * ipa-prop.h (struct ipa_param_flags): New field called.
10853         (struct ipa_param_call_note): New structure.
10854         (struct ipa_node_params): New fields param_calls and
10855         uses_analysis_done.
10856         (ipa_is_ith_param_called): New function.
10857         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10858         ipa_analyze_params_uses and dump parameter flags.
10859
10860         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
10861         ipa_propagate_indirect_call_infos if performing indirect inlining,
10862         pass a new parameter new_edges to it.
10863         (add_new_edges_to_heap): New fucntion.
10864         (cgraph_decide_inlining_of_small_functions): New vector
10865         new_indirect_edges for newly found indirect edges , call
10866         ipa_propagate_indirect_call_infos after inlining.
10867         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
10868         inlining if performing indirect inlining.  Call
10869         free_all_ipa_structures_after_iinln when doing so too.
10870         (inline_generate_summary): Do not call
10871         free_all_ipa_structures_after_iinln here.
10872         * ipa-prop.c (update_jump_functions_after_inlining): New function.
10873         (print_edge_addition_message): New function.
10874         (update_call_notes_after_inlining): New function.
10875         (propagate_info_to_inlined_callees): New function.
10876         (ipa_propagate_indirect_call_infos): New function.
10877         * ipa-prop.h: Include cgraph.h
10878         (struct ipa_param_call_note): Fields reordered, new field processed.
10879         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
10880         flag indirect_call.
10881         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
10882         rediscovered call statements.
10883         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
10884         (dump_cgraph_node): Dump also the indirect_call flag.
10885         (cgraph_clone_edge): Copy also the indirect_call flag.
10886         * tree-inline.c (copy_bb): Do not check for fndecls from call
10887         expressions, check for edge availability when moving clones.
10888         (get_indirect_callee_fndecl): New function.
10889         (expand_call_inline): If callee declaration is not apprent from
10890         the statement, try calling get_indirect_callee_fndecl.  Do not
10891         issue warnings or call sorry when not inlinings an indirect edge.
10892         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
10893
10894         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
10895         bit more frandly to matching.
10896         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
10897         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
10898         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
10899
10900 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10901
10902         PR 36907
10903         * opth-gen.awk: Suppress function specific features when building
10904         target libraries.
10905         * optc-gen.awk: Ditto.
10906
10907 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10908
10909         PR 35058
10910         * diagnostic.c (pedwarn): Add opt parameter.
10911         (pedwarn0): New.
10912         * c-tree.h (pedwarn_init): Add opt parameter.
10913         (pedwarn_c90): Likewise.
10914         (pedwarn_c99): Likewise.
10915         * c-errors.c (pedwarn_c99): Likewise.
10916         (pedwarn_c90): Likewise.
10917         * toplev.h (pedwarn): Update declaration.
10918         (pedwarn0): Declare.
10919         * c-lex.c: All calls to pedwarn changed.
10920         * builtins.c: All calls to pedwarn changed.
10921         * toplev.c: All calls to pedwarn changed.
10922         * c-decl.c: All calls to pedwarn changed.
10923         * c-typeck.c: All calls to pedwarn changed.
10924         * c-common.c: All calls to pedwarn changed.
10925         * c-parser.c: All calls to pedwarn changed.
10926
10927 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10928             Karthik Kumar  <karthikkumar@gmail.com>
10929
10930         * attribs.c (file scope): Include c-common.h.
10931         (decl_attributes): Add support for #pragma GCC optimize and
10932         #pragma GCC option.
10933
10934         * targhooks.c (default_can_inline_p): New function that is the
10935         default for the TARGET_CAN_INLINE_P target hook.
10936
10937         * targhooks.h (default_can_inline_p): Add declaration.
10938
10939         * tree.c (cl_optimization_node): New static tree for building
10940         OPTIMIZATION_NODE tree.
10941         (cl_target_option_node): New static tree for building
10942         TARGET_OPTION_NODE tree.
10943         (cl_option_hash_table): New hash table for hashing
10944         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10945         (cl_option_hash_hash): New function to provide the hash value for
10946         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10947         (cl_option_hash_eq): New function to provide an equality test for
10948         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10949         (tree_code_size): Add support for OPTIMIZATION_NODE and
10950         TARGET_OPTION_NODE trees.
10951         (tree_code_structure): Add support for OPTIMIZATION_NODE and
10952         TARGET_OPTION_NODE trees.
10953         (build_optimization_node): Build a tree that has all of the
10954         current optimization options.
10955         (build_target_option_node): Build a tree that has the target
10956         options that might be changed on a per function basis.
10957
10958         * tree.h (file scope): Include options.h.
10959         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
10960         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10961         (TREE_OPTIMIZATION): Ditto.
10962         (TREE_TARGET_SPECIFIC): Ditto.
10963         (struct tree_function_decl): Add fields for remembering the
10964         current optimization options and target specific options.
10965         (struct tree_optimization_option): New tree variant that remembers
10966         the optimization options.
10967         (struct tree_target_option): New tree variant that remembers the
10968         target specific flags that might change for compiling a particular
10969         function.
10970         (union tree_node): Include tree_optimization_option and
10971         tree_target_option fields.
10972         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
10973         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
10974         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
10975         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
10976         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
10977         optimization and target options.
10978         (optimization_default_node): New macro to refer to global_trees
10979         field.
10980         (optimization_current_node): Ditto.
10981         (optimization_cold_node): Ditto.
10982         (optimization_hot_node): Ditto.
10983         (target_option_default_node): Ditto.
10984         (target_option_current_node): Ditto.
10985         (current_option_pragma): Ditto.
10986         (current_optimize_pragma): Ditto.
10987
10988         * target.h (struct gcc_target): Add valid_option_attribute_p,
10989         target_option_save, target_option_restore, target_option_print,
10990         target_option_pragma_parse, and can_inline_p hooks.
10991
10992         * toplev.h (parse_optimize_options): Add declaration.
10993         (fast_math_flags_struct_set_p): Ditto.
10994
10995         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
10996         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
10997         optimize is used.
10998
10999         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
11000         tree_can_inline_p hook to see if one function can inline another.
11001         (cgraph_decide_inlining): Ditto.
11002         (cgraph_decide_inlining_incrementally): Ditto.
11003
11004         * opts.c (decode_options): Add support for running multiple times
11005         to allow functions with different target or optimization options
11006         than was specified on the command line.
11007         (fast_math_flags_struct_set_p): New function that is similar to
11008         fast_math_flags_set_p, except it uses the values in the
11009         cl_optimization structure instead of global variables.
11010
11011         * optc-gen.awk: Add support for TargetSave to allow a back end to
11012         declare new fields that need to be saved when using function
11013         specific options.  Include flags.h and target.h in the options.c
11014         source.  Add support for Save to indicate which options can be set
11015         for individual functions.  Generate cl_optimize_save,
11016         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
11017         cl_target_option_restore, cl_target_option_print functions to
11018         allow functions to use different optimization or target options.
11019
11020         * opt-functions.awk (var_type_struct): Return the type used for
11021         storing the field in a structure.
11022
11023         * opth-gen.awk: Add support for TargetSave to allow a back end to
11024         declare new fields that need to be saved when using function
11025         specific options.  Add support for Save to indicate which options
11026         can be set for individual functions.  Only generate one extern for
11027         Mask fields.  Generate cl_optimization and cl_target_option
11028         structures to remember optimization and target options.
11029
11030         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
11031         collecting new tree nodes.
11032         (TS_TARGET_OPTION): Ditto.
11033
11034         * c-decl.c (merge_decls): Merge function specific target and
11035         optimization options.
11036
11037         * function.c (invoke_set_current_function_hook): If the function
11038         uses different optimization options, change the global variables
11039         to reflect this.
11040
11041         * coretypes.h (struct cl_optimization): Add forward reference.
11042         (struct cl_target_option): Ditto.
11043
11044         * c-pragma.c (option_stack): New static vector to remember the
11045         current #pragma GCC option stack.
11046         (handle_pragma_option): New function to support #pragma GCC option
11047         to change target options.
11048         (optimize_stack): New static vector to remember the current
11049         #pragma GCC optimize stack.
11050         (handle_pragma_optimize): New function to support #pragma GCC
11051         optimize to change optimization options.
11052         (init_pragma): Add support for #pragma GCC optimize and #pragma
11053         GCC option.
11054
11055         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
11056         optimization options.
11057         (TARGET_OPTION_NODE): New tree code for remembering certain target
11058         options.
11059
11060         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
11061         TARGET_OPTION_NODE trees.
11062
11063         * common.opt (-O): Add Optimization flag.
11064         (-Os): Ditto.
11065         (-fmath-errno): Ditto.
11066         (-falign-functions): Add UInteger flag to make sure flag gets full
11067         int in cl_optimization structure.
11068         (-falign-jumps): Ditto.
11069         (-falign-labels): Ditto.
11070         (-falign-loops): Ditto.
11071         (-fsched-stalled-insns): Ditto.
11072         (-fsched-stalled-insns-dep): Ditto.
11073
11074         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
11075         definition.
11076         (TARGET_OPTION_SAVE): Ditto.
11077         (TARGET_OPTION_RESTORE): Ditto.
11078         (TARGET_OPTION_PRINT): Ditto.
11079         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
11080         (TARGET_CAN_INLINE_P): Ditto.
11081         (TARGET_INITIALIZER): Add new hooks.
11082
11083         * tree-inline.c (tree_can_inline_p): New function to determine
11084         whether one function can inline another.  Check if the functions
11085         use compatible optimization options, and also call the backend
11086         can_inline_p hook.
11087
11088         * tree-inline.h (tree_can_inline_p): Add declaration.
11089
11090         * c-common.c (c_common_attribute): Add support for option and
11091         optimize attributes.
11092         (handle_option_attribute): Add support for the option attribute to
11093         allow the user to specify different target options for compiling a
11094         specific function.
11095         (handle_optimize_attribute): Add support for the optimize
11096         attribute to allow the user to specify different optimization
11097         options for compiling a specific function.
11098         (handle_hot_attribute): Turn on -O3 optimization for this one
11099         function if it isn't the default optimization level.
11100         (handle_cold_attribute): Turn on -Os optimization for this one
11101         function if it insn't the default optimization.
11102         (const_char_p): New const char * typedef.
11103         (optimize_args): New static vector to remember the optimization
11104         arguments.
11105         (parse_optimize_options): New function to set up the optimization
11106         arguments from either the optimize attribute or #pragma GCC optimize.
11107
11108         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
11109         (builtin_define_std): Ditto.
11110
11111         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
11112         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
11113         (x86_64-*-*): Ditto.
11114
11115         * Makefile.in (TREE_H): Add options.h.
11116         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
11117
11118         * doc/extend.texi (option attribute): Document new attribute.
11119         (optimize attribute): Ditto.
11120         (hot attribute): Document hot attribute sets -O3.
11121         (cold attribute): Document cold attribute sets -Os.
11122         (#pragma GCC option): Document new pragma.
11123         (#pragma GCC optimize): Ditto.
11124
11125         * doc/options.texi (TargetSave): Document TargetSave syntax.
11126         (UInteger): Document UInteger must be used for certain flags.
11127         (Save): Document Save option to create target specific options
11128         that can be saved/restored on a function specific context.
11129
11130         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
11131         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
11132
11133         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
11134         (TARGET_OPTION_SAVE): Ditto.
11135         (TARGET_OPTION_RESTORE): Ditto.
11136         (TARGET_OPTION_PRINT): Ditto.
11137         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
11138         (TARGET_CAN_INLINE_P): Ditto.
11139
11140         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
11141         -mfpmath=sse,387.
11142         (-mfpmath=both): Ditto.
11143
11144 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
11145             Karthik Kumar  <karthikkumar@gmail.com>
11146
11147         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
11148         (TARGET_POPCNT): Ditto.
11149         (TARGET_SAHF): Ditto.
11150         (TARGET_AES): Ditto.
11151         (TARGET_PCLMUL): Ditto.
11152         (TARGET_CMPXCHG16B): Ditto.
11153         (TARGET_RECIP): Move switch into target_flags.
11154         (TARGET_FUSED_MADD): Ditto.
11155         (ix86_arch_features): Make an unsigned char type.
11156         (ix86_tune_features): Ditto.
11157         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
11158         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
11159         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
11160
11161         * config/i386/i386.opt (arch): New TargetSave field to define
11162         fields that need to be saved for function specific option support.
11163         (tune): Ditto.
11164         (fpmath): Ditto.
11165         (branch_cost): Ditto.
11166         (ix86_isa_flags_explicit): Ditto.
11167         (tune_defaulted): Ditto.
11168         (arch_specified): Ditto.
11169         (-m128-long-double): Add Save flag to save option for target
11170         specific option support.
11171         (-m80387): Ditto.
11172         (-maccumulate-outgoing-args): Ditto.
11173         (-malign-double): Ditto.
11174         (-malign-stringops): Ditto.
11175         (-mfancy-math-387): Ditto.
11176         (-mhard-float): Ditto.
11177         (-mieee-fp): Ditto.
11178         (-minline-all-stringops): Ditto.
11179         (-minline-stringops-dynamically): Ditto.
11180         (-mms-bitfields): Ditto.
11181         (-mno-align-stringops): Ditto.
11182         (-mno-fancy-math-387): Ditto.
11183         (-mno-push-args): Ditto.
11184         (-mno-red-zone): Ditto.
11185         (-mpush-args): Ditto.
11186         (-mred-zone): Ditto.
11187         (-mrtd): Ditto.
11188         (-msseregparm): Ditto.
11189         (-mstack-arg-probe): Ditto.
11190         (-m32): Ditto.
11191         (-m64): Ditto.
11192         (-mmmx): Ditto.
11193         (-m3dnow): Ditto.
11194         (-m3dnowa): Ditto.
11195         (-msse): Ditto.
11196         (-msse2): Ditto.
11197         (-msse3): Ditto.
11198         (-msse4.1): Ditto.
11199         (-msse4.2): Ditto.
11200         (-msse4): Ditto.
11201         (-mno-sse4): Ditto.
11202         (-msse4a): Ditto.
11203         (-msse5): Ditto.
11204         (-mrecip): Move flag into target_flags.
11205         (-mcld): Ditto.
11206         (-mno-fused-madd): Ditto.
11207         (-mfused-madd): Ditto.
11208         (-mabm): Move flag into ix86_isa_flags.
11209         (-mcx16): Ditto.
11210         (-mpopcnt): Ditto.
11211         (-msahf): Ditto.
11212         (-maes): Ditto.
11213         (-mpclmul): Ditto.
11214
11215         * config/i386/i386-c.c: New file for #pragma support.
11216         (ix86_target_macros_internal): New function to #define or #undef
11217         target macros based when the user uses the #pragma GCC option to
11218         change target options.
11219         (ix86_pragma_option_parse): New function to add #pragma GCC option
11220         support.
11221         (ix86_target_macros): Move defining the target macros here from
11222         TARGET_CPU_CPP_BUILTINS in i386.h.
11223         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
11224         defined, initialize any subtarget #pragmas.
11225
11226         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
11227         REGISTER_TARGET_PRAGMAS.
11228
11229         * config/i386/t-i386: New file for x86 dependencies.
11230         (i386.o): Make dependencies mirror the include files used.
11231         (i386-c.o): New file, add dependencies.
11232
11233         * config/i386/i386-protos.h (override_options): Add bool argument.
11234         (ix86_valid_option_attribute_tree): Add declaration.
11235         (ix86_target_macros): Ditto.
11236         (ix86_register_macros): Ditto.
11237
11238         * config/i386/i386.c (ix86_tune_features): Move initialization of
11239         the target masks to initial_ix86_tune_features to allow functions
11240         to have different target options.  Make type unsigned char,
11241         instead of unsigned int.
11242         (initial_ix86_tune_features): New static vector to hold processor
11243         masks for the tune variables.
11244         (ix86_arch_features): Move initialization of the target masks to
11245         initial_ix86_arch_features to allow functions to have different
11246         target options.  Make type unsigned char, instead of unsigned int.
11247         (initial_ix86_arch_features): New static vector to hold processor
11248         masks for the arch variables.
11249         (enum ix86_function_specific_strings): New enum to describe the
11250         string options used for attribute((option(...))).
11251         (ix86_target_string): New function to return a string that
11252         describes the target options.
11253         (ix86_debug_options): New function to print the current options in
11254         the debugger.
11255         (ix86_function_specific_save): New function hook to save the
11256         function specific global variables in the cl_target_option structure.
11257         (ix86_function_specific_restore): New function hook to restore the
11258         function specific variables from the cl_target_option structure to
11259         the global variables.
11260         (ix86_function_specific_print): New function hook to print the
11261         target specific options in the cl_target_option structure.
11262         (ix86_valid_option_attribute_p): New function hook to validate
11263         attribute((option(...))) arguments.
11264         (ix86_valid_option_attribute_tree): New function that is common
11265         code between attribute((option(...))) and #pragma GCC option
11266         support that parses the options and returns a tree holding the options.
11267         (ix86_valid_option_attribute_inner_p): New helper function for
11268         ix86_valid_option_attribute_tree.
11269         (ix86_can_inline_p): New function hook to decide if one function
11270         can inline another on a target specific basis.
11271         (ix86_set_current_function); New function hook to switch target
11272         options if the user used attribute((option(...))) or #pragma GCC
11273         option.
11274         (ix86_tune_defaulted): Move to static file scope from
11275         override_options.
11276         (ix86_arch_specified): Ditto.
11277         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
11278         ix86_isa_flags.
11279         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
11280         (OPTION_MASK_ISA_ABM_SET): Ditto.
11281         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
11282         (OPTION_MASK_ISA_CX16_SET): Ditto.
11283         (OPTION_MASK_ISA_SAHF_SET): Ditto.
11284         (OPTION_MASK_ISA_AES_UNSET): Ditto.
11285         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
11286         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
11287         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
11288         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
11289         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
11290         (struct ptt): Move to static file scope from override_options.
11291         (processor_target_table): Ditto.
11292         (cpu_names): Ditto.
11293         (ix86_handle_option): Add support for options that are now isa options.
11294         (override_options): Add support for declaring functions that
11295         support different target options than were specified on the
11296         command line.  Move struct ptt, processor_target_table, cpu_names,
11297         ix86_tune_defaulted, ix86_arch_specified to static file scope.
11298         Add bool argument.  Fix up error messages so the appropriate error
11299         is given for either command line or attribute.
11300         (ix86_previous_fndecl): New static to remember previous function
11301         declaration to see if we need to change target options.
11302         (ix86_builtins_isa): New array to record the ISA of each builtin
11303         function.
11304         (def_builtin): Always create the builtin function, even if the
11305         current ISA doesn't support it.
11306         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
11307         tests for those builtins.
11308         (ix86_init_builtins): Remove TARGET_MMX test for calling
11309         ix86_init_mmx_sse_builtins.
11310         (ix86_expand_builtin): If the current ISA doesn't support a given
11311         builtin, signal an error.
11312         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
11313         (TARGET_SET_CURRENT_FUNCTION): Ditto.
11314         (TARGET_OPTION_SAVE): Ditto.
11315         (TARGET_OPTION_RESTORE): Ditto.
11316         (TARGET_OPTION_PRINT): Ditto.
11317         (TARGET_CAN_INLINE_P): Ditto.
11318
11319 2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>
11320
11321         * c-typeck.c (build_external_ref): Don't call assemble_external.
11322         * final.c (output_operand): Call assemble_external.
11323
11324 2008-07-21  DJ Delorie  <dj@redhat.com>
11325
11326         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
11327         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
11328
11329 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11330
11331         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
11332         original insn and splitter contents into ...
11333         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
11334         flag_unsafe_math_optimizations.  Add dummy scratch register.
11335         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
11336         !flag_unsafe_math_optimizations.  Returns number with next
11337         highest magnitude if this is still less or equal to the true
11338         quotient in magnitude.
11339
11340 2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>
11341
11342         * Makefile.in: Replace toplev.h with TOPLEV_H.
11343         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
11344         * c-lex.c (fe_file_change): Don't set in_system_header.
11345         * c-parser.c (c_token): Remove in_system_header.
11346         (c_lex_one_token): Don't set in_system_header.
11347         (c_parser_set_source_position_from_token): Don't set in_system_header.
11348         * diagnostic.c (diagnostic_report_diagnostic): Use location from
11349         diagnostic_info.
11350         (warning_at): New.
11351         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
11352         * flags.h (in_system_header): Remove.
11353         * function.c (saved_in_system_header): Remove.
11354         (push_cfun): Don't set in_system_header.
11355         (pop_cfun): Don't set in_system_header.
11356         (push_struct_function): Don't set in_system_header.
11357         * input.h (expanded_location): Add sysp.
11358         (in_system_header_at): New.
11359         (in_system_header): New.
11360         * toplev.c (in_system_header): Remove.
11361         * toplev.h: Include input.h
11362         (warning_at): New.
11363         * tree-cfg.c (execute_warn_function_return): Call warning_at.
11364         * tree-ssa.c (warn_uninit): Call warning_at.
11365         (warn_uninitialized_var): Update calls to warn_uninit.
11366         (warn_uninitialized_phi): Update calls to warn_uninit.
11367         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
11368         (expand_location): Initialize xloc.sysp.
11369         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
11370         (tree_decl_with_vis): Remove in_system_header_flag.
11371
11372 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
11373
11374         PR target/36822
11375         * recog.c (asm_operand_ok): Change the order of the extra
11376         memory constraint checks.
11377
11378 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11379
11380         PR tree-opt/36879
11381         * tree-switch-conversion.c (build_one_array): Call
11382         varpool_mark_needed_node and varpool_finalize_decl
11383         instead of assemble_variable.
11384
11385 2008-07-19  Jan Hubicka  <jh@suse.cz>
11386
11387         * cgraph.c (cgraph_add_new_function): Do early local passes.
11388         * tree-nrv.c (gate_pass_return_slot): New gate.
11389         (pass_nrv): Add the gate.
11390         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
11391         functions.
11392         (coalesce_ssa_name): Coalesce SSA names.
11393         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
11394         not optimizing so unused user vars remains visible.
11395         * common.opt (flag_tree_ter): Always enable by default.
11396         * tree-ssa-ter.c: Include flags.h
11397         (is_replaceable_p): Check that locations match; when aliasing
11398         is missing be conservative about loads.
11399         * tree-optimize.c (gate_init_datastructures): Remove.
11400         (pass_init_datastructures): New.
11401         * passes.c: Reorder passes so we always go into SSA.
11402
11403 2008-07-19  Jan Hubicka  <jh@suse.cz>
11404
11405         * doc/extend.texi (flatten attribute): Remove note about
11406         unit-at-a-time.
11407         * doc/invoke.texi (--combine): Likewise.
11408         (-finline-functions-called-once): Update levels when enabled.
11409         (-funit-at-a-time): Document new behaviour.
11410         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
11411         -fno-section-anchors when disabled explicitly.
11412         (inline params): They are not ignored now.
11413         (precompiled headers): Remove unit-at-a-time as being incompatible.
11414         * opts.c (decode_options): Handle unit-at-a-time as alias;
11415         imply -fno-section-anchors when toplevel reorder is disabled
11416         explicitly.
11417         * common.opt (ftoplevel-reorder): Set default value to 2.
11418         (funit-at-a-time): Set default value to 1.
11419         * config/rs6000/rs6000.c (optimization_options): Set section anchors
11420         to 2.
11421
11422 2008-07-19  Jan Hubicka  <jh@suse.cz>
11423
11424         * builtins.c (expand_builtin_int_roundingfn,
11425         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
11426         it is not useful.
11427
11428 2008-07-19  Richard Guenther  <rguenther@suse.de>
11429
11430         PR bootstrap/36864
11431         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
11432         * tree-ssa-sccvn.c (get_constant_value_id): New function.
11433         * tree-ssa-pre.c (get_expr_value_id): For newly created
11434         constant value-ids make sure to add the expression to its
11435         expression-set.
11436
11437 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
11438
11439         PR middle-end/36877
11440         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
11441         return value of the builtin is ignored.
11442
11443 2008-07-19  Olivier Hainque  <hainque@adacore.com>
11444
11445         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
11446         bits, a C conformant malloc implementation has to provide.
11447         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
11448
11449 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
11450
11451         PR target/36780
11452         PR target/36827
11453         * reload.c (find_reloads_subreg_address): Only reload address if
11454         reloaded == 0, not for reloaded != 1.
11455
11456         Revert:
11457         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
11458         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
11459         (m32c_legitimate_address_p): Handle "++rii" addresses created by
11460         m32c_legitimize_reload_address.
11461
11462         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11463         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
11464         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
11465
11466 2008-07-19  Olivier Hainque  <hainque@adacore.com>
11467
11468         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
11469         argument, saying whether nested array are to be collapsed
11470         into a single array type DIE with multiple subscripts.
11471         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
11472         issues, centralize the nested array types collapsing control and
11473         disable the transformation for Ada.
11474
11475 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
11476
11477         PR target/36786
11478         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
11479         x86_64_shift_adj.
11480         (x86_64_shift_adj_2): New expander.
11481         (x86_64_shift_adj_3): Ditto.
11482         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
11483         to split TImode operands.
11484         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
11485         (ix86_split_lshr): Ditto.
11486
11487 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
11488
11489         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
11490         and __CHAR32_TYPE__.
11491         * c-typeck.c (digest_init): Support char16_t and char32_t.
11492         (set_nonincremental_init_from_string): Idem.
11493
11494 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
11495
11496         PR middle-end/36859
11497         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
11498         PREFERRED_STACK_BOUNDARY.
11499         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11500
11501 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
11502
11503         PR middle-end/36858
11504         * function.c (locate_and_pad_parm): Cap boundary earlier.
11505
11506 2008-07-17  Julian Brown  <julian@codesourcery.com>
11507
11508         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
11509         no-op for targets which don't use DLLs.
11510
11511 2008-07-17  Martin Jambor  <mjambor@suse.cz>
11512
11513         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
11514         that nodes are relevant by examining the node->analyzed flag.
11515         (ipcp_init_stage): Check which nodes are relevant, assert that the
11516         relevant ones are also required.
11517         (ipcp_propagate_stage): Check on the side arrays are properly
11518         allocated.
11519         (ipcp_print_all_jump_functions): Make sure not to touch any node
11520         that is not analyzed or an edge that does not have a corresponding
11521         entry in the on-the-side vectors.
11522         (ipcp_function_scale_print): Likewise.
11523         (ipcp_update_callgraph): Check that the node is relevant.
11524         (ipcp_insert_stage): Check that the node is relevant.  Check there is
11525         an info for every node and edge.
11526         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
11527         (ipa_print_all_tree_maps): Likewise and a new variable info.
11528         (ipa_print_all_params_modified): Likewise.
11529         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
11530
11531 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
11532
11533         PR target/25343
11534         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
11535
11536 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
11537
11538         PR rtl-optimization/36753
11539         * fwprop.c (use_killed_between): Don't shortcut
11540         single-definition global registers.
11541
11542 2008-07-16  Jan Hubicka  <jh@suse.cz>
11543
11544         * cgraph.h (varpool_empty_needed_queue): Declare.
11545         * cgraphunit.c (output_in_order): Mark all variables as needed;
11546         empty the queue.
11547         * varpool.c (varpool_assemble_node): Update debug queue.
11548         (varpool_assemble_pending_decls): Don't do it here.
11549         (varpool_empty_needed_queue):  New function.
11550
11551 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11552
11553         * recog.c (peephole2_optimize): Fix formatting.
11554
11555 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11556
11557         * c-pch.c (get_ident): Avoid C++ keywords.
11558         * combine-stack-adj.c (single_set_for_csa): Likewise.
11559         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
11560         output_asm_insn): Likewise.
11561         * reload.c (push_secondary_reload, find_reusable_reload,
11562         push_reload, combine_reloads, find_reloads,
11563         debug_reload_to_stream): Likewise.
11564         * reload.h (struct reload): Likewise.
11565         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
11566         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
11567         emit_output_reload_insns): Likewise.
11568         * targhooks.c (default_secondary_reload): Likewise.
11569         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
11570
11571 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11572
11573         * recog.c (validate_change_1, validate_change,
11574         validate_unshare_change, validate_replace_rtx_1, struct
11575         funny_match, constrain_operands, peephole2_optimize): Avoid C++
11576         keywords.
11577         * reload.c (push_secondary_reload, secondary_reload_class,
11578         scratch_reload_class, find_valid_class, find_reusable_reload,
11579         push_reload, find_dummy_reload, find_reloads_address_1,
11580         find_reloads_address_part, find_equiv_reg): Likewise.
11581         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
11582         choose_reload_regs): Likewise.
11583         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
11584         Likewise.
11585         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
11586         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
11587         * sched-rgn.c (concat_INSN_LIST): Likewise.
11588         * stor-layout.c (mode_for_size, mode_for_size_tree,
11589         smallest_mode_for_size): Likewise.
11590
11591 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11592
11593         * cfg.c (dump_reg_info): Avoid C++ keywords.
11594         * dwarf2asm.c (dw2_force_const_mem,
11595         dw2_asm_output_encoded_addr_rtx): Likewise.
11596         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
11597         * expmed.c (expand_shift): Likewise.
11598         * global.c (find_reg): Likewise.
11599         * graph.c (draw_edge): Likewise.
11600         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
11601         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
11602         widen_clz, widen_bswap, expand_parity, expand_unop,
11603         emit_cmp_and_jump_insn_1): Likewise.
11604         * postreload.c (reload_cse_simplify_operands): Likewise.
11605         * ra.h (add_neighbor): Likewise.
11606         * reg-stack.c (remove_regno_note, change_stack): Likewise.
11607         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
11608         record_reg_classes, copy_cost, record_address_regs,
11609         invalid_mode_change_p): Likewise.
11610         * regrename.c (regrename_optimize, scan_rtx_reg,
11611         dump_def_use_chain, find_oldest_value_reg,
11612         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
11613
11614 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
11615
11616         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
11617         MASK_POWERPC64 for power4 in previous commit.
11618
11619 2008-07-16  Olivier Hainque  <hainque@adacore.com>
11620
11621         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
11622         instead of bare conversion to cast const-ness away.
11623
11624 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
11625
11626         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
11627         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
11628         * config/xtensa/xtensa.c (xtensa_function_value): New function.
11629         (TARGET_FUNCTION_VALUE): Define.
11630
11631 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
11632
11633         * config/rs6000/rs6000.c (processor_target_table): Add
11634         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
11635
11636 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
11637
11638         PR target/36827
11639         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
11640         (m32c_legitimate_address_p): Handle "++rii" addresses created by
11641         m32c_legitimize_reload_address.
11642
11643 2007-07-16  Rafael Ávila de Espíndola  <espindola@google.com>
11644
11645         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
11646         DECL_IN_SYSTEM_HEADER in sync.
11647
11648 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
11649
11650         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
11651         * tree-ssa-pre.c (pre_expr_eq): Ditto
11652         (get_constant_for_value_id): Take a type as an argument.
11653         (fully_constant_expression): Pass in type.
11654         (find_or_generate_expression): Short circuit constant case.
11655         (create_expression_by_pieces): Remove special casing of
11656         pointer_plus.
11657         (do_regular_insertion): Short circuit constant case.
11658         (do_partial_partial_insertion): Ditto.
11659
11660 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11661
11662         PR target/36782
11663         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
11664
11665 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
11666
11667         * config/xtensa/libgcc-xtensa.ver: New file.
11668         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
11669
11670 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11671
11672         * df-problems.c (df_set_note): Avoid C++ keywords.
11673         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
11674         * dse.c (record_store, remove_useless_values): Likewise.
11675         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
11676         gen_reg_rtx_offset, operand_subword, change_address_1,
11677         change_address, adjust_address_1, offset_address,
11678         widen_memory_access, emit_copy_of_insn_after): Likewise.
11679         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
11680         * fwprop.c (should_replace_address, propagate_rtx_1,
11681         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
11682         Likewise.
11683         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
11684         gcse_emit_move_after, update_ld_motion_stores): Likewise.
11685         * lcm.c (compute_insert_delete, pre_edge_lcm,
11686         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
11687         * lower-subreg.c (resolve_reg_notes): Likewise.
11688         * mode-switching.c (optimize_mode_switching): Likewise.
11689
11690 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11691
11692         * bt-load.c (add_btr_def, migrate_btr_def,
11693         branch_target_load_optimize): Avoid C++ keywords.
11694         * caller-save.c (insert_restore, insert_save, insert_one_insn):
11695         Likewise.
11696         * combine.c (subst, simplify_set, make_extraction,
11697         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
11698         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
11699         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
11700
11701 2008-07-15  Richard Guenther  <rguenther@suse.de>
11702
11703         PR middle-end/36369
11704         * c-common.c (strict_aliasing_warning): Do not warn for
11705         TYPE_REF_CAN_ALIAS_ALL pointers.
11706         (c_common_get_alias_set): may_alias types are not special.
11707         * tree.c (build_pointer_type_for_mode): Look up the may_alias
11708         attribute and set can_ref_all accordingly.
11709         (build_reference_type_for_mode): Likewise.
11710         * doc/extend.texi (may_alias): Clarify.
11711
11712 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11713
11714         PR target/36780
11715         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
11716         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
11717
11718 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11719
11720         PR target/31568
11721         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
11722         gcc_assert, instead call output_operand_lossage.
11723
11724 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
11725
11726         * builtins.c (std_canonical_va_list): Treat structure based
11727         va_list types.
11728
11729 2008-07-15  Ben Elliston  <bje@au.ibm.com>
11730
11731         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
11732
11733 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
11734
11735         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
11736         is set.
11737
11738 2008-07-14  Jan Hubicka  <jh@suse.cz>
11739
11740         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
11741         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
11742         fix predicates and constraints.
11743         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
11744         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
11745
11746 2008-07-14  Doug Kwan  <dougkwan@google.com>
11747
11748         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
11749         additional option file arm/eabi.opt.
11750         * config/arm/eabi.h (File): New configuration file for EABI targets.
11751         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
11752         SUBSUBTARGET_EXTRA_SPECS.
11753         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
11754         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
11755         from STARTFILE_SPEC so that it can be referenced in an override.
11756         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
11757         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
11758         can be referenced in an override.
11759         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
11760         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
11761         so that it can be referenced in an override.
11762         (LINK_SPEC): Use BPABI_LINK_SPEC.
11763         * config/arm/eabi.opt (File): New.
11764
11765 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11766
11767         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
11768         (FIXED_VALUE_H): New variable.
11769         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
11770         input.h, fixed-value.h.
11771         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
11772         (BASIC_BLOCK_H): Use $(BITMAP_H).
11773         (FUNCTION_H): Add varray.h.
11774         (IPA_REFERENCE_H): Use $(BITMAP_H).
11775         (CGRAPH_H): Add $(BASIC_BLOCK_H).
11776         (DF_H): Use $(BITMAP_H).
11777         (GGC_H): Add statistics.h.
11778         (INSN_ADDR_H): New.
11779         (INSN_ATTR_H): Use it.
11780         (SYSTEM_H): Add safe-ctype.h, filenames.h.
11781         (INPUT_H): New.
11782         (SYMTAB_H): Add $(OBSTACK_H).
11783         (CPP_INTERNAL_H): New.
11784         (TREE_DUMP_H): Add tree-pass.h.
11785         (TREE_FLOW_H): Use $(BITMAP_H)
11786         (PRETTY_PRINT_H): Use $(INPUT_H).
11787         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
11788         (GSTAB_H): New.
11789         (BITMAP_H): New.
11790         (many object files): Fix lots of header dependencies throughout.
11791
11792 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11793
11794         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
11795         New macros.
11796         (s-gtyp-input): Use them to write tmp-gi.list.
11797         (echo_to_gi.list): Remove.
11798
11799 2008-07-14  Richard Guenther  <rguenther@suse.de>
11800
11801         * tree-ssa-sccvn.c (pre_info): Remove.
11802         (switch_to_PRE_table): Likewise.
11803         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
11804         (set_hashtable_value_ids): Do not create value-ids for the
11805         optimistic tables.
11806         (run_scc_vn): Remove double test.  Remove bogus special-case
11807         in value-number printing.
11808         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
11809         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
11810         SSA_NAME_VALUE.
11811         * tree-flow-inline.h (get_value_handle): Remove.
11812         * tree-flow.h (get_value_handle): Remove.
11813
11814 2008-07-14  Martin Jambor  <mjambor@suse.cz>
11815
11816         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
11817         in which we generate arithmetics is not a subrange.
11818
11819 2008-07-14  Martin Jambor  <mjambor@suse.cz>
11820
11821         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
11822
11823 2008-07-14  Richard Guenther  <rguenther@suse.de>
11824
11825         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
11826
11827 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11828
11829         PR target/36745
11830         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
11831         reload for symbol refs moved to r0 with -fPIC.
11832         (legitimize_pic_address): Use the target register as temporary
11833         reg if possible.
11834         (emit_symbolic_move): Adjust comment.
11835         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
11836         New expanders.
11837
11838 2008-07-14  Ben Elliston  <bje@au.ibm.com>
11839
11840         * c-common.h (C_CPP_HASHNODE): New macro.
11841         * coretypes.h (struct cpp_token): Forward declare.
11842         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11843         the context-sensitive keyword method.
11844         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
11845         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
11846         expand_bool_pixel): New.
11847         (altivec_categorize_keyword): New function.
11848         (init_vector_keywords): New function.
11849         (rs6000_macro_to_expand): Likewise.
11850         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
11851         compiling an ISO C dialect.
11852
11853 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
11854
11855         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
11856         (create_expression_by_pieces): Fix typo.
11857         (do_regular_insertion): Use debug counter here too.
11858
11859 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
11860
11861         PR target/35492.
11862         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
11863         CONST_OK_FOR_LETTER_P.  All port-local users changed.
11864         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
11865         implement Kp matching power-of-two.
11866         (CONSTRAINT_LEN): Define to match.
11867         * config/cris/cris.md: Replace all use of constraint K with Kc.
11868         ("*btst*): Use Kp for operand 0 of last alternative.
11869
11870 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11871
11872         PR testsuite/36440
11873         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
11874         and quad formats.
11875
11876 2008-07-13  Jan Hubicka  <jh@suse.cz>
11877
11878         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
11879         to be mangled too.
11880
11881 2008-07-13  Richard Guenther  <rguenther@suse.de>
11882
11883         PR middle-end/36811
11884         * langhooks.c (lhd_print_error_function): Deal with recursive
11885         BLOCK trees.
11886
11887 2008-07-12  Jan Hubicka  <jh@suse.cz>
11888
11889         * cgraph.c (assembler_name_hash): New static var.
11890         (hash_node_by_assembler_name, eq_assembler_name): New.
11891         (cgraph_node_for_asm): Use hashtable.
11892         (cgraph_remove_node): Maintain hashtable.
11893         (change_decl_assembler_name): Sanity check that names are not changing
11894         after aliasing was processed.
11895         * cgraph.h (varpoon_node): Add next GGC marker.
11896         * tree.c (decl_assembler_name_equal): Constify.
11897         (decl_assembler_name_hash): New.
11898         * tree.h (decl_assembler_name_equal): Constify.
11899         (decl_assembler_name_hash): Update.
11900
11901 2008-07-12  David Daney  <ddaney@avtrex.com>
11902
11903         * config/mips/driver-native.c (host_detect_local_cpu): Handle
11904         sb1 and r5000 cpus.
11905
11906 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11907
11908         * doc/md.texi: Document the MIPS "v" constraint.
11909         * config/mips/mips.h (reg_class): Revert last change.
11910         (REG_CLASS_NAMES): Likewise.
11911         (REG_CLASS_CONTENTS): Likewise.
11912         * config/mips/mips.c (mips_regno_to_class): Likewise.
11913         * config/mips/constraints.md (v): Likewise, but add documentation.
11914         Add a comment to say that this constraint should not be used in
11915         gcc code.
11916
11917 2008-07-11  DJ Delorie  <dj@redhat.com>
11918
11919         * config/h8300/h8300.md (length): Fix branch offset limit.
11920
11921 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
11922
11923         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
11924         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
11925         (avr_hard_regno_scratch_ok): New function.
11926         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
11927         * config/avr/avr.md (all peepholes that request a scratch register):
11928         Remove avr_peep2_scratch_safe use.
11929
11930 2008-07-11  Tom Tromey  <tromey@redhat.com>
11931             Ian Lance Taylor  <iant@google.com>
11932
11933         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
11934         (struct c_common_resword): Define.
11935         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
11936         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
11937         (c_common_reswords, num_c_common_reswords): Declare.
11938         * c-common.c (c_common_reswords): New global const array.
11939         (num_c_common_reswords): New const int.
11940         * c-parser.c (struct resword, reswords): Don't define.
11941         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
11942         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
11943         than reswords.  If warning about C++ keywords, give them a special
11944         RID code.
11945         (c_lex_one_token): Warn about C++ keywords.  Call
11946         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
11947         (c_parser_external_declaration): Look for RID_xxx rather than
11948         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
11949         (c_parser_statement_after_labels): Likewise.
11950         (c_parser_objc_class_instance_variables): Likewise.
11951         (c_parser_objc_class_declaration): Likewise.
11952         (c_parser_objc_try_catch_statement): Likewise.
11953         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
11954         (declspecs_add_type): Likewise.
11955
11956 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
11957
11958         * ggc-page.c (alloc_page):
11959         Substituting xmalloc, xcalloc with
11960         XNEWVEC and XCNEWVAR macros which add the
11961         needed casts.
11962
11963 2008-07-11  Richard Guenther  <rguenther@suse.de>
11964
11965         PR tree-optimization/36765
11966         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
11967         aliases from HEAP vars to SMTs.
11968
11969 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11970
11971         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
11972         * configure.ac (loose_warn): Move -Wc++-compat from here...
11973         (strict_warn): ...to here.
11974         * configure: Regenerate.
11975
11976 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
11977
11978         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
11979         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
11980         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
11981         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
11982         excluding more specific h8300-*-* and sh-*-* targets.
11983
11984 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
11985
11986         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
11987         (eliminate): Ditto.
11988         (execute_pre): Call loop_optimizer_finalize in early exit.
11989
11990 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
11991
11992         PR middle-end/36790
11993         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
11994         uids in the bitmap, not just VAR_DECL uids.
11995
11996         PR rtl-optimization/36419
11997         * combine-stack-adj.c (adjust_frame_related_expr): New function.
11998         (combine_stack_adjustments_for_block): Call it if needed.  Delete
11999         correct insn.
12000         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
12001         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
12002         prologue sp adjustment.
12003
12004 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
12005
12006         PR other/28322
12007         * opts.c (print_ignored_options): Report postponed diagnostics for
12008         unknown -Wno-* options as warnings, not errors.
12009         (postpone_unknown_option_error): Renamed to...
12010         (postpone_unknown_option_warning): ... this.
12011
12012 2008-07-09  Doug Kwan  <dougkwan@google.com>
12013
12014         Revert:
12015         2008-07-08  Doug Kwan  <dougkwan@google.com>
12016
12017         * config/arm/arm.opt (mandroid): New option.
12018         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
12019         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
12020         (CC1_SPEC): Same.
12021         (CC1PLUS_SPEC): Same.
12022         (LIB_SPEC): Same.
12023         (STARTFILE_SPEC): Same.
12024         (ENDFILE_SPEC): Same.
12025         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
12026         used.
12027
12028 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
12029
12030         PR target/35802
12031         * config/mips/mips.h (reg_class): Remove V1_REG.
12032         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
12033         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
12034         instead of V1_REGS.
12035         (mips_get_tp): New function.
12036         (mips_legitimize_tls_address): Use it.
12037         * config/mips/constraints.md (v): Delete.
12038         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
12039         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
12040         After reload, split into a move and ...
12041         (*tls_get_tp_<mode>_split): ...this new instruction.
12042
12043 2008-07-09  David Daney  <ddaney@avtrex.com>
12044
12045         * config/mips/driver-native.c: Include coretypes.h and tm.h.
12046
12047 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
12048
12049         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
12050         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
12051         Add c argument.
12052         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
12053         htab_delete should be called.  Don't free c.
12054         (lookup_tmp_var): Create temp_htab lazily.
12055         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
12056         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
12057         callers.
12058         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
12059         lower_omp_ordered, lower_omp_critical, lower_omp_for,
12060         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
12061         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
12062         * tree-sra.c (generate_element_init): Likewise.
12063         * tree-mudflap.c (execute_mudflap_function_ops,
12064         execute_mudflap_function_decls): Likewise.
12065         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
12066         * tree-gimple.h (struct gimplify_ctx): New type.
12067         (push_gimplify_context): Adjust prototype.
12068
12069 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
12070
12071         * tree-ssa-pre.c (phi_translate_1): Update placement of
12072         add_to_value calls.
12073
12074 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
12075
12076         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
12077         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
12078         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
12079         * targhooks.c (default_hard_regno_scratch_ok): New function.
12080         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
12081         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
12082         * recog.c:  Include "target.h".
12083         (peep2_find_free_register): Add check for global regs. Add target
12084         specific check.
12085         * Makefile.in (recog.o): Depend on target.h.
12086
12087 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
12088
12089         * config/sh/sh.c (sh_canonical_va_list_type): New.
12090         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
12091
12092 2008-07-09  Raksit Ashok <raksit@google.com>
12093
12094         * doc/invoke.texi (Option Summary): Mention new option
12095         -Wdisallowed-function-list=...
12096         (Warning Options): Document -Wdisallowed-function-list=...
12097         * common.opt (Wdisallowed-function-list=): New flag.
12098         * flags.h (warn_disallowed_functions): External definition of new
12099         boolean warning flag.
12100         (warn_if_disallowed_function_p): Declare new function.
12101         * opts.c (warning_disallowed_functions): New static variable.
12102         (warn_disallowed_functions): New boolean warning flag.
12103         (warn_if_disallowed_function_p): New function.
12104         (add_comma_separated_to_vector): Rename
12105         add_instrument_functions_exclude_list to this.
12106         (common_handle_option): Handle new option. Rename calls to
12107         add_instrument_functions_exclude_list into calls to
12108         add_comma_separated_to_vector.
12109         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
12110         based on flag warn_disallowed_functions.
12111
12112 2008-07-09  Christian Bruel  <christian.bruel@st.com>
12113
12114         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
12115          instead of get_attr_length.
12116
12117 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12118
12119         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
12120         keywords.
12121         * genemit.c (gen_insn): Likewise.
12122         * gengtype.c (note_def_vec): Likewise.
12123         * gengtype.h (note_def_vec): Likewise.
12124         * genoutput.c (struct data, output_insn_data, process_template,
12125         gen_expand, gen_split, note_constraint): Likewise.
12126         * genrecog.c (new_decision, add_to_sequence, factor_tests,
12127         make_insn_sequence): Likewise.
12128         * gensupport.c (record_insn_name): Likewise.
12129
12130 2008-07-08  Doug Kwan  <dougkwan@google.com>
12131
12132         * config/arm/arm.opt (mandroid): New option.
12133         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
12134         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
12135         (CC1_SPEC): Same.
12136         (CC1PLUS_SPEC): Same.
12137         (LIB_SPEC): Same.
12138         (STARTFILE_SPEC): Same.
12139         (ENDFILE_SPEC): Same.
12140         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
12141         used.
12142
12143 2008-07-08  Raksit Ashok  <raksit@google.com>
12144
12145         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
12146         (set_storage_via_setmem): Fix expected_align parameter.
12147         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
12148         missing from the list.
12149         * doc/md.texi (movmem): Explicitly state that expected alignment is
12150         to be expressed in bytes.
12151         (setmem): Explicitly state that expected alignment is to be expressed
12152         in bytes.
12153
12154 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
12155
12156         * reload.c (find_reloads_subreg_address): Do not require validity
12157         of address in original mode before reloading address.
12158
12159 2008-07-07  Tianwei Sheng  <tianweis@google.com>
12160
12161         * df-core.c (df_remove_problem): Adjust the access to avoid out of
12162         bounds array access.
12163
12164 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
12165
12166         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
12167
12168 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
12169
12170         Fix PR tree-optimization/23455
12171         Fix PR tree-optimization/35286
12172         Fix PR tree-optimization/35287
12173         * Makefile.in (OBJS-common): Remove tree-vn.o.
12174         (tree-vn.o): Remove.
12175         * dbgcnt.def: Add treepre_insert debug counter.
12176         * gcc/tree-flow.h (add_to_value): Updated for other changes.
12177         (debug_value_expressions): Ditto.
12178         (print_value_expressions): Ditto.
12179         * tree-pretty-print.c (dump_generic_node): Updated for
12180         VALUE_HANDLE removal.
12181         * tree-ssa-dom.c (record_equality): Ditto.
12182         (cprop_operand): Ditto.
12183         (lookup_avail_expr): Ditto.
12184         * tree-ssa-threadedge.c
12185         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
12186         (simplify_control_stmt_condition): Ditto.
12187         * tree.c (tree_code_size): Ditto.
12188         (tree_node_structure): Ditto.
12189         (iterative_hash_expr): Ditto.
12190         * tree.def: Ditto.
12191         * tree.h (VALUE_HANDLE_ID): Ditto.
12192         (VALUE_HANDLE_EXPR_SET): Ditto.
12193         (struct tree_value_handle): Ditto.
12194         (union tree_node): Ditto.
12195         * treestruct.def: Ditto.
12196         * tree-vn.c: Removed.
12197         * tree-ssa-pre.c: Rewritten entirely.
12198         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
12199         (constant_value_ids): Ditto.
12200         (vn_nary_op_t): Moved to header.
12201         (vn_phi_t): Ditto.
12202         (vn_reference_op_t): Ditto
12203         (vn_reference_t): Ditto.
12204         (next_value_id): New variable.
12205         (VN_INFO): Add an assert.
12206         (vn_constant_eq): New function.
12207         (vn_constant_hash): Ditto.
12208         (get_or_alloc_constant_value_id): Ditto.
12209         (value_id_constant_p): Ditto.
12210         (vn_reference_compute_hash): De-staticify.
12211         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
12212         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
12213         (valueize_refs): Update opcode if it changes from ssa name to constant.
12214         (vn_reference_lookup_1): Add new argument.
12215         (vn_reference_lookup):  Ditto.
12216         (vn_reference_lookup_pieces): New function.
12217         (vn_reference_insert): Add return type. Modify to deal with value ids.
12218         (vn_reference_insert_pieces):  New function.
12219         (vn_nary_op_compute_hash): De-staticify.
12220         (vn_nary_op_eq): Ditto.
12221         (vn_nary_op_lookup_pieces): New function.
12222         (vn_nary_op_lookup): Add new argument.
12223         (vn_nary_op_insert_pieces): New function.
12224         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
12225         (vn_phi_insert): Ditto.
12226         (visit_unary_op): Update for callee changes.
12227         (visit_binary_op): Ditto.
12228         (visit_reference_op_load): Ditto.
12229         (visit_reference_op_store): Ditto.
12230         (init_scc_vn): Init next_value_id, constant_to_value_id and
12231         constant_value_ids.
12232         (free_scc_vn): Free them.
12233         (set_hashtable_value_ids): New function.
12234         (run_scc_vn): Use it.
12235         (get_max_value_id): New function.
12236         (get_next_value_id): Ditto.
12237         (expressions_equal_p): Moved from tree-vn.c
12238         (sort_vuses): Ditto.
12239         (sort_vuses_heap): Ditto.
12240         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
12241         above).
12242         * tree.c (iterative_hash_hashval_t): Made non-static
12243         * tree.h (iterative_hash_hashval_t): Declare it.
12244
12245 2008-07-08  Martin Jambor  <mjambor@suse.cz>
12246
12247         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
12248         instead of ipa_create_node_params.
12249         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
12250         ipa_check_create_edge_args, free them with
12251         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
12252
12253         * ipa-prop.c: Include flags.h and tree-inline.h.
12254         (ipa_node_params_vector): New variable.
12255         (ipa_edge_args_vector): New variable.
12256         (edge_removal_hook_holder): New variable.
12257         (node_removal_hook_holder): New variable.
12258         (edge_duplication_hook_holder): New variable.
12259         (node_duplication_hook_holder): New variable.
12260         (ipa_detect_param_modifications): Check for presence of modified flags.
12261         (ipa_compute_jump_functions): Check for presence of jump functions.
12262         (ipa_free_edge_args_substructures): New function.
12263         (ipa_create_node_params): Removed.
12264         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
12265         (ipa_free_node_params_substructures): New function.
12266         (ipa_free_all_node_params): Changed to deallocate the on-the-side
12267         vector.
12268         (ipa_edge_removal_hook): New function.
12269         (ipa_node_removal_hook): New function.
12270         (duplicate_array): New function.
12271         (ipa_edge_duplication_hook): New function.
12272         (ipa_node_duplication_hook): New function.
12273         (ipa_register_cgraph_hooks): New function.
12274         (ipa_unregister_cgraph_hooks): New function.
12275         (free_all_ipa_structures_after_ipa_cp): New function.
12276
12277         * ipa-prop.h: Include vec.h.
12278         (ipa_node_params_t): New typedef with vector types for it.
12279         (ipa_edge_args_t):  New typedef with vector types for it.
12280         (IPA_NODE_REF): Changed to access an on-the-side vector.
12281         (IPA_EDGE_REF): Changed to access an on-the-side vector.
12282         (ipa_check_create_node_params): New function.
12283         (ipa_check_create_edge_args): New function.
12284
12285         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
12286         all users.
12287
12288 2008-07-07  Tom Tromey  <tromey@redhat.com>
12289
12290         * configure, config.in: Rebuilt.
12291         * configure.ac: Don't check for scandir or alphasort.
12292
12293 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
12294
12295         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
12296         types immediately after creating them.
12297
12298 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
12299
12300         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
12301
12302 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
12303
12304         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
12305         dump_constraint_graph.
12306         (dump_constraint_edge): New function.
12307         (dump_constraint_graph): New function.
12308         (debug_constraint_graph): New function.
12309         (dump_constraint): Removed useless comparison.
12310         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
12311         (dump_constraint_graph): Declare.
12312         (debug_constraint_graph): Declare.
12313         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
12314
12315 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
12316
12317         * config/i386/i386.c (is_va_list_char_pointer): New.
12318         (ix86_va_start): Replace compare with ms_va_list_type_node
12319         by is_va_list_char_pointer.
12320         (ix86_gimplify_va_arg): Likewise.
12321
12322 2008-07-07  Martin Jambor  <mjambor@suse.cz>
12323
12324         * cgraph.c (cgraph_edge_max_uid): New variable.
12325         (struct cgraph_edge_hook_list): New type.
12326         (struct cgraph_node_hook_list): New type.
12327         (struct cgraph_2edge_hook_list): New type.
12328         (struct cgraph_2node_hook_list): New type.
12329         (first_cgraph_edge_removal_hook): New variable.
12330         (first_cgraph_node_removal_hook): New variable.
12331         (first_cgraph_edge_duplicated_hook): New variable.
12332         (first_cgraph_node_duplicated_hook): New variable.
12333         (cgraph_add_edge_removal_hook): New function.
12334         (cgraph_remove_edge_removal_hook): New function.
12335         (cgraph_call_edge_removal_hooks):  New function.
12336         (cgraph_add_node_removal_hook):  New function.
12337         (cgraph_remove_node_removal_hook):  New function.
12338         (cgraph_call_node_removal_hooks):  New function.
12339         (cgraph_add_edge_duplication_hook):  New function.
12340         (cgraph_remove_edge_duplication_hook):  New function.
12341         (cgraph_call_edge_duplication_hooks):  New function.
12342         (cgraph_add_node_duplication_hook):  New function.
12343         (cgraph_remove_node_duplication_hook):  New function.
12344         (cgraph_call_node_duplication_hooks):  New function.
12345         (cgraph_create_edge): Assign to edge uid.
12346         (cgraph_remove_edge): Call edge removal hooks.
12347         (cgraph_node_remove_callees): Call edge removal hooks.
12348         (cgraph_node_remove_callers): Call edge removal hooks.
12349         (cgraph_remove_node): Call node removal hooks.
12350         (cgraph_clone_edge): Call edge duplication hooks.
12351         (cgraph_clone_node): Call node duplication hooks.
12352
12353         * cgraph.h (cgraph_edge): New field uid.
12354         (cgraph_edge_hook): New type.
12355         (cgraph_node_hook): New type.
12356         (cgraph_2edge_hook): New type.
12357         (cgraph_2node_hook): New type.
12358
12359 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
12360
12361         * config.in: Regenerate.
12362
12363 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
12364
12365         * gcc.c (print_sysroot): New.
12366         (option_map, display_help, process_command): Handle the
12367         -print-sysroot option.
12368         (main): Print the sysroot if requested.
12369         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
12370
12371 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12372
12373         PR target/34780
12374         * unwind-pe.h (size_of_encoded_value): add attribute unused.
12375
12376 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
12377
12378         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
12379         (assign_parm_setup_block_p): Also check mode of entry_parm.
12380
12381 2008-07-07  Richard Guenther  <rguenther@suse.de>
12382
12383         * tree-ssa-structalias.h (set_used_smts): Remove.
12384         * tree-ssa-structalias.c (used_smts): Likewise.
12385         (set_used_smts): Likewise.
12386         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
12387         call to set_used_smts.
12388
12389 2008-07-07  Richard Guenther  <rguenther@suse.de>
12390
12391         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
12392         (new_var_info): Set it to false.
12393         (solution_set_add): Correctly handle pointers outside a var and
12394         inside a field.
12395         (type_safe): Treat variables with is_full_var properly.
12396         (do_sd_constraint): Likewise.
12397         (do_ds_constraint): Likewise.
12398         (process_constraint): Remove zeroing offset for !use_field_sensitive.
12399         (get_constraint_for_ptr_offset): New function.
12400         (get_constraint_for_component_ref): For addresses at least include
12401         the last field of the variable.  Handle is_full_vars properly.
12402         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
12403         (handle_ptr_arith): Remove.
12404         (find_func_aliases): Simplify assignment handling.
12405         (create_function_info_for): For parameter and result varinfos set
12406         is_full_var flag.
12407         (create_variable_info_for): Set is_full_var flag whenever we
12408         just created a single varinfo for a decl.
12409         (init_alias_vars): Initialize use_field_sensitive from
12410         max-fields-for-field-sensitive parameter.
12411
12412 2008-07-07  Richard Guenther  <rguenther@suse.de>
12413
12414         PR tree-optimization/36713
12415         * tree-flow-inline.h (is_call_used): New function.
12416         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
12417         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
12418         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
12419
12420 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
12421
12422         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
12423
12424 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
12425
12426         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
12427
12428 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
12429             Nathan Sidwell  <nathan@codesourcery.com>
12430
12431         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
12432         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
12433         tmake_file.
12434         * config/m68k/t-linux: New.
12435         * doc/install.texi: Document m68k-*-linux is now multilibbed by
12436         default.
12437
12438 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
12439
12440         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
12441         * config/m68k/m68k-devices.def: Remove multilibs that only differ
12442         by MAC/EMAC.
12443
12444 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12445
12446         * gcc.c (execute): Fix -Wc++-compat warning.
12447
12448 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
12449
12450         PR target/36720
12451         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
12452         constant for little endian.
12453
12454 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
12455
12456         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
12457         mips_base_mips16 instead of TARGET_MIPS16.
12458         (mips_base_mips16): Declare.
12459         * config/mips/mips.c (mips_base_mips16): Make global.
12460         (was_mips16_p): Remove GTY marker.
12461         (was_mips16_pch_p): New variable.
12462         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
12463         (mips_override_options): Force to non-MIPS16 mode initially.
12464         Do not complain about MIPS16 PIC incompatibilities here.
12465         Only allow -mgpopt if -mexplicit-relocs is in force for
12466         non-MIPS16 code.
12467
12468 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
12469
12470         * configure.ac: Check for caddr_t, define to char * if not defined.
12471         * configure: Regenerate.
12472         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
12473         (mmap_gt_pch_use_address): Likewise.
12474         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
12475
12476 2008-07-06  Richard Guenther  <rguenther@suse.de>
12477
12478         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
12479         (new_var_info): Deal with it.
12480         (solution_set_add): Likewise.
12481         (bitpos_of_field): Make signed, fix.
12482         (struct fieldoff): Remove type and decl fields.  Make size field
12483         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
12484         flags.
12485         (fieldoff_compare): Deal with it.
12486         (push_fields_onto_fieldstack): Remove has_union argument, glob
12487         adjacent non-pointer fields together.
12488         (create_function_info_for): Do not set has_union.
12489         (create_variable_info_for): Simplify.
12490
12491 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
12492
12493         * config.gcc (extra_headers): Add cross-stdarg.h for target
12494         x86_64-*-* and i?86-*-*.
12495         * config/i386/cross-stdarg.h: New.
12496         * builtins.c (std_fn_abi_va_list): New.
12497         (std_canonical_va_list_type): New.
12498         (stabilize_va_list): Replace va_list_type_node use by
12499         mtarget.canonical_va_list_type.
12500         (gimplify_va_arg_expr): Likewise.
12501         (expand_builtin_va_copy): Replace va_list_type_node use by
12502         mtarget.fn_abi_va_list.
12503         * tree-sra.c (is_va_list_type): New helper.
12504         (decl_can_be_decomposed_p): Replace
12505         va_list_type_node use by is_va_list_type.
12506         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
12507         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
12508         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
12509         * config/i386/i386-protos.h (ix86_get_valist_type): New.
12510         (ix86_enum_va_list): New.
12511         * config/i386/i386.c (sysv_va_list_type_node): New.
12512         (ms_va_list_type_node): New.
12513         (ix86_function_type_abi): Remove sorry.
12514         (ix86_build_builtin_va_list_abi): New.
12515         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
12516         for 64-bit targets.
12517         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
12518         (ix86_init_builtins_va_builtins_abi): New.
12519         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
12520         for 64-bit targets.
12521         (ix86_handle_abi_attribute): New.
12522         (attribute_spec): Add sysv_abi and ms_abi.
12523         (ix86_fn_abi_va_list): New.
12524         (ix86_canonical_va_list_type): New.
12525         (ix86_enum_va_list): New.
12526         (TARGET_FN_ABI_VA_LIST): New.
12527         (TARGET_CANONICAL_VA_LIST_TYPE): New.
12528         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
12529         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
12530         (TARGET_CANONICAL_VA_LIST_TYPE): New.
12531         (TARGET_ENUM_VA_LIST): New.
12532         * expr.h (std_fn_abi_va_list): New.
12533         (std_canonical_va_list_type): New.
12534         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
12535         (TARGET_CANONICAL_VA_LIST_TYPE): New.
12536         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
12537         TARGET_CANONICAL_VA_LIST_TYPE.
12538         * target.h (struct gcc_target): Add fn_abi_va_list hook
12539         and canonical_va_list_type hook.
12540
12541 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12542
12543         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
12544         integral and pointer types.
12545
12546 2008-07-04  Roger Sayle  <roger@eyesopen.com>
12547
12548         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
12549         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
12550
12551 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
12552
12553         PR target/36684
12554         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
12555
12556 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
12557
12558         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
12559         build_gimple_modify_stmt.
12560         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
12561         gimple operand.  Use fold_build* instead of build*.
12562
12563 2008-07-04  Richard Guenther  <rguenther@suse.de>
12564
12565         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
12566         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
12567         properly to compute the reachability set if we do field-sensitive PTA.
12568         * invoke.texi (max-fields-for-field-sensitive): Document default.
12569         * opts.c (decode_options): Set max-fields-for-field-sensitive to
12570         100 for optimize >= 2.
12571
12572 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12573
12574         * ggc-zone.c (lookup_page_table_if_allocated,
12575         set_page_table_entry, zone_find_object_size, alloc_small_page,
12576         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
12577         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
12578         -Wc++-compat and/or -Wcast-qual warnings.
12579
12580 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
12581
12582         PR target/36634
12583         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
12584         pic_offset_table_rtx to be marked as used here.
12585         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
12586         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
12587         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
12588         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
12589         !TARGET_SECURE_PLT.
12590
12591 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12592
12593         * alloc-pool.c (hash_descriptor, eq_descriptor,
12594         alloc_pool_descriptor): Fix -Wc++-compat warnings.
12595         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
12596         Likewise.
12597         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
12598         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
12599         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
12600         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
12601         Likewise.
12602
12603 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
12604
12605         * tree-flow.h (loop_only_exit_p): Declare.
12606         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
12607         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
12608         the number of iterations if it is constant.  Otherwise, if this is the
12609         only possible exit of the loop, use the conservative estimate on the
12610         number of iterations of the entire loop if available.
12611
12612 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
12613
12614         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
12615         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
12616         Add synchronization functions.
12617         * config/sync.c: New file.
12618         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
12619         (LIBGCC_SYNC_CFLAGS): Likewise.
12620
12621 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
12622
12623         PR target/36710
12624         * config/i386/i386.md (mode): Add TF to "mode" attribute.
12625         (*pushtf_sse): New insn pattern.
12626         (pushtf splitters): New splitters.
12627
12628 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
12629
12630         PR middle-end/35736
12631         * predict.c (build_predict_expr): Use void_type_node for the tree
12632         type, instead of NULL_TREE.
12633
12634 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
12635
12636         * config/i386/i386.c (contains_aligned_value_p): Return true
12637         for TCmode.
12638         (ix86_data_alignment): Align TCmode to 128bits.
12639         (ix86_local_alignment): Likewise.
12640
12641 2008-07-03  Andrew Haley  <aph@redhat.com>
12642
12643         PR bootstrap/33304
12644         * vec.h (VEC_TA): New.
12645         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
12646         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
12647         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
12648         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
12649         (C_COMMON_FIXED_TYPES): Remove first arg.
12650         (C_COMMON_FIXED_MODE_TYPES): Likewise.
12651         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
12652         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
12653         not to use empty macro arguments.
12654
12655 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
12656
12657         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
12658         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
12659         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
12660         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
12661         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
12662         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
12663         config/ia64/crtn.asm, config/m68hc11/larith.asm,
12664         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
12665         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
12666         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
12667         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
12668         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
12669         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
12670         config/rs6000/e500crtres64gpr.asm,
12671         config/rs6000/e500crtres64gprctr.asm,
12672         config/rs6000/e500crtrest32gpr.asm,
12673         config/rs6000/e500crtrest64gpr.asm,
12674         config/rs6000/e500crtresx32gpr.asm,
12675         config/rs6000/e500crtresx64gpr.asm,
12676         config/rs6000/e500crtsav32gpr.asm,
12677         config/rs6000/e500crtsav64gpr.asm,
12678         config/rs6000/e500crtsav64gprctr.asm,
12679         config/rs6000/e500crtsavg32gpr.asm,
12680         config/rs6000/e500crtsavg64gpr.asm,
12681         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
12682         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
12683         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
12684         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
12685         config/sparc/sol2-cn.asm: Remove .file directives.
12686
12687 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
12688
12689         * resource.c (mark_referenced_resources): Look inside
12690         UNSPEC_VOLATILEs and ASM_INPUTs.
12691
12692 2008-07-02  Ian Lance Taylor  <iant@google.com>
12693
12694         * rtlanal.c (add_reg_note): New function.
12695         * rtl.h (add_reg_note): Declare.
12696         * auto-inc-dec.c (attempt_change): Use add_reg_note.
12697         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
12698         * builtins.c (expand_builtin_longjmp): Likewise.
12699         (expand_builtin_nonlocal_goto): Likewise.
12700         * calls.c (emit_call_1, expand_call): Likewise.
12701         * cfgexpand.c (add_reg_br_prob_note): Likewise.
12702         * cfglayout.c (fixup_reorder_chain): Likewise.
12703         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
12704         (commit_one_edge_insertion): Likewise.
12705         * combine.c (move_deaths, distribute_notes): Likewise.
12706         * df-problems.c (df_set_note): Likewise.
12707         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
12708         (set_unique_reg_note): Likewise.
12709         (emit_copy_of_insn_after): Likewise.
12710         * expr.c (expand_expr_real): Likewise.
12711         * gcse.c (add_label_notes): Likewise.
12712         * haifa-sched.c (create_check_block_twin): Likewise.
12713         * jump.c (mark_jump_label_1): Likewise.
12714         * loop-doloop.c (add_test, doloop_modify): Likewise.
12715         * loop-unswitch.c (compare_and_jump_seq): Likewise.
12716         * lower-subreg.c (move_eh_region_note): Likewise.
12717         * optabs.c (emit_libcall_block): Likewise.
12718         * predict.c (predict_insn): Likewise.
12719         (combine_predictions_for_insn): Likewise.
12720         * recog.c (peephole2_optimize): Likewise.
12721         * regmove.c (try_auto_increment): Likewise.
12722         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
12723         * reload.c (find_reloads): Likewise.
12724         * reload1.c (fixup_eh_region_note): Likewise.
12725         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
12726         * reorg.c (delete_prior_computation): Likewise.
12727         (delete_computation, dbr_schedule): Likewise.
12728         * config/pa/pa.c (legitimize_pic_address): Likewise.
12729         * config/sh/sh.c (sh_reorg): Likewise.
12730
12731 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
12732
12733         PR target/36669
12734         * config/libgcc-glibc.ver: Add %exclude.
12735         * config/m32r/libgcc-glibc.ver: Likwise.
12736         * config/s390/libgcc-glibc.ver: Likwise.
12737         * config/sh/libgcc-glibc.ver: Likwise.
12738         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
12739
12740         * config/i386/libgcc-glibc.ver: New.
12741
12742         * config/i386/libgcc-x86_64-glibc.ver: Removed.
12743
12744 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
12745
12746         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
12747         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
12748         i[34567]86-*-linux*, x86_64-*-linux*.  Add
12749         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
12750         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
12751         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
12752         i[34567]86-*-linux*, x86_64-*-linux*.
12753
12754         * libgcc-std.ver: Add empty GCC_4.4.0.
12755
12756         * mkmap-symver.awk: Support multiple versions per symbol.
12757
12758         * config/i386/i386.c (ix86_init_builtins): Always define
12759         __builtin_fabsq and __builtin_copysignq with fallbacks.
12760         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
12761         and __builtin_copysignq if SSE2 isn't available.
12762
12763         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
12764         (LIBGCC2_TF_CEXT): Likwise.
12765         (TF_SIZE): Likwise.
12766
12767         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
12768
12769         * config/i386/sfp-machine.h: Moved to libgcc.
12770
12771         * config/i386/sfp-machine.h: New.
12772         * config/i386/t-linux: Likwise.
12773
12774         * config/i386/t-darwin: Remove softfp_wrap_start and
12775         softfp_wrap_end.
12776         * config/i386/t-darwin64: Likewise.
12777
12778         * config/i386/t-fprules-softfp64: Renamed to ...
12779         * config/i386/t-fprules-softfp: This.
12780
12781         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
12782         and softfp_wrap_end.
12783
12784 2008-07-02  Jason Merrill  <jason@redhat.com>
12785
12786         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
12787
12788         * tree.c (ctor_to_list): New fn.
12789         * tree.h: Declare it.
12790         (CONSTRUCTOR_ELT): New macro.
12791         (CONSTRUCTOR_NELTS): New macro.
12792
12793 2008-07-02  Richard Guenther  <rguenther@suse.de>
12794
12795         * tree-ssa-structalias.c (struct variable_info): Reorder
12796         to fill padding on 64bit hosts.  Make collapsed_to an int.
12797         (get_varinfo_fc): Deal with that.
12798         (new_var_info): Likewise.
12799         (collapse_rest_of_var): Likewise.
12800
12801 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
12802
12803         * doc/install.texi (--enable-java-home): Document.
12804         (--enable-aot-compile-rpm): Likewise.
12805         (--with-arch-directory): Likewise.
12806         (--with-os-directory): Likewise.
12807         (--with-origin-name): Likewise.
12808         (--with-arch-suffix): Likewise.
12809         (--with-jvm-root-dir): Likewise.
12810         (--with-jvm-jar-dir): Likewise.
12811         (--with-python-dir): Likewise.
12812
12813 2008-07-02  Richard Guenther  <rguenther@suse.de>
12814
12815         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
12816         from decls explicitly.  Merge operand checking from tuples.
12817
12818 2008-07-02  Martin Jambor  <mjambor@suse.cz>
12819
12820         * tree-switch-conversion.c: Included timevar.h which I forgot before.
12821
12822 2008-07-02  Martin Jambor  <mjambor@suse.cz>
12823
12824         * tree-switch-conversion.c: Included timevar.h
12825         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
12826
12827         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
12828
12829 2008-07-02  Martin Jambor  <mjambor@suse.cz>
12830
12831         * tree-switch-conversion.c: Corrected various comments and
12832         whitespace issues
12833         (build_constructors): Fixed minor formatting mistakes.
12834
12835         * invoke.texi (Optimize Options): Corrected the
12836         switch-conversion-max-branch-ratio parameter.
12837
12838 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
12839
12840         * final.c (asm_insn_count): Return zero for an empty asm body.
12841
12842 2008-07-02  Richard Guenther  <rguenther@suse.de>
12843
12844         * bitmap.h (bitmap_set_bit): Return bool.
12845         (bitmap_clear_bit): Likewise.
12846         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
12847         write to the bitmap if it would.
12848         (bitmap_clear_bit): Likewise.
12849         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
12850         bitmap_set_bit return value.
12851         (add_pred_graph_edge): Likewise.
12852         (add_graph_edge): Likewise.
12853         (do_sd_constraint): Likewise.
12854         (do_ds_constraint): Likewise.
12855
12856 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12857
12858         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
12859         Fix -Wc++-compat and/or -Wcast-qual warnings.
12860         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
12861         gen_regparm_prefix): Likewise.
12862         * vmsdbgout.c (write_modbeg, lookup_filename,
12863         vmsdbgout_source_line, vmsdbgout_init): Likewise.
12864
12865 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
12866
12867         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
12868         defaults.h definition apply.
12869
12870 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
12871
12872         * function.c (assign_parm_remove_parallels): New.
12873         (assign_parm_setup_block_p): Do not return true for non-BLKmode
12874         PARALLELs.
12875         (assign_parm_setup_block): Do not handle them.
12876         (assign_parm_setup_reg, assign_parm_setup_stack): Call
12877         assign_parm_remove_parallels.
12878
12879 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
12880
12881         * c-typeck.c (convert_for_assignment): Use
12882         vector_targets_convertible_p.
12883         * c-common.c (vector_targets_convertible_p): New.
12884         * c-common.h (vector_targets_convertible_p): New prototype.
12885         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
12886         opaque_p_V2SI_type_node.
12887
12888 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
12889
12890         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
12891         RFmode constants.
12892
12893 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
12894
12895         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
12896         TFmode constants via two element DImode vector for hosts with
12897         HOST_BITS_PER_WIDE_INT < 64.
12898         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
12899         also for HOST_BITS_PER_WIDE_INT < 64.
12900
12901 2008-07-01  Richard Guenther  <rguenther@suse.de>
12902
12903         PR tree-optimization/36666
12904         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
12905         (get_constraint_exp_from_ssa_var): Split into ...
12906         (get_constraint_exp_for_temp): ... this ...
12907         (get_constraint_for_ssa_var): ... and that.
12908         Return constraint expressions for all touched sub-fields
12909         if the results address is not taken.
12910         (process_constraint): Remove assertion that aggregate
12911         assignments do not happen at this place.
12912         (get_constraint_for_component_ref): Add address_p argument.
12913         Return constraint expressions for all touched sub-fields
12914         if the results address is not taken.
12915         (do_deref): Use get_constraint_exp_for_temp.
12916         (get_constraint_for_1): Rename from ...
12917         (get_constraint_for): ... this.  Add the old function as wrapper.
12918         (do_structure_copy): Use get_constraint_for_1.
12919
12920 2008-07-01  Martin Jambor  <mjambor@suse.cz>
12921
12922         * Makefile.in (tree-switch-conversion.o): Add.
12923         (OBJS-common): Add tree-swtch-conversion.o.
12924         * passes.c (init_optimization_passes): Add pass_convert_switch.
12925         * tree-pass.h: (pass_convert_switch): Add.
12926         * tree-switch-conversion.c: New file.
12927         * gcc.dg/tree-ssa/cswtch.c: New testcase.
12928         * common.opt (ftree-cswtch): New option.
12929         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12930         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12931         * opts.c (decode_options): Set flag_tree_switch_conversion when
12932         optimization level is >= 2.
12933         * doc/invoke.texi (Optimize Options): Added description of
12934         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
12935
12936 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12937
12938         * config/darwin-driver.c (darwin_default_min_version): Fix
12939         -Wc++-compat warnings.
12940
12941 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
12942
12943         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
12944         of operand 0.
12945
12946 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
12947
12948         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
12949
12950 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
12951
12952         PR rtl-optimization/34744
12953         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
12954         (df_scan_free_internal): Free data structures not
12955         allocated in storage pools.
12956         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
12957         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
12958         df_scan_free_mws_vec.
12959         * dse.c (dse_step6): Free offset_map_p and offset_map_n
12960         unconditionally.
12961
12962 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
12963
12964         * config/i386/i386.c (contains_aligned_value_p): Return true
12965         for __float128.
12966         (ix86_function_arg_boundary): Return its natural boundary
12967         for __float128.
12968         (return_in_memory_32): Don't check TDmode.
12969         (ix86_split_to_parts): Support splitting into 4 parts and
12970         support TFmode for 32bit target.
12971         (ix86_split_long_move): Support splitting into 4 parts.
12972         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
12973         for SSE2.
12974         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
12975         (ix86_init_builtins): Here.
12976         (ix86_scalar_mode_supported_p): Always return true for TFmode.
12977         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
12978         'q' and 'w', respectively.
12979
12980         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
12981         TARGET_64BIT.
12982         (movtf_internal): Likewise.
12983         (<code>tf2): Likewise.
12984         (*absnegtf2_sse): Likewise.
12985         (copysign<mode>3): Likewise.
12986         (copysign<mode>3_const): Likewise.
12987         (copysign<mode>3_var): Likewise.
12988         (define_split UNSPEC_COPYSIGN): Likewise.
12989         * config/i386/sse.md (*nandtf3): Likewise.
12990         (<code>tf3): Likewise.
12991         (*<code>tf3): Likewise.
12992
12993 2008-06-30  Joey Ye  <joey.ye@intel.com>
12994             H.J. Lu  <hongjiu.lu@intel.com>
12995
12996         * global.c (compute_regsets): Set frame_pointer_needed here.
12997         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
12998
12999 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
13000
13001         * doc/install.texi (specific): Expand Windows build notes.
13002
13003 2008-06-30  Ira Rosen  <irar@il.ibm.com>
13004
13005         PR tree-optimization/36648
13006         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
13007         number of prolog iterations by step. Fix the comment.
13008
13009 2008-06-30  Richard Guenther  <rguenther@suse.de>
13010
13011         PR middle-end/36671
13012         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
13013         handle calls from ECF_MALLOC functions.
13014         (handle_pure_call): ECF_MALLOC functions do not return
13015         call-used memory.
13016         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
13017
13018 2008-06-29  Andreas Schwab  <schwab@suse.de>
13019
13020         * config/m68k/m68k.c (print_operand): Always print a float
13021         constant in hex.
13022         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
13023         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
13024         Remove macros.
13025
13026         * config/rs6000/x-linux64: Remove never used file.
13027
13028 2008-06-29  Richard Guenther  <rguenther@suse.de>
13029
13030         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
13031         prototype.
13032         (struct alias_info): Move ...
13033         * tree-ssa-alias.c: ... here.
13034         (update_alias_info): Declare.
13035         (compute_may_aliases): Call it.
13036         (update_alias_info): New function.
13037         * tree-ssa-structalias.c (update_alias_info): Move ...
13038         * tree-ssa-alias.c (update_alias_info_1): ... here.
13039         * tree-ssa-structalias.c (process_constraint_1): Remove
13040         unused from_call argument.  Rename to ...
13041         (process_constraint): ... this.  Delete old wrapper.
13042         (make_constraint_to): Adjust callers.
13043         (handle_const_call): Likewise.
13044         (handle_pure_call): Likewise.
13045         (init_base_vars): Likewise.
13046         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
13047         (find_func_aliases): We don't need structure copies for
13048         complex types.
13049         (make_constraint_from_anything): Remove.
13050         (create_variable_info_for): For globals make constraints
13051         from escaped, not from anything.
13052         (compute_points_to_sets): Do not call update_alias_info.
13053         (ipa_pta_execute): Use make_constraint_from.
13054
13055 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13056
13057         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
13058         (bitmap.o-warn, dominance.o-warn): New.
13059         * configure.ac (cxx_compat_warn): Delete.
13060         (loose_warn): Add -Wcast-qual and -Wc++-compat.
13061         * system.h: Remove #pragma diagnostic for -Wcast-qual and
13062         -Wc++-compat.
13063         * configure: Regenerate.
13064
13065         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
13066         warnings.
13067
13068 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13069
13070         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
13071         * df-scan.c (df_notes_rescan): Likewise.
13072         * ggc-page.c (set_page_table_entry): Likewise.
13073         * intl.c (gcc_gettext_width): Likewise.
13074         * varasm.c (get_unnamed_section, get_noswitch_section,
13075         get_section): Likewise.
13076
13077 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
13078
13079         * regrename.c (build_def_use): Don't copy RTX.
13080
13081 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
13082
13083         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
13084         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
13085         punctuation.  Use @ref instead of @xref.
13086         (Function Names): Remove stray @display/@end display.
13087         (C++ Attributes): Use @ref instead of @xref.
13088         (Deprecated Features): Fix punctuation around @xref.
13089         (Backwards Compatibility): Likewise.
13090         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
13091
13092 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
13093
13094         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
13095         constants for E500 double.
13096
13097 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13098
13099         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
13100         element type of const_vector.
13101
13102 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
13103
13104         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
13105         Remove FLAGS_REG clobber from expander pattern.
13106         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
13107         (anddi3, andsi3, andhi3, andqi3): Ditto.
13108         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
13109         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
13110         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
13111         (ashlsi3, ashlhi3, ashlqi3): Ditto.
13112         (ashrsi3, ashrhi3, ashrqi3): Ditto.
13113         (lshrsi3, lshrhi3, lshrqi3): Ditto.
13114         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
13115         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
13116
13117 2008-06-28  Richard Guenther  <rguenther@suse.de>
13118
13119         * tree-ssa-structalias.c (callused_id, var_callused,
13120         callused_tree): Add.
13121         (handle_pure_call): New function.
13122         (find_func_aliases): Call it.
13123         (find_what_p_points_to): Handle the call-used set.
13124         (clobber_what_escaped): Likewise.
13125         (compute_call_used_vars): New function.
13126         (init_base_vars): Init the call-used variable.
13127         (do_sd_constraint): Do not propagate the solution from CALLUSED
13128         but use CALLUSED as a placeholder.
13129         (solve_graph): Likewise.
13130         * tree-flow-inline.h (gimple_call_used_vars): New function.
13131         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
13132         (compute_call_used_vars): Declare.
13133         * tree-ssa-alias.c (set_initial_properties): Call
13134         compute_call_used_vars.
13135         (reset_alias_info): Clear call-used variables.
13136         (add_call_clobber_ops): Assert we are not called for const/pure
13137         functions.  Remove handling of them.
13138         (add_call_read_ops): Handle pure functions by adding the
13139         call-used set of variables as VUSEs.
13140         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
13141         (delete_tree_ssa): Free it.
13142         * tree-dfa.c (remove_referenced_var): Clear the var from the
13143         call-used bitmap.
13144
13145 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
13146
13147         * tree.c (build_varargs_function_type_list): New.
13148         (build_function_type_list_1): New.
13149         (build_function_type_list): Use build_function_type_list_1.
13150         * tree.h (build_varargs_function_type_list): New.
13151
13152 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13153
13154         PR target/34856
13155         * config/spu/spu.c (spu_builtin_splats): Do not generate
13156         invalid CONST_VECTOR expressions.
13157         (spu_expand_vector_init): Likewise.
13158
13159 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
13160
13161         * optabs.c (libfunc_decls): New variable.
13162         (libfunc_decl_hash, libfunc_decl_eq): New functions.
13163         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
13164         for the same function twice.
13165
13166 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
13167
13168         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
13169         ix86_expand_binary_operator directly.
13170         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
13171         for operand 2.
13172         (*ashrti3_1): Ditto.
13173         (*lshrti3_1): Ditto.
13174         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
13175         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
13176         using only one splitter.  Conditionaly execute splitter before or
13177         after peephole2 pass.
13178         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
13179         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
13180         Use only one alternative in asm template.
13181         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
13182         in asm template.
13183         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
13184         "J" operand constraint for operand 2.
13185         (*ashldi3_cconly_rex64): Ditto.
13186         (*ashrdi3_cmp_rex64): Ditto.
13187         (*ashrdi3_cconly_rex64): Ditto.
13188         (*lshrdi3_cmp_rex64): Ditto.
13189         (*lshrdi3_cconly_rex64): Ditto.
13190         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
13191         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
13192         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
13193         gen_x86_shrd_1.
13194
13195 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
13196
13197         * gimplify.c (omp_is_private): Don't return true if decl is not
13198         already private on #pragma omp for or #pragma omp parallel for.
13199
13200         PR debug/36617
13201         * tree-cfg.c (struct move_stmt_d): Replace block field with
13202         orig_block and new_block fields.
13203         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
13204         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
13205         (move_block_to_fn): Replace vars_map and new_label_map arguments
13206         with struct move_stmt_d pointer.
13207         (replace_block_vars_by_duplicates): New function.
13208         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
13209         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
13210         all subblocks of ORIG_BLOCK to the new function.  Call
13211         replace_block_vars_by_duplicates.
13212         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
13213         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
13214         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
13215         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
13216         (expand_omp): Temporarily set input_location to the location of
13217         region's controlling stmt.
13218         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
13219         BIND_EXPR, push ctx->block_vars and gimplification vars into
13220         the BIND_EXPR and its block's BLOCK_VARS instead of directly
13221         into dest function.
13222         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
13223         there are any BLOCK_VARS.
13224         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
13225         OMP_PARALLEL or OMP_TASK stmt.
13226         (lower_omp): Save and restore input_location around the lower_omp_1
13227         call.
13228
13229 2008-06-27  Richard Guenther  <rguenther@suse.de>
13230
13231         PR tree-optimization/36400
13232         PR tree-optimization/36373
13233         PR tree-optimization/36344
13234         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
13235         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
13236         (update_alias_info): Remove call clobbering code.
13237         (make_constraint_to): New helper function.
13238         (make_escape_constraint): Likewise.
13239         (handle_rhs_call): Use it on all pointer containing arguments.
13240         Also mark the static chain escaped.
13241         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
13242         instead of ANYTHING.
13243         (make_constraint_from): New helper split out from ...
13244         (make_constraint_from_anything): ... here.
13245         (find_func_aliases): Add constraints for escape sites.
13246         (intra_create_variable_infos): Make constraints from NONLOCAL
13247         for parameters.
13248         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
13249         as ANYTHING.
13250         (clobber_what_p_points_to): Remove.
13251         (clobber_what_escaped): New function.
13252         (init_base_vars): Init NONLOCAL and ESCAPED.
13253         (do_sd_constraint): Do not propagate the solution from ESCAPED
13254         but use ESCAPED as a placeholder.
13255         (solve_graph): Likewise.
13256         * tree-flow.h (clobber_what_p_points_to): Remove.
13257         (clobber_what_escaped): Declare.
13258         * tree-ssa-alias.c (set_initial_properties): Call it.
13259         Remove code clobbering escaped pointers.
13260
13261 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
13262
13263         * function.c (allocate_struct_function): Only allocate a unique
13264         funcdef_no if the decl is nonzero.
13265
13266 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
13267
13268         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
13269         * config/mips/mips.c (mips_split_const_insns): New function.
13270         * config/mips/mips.md (move_type): New attribute.
13271         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
13272         (dword_mode): New attribute.
13273         (type): Avoid long line.  Map "move_type"s to "type"s,
13274         choosing "multi" for doubleword moves if appropriate.
13275         Swap MTC/MFC comments to match their declaration order.
13276         (extended_mips16): Default to "yes" if "move_type" is "sll0",
13277         "type" is "branch" or "jal" is "direct".
13278         (length): Handle "extended_mips16" first.  Make the default
13279         "0" for "ghost" instructions.  Set the length from "move_type".
13280         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
13281         of "type", with "sll0" for the register alternative.  Remove the
13282         "extended_mips16" attribute.
13283         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
13284         of "type", with "shift_shift" for the register alternative.
13285         Remove the "length" attribute.
13286         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
13287         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
13288         of "type", with "andi" for the register alternative.
13289         (*zero_extendqihi2): Likewise.
13290         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
13291         of "andi" instead of a "type" of "arith".
13292         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
13293         instead of "type".
13294         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
13295         (mov_<store>r, *mov<mode>_ra): Likewise.
13296         (extendsidi2): Use "move_type" instead of "type", with "move"
13297         for the register alternative.
13298         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
13299         of "type", with "signext" for the register alternative.
13300         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
13301         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
13302         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
13303         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
13304         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
13305         (unnamed branch insn): Likewise.
13306         (*movdi_gp32_fp64): Fold into...
13307         (*movdi_32bit): ...here.
13308         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
13309         (*movdf_hardfloat): ...this new pattern.
13310         (*movdf_softfloat): Remove redundant FPR alternatives.
13311         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
13312         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
13313         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
13314         the "move" attribute.
13315         (*movdi_32bit): Use "move_type" instead of "type" and remove the
13316         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
13317         and "store" for COP loads and stores.
13318         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
13319         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
13320         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
13321         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
13322         (*movtf_mips16, *movv2sf): Likewise.
13323         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
13324         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
13325         (mfhc1<mode>): Use "move_type" instead of "move".
13326         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
13327         (loadgp_blockage): Remove the "length" attribute.
13328         (blockage, set_got_version, update_got_version): Likewise.
13329         (call_internal): Remove the "extended_mips16" attribute.
13330         (call_value_internal, call_value_multiple_internal): Likewise.
13331         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
13332         instead of "move".
13333         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
13334         the "length" attribute.
13335
13336 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13337
13338         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
13339         -Wcast-qual warnings.
13340         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
13341         handle_pragma_pop_macro): Likewise.
13342         * collect2.c (resolve_lib_name): Likewise.
13343         * config/arc/arc.c (arc_init): Likewise.
13344         * config/arm/arm.c (neon_builtin_compare,
13345         locate_neon_builtin_icode): Likewise.
13346         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
13347         * config/bfin/bfin.c (bfin_init_machine_status,
13348         bfin_optimize_loop): Likewise.
13349         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
13350         * config/cris/cris.c (cris_init_expanders): Likewise.
13351         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
13352         * config/darwin.c (machopic_indirection_eq,
13353         machopic_indirection_name, machopic_output_indirection): Likewise.
13354         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
13355         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
13356         frv_optimize_membar): Likewise.
13357         * config/i386/cygwin.h (mingw_scan,
13358         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
13359         * config/i386/cygwin1.c (mingw_scan): Likewise.
13360         * config/i386/i386.c (machopic_output_stub): Likewise.
13361         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
13362         i386_pe_unique_section): Likewise.
13363         * config/ia64/ia64.c (ia64_init_machine_status,
13364         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
13365         Likewise.
13366         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
13367         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
13368         * config/m68k/m68k.c (m68k_handle_option,
13369         m68k_sched_md_init_global): Likewise.
13370         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
13371         mcore_unique_section): Likewise.
13372         * config/mips/mips.c (mips_block_move_straight,
13373         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
13374         Likewise.
13375         * config/mmix/mmix.c (mmix_init_machine_status,
13376         mmix_encode_section_info): Likewise.
13377         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
13378         * config/rs6000/rs6000.c (rs6000_init_machine_status,
13379         print_operand_address, output_toc, redefine_groups,
13380         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
13381         * config/s390/s390.c (s390_init_machine_status): Likewise.
13382         * config/score/score.c (score_block_move_straight,
13383         score_block_move_loop_body): Likewise.
13384         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
13385         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
13386         * emit-rtl.c (find_auto_inc): Likewise.
13387         * gcc.c (translate_options, process_command): Likewise.
13388         * reorg.c (dbr_schedule): Likewise.
13389         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
13390         * xcoffout.c (xcoffout_declare_function): Likewise.
13391
13392 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
13393
13394         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
13395         ipa-pta working again.
13396
13397 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
13398
13399         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
13400         genautomata.
13401
13402 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
13403
13404         * config.gcc (powerpc*-*-*): Add new core e500mc.
13405         * config/rs6000/e500mc.md: New file.
13406         * config/rs6000/rs6000.c (processor_costs): Add new costs for
13407         e500mc.
13408         (rs6000_override_options): Add e500mc case to
13409         processor_target_table. Altivec and Spe options not allowed
13410         with e500mc. Add isel instruction to e500mc by
13411         default. Initialize rs6000_cost for e500mc.
13412         (rs6000_issue_rate): Set issue rate for e500mc.
13413         * config/rs6000/rs6000.h (processor_type): Add
13414         PROCESSOR_PPCE500MC.
13415         (ASM_CPU_SPEC): Add e500mc.
13416         Set TARGET_ISEL to rs6000_isel.
13417         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
13418         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
13419         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
13420         Include e500mc.md.
13421         * doc/invoke.texi: Add e500mc to list of cpus.
13422
13423 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13424
13425         PR c/34867
13426         * c-lex.c (lex_charconst): Initialize unsignedp.
13427
13428 2008-06-27  Olivier Hainque  <hainque@adacore.com>
13429
13430         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
13431         documented assumptions.
13432
13433 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
13434
13435         * dwarf2out.c: Remove trailing white spaces.  Break long line
13436         in comments.
13437
13438 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
13439
13440         * libfuncs.h (LTI_synchronize): New libfunc_index.
13441         (synchronize_libfunc): Declare.
13442         * builtins.c (expand_builtin_synchronize): Consider using
13443         synchronize_libfunc before falling back on an asm blockage.
13444         * config/mips/mips.c: Include libfuncs.h
13445         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
13446
13447 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
13448
13449         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
13450         parameter.  Copy stack_reg to r11 where appropriate.
13451         (no_global_regs_above): Add gpr parameter.
13452         (rs6000_stack_info): Only add padding for SPE save area if we
13453         are saving SPE GPRs and CR.
13454         (saveres_routine_syms): New variable.
13455         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
13456         Define.
13457         (rs6000_savres_routine_sym): New function.
13458         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
13459         split out of...
13460         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
13461         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
13462         Tweak FPR out-of-line saving.
13463         (rs6000_make_savres_rtx): New function.
13464         (rs6000_use_multiple_p): New function.
13465         (rs6000_savres_strategy): New function.
13466         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
13467         out-of-line if appropriate.
13468         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
13469         if we are optimizing for size.
13470         (GP_SAVE_INLINE): Define.
13471         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
13472         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
13473         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
13474         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
13475         (*save_fpregs_<mode>): Add use of r11.
13476         (*restore_gpregs_<mode>): New insn.
13477         (*return_and_restore_gpregs_<mode>): New insn.
13478         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
13479         use r11.
13480         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
13481         (*restore_gpregs_spe): New insn.
13482         (*return_and_restore_gpregs_spe): New insn.
13483         * config/rs6000/predicates.md (save_world_operation): Fix check.
13484
13485 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
13486
13487         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
13488         this point, so assert that.
13489
13490 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
13491
13492         * cfganal.c: Include vec.h and vecprim.h.
13493         (compute_idf): Import from...
13494         * tree-into-ssa (compute_idf): ...here.
13495         * basic-block.h (compute_idf): Export.
13496
13497 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
13498
13499         * c-decl.c (merge_decls): Use !current_function_decl to check for
13500         extern declaration of C99 inline function being at file scope.
13501
13502 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
13503
13504         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
13505
13506 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13507
13508         * alias.c (record_alias_subset, init_alias_analysis): Fix
13509         -Wc++-compat and/or -Wcast-qual warnings.
13510         * attribs.c (lookup_attribute_spec): Likewise.
13511         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
13512         copy_bb, connect_traces,
13513         find_rarely_executed_basic_blocks_and_cr): Likewise.
13514         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
13515         note_btr_set, migrate_btr_defs): Likewise.
13516         * builtins.c (result_vector, expand_builtin_memcpy,
13517         expand_builtin_mempcpy_args, expand_builtin_strncpy,
13518         builtin_memset_read_str, expand_builtin_printf,
13519         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
13520         Likewise.
13521         * caller-save.c (mark_set_regs): Likewise.
13522         * calls.c (expand_call, emit_library_call_value_1): Likewise.
13523         * cgraph.c (cgraph_edge): Likewise.
13524         * combine.c (likely_spilled_retval_1): Likewise.
13525         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
13526         htab_counts_entry_del, get_coverage_counts): Likewise.
13527         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
13528         new_cselib_val): Likewise.
13529         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
13530         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
13531         Likewise.
13532         * df-core.c (df_compact_blocks): Likewise.
13533         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
13534         * df-scan.c (df_grow_reg_info, df_ref_create,
13535         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
13536         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
13537         df_record_entry_block_defs, df_record_exit_block_uses,
13538         df_bb_verify): Likewise.
13539         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
13540         DF_REF_EXTRACT_MODE_CONST): New.
13541         * dominance.c (get_immediate_dominator, get_dominated_by,
13542         nearest_common_dominator, root_of_dom_tree,
13543         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
13544         -Wc++-compat and/or -Wcast-qual warnings.
13545         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
13546         record_store, replace_read, check_mem_read_rtx, scan_insn,
13547         dse_step1, dse_record_singleton_alias_set): Likewise.
13548         * dwarf2asm.c (dw2_force_const_mem): Likewise.
13549
13550 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13551
13552         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
13553         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
13554         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
13555         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
13556         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
13557         add_ranges_num, add_ranges_by_labels, file_info_cmp,
13558         file_name_acquire, output_file_names, add_const_value_attribute,
13559         premark_used_types_helper, file_table_eq, file_table_hash,
13560         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
13561         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
13562         -Wcast-qual warnings.
13563         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
13564         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
13565         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
13566         gen_reg_rtx, start_sequence, init_emit): Likewise.
13567         * et-forest.c (et_new_occ, et_new_tree): Likewise.
13568         * except.c (init_eh_for_function, gen_eh_region,
13569         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
13570         arh_to_landing_pad, arh_to_label, add_action_record,
13571         add_call_site, switch_to_exception_section): Likewise.
13572         * expmed.c (synth_mult): Likewise.
13573         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
13574         store_expr): Likewise.
13575         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
13576         Likewise.
13577         * function.c (assign_stack_temp_for_type,
13578         allocate_struct_function, match_asm_constraints_1): Likewise.
13579         * gcov-io.c (gcov_allocate): Likewise.
13580         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
13581         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
13582         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
13583         record_one_set, insert_expr_in_table, insert_set_in_table,
13584         dump_hash_table, compute_hash_table_work, alloc_hash_table,
13585         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
13586         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
13587         -Wcast-qual warnings.
13588
13589 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13590
13591         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
13592         -Wcast-qual warnings.
13593         * gcc.c (process_command): Likewise.
13594         * genattrtab.c (oballoc): Use XOBNEW.
13595         (oballocvec): Define.
13596         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
13597         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
13598         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
13599         -Wc++-compat and/or -Wcast-qual warnings.
13600         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
13601         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
13602         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
13603         gen_presence_absence_set, gen_automaton, gen_regexp_el,
13604         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
13605         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
13606         add_excls, process_presence_absence_names,
13607         process_presence_absence_patterns, add_presence_absence,
13608         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
13609         get_free_state, add_arc, get_free_automata_list_el,
13610         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
13611         transform_3, cache_presence, create_ainsns, create_automata,
13612         create_state_ainsn_table, dfa_insn_code_enlarge,
13613         output_trans_func, output_min_issue_delay_func,
13614         output_dead_lock_func, output_reset_func,
13615         output_get_cpu_unit_code_func, output_dfa_start_func,
13616         expand_automata): Likewise.
13617         * genextract.c (gen_insn): Likewise.
13618         * gengtype-lex.l: Likewise.
13619         * gengtype.c (read_input_list, adjust_field_type,
13620         process_gc_options): Likewise.
13621         * genoutput.c (note_constraint): Likewise.
13622         * genpreds.c (mangle, add_constraint): Likewise.
13623         * genrecog.c (process_define_predicate, new_decision,
13624         add_to_sequence): Likewise.
13625         * gensupport.c (record_insn_name): Likewise.
13626
13627 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13628
13629         * config/i386/driver-i386.c (detect_caches_amd,
13630         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
13631         and/or -Wcast-qual warnings.
13632         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
13633         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
13634         gt_pch_save): Likewise.
13635         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
13636         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
13637         * global.c (compute_regsets): Likewise.
13638         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
13639         finish_graph_dump_file): Likewise.
13640         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
13641         unlink_bb_notes): Likewise.
13642         * integrate.c (get_hard_reg_initial_val): Likewise.
13643         * ipa-prop.c (ipa_push_func_to_list): Likewise.
13644         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
13645         * local-alloc.c (update_equiv_regs): Likewise.
13646         * loop-invariant.c (check_invariant_table_size,
13647         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
13648         Likewise.
13649         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
13650         altered_reg_used, mark_altered): Likewise.
13651         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
13652         insert_var_expansion_initialization,
13653         combine_var_copies_in_loop_exit, apply_opt_in_copies,
13654         release_var_copies): Likewise.
13655         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
13656         analyze_matrix_decl, add_allocation_site, analyze_transpose,
13657         analyze_accesses_for_phi_node, check_var_notmodified_p,
13658         check_allocation_function, find_sites_in_func,
13659         record_all_accesses_in_func, transform_access_sites,
13660         transform_allocation_sites): Likewise.
13661         * omp-low.c (new_omp_region, create_omp_child_function_name,
13662         check_omp_nesting_restrictions, check_combined_parallel,
13663         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
13664         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
13665         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
13666         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
13667         Likewise.
13668         * opts-common.c (prune_options): Likewise.
13669         * opts.c (add_input_filename, print_filtered_help,
13670         get_option_state): Likewise.
13671         * params.c (add_params): Likewise.
13672         * passes.c (set_pass_for_id, next_pass_1,
13673         do_per_function_toporder, pass_fini_dump_file): Likewise.
13674         * postreload.c (reload_cse_simplify_operands): Likewise.
13675         * predict.c (tree_predicted_by_p, tree_predict_edge,
13676         clear_bb_predictions, combine_predictions_for_bb): Likewise.
13677
13678 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13679
13680         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
13681         warnings.
13682         * recog.c (check_asm_operands, validate_change_1): Likewise.
13683         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
13684         subst_asm_stack_regs): Likewise.
13685         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
13686         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
13687         * regmove.c (reg_is_remote_constant_p): Likewise.
13688         * regrename.c (regrename_optimize, scan_rtx_reg,
13689         kill_clobbered_value, kill_set_value, kill_autoinc_value):
13690         Likewise.
13691         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
13692         regstat_compute_calls_crossed): Likewise.
13693         * reload1.c (init_reload, new_insn_chain,
13694         has_nonexceptional_receiver, reload, copy_reloads,
13695         calculate_needs_all_insns, init_elim_table): Likewise.
13696         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
13697         * rtl.c (shallow_copy_rtx_stat): Likewise.
13698         * rtlanal.c (parms_set): Likewise.
13699         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
13700         sbitmap_resize, sbitmap_vector_alloc): Likewise.
13701         * sched-ebb.c (earliest_block_with_similiar_load,
13702         add_deps_for_risky_insns): Likewise.
13703         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
13704         schedule_region): Likewise.
13705         * see.c (eq_descriptor_pre_extension,
13706         hash_descriptor_pre_extension, hash_del_pre_extension,
13707         eq_descriptor_properties, hash_descriptor_properties,
13708         hash_del_properties, see_seek_pre_extension_expr,
13709         see_initialize_data_structures, see_print_register_properties,
13710         see_print_pre_extension_expr, see_delete_merged_def_extension,
13711         see_delete_unmerged_def_extension, see_emit_use_extension,
13712         see_pre_delete_extension, see_map_extension, see_commit_changes,
13713         see_analyze_merged_def_local_prop,
13714         see_analyze_merged_def_local_prop,
13715         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
13716         see_set_prop_merged_def, see_set_prop_unmerged_def,
13717         see_set_prop_unmerged_use, see_print_one_extension,
13718         see_merge_one_use_extension, see_merge_one_def_extension,
13719         see_store_reference_and_extension, see_update_uses_relevancy,
13720         see_update_defs_relevancy): Likewise.
13721         * statistics.c (hash_statistics_hash, hash_statistics_eq,
13722         hash_statistics_free, curr_statistics_hash): Likewise.
13723         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
13724         expand_asm_operands, expand_return, case_bit_test_cmp,
13725         expand_case): Likewise.
13726         * stor-layout.c (start_record_layout): Likewise.
13727         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
13728         gt_pch_save_stringpool): Likewise.
13729         * tree-data-ref.c (hash_stmt_vertex_info,
13730         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
13731         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
13732
13733 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
13734
13735         PR target/36627
13736         * config/i386/i386.md : Change constraints of HImode and QImode
13737         immediate operands from "i" to "n".  Change SImode "ni" constraint to
13738         "i" and SImode "rmi" constraint to "g".  Remove all constraints
13739         from const0_operand and const1_operand predicated operands.
13740         (i): Change QImode and HImode attribute from "i" to "n".
13741         (*subqi_2): Change HImode operands to QImode.
13742         (*subqi_3): Ditto.
13743
13744 2008-06-25  Olivier Hainque  <hainque@adacore.com>
13745
13746         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
13747         sed substitutions.
13748
13749 2008-06-25  Richard Guenther  <rguenther@suse.de>
13750
13751         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
13752         not overflow the result type.
13753
13754 2008-06-25  Richard Guenther  <rguenther@suse.de>
13755
13756         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
13757         (vn_lookup): Likewise.
13758
13759 2008-06-25  Richard Guenther  <rguenther@suse.de>
13760
13761         PR tree-optimization/35518
13762         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
13763         * tree-sra.c (instantiate_element): Use fold_build3 to build
13764         BIT_FIELD_REFs.
13765         (try_instantiate_multiple_fields): Likewise.
13766
13767 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13768
13769         * config/rs6000/rs6000.md: Change all string instruction's clobber to
13770         be early clobbers.
13771
13772 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13773
13774         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
13775         use_backchain_to_restore_sp to true
13776         if the offset of the link register save area would go over the 32k - 1
13777         offset limit of the load
13778         instructions.
13779
13780 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
13781
13782         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
13783         anchor for the type-punning blurb.  Cross-reference "Structures
13784         unions enumerations and bit-fields implementation".  Provide a
13785         cast-through-pointer example.  Make final sentence self-contained.
13786         * doc/implement-c.texi (Structures unions enumerations and
13787         bit-fields implementation): Cross-reference the type-punning blurb
13788         in the -fstrict-aliasing documentation.
13789
13790 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13791
13792         PR middle-end/36594
13793         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
13794         the memory instead of the memory itself for the save area.
13795
13796 2008-06-24  Olivier Hainque  <hainque@adacore.com>
13797             Nicolas Roche  <roche@adacore.com>
13798
13799         * gengtype.c (srcdir_len): size_t instead of int.
13800         (get_file_realbasename): New function.  For F a filename, the real
13801         basename of F, with all the path components stripped.
13802         (get_file_srcdir_relative_path): New function.  For F a filename, the
13803         relative path to F from $(srcdir).
13804         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
13805         get_file_realbasename.  Adjust the head comment.
13806         (get_prefix_langdir_index): New function. For F a filename, return the
13807         lang_dir_names[] relative index of the language directory that is
13808         a prefix in F.
13809         (get_file_langdir): For F a filename, return the name of the language
13810         directory where F is located.
13811         (get_file_gtfilename): New function. The gt- output file name for an
13812         input filename F.
13813         (get_output_file_with_visibility): Replace in-line computations with
13814         uses of get_file_gtfilename and get_prefix_langdir_index.
13815         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
13816
13817 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
13818
13819         PR tree-optimization/36504
13820         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
13821         references without base address.
13822
13823 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
13824
13825         PR middle-end/36584
13826         * calls.c (expand_call): Increase alignment for recursive functions.
13827
13828 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
13829
13830         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
13831         (TARGET_FUNCTION_VALUE): New define.
13832         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
13833         * config/avr/avr.h (FUNCTION_VALUE): Remove.
13834
13835 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
13836
13837         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
13838         (fmod<mode>3): Ditto.
13839         (remainderxf3): Ditto.
13840         (remainder<mode>3): Ditto.
13841
13842 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
13843
13844         PR target/36533
13845         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
13846         REG is a hard register.
13847
13848         PR tree-optimization/36508
13849         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
13850         499, don't check it at all in release compilers.
13851
13852 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
13853
13854         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
13855         together with SSE_TARGET_MATH to disable insn pattern.
13856         (*fop_<MODEF:mode>_2_i387): Ditto.
13857         (*fop_<MODEF:mode>_3_i387): Ditto.
13858
13859 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
13860
13861         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
13862
13863 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13864
13865         PR middle-end/34906
13866         * gimplify.c (gimplify_asm_expr): Check the return code of
13867         parse_output_constraint call, set function return and is_inout
13868         value if it failed.
13869
13870 2008-06-22  Ian Lance Taylor  <iant@google.com>
13871
13872         * c-lex.c (narrowest_unsigned_type): Change itk to int.
13873         (narrowest_signed_type): Likewise.
13874         * c-typeck.c (c_common_type): Change local variable mclass to enum
13875         mode_class, twice.
13876         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
13877         tcc_comparison, not the tree code itself.
13878         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
13879         (c_expand_expr): Cast modifier to enum expand_modifier.
13880         * c-common.h (C_RID_CODE): Add casts.
13881         (C_SET_RID_CODE): Define.
13882         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
13883         (c_lex_one_token): Add cast to avoid warning.
13884         (c_parser_objc_type_name): Rename local typename to type_name.
13885         (check_no_duplicate_clause): Change code parameter to enum
13886         omp_clause_code.
13887         (c_parser_omp_var_list_parens): Change kind parameter to enum
13888         omp_clause_code.
13889         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
13890         c_parser_omp_list_var_parens.
13891         (c_parser_omp_threadprivate): Likewise.
13892         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
13893         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
13894         * c-format.c (NO_FMT): Define.
13895         (printf_length_specs): Use NO_FMT.
13896         (asm_fprintf_length_specs): Likewise.
13897         (gcc_diag_length_specs): Likewise.
13898         (scanf_length_specs): Likewise.
13899         (strfmon_length_specs): Likewise.
13900         (gcc_gfc_length_specs): Likewise.
13901         (printf_flag_specs): Change 0 to STD_C89.
13902         (asm_fprintf_flag_specs): Likewise.
13903         (gcc_diag_flag_specs): Likewise.
13904         (gcc_cxxdiag_flag_specs): Likewise.
13905         (scanf_flag_specs): Likewise.
13906         (strftime_flag_specs): Likewise.
13907         (strfmon_flag_specs): Likewise.
13908         (print_char_table): Likewise.
13909         (asm_fprintf_char_table): Likewise.
13910         (gcc_diag_char_table): Likewise.
13911         (gcc_tdiag_char_table): Likewise.
13912         (gcc_cdiag_char_table): Likewise.
13913         (gcc_cxxdiag_char_table): Likewise.
13914         (gcc_gfc_char_table): Likewise.
13915         (scan_char_table): Likewise.
13916         (time_char_table): Likewis.
13917         (monetary_char_table): Likewise.
13918         * c-format.h (BADLEN): Likewise.
13919
13920 2008-06-21  Ian Lance Taylor  <iant@google.com>
13921
13922         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
13923         Define END_OF_BASE_TREE_CODES around inclusion.
13924         * tree.c (tree_code_type): New global array.
13925         (tree_code_length, tree_code_name): Likewise.
13926         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
13927         $(lang_tree_files).
13928         (all-tree.def, s-alltree): New targets.
13929         (gencheck.h, s-gencheck): Remove.
13930         (tree.o): Depend upon all-tree.def.
13931         (build/gencheck.o): Remove gencheck.h dependency.
13932         (mostlyclean): Don't remove gencheck.h.
13933         * c-common.h (enum c_tree_code): Remove.
13934         * c-lang.c (tree_code_type): Remove.
13935         (tree_code_length, tree_code_name): Remove.
13936         * gencheck.c (tree_codes): Include all-tree.def, rather than
13937         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
13938         after it is used.
13939         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
13940         than tree.def.
13941         * cp/cp-tree.h (enum cplus_tree_code): Remove.
13942         (operator_name_info): Size to MAX_TREE_CODES.
13943         (assignment_operator_name_info): Likewise.
13944         * cp/cp-lang.c (tree_code_type): Remove.
13945         (tree_code_length, tree_code_name): Remove.
13946         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
13947         (assignment_operator_name_info): Likewise.
13948         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
13949         MAX_TREE_CODES.
13950         * cp/mangle.c (write_expression): Likewise.
13951         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
13952         * fortran/f95-lang.c (tree_code_type): Remove.
13953         (tree_code_length, tree_code_name): Remove.
13954         * java/java-tree.h (enum java_tree_code): Remove.
13955         * java/lang.c (tree_code_type): Remove.
13956         (tree_code_length, tree_code_name): Remove.
13957         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
13958         * objc/objc-act.h (enum objc_tree_code): Remove.
13959         * objc/objc-lang.c (tree_code_type): Remove.
13960         (tree_code_length, tree_code_name): Remove.
13961         * objcp/objcp-lang.c (tree_code_type): Remove.
13962         (tree_code_length, tree_code_name): Remove.
13963         * ada/ada-tree.h (enum gnat_tree_code): Remove.
13964         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
13965         * ada/misc.c (tree_code_type): Remove.
13966         (tree_code_length, tree_code_name): Remove.
13967
13968 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
13969
13970         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
13971         the grand_bitmap_obstack.
13972
13973 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13974
13975         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
13976         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
13977         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
13978         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
13979         move_stmt_r, new_label_mapper): Likewise.
13980         * tree-complex.c (cvc_lookup): Likewise.
13981         * tree-dfa.c (create_function_ann): Likewise.
13982         * tree-dump.c (dump_register): Likewise.
13983         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
13984         find_phi_replacement_condition): Likewise.
13985         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
13986         tree_function_versioning): Likewise.
13987         * tree-into-ssa.c (cmp_dfsnum): Likewise.
13988         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
13989         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
13990         get_nonlocal_debug_decl, convert_nonlocal_reference,
13991         convert_nonlocal_omp_clauses, get_local_debug_decl,
13992         convert_local_reference, convert_local_omp_clauses,
13993         convert_nl_goto_reference, convert_nl_goto_receiver,
13994         convert_tramp_reference, convert_call_expr): Likewise.
13995         * tree-outof-ssa.c (contains_tree_r): Likewise.
13996         * tree-parloops.c (reduction_phi, initialize_reductions,
13997         eliminate_local_variables_1, add_field_for_reduction,
13998         add_field_for_name, create_phi_for_local_result,
13999         create_call_for_reduction_1, create_loads_for_reductions,
14000         create_stores_for_reduction, create_loads_and_stores_for_name):
14001         Likewise.
14002         * tree-phinodes.c (allocate_phi_node): Likewise.
14003         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
14004         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
14005         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
14006         * tree-ssa-coalesce.c (compare_pairs): Likewise.
14007         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
14008         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
14009         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
14010         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
14011         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
14012         vn_nary_op_insert): Likewise.
14013         * tree-ssa.c (redirect_edge_var_map_add,
14014         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
14015         * tree-vectorizer.c (vectorize_loops): Likewise.
14016         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
14017         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
14018         tree_cons_stat, build1_stat, build_variant_type_copy,
14019         decl_init_priority_lookup, decl_fini_priority_lookup,
14020         decl_priority_info, decl_restrict_base_lookup,
14021         decl_restrict_base_insert, decl_debug_expr_lookup,
14022         decl_debug_expr_insert, decl_value_expr_lookup,
14023         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
14024         type_hash_add, get_file_function_name, tree_check_failed,
14025         tree_not_check_failed, tree_range_check_failed,
14026         omp_clause_range_check_failed, build_omp_clause,
14027         build_vl_exp_stat): Likewise.
14028         * value-prof.c (gimple_histogram_value,
14029         gimple_duplicate_stmt_histograms): Likewise.
14030         * var-tracking.c (attrs_list_insert, attrs_list_copy,
14031         unshare_variable, variable_union_info_cmp_pos, variable_union,
14032         dataflow_set_different_1, dataflow_set_different_2,
14033         vt_find_locations, variable_was_changed, set_variable_part,
14034         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
14035         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
14036         section_entry_hash, object_block_entry_eq,
14037         object_block_entry_hash, create_block_symbol,
14038         initialize_cold_section_name, default_function_rodata_section,
14039         strip_reg_name, set_user_assembler_name, const_desc_eq,
14040         build_constant_desc, output_constant_def, lookup_constant_def,
14041         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
14042         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
14043         default_internal_label): Likewise.
14044         * varray.c (varray_init, varray_grow): Likewise.
14045         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
14046
14047 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
14048
14049         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
14050         operators for "test" insn.  Macroize insn using SWI mode macro.
14051         (*jcc_fused_2): Ditto.
14052         (*jcc_fused_3): Macroize insn using SWI mode macro.
14053         (*jcc_fused_4): Ditto.
14054
14055 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
14056
14057         * tree-ssa-pre.c: Fix typo in comment.
14058         (init_antic, fini_antic): Add explicit funtions for
14059         initializing and deinitializing ANTIC and AVAIL sets.
14060         (create_expression_by_pieces): Fix typo in comment.
14061         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
14062         (execute_pre): Eventually dump details about ANTIC_IN.
14063
14064 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14065
14066         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
14067         * gcc.c (translate_options, init_spec, store_arg, read_specs,
14068         add_to_obstack, file_at_path, find_a_file, execute,
14069         add_preprocessor_option, add_assembler_option, add_linker_option,
14070         process_command, insert_wrapper, do_option_spec, do_self_spec,
14071         spec_path, do_spec_1, is_directory, main, used_arg,
14072         getenv_spec_function): Likewise.
14073         * tlink.c (symbol_hash_lookup, file_hash_lookup,
14074         demangled_hash_lookup, symbol_push, file_push, frob_extension):
14075         Likewise.
14076
14077 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
14078
14079         * doc/rtl.texi: Updated subreg section.
14080
14081 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
14082
14083         PR c++/36523
14084         * cgraphunit.c (cgraph_process_new_functions): Don't clear
14085         node->needed and node->reachable.
14086         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
14087         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
14088         (expand_task_call): Don't call expand_task_copyfn.
14089         (expand_task_copyfn): Renamed to...
14090         (finalize_task_copyfn): ... this.
14091
14092 2008-06-19  Jan Hubicka  <jh@suse.cz>
14093
14094         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
14095         clobbering framepointer.
14096
14097 2008-06-19  Jan Hubicka  <jh@suse.cz>
14098
14099         * tree-optimize.c (execute_early_local_optimizations): Set
14100         cgraph_state only at first invocation.
14101
14102 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14103
14104         * system.h (-Wc++-compat): Activate as a warning, no an error.
14105
14106 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
14107
14108         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
14109         instead of "#" in insn asm template.
14110         (*jcc_fused_2): Ditto.
14111
14112 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
14113
14114         * config/i386/i386.h (ix86_tune_indices)
14115         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
14116         (TARGET_FUSE_CMP_AND_BRANCH): New define.
14117         * config/i386/i386.md (*jcc_fused_1): New insn pattern
14118         (*jcc_fused_2): Ditto.
14119         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
14120         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
14121         (print operand): Handle 'E' and 'e' code.
14122
14123 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
14124
14125         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
14126         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14127         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14128
14129 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
14130
14131         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
14132         node->decl.
14133         (cgraph_expand_function): Use local copy of decl.
14134         (cgraph_expand_all_functions): Remove redundant initialization of
14135         order_pos.
14136         (cgraph_optimize): Reword internal_error message.
14137
14138 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
14139
14140         * arm-protos.h (arm_return_in_memory): Remove public
14141         arm_return_in_memory() prototype.
14142         * arm.c (arm_return_in_memory): Add static prototype, add target
14143         hook macro, change definition and comments.
14144         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
14145
14146 2008-06-19  Ben Elliston  <bje@au.ibm.com>
14147
14148         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
14149         real.c: Remove references to IEEE 754R.
14150         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
14151         * doc/libgcc.texi (Decimal float library routines): Likewise.
14152
14153 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14154
14155         * targhooks.h (struct gcc_target): New member unwind_word_mode.
14156         (default_unwind_word_mode): Add prototype.
14157         * targhooks.c (default_unwind_word_mode): New function.
14158         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
14159         instead of word_mode.
14160         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
14161         (TARGET_INITIALIZER): Use it.
14162
14163         * c-common.c (handle_mode_attribute): Support "unwind_word"
14164         mode attribute.
14165         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
14166
14167         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
14168         word_mode to access SjLj_Function_Context member "data".
14169         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
14170         conversion from targetm.eh_return_filter_mode () to
14171         targetm.unwind_word_mode () if they differ.
14172
14173         * builtin-types.def (BT_UNWINDWORD): New primitive type.
14174         (BT_FN_UNWINDWORD_PTR): New function type.
14175         (BT_FN_WORD_PTR): Remove.
14176         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
14177         * except.c (expand_builtin_extend_pointer): Convert pointer to
14178         targetm.unwind_word_mode () instead of word_mode.
14179
14180         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
14181         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
14182         (spu_unwind_word_mode): New function.
14183         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
14184         (TARGET_UNWIND_WORD_MODE): Define.
14185         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
14186
14187 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14188
14189         * config/spu/spu.c (reg_align): Remove.
14190         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
14191         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
14192         (spu_split_store): Likewise.
14193
14194 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
14195
14196         * gcc/tree-vn.c: Fix typo in comment.
14197
14198 2008-06-18  Jan Hubicka  <jh@suse.cz>
14199
14200         * cgraphunit.c (cgraph_optimize): Output debug info when doing
14201         toplevel reorder too.
14202
14203 2008-06-18  Jan Hubicka  <jh@suse.cz>
14204
14205         * c-opts.c (c_common_post_options): PCH is not compatible with
14206         no-unit-at-a-time.
14207         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
14208         -fno-toplevel-reorder by default now.
14209
14210 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14211
14212         PR documentation/30739
14213         * doc/install.texi (Prerequisites): Document dependency on awk.
14214
14215 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
14216             Ian Lance Taylor  <iant@google.com>
14217
14218         PR rtl-optimization/35604
14219         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
14220         only want to change jump destinations, not eventual label comparisons.
14221
14222 2008-06-16  Jan Hubicka  <jh@suse.cz>
14223
14224         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
14225         syntax errors.
14226         (cgraph_analyze_function): Likewise.
14227
14228 2008-06-16  Jan Hubicka  <jh@suse.cz>
14229
14230         * cgraph.h (cgraph_mark_if_needed): New function.
14231         * cgraphunit.c (cgraph_mark_if_needed): New function.
14232         * c-decl.c (duplicate_decl): Use it.
14233
14234 2008-06-16  Jan Hubicka  <jh@suse.cz>
14235
14236         * cgraph.c (cgraph_add_new_function): When in expansion state, do
14237         lowering.
14238
14239 2008-06-16  Jan Hubicka  <jh@suse.cz>
14240
14241         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
14242
14243 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
14244             Kazu Hirata  <kazu@codesourcery.com>
14245             Maxim Kuvyrkov  <maxim@codesourcery.com
14246
14247         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
14248         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
14249         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
14250         EXTRA_SPEC_FUNCTIONS.
14251         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
14252         (DRIVER_SELF_SPECS): Adjust.
14253         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
14254         * config/mips/st.h, config/mips/t-st: New.
14255         * config/mips/driver-native.c, config/mips/x-native: New.
14256         * doc/invoke.texi (MIPS): Document 'native' value for -march and
14257         -mtune options.
14258
14259 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14260
14261         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
14262         from it.
14263         (ISA_HAS_FP_CONDMOVE): New macro.
14264         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
14265         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
14266         (ISA_HAS_NMADD3_NMSUB3): New macro.
14267         * config/mips/mips.c (mips_rtx_costs): Update.
14268         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
14269         compiling for ST Loongson 2E/2F.
14270         (madd<mode>): Rename to madd4<mode>.  Update.
14271         (madd3<mode>): New pattern.
14272         (msub<mode>): Rename to msub4<mode>.  Update.
14273         (msub3<mode>): New pattern.
14274         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
14275         (nmadd3<mode>): New pattern.
14276         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
14277         (nmadd3<mode>_fastmath): New pattern.
14278         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
14279         (nmsub3<mode>): New pattern.
14280         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
14281         (nmsub3<mode>_fastmath): New pattern.
14282         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
14283
14284 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
14285
14286         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
14287         (DF_REF_INSN_INFO): New.
14288         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
14289         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
14290         with a NULL DF_REF_INSN_INFO.
14291         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
14292         DF_INSN_SET.
14293         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
14294         DF_INSN_INFO_EQ_USES): New.
14295         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
14296         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
14297         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
14298         * df-core.c: Update comment for above changes.
14299         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
14300         DF_INSN_UID_* macros.
14301         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
14302         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
14303         insn rtx.  Update all callers.
14304         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
14305         df_ref_create_structure, df_insn_refs_collect): Likewise.
14306         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
14307         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
14308         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
14309         macros to access the insn refs.
14310         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
14311         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
14312         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
14313         for accessing the refs.
14314         (try_fwprop_subst): Likewise.
14315         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
14316         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
14317         for accessing the refs.
14318         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
14319         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
14320         to look at the insn refs.
14321         (record_uses): Likewise.
14322         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
14323         function anymore.
14324         (mark_artificial_uses): Don't mark_insn for artificial refs.
14325         (mark_reg_rependencies): Likewise.
14326
14327         * doc/rtl.texi: Remove documentation of ADDRESSOF.
14328
14329 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14330
14331         * configure: Regenerate.
14332
14333 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
14334
14335         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
14336         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
14337         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14338
14339 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
14340
14341         * config/avr/avr.c (avr_mcu_t): Add attiny167.
14342         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
14343         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14344
14345 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
14346
14347         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
14348         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
14349         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14350
14351 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
14352
14353         * tree-ssa-sccvn.c: Fix format of comments.
14354
14355 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
14356
14357         * cgraph.c: Remove unneeded forward declarations of eq_node()
14358         and hash_node().
14359
14360 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
14361
14362         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
14363         REG_RETVAL notes.
14364         (see_update_relevancy): Likewise.
14365         * fwprop.c (try_fwprop_subst): Likewise.
14366         * rtlanal.c (noop_move_p): Likewise.
14367         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
14368         notes to non-existing libcall blocks.
14369         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
14370         Remove orig_set.
14371         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
14372         (dead_libcall_p): Remove.
14373         (delete_trivially_dead_insns): Don't use it.
14374         * web.c (union_defs): Remove comment about keeping nops.
14375         * gcse.c (hash_scan_insn): Don't take libcall pointers.
14376         (compute_hash_table_work): Don't track libcall notes.
14377         (do_local_cprop): Don't take libcall pointers.  Don't update
14378         libcall notes.
14379         (adjust_libcall_notes): Deleted.
14380         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
14381         ever have existed in the first place).
14382         (replace_store_insn): Don't try to remove libcall notes.
14383         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
14384         (resolve_reg_notes): Don't call them.
14385         (resolve_simple_move): Likewise.
14386         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
14387         Don't remove REG_RETVAL notes.
14388         * emit-rtl.c (try_split): Don't update libcall notes.
14389         (emit_copy_of_insn_after): Dito.
14390         * cselib.c (cselib_current_insn_in_libcall): Remove.
14391         (cselib_process_insn): Don't set/clear it.
14392         (new_elt_loc_list): Don't record it.
14393         (cselib_init): Don't initialize it.
14394         * cselib.c (struct elt_loc_list): Remove in_libcall field.
14395         * loop-invariant.c (find_invariant_insn): Don't look for libcall
14396         notes.
14397         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
14398         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
14399         (init_deps): Don't initialize it.
14400         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
14401         * combine.c (delete_noop_moves): Don't update libcall notes.
14402         (can_combine_p): Remove now pointless #if 0 block.
14403         (try_combine): Remove another obsolete #if 0 block.
14404         (distribute_notes): Don't distribute libcall notes.
14405         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
14406         * dce.c (libcall_dead_p): Remove.
14407         (delete_unmarked_insns): Don't handle libcall blocks.
14408         (preserve_libcall_for_dce): Remove.
14409         (prescan_insns_for_dce): Don't special-case libcall block insns.
14410         * reload1 (reload): Don't handle libcall notes.
14411         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
14412         documentation.
14413
14414 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
14415
14416         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
14417         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
14418         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14419
14420 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
14421
14422         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
14423         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
14424         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14425
14426 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14427
14428         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
14429
14430 2008-06-16  Ira Rosen  <irar@il.ibm.com>
14431
14432         PR tree-optimization/36493
14433         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
14434         the arguments list. Use VECTYPE to create vector pointer.
14435         (vectorizable_store): Fail if accesses through a pointer to vectype
14436         do not alias the original memory reference operands.
14437         Call vect_create_data_ref_ptr without the removed argument.
14438         (vectorizable_load): Likewise.
14439         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
14440         removed argument.
14441
14442 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
14443
14444         PR target/36336
14445         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
14446         reg_equiv_constant.
14447
14448 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
14449
14450         * config/mips/loongson2ef.md: New file.
14451         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14452         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14453         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14454         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
14455         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
14456         and loongson_2f.
14457         (loongson2ef.md): New include.
14458         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
14459         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
14460         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
14461         (loongson_gt_<mode>, loongson_extract_halfword)
14462         (loongson_insert_halfword_0, loongson_insert_halfword_2)
14463         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
14464         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
14465         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
14466         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
14467         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
14468         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
14469         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
14470         (vec_interleave_low<mode>): Define type attribute.
14471         * config/mips/mips.c (mips_ls2): New static variable.
14472         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
14473         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
14474         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
14475         Implement target scheduling hooks.
14476         (mips_multipass_dfa_lookahead): Update to handle tuning for
14477         Loongson 2E/2F.
14478         (mips_sched_init): Initialize data for Loongson scheduling.
14479         (mips_ls2_variable_issue): New static function.
14480         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
14481         Add sanity check.
14482         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
14483         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
14484         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
14485         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
14486         Handle ST Loongson 2E/2F cores.
14487         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
14488
14489 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14490
14491         * omp-low.c (extract_omp_for_data): Fix comment typo.
14492         * c.opt: Fix typo.
14493
14494 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14495
14496         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
14497         FIXME note about gcc/config.guess.
14498         * doc/options.texi (Option file format): Remove non-ASCII bytes.
14499         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
14500         * doc/cppopts.texi: Likewise.
14501         * doc/extend.texi: Likewise.
14502         * doc/gcc.texi: Likewise.
14503         * doc/gccint.texi: Likewise.
14504         * doc/gcov.texi: Likewise.
14505         * doc/gty.texi: Likewise.
14506         * doc/hostconfig.texi: Likewise.
14507         * doc/install.texi: Likewise.
14508         * doc/invoke.texi: Likewise.
14509         * doc/loop.texi: Likewise.
14510         * doc/makefile.texi: Likewise.
14511         * doc/md.texi: Likewise.
14512         * doc/passes.texi: Likewise.
14513         * doc/tm.texi: Likewise.
14514         * doc/tree-ssa.texi: Likewise.
14515         * doc/trouble.texi: Likewise.
14516
14517 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
14518             Nathan Sidwell  <nathan@codesourcery.com>
14519             Maxim Kuvyrkov  <maxim@codesourcery.com>
14520             Richard Sandiford  <rdsandiford@googlemail.com>
14521
14522         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
14523         * config/mips/mips-protos.h (mips_expand_vector_init): New.
14524         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
14525         builtins.
14526         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
14527         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
14528         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
14529         V8QImode cases.
14530         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
14531         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
14532         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
14533         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
14534         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
14535         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
14536         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
14537         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
14538         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
14539         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
14540         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
14541         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
14542         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
14543         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
14544         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
14545         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
14546         (mips_builtins): Add Loongson builtins.
14547         (mips_loongson_2ef_bdesc): New.
14548         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
14549         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
14550         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
14551         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
14552         New.
14553         (mips_expand_vector_init): New.
14554         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
14555         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
14556         if appropriate.
14557         * config/mips/mips.md: Add unspec numbers for Loongson
14558         builtins.  Include loongson.md.
14559         (MOVE64): Include Loongson vector modes.
14560         (SPLITF): Include Loongson vector modes.
14561         (HALFMODE): Handle Loongson vector modes.
14562         * config/mips/loongson.md: New.
14563         * config/mips/loongson.h: New.
14564         * config.gcc: Add loongson.h header for mips*-*-* targets.
14565         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
14566
14567 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
14568
14569         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
14570         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
14571         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
14572         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
14573         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
14574         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
14575         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
14576         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
14577         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
14578         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
14579         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
14580         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
14581         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
14582         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
14583         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
14584         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
14585         Remove use_fixproto=yes.
14586         (ia64*-*-hpux*): Remove comment about using fixproto.
14587         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
14588
14589 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14590
14591         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
14592         library rebuilds.
14593         * configure: Regenerate.
14594
14595 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
14596
14597         PR middle-end/36520
14598         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
14599         before evaluating it.
14600
14601 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
14602
14603         PR c/36507
14604         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
14605         nested inline functions.
14606         (start_decl, start_function): Don't invert DECL_EXTERNAL
14607         for nested inline functions.
14608
14609 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
14610
14611         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
14612         splits that must be made for correctness.
14613
14614 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
14615
14616         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
14617         (AVAIL_NON_MIPS16): Likewise.
14618         (mips_builtin_description): Replace target_flags with a predicate.
14619         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
14620         (dspr2_32): New availability predicates.
14621         (MIPS_BUILTIN): New macro.
14622         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
14623         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
14624         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
14625         Replace the TARGET_FLAGS parameters with AVAIL parameters.
14626         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
14627         (mips_dsp_32only_bdesc): Merge into...
14628         (mips_builtins): ...this new array.
14629         (mips_bdesc_map, mips_bdesc_arrays): Delete.
14630         (mips_init_builtins): Update after above changes.
14631         (mips_expand_builtin_1): Merge into...
14632         (mips_expand_builtin): ...here and update after above changes.
14633
14634 2008-06-12  Paul Brook  <paul@codesourcery.com>
14635
14636         * longlong.h (__arm__): Define count_leading_zeros.
14637         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
14638         (clzsi2, clzdi2): New functions.
14639         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
14640         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
14641         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
14642         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
14643         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
14644         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
14645         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
14646         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
14647         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
14648         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
14649
14650 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
14651
14652         * config/m68k/m68k.c (m68k_tune_flags): New.
14653         (override_options): Compute m68k_tune_flags.
14654         (MULL_COST, MULW_COST): Update for various variants of CFV2.
14655         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
14656
14657 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
14658
14659         PR middle-end/36506
14660         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
14661
14662 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
14663
14664         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
14665         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
14666
14667 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
14668
14669         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
14670         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
14671
14672 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
14673
14674         PR middle-end/36506
14675         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
14676         reductions.
14677
14678 2008-06-12  Richard Guenther  <rguenther@suse.de>
14679
14680         PR tree-optimization/36345
14681         * tree-flow.h (struct ptr_info_def): Align escape_mask,
14682         add memory_tag_needed flag.
14683         (may_alias_p): Declare.
14684         * tree-ssa-alias.c (may_alias_p): Export.
14685         (set_initial_properties): Use memory_tag_needed flag.
14686         (update_reference_counts): Likewise.
14687         (reset_alias_info): Reset memory_tag_needed flag.
14688         (create_name_tags): Check memory_tag_needed flag.
14689         (dump_points_to_info_for): Dump it.
14690         * tree-ssa-structalias.c (struct variable_info): Remove
14691         directly_dereferenced flag.
14692         (new_var_info): Do not initialize it.
14693         (process_constraint_1): Do not set it.
14694         (update_alias_info): Set is_dereferenced flag.
14695         (set_uids_in_ptset): Use may_alias_p.
14696         (set_used_smts): Check memory_tag_needed flag.
14697         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
14698         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
14699         memory_tag_needed flag.
14700         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
14701         from broken design.
14702
14703 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
14704
14705         * config/i386/i386.c (ix86_compute_frame_layout): Disable
14706         red zone for w64 abi.
14707         (ix86_expand_prologue): Likewise.
14708         (ix86_force_to_memory): Likewise.
14709         (ix86_free_from_memory): Likewise.
14710
14711 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
14712
14713         PR target/36425
14714         * config/rs6000/rs6000.c (rs6000_override_options): Set
14715         rs6000_isel conditionally to the absence of comand line override.
14716         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
14717         Remove duplicate rs6000_isel setting.
14718         * config/rs6000/eabispe.h: Ditto.
14719
14720 2008-06-11  Richard Guenther  <rguenther@suse.de>
14721
14722         * alias.c (get_alias_set): Use the element alias-set for arrays.
14723         (record_component_aliases): For arrays and vectors do nothing.
14724         * c-common.c (strict_aliasing_warning): Handle the cases
14725         of alias set zero explicitly.
14726         * Makefile.in (dfp.o-warn): Add -Wno-error.
14727
14728 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
14729
14730         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
14731         tune_32 tune_64.
14732         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
14733         tune_32 tune_64 to supported_defaults.  Allow values not
14734         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
14735         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
14736         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
14737         with_cpu_64 to generic for 64-bit-supporting configurations, not
14738         with_cpu.  Remove FIXMEs.
14739         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
14740         --with-arch-64, --with-tune-32, --with-tune-64): Document.
14741         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
14742         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
14743         arch_32 and arch_64.
14744
14745 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
14746             Olivier Hainque  <hainque@adacore.com>
14747
14748         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
14749         Use DECL_SIZE_UNIT to retrieve the size of the field.
14750
14751 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
14752
14753         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
14754         with function calls after declarations.  Lay out
14755         neon_float_type_node before further use.
14756
14757 2008-06-11  Richard Guenther  <rguenther@suse.de>
14758
14759         * tree-flow.h (may_point_to_global_var): Declare.
14760         * tree-ssa-alias.c (may_point_to_global_var): New function.
14761         * tree-ssa-sink.c (is_hidden_global_store): Use it.
14762
14763 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
14764
14765         * configure.ac: Teach that fido supports .debug_line.
14766         * configure: Regenerate.
14767
14768 2008-06-10  Tom Tromey  <tromey@redhat.com>
14769
14770         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
14771         debug hook.
14772
14773 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
14774
14775         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
14776         (encode_decimal64, decode_decimal64, encode_decimal128,
14777         decode_decimal128): Reverse order of 32-bit parts of value if host
14778         and target endianness differ.
14779
14780 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
14781
14782         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
14783         Avoid division by 0.
14784         (tree_mod_pow2_value_transform): Likewise.
14785         (tree_ic_transform): Likewise.
14786         (tree_stringops_transform): Likewise.
14787         (tree_mod_subtract_transform): Likewise.
14788         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
14789         (copy_edges_for_bb): Likewise.
14790         (initialize_cfun): Likewise.
14791
14792 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
14793
14794         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
14795         nonmemory_operand. Add "N" operand constraint.
14796         (*btsi): Ditto.
14797         (*jcc_btdi_mask_rex64): New instruction and split pattern.
14798         (*jcc_btsi_mask): Ditto.
14799         (*jcc_btsi_mask_1): Ditto.
14800
14801 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
14802
14803         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
14804         TYPE_CANONICAL for copied element type.
14805
14806 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
14807
14808         PR target/36473
14809         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
14810         Add m_CORE2 and m_GENERIC.
14811         * config/i386/predicates.md (bt_comparison_operator): New predicate.
14812         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
14813         (*btsi): Ditto.
14814         (*jcc_btdi_rex64): New instruction and split pattern.
14815         (*jcc_btsi): Ditto.
14816         (*jcc_btsi_1): Ditto.
14817         (*btsq): Fix Intel asm dialect operand order.
14818         (*btrq): Ditto.
14819         (*btcq): Ditto.
14820
14821 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
14822
14823         PR middle-end/36447
14824         * simplify-rtx.c (simplify_subreg): Add check for shift count
14825         greater than size.
14826
14827 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
14828
14829         * doc/md.texi: Synchronize with later constraints.md change.
14830         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
14831         with a C implementation.
14832         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
14833         MFLO handling.
14834         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
14835         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
14836         when moving to and from MD_REGNUM.
14837         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
14838         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
14839         Handle byte and halfword moves.
14840         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
14841         separately.
14842         * config/mips/constraints.md (h): Turn into NO_REGS.
14843         (l, x): Update documentation.
14844         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
14845         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
14846         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
14847         (HILO): New mode iterator.
14848         (MOVE128): Add TI.
14849         (any_div): New code iterator.
14850         (u): Extend code attribute to div and udiv.
14851         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
14852         d_operand in the splitters.  Remove redundant CONST_INT checks.
14853         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
14854         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
14855         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
14856         accordingly, using normal moves instead of unspecs to move LO into
14857         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
14858         (<u>mulsidi3): Handle expansion in C code.
14859         (<u>mulsidi3_32bit_internal): Rename to...
14860         (<u>mulsidi3_32bit): ...this.
14861         (<u>mulsidi3_32bit_r4000): Fix insn separator.
14862         (*<u>mulsidi3_64bit): Rename to...
14863         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
14864         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
14865         to set LO and HI to the multiplication result.  Use a normal move
14866         for MFLO and an unspec for MFHI.
14867         (*<u>mulsidi3_64bit_parts): Replace with...
14868         (<u>mulsidi3_64bit_hilo): ...this new instruction.
14869         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
14870         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
14871         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
14872         instead of HI.  Split the instruction into a separate multiplication
14873         and MFHI if !TARGET_FIX_R4000.
14874         (<su>muldi3_highpart): Likewise.
14875         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
14876         and the "=h" clobber.
14877         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
14878         (<u>mulditi3): New expander.
14879         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
14880         (madsi): Remove "=h" clobber.
14881         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
14882         Force the modulus result to be a GPR and split the instruction into
14883         a division followed by an MFHI after reload.
14884         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
14885         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
14886         the MIPS16 HIGH define_split.
14887         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
14888         of acc<->gpr moves to "multi".
14889         (*movdi_64bit): Replace the single "x" alternative with
14890         alternatives for moving into and out of "a".
14891         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
14892         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
14893         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
14894         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
14895         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
14896         (movti): New expander.
14897         (*movti, *movti_mips16): New insns.
14898         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
14899         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
14900         (mthi<GPR:mode>_<HILO:mode>): Likewise.
14901         * config/mips/predicates.md (fpr_operand): Delete.
14902         (d_operand): New predicate.
14903
14904 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
14905
14906         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
14907         failure on some Bourne shells.
14908         (x86_64-*-*): Ditto.
14909
14910 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
14911
14912         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
14913
14914 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
14915
14916         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
14917         (sparc-sun-solaris2*): Likewise.
14918
14919 2008-06-09  Arnaud Charlet  <charlet@adacore.com
14920
14921         * doc/install.texi: Update requirements to build the Ada compiler.
14922
14923 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
14924
14925         * df-scan.c (struct df_scan_problem_data): Remove the
14926         mw_link_pool alloc pool.
14927         (df_scan_free_internal): Don't free it.
14928         (df_scan_alloc): Don't allocate it.
14929         * df.h (struct df_link): Update comment.
14930
14931 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
14932
14933         * except.h: Correct checks for when SJLJ exceptions must be used.
14934
14935 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14936
14937         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
14938         default.
14939
14940 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
14941
14942         PR tree-optimization/36218
14943         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
14944         configure for the build system.
14945         (BUILD_LDFLAGS): Define.
14946         * configure: Regenerate.
14947         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
14948
14949 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
14950
14951         PR target/36424
14952         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
14953         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
14954         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
14955
14956 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
14957
14958         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
14959
14960 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
14961
14962         * config.gcc (Obsolete configurations): Remove list of
14963         configurations.
14964         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
14965         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
14966         targets matched by those patterns.
14967         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
14968         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
14969         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
14970         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
14971         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14972         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
14973         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
14974         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
14975         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
14976         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
14977         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
14978         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
14979         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
14980         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
14981         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
14982         Make code for Solaris 7 and greater unconditional for Solaris.
14983         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
14984         Remove --with-* handling.
14985         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
14986         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
14987         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
14988         LINK_OS_WINDISS_SPEC): Remove.
14989         * config/rs6000/sysv4.opt (mwindiss): Remove.
14990         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
14991         * configure: Regenerate.
14992         * doc/cpp.texi: Don't mention BeOS.
14993         * doc/extend.texi (interrupt): Don't mention MS1.
14994         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
14995         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
14996         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
14997         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
14998         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
14999         Remove.
15000         * doc/invoke.texi (MT Options): Remove.
15001         (-mwindiss): Remove.
15002         (CRIS Options): Remove cris-axis-aout references.
15003         (HPPA Options): Don't mention hppa1.1-*-pro.
15004         * doc/md.texi: (MorphoTech family): Remove.
15005         * libgcc2.c: Don't handle UWIN.
15006         * config/alpha/t-unicosmk: Remove.
15007         * config/alpha/unicosmk.h: Remove.
15008         * config/arm/kaos-arm.h: Remove.
15009         * config/arm/kaos-strongarm.h: Remove.
15010         * config/arm/strongarm-coff.h: Remove.
15011         * config/arm/strongarm-elf.h: Remove.
15012         * config/arm/strongarm-pe.h: Remove.
15013         * config/arm/t-strongarm-pe: Remove.
15014         * config/arm/t-xscale-coff: Remove.
15015         * config/arm/t-xscale-elf: Remove.
15016         * config/arm/xscale-coff.h: Remove.
15017         * config/arm/xscale-elf.h: Remove.
15018         * config/chorus.h: Remove.
15019         * config/cris/aout.h: Remove.
15020         * config/cris/aout.opt: Remove.
15021         * config/cris/t-aout: Remove.
15022         * config/i386/beos-elf.h: Remove.
15023         * config/i386/kaos-i386.h: Remove.
15024         * config/i386/ptx4-i.h: Remove.
15025         * config/i386/sco5.h: Remove.
15026         * config/i386/sco5.opt: Remove.
15027         * config/i386/sysv4-cpp.h: Remove.
15028         * config/i386/sysv5.h: Remove.
15029         * config/i386/t-beos: Remove.
15030         * config/i386/t-sco5: Remove.
15031         * config/i386/t-uwin: Remove.
15032         * config/i386/uwin.asm: Remove.
15033         * config/i386/uwin.h: Remove.
15034         * config/kaos.h: Remove.
15035         * config/mips/windiss.h: Remove.
15036         * config/mt: Remove directory.
15037         * config/pa/pa-osf.h: Remove.
15038         * config/pa/pa-pro-end.h: Remove.
15039         * config/pa/t-pro: Remove.
15040         * config/ptx4.h: Remove.
15041         * config/rs6000/beos.h: Remove.
15042         * config/rs6000/kaos-ppc.h: Remove.
15043         * config/rs6000/t-beos: Remove.
15044         * config/rs6000/windiss.h: Remove.
15045         * config/sh/kaos-sh.h: Remove.
15046         * config/sol2-6.h: Remove.
15047         * config/sparc/sol26-sld.h: Remove.
15048         * config/sparc/sysv4-only.h: Remove.
15049         * config/vax/bsd.h: Remove.
15050         * config/vax/t-memfuncs: Remove.
15051         * config/vax/ultrix.h: Remove.
15052         * config/vax/vaxv.h: Remove.
15053         * config/windiss.h: Remove.
15054
15055 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
15056
15057         PR rtl-optimization/36438
15058         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
15059         for vector shifts with constant scalar shift operands.
15060
15061 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
15062
15063         * doc/invoke.texi: Document -march=xlr.
15064         * config/mips/xlr.md: New file.
15065         * config/mips/mips.md: Include it.
15066         (cpu): Add "xlr".
15067         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
15068         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
15069         (mips_rtx_cost_data): Likewise.
15070
15071 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
15072
15073         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
15074         PRE_INC and PRE_DEC cases.
15075
15076 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
15077
15078         PR rtl-optimization/36419
15079         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
15080         the emitting jump insn.
15081
15082         PR target/36362
15083         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
15084         is not bool, boolify the whole *expr_p and convert to the desired type.
15085
15086 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
15087
15088         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
15089         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
15090         Add omp_private_outer_ref hook, add another argument to
15091         omp_clause_default_ctor hook.
15092         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
15093         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
15094         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
15095         hook_tree_tree_tree_tree_null.
15096         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
15097         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
15098         * hooks.c (hook_tree_tree_tree_tree_null): New function.
15099         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
15100         * tree.def (OMP_TASK): New tree code.
15101         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
15102         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
15103         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
15104         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
15105         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
15106         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
15107         OMP_CLAUSE_COLLAPSE_EXPR): Define.
15108         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
15109         (OMP_DIRECTIVE_P): Add OMP_TASK.
15110         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
15111         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
15112         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
15113         and OMP_CLAUSE_UNTIED entries.
15114         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
15115         num_ops to 2.
15116         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
15117         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
15118         * tree-pretty-print.c (dump_omp_clause): Handle
15119         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
15120         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
15121         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
15122         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
15123         warning about unsigned iterators.  Change decl/init/cond/incr
15124         arguments to TREE_VECs, check arguments for all collapsed loops.
15125         (c_finish_omp_taskwait): New function.
15126         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
15127         ws_clauses.
15128         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
15129         default_function_array_conversion on init.  Add par_clauses argument.
15130         If decl is present in parallel's lastprivate clause, change it to
15131         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
15132         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
15133         collapse count in clauses.
15134         (c_parser_omp_for, c_parser_omp_parallel): Adjust
15135         c_parser_omp_for_loop callers.
15136         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
15137         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
15138         (c_parser_omp_clause_name): Handle collapse and untied clauses.
15139         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
15140         functions.
15141         (c_parser_omp_clause_schedule): Handle schedule(auto).
15142         Include correct location in the error message.
15143         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
15144         and PRAGMA_OMP_CLAUSE_UNTIED.
15145         (OMP_TASK_CLAUSE_MASK): Define.
15146         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
15147         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
15148         * tree-nested.c (convert_nonlocal_omp_clauses,
15149         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
15150         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
15151         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
15152         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
15153         OMP_CLAUSE_DECL.
15154         (conver_nonlocal_reference, convert_local_reference,
15155         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
15156         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
15157         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
15158         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
15159         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
15160         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
15161         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
15162         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
15163         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
15164         OMP_CLAUSE_UNTIED.
15165         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
15166         * c-common.h (c_finish_omp_taskwait): New prototype.
15167         * gimple-low.c (lower_stmt): Handle OMP_TASK.
15168         * tree-parloops.c (create_parallel_loop): Create 1 entry
15169         vectors for OMP_FOR_{INIT,COND,INCR}.
15170         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
15171         (make_edges): Handle OMP_TASK.
15172         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
15173         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
15174         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
15175         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
15176         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
15177         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
15178         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
15179         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
15180         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
15181         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
15182         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
15183         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
15184         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
15185         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
15186         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
15187         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
15188         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
15189         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
15190         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
15191         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
15192         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
15193         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
15194         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
15195         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
15196         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
15197         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
15198         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
15199         original iterator is present in lastprivate clause or if
15200         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
15201         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
15202         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
15203         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
15204         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
15205         if it is set, lookup var in outer contexts too.  Handle
15206         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
15207         to be implicitly determined firstprivate for task regions.
15208         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
15209         if it is set, lookup var in outer contexts too.  Set
15210         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
15211         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
15212         OMP_CLAUSE_UNTIED.  Take region_type as last argument
15213         instead of in_parallel and in_combined_parallel.
15214         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
15215         Adjust callers.
15216         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
15217         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
15218         (new_omp_context): Set default_kind to
15219         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
15220         (omp_region_type): New enum.
15221         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
15222         fields, add region_type.
15223         (new_omp_context): Take region_type as argument instead of is_parallel
15224         and is_combined_parallel.
15225         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
15226         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
15227         ctx->is_combined_parallel checks.
15228         (gimplify_omp_task): New function.
15229         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
15230         OMP_CLAUSE_UNTIED.
15231         * omp-low.c (extract_omp_for_data): Use schedule(static)
15232         for schedule(auto).  Handle pointer and unsigned iterators.
15233         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
15234         Add loops argument.  Extract data for collapsed OMP_FOR loops.
15235         (expand_parallel_call): Assert sched_kind isn't auto,
15236         map runtime schedule to index 3.
15237         (struct omp_for_data_loop): New type.
15238         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
15239         Add loop, loops, collapse and iter_type fields.
15240         (workshare_safe_to_combine_p): Disallow combined for if
15241         iter_type is unsigned long long.  Don't combine collapse > 1 loops
15242         unless all bounds and steps are constant.  Adjust extract_omp_for_data
15243         caller.
15244         (expand_omp_for_generic): Handle pointer, unsigned and long long
15245         iterators.  Handle collapsed OMP_FOR loops.  Adjust
15246         for struct omp_for_data changes.  If libgomp function doesn't return
15247         boolean_type_node, add comparison of the return value with 0.
15248         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
15249         pointer, unsigned and long long iterators.  Adjust for struct
15250         omp_for_data changes.
15251         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
15252         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
15253         unsigned long long.  Allocate loops array, pass it to
15254         extract_omp_for_data.  For collapse > 1 loops use always
15255         expand_omp_for_generic.
15256         (omp_context): Add sfield_map and srecord_type fields.
15257         (is_task_ctx, lookup_sfield): New functions.
15258         (use_pointer_for_field): Use is_task_ctx helper.  Change first
15259         argument's type from const_tree to tree.  Clarify comment.
15260         In OMP_TASK disallow copy-in/out sharing.
15261         (build_sender_ref): Call lookup_sfield instead of lookup_field.
15262         (install_var_field): Add mask argument.  Populate both record_type
15263         and srecord_type if needed.
15264         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
15265         in srecord_type.
15266         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
15267         and DECL_FIELD_OFFSET.
15268         (scan_sharing_clauses): Adjust install_var_field callers.  For
15269         firstprivate clauses on explicit tasks allocate the var by value in
15270         record_type unconditionally, rather than by reference.
15271         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
15272         Use is_taskreg_ctx instead of is_parallel_ctx.
15273         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
15274         (create_omp_child_function_name): Add task_copy argument, use
15275         *_omp_cpyfn* names if it is true.
15276         (create_omp_child_function): Add task_copy argument, if true create
15277         *_omp_cpyfn* helper function.
15278         (scan_omp_parallel): Adjust create_omp_child_function callers.
15279         Rename parallel_nesting_level to taskreg_nesting_level.
15280         (scan_omp_task): New function.
15281         (lower_rec_input_clauses): Don't run constructors for firstprivate
15282         explicit task vars which are initialized by *_omp_cpyfn*.
15283         Pass outer var ref to omp_clause_default_ctor hook if
15284         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
15285         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
15286         OMP_CLAUSE_REDUCTION_INIT.
15287         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
15288         avoid duplicate setting of fields.  Handle
15289         OMP_CLAUSE_PRIVATE_OUTER_REF.
15290         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
15291         copy-out if TREE_READONLY, only copy-in.
15292         (expand_task_copyfn): New function.
15293         (expand_task_call): New function.
15294         (struct omp_taskcopy_context): New type.
15295         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
15296         New functions.
15297         (lower_omp_parallel): Rename to...
15298         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
15299         Call create_task_copyfn if srecord_type is needed.  Adjust
15300         sender_decl type.
15301         (task_shared_vars): New variable.
15302         (check_omp_nesting_restrictions): Warn if work-sharing,
15303         barrier, master or ordered region is closely nested inside OMP_TASK.
15304         Add warnings for barrier if closely nested inside of work-sharing,
15305         ordered, or master region.
15306         (scan_omp_1): Call check_omp_nesting_restrictions even for
15307         GOMP_barrier calls.  Rename parallel_nesting_level to
15308         taskreg_nesting_level.  Handle OMP_TASK.
15309         (lower_lastprivate_clauses): Even if some lastprivate is found on a
15310         work-sharing construct, continue looking for them on parent parallel
15311         construct.
15312         (lower_omp_for_lastprivate): Add lastprivate clauses
15313         to the beginning of dlist rather than end.  Adjust for struct
15314         omp_for_data changes.
15315         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
15316         not after it.  Handle collapsed OMP_FOR loops, adjust for
15317         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
15318         (get_ws_args_for): Adjust extract_omp_for_data caller.
15319         (scan_omp_for): Handle collapsed OMP_FOR
15320         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
15321         (lower_omp_single_simple): If libgomp function doesn't return
15322         boolean_type_node, add comparison of the return value with 0.
15323         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
15324         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
15325         (parallel_nesting_level): Rename to...
15326         (taskreg_nesting_level): ... this.
15327         (is_taskreg_ctx): New function.
15328         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
15329         of is_parallel_ctx.
15330         (execute_lower_omp): Rename parallel_nesting_level to
15331         taskreg_nesting_level.
15332         (expand_omp_parallel): Rename to...
15333         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
15334         Call omp_task_call for OMP_TASK regions.
15335         (expand_omp): Adjust caller, handle OMP_TASK.
15336         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
15337
15338         * bitmap.c (bitmap_default_obstack_depth): New variable.
15339         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
15340         if argument is NULL and bitmap_default_obstack is already initialized.
15341         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
15342         at the end.
15343         * matrix-reorg.c (matrix_reorg): Likewise.
15344
15345 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
15346
15347         * config/i386/i386.md (*indirect_jump): Macroize using P
15348         mode iterator.  Remove !TARGET_64BIT from insn constraints.
15349         (*tablejump_1): Ditto.
15350         (*indirect_jump_rex64): Remove insn pattern.
15351         (*tablejump_1_rex64): Ditto.
15352         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
15353         and eh_return_si insn patterns.
15354
15355 2008-06-06  Richard Guenther  <rguenther@suse.de>
15356
15357         * tree-ssa-structalias.c (merge_smts_into): Remove.
15358         (find_what_p_points_to): Do not bother to compute the
15359         points-to set for pt_anything pointers.
15360         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
15361         for pt_anything pointers is ok.
15362
15363 2008-06-06  Jan Hubicka  <jh@suse.cz>
15364
15365         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
15366
15367 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15368
15369         * cgraph.c: Fix typos in comments.
15370         (cgraph_availability_names): Fix string typo.
15371         * fold-const.c: Fix typos in comments.
15372         (fold_binary): Fix typo in warning.
15373         * genautomata.c: Fix typos in comments.
15374         (check_presence_pattern_sets): Fix typo in local variable.
15375         (output_description): Fix typo in output.
15376         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
15377         * hwint.h: Likewise.
15378         * matrix-reorg.c (check_allocation_function): Likewise.
15379         * omega.c (smooth_weird_equations): Likewise.
15380         * auto-inc-dec.c: Fix typos in comments.
15381         * bb-reorder.c: Likewise.
15382         * builtins.c: Likewise.
15383         * c-common.c: Likewise.
15384         * c-cppbuiltin.c: Likewise.
15385         * c-parser.c: Likewise.
15386         * c-pretty-print.c: Likewise.
15387         * cfgcleanup.c: Likewise.
15388         * cfgexpand.c: Likewise.
15389         * cfghooks.c: Likewise.
15390         * cfglayout.c: Likewise.
15391         * cfgloopmanip.c: Likewise.
15392         * cgraphunit.c: Likewise.
15393         * coverage.c: Likewise.
15394         * dbxout.c: Likewise.
15395         * df-byte-scan.c: Likewise.
15396         * df-core.c: Likewise.
15397         * df-problems.c: Likewise.
15398         * df-scan.c: Likewise.
15399         * dfp.c: Likewise.
15400         * dominance.c: Likewise.
15401         * domwalk.c: Likewise.
15402         * dse.c: Likewise.
15403         * dwarf2out.c: Likewise.
15404         * emit-rtl.c: Likewise.
15405         * et-forest.c: Likewise.
15406         * function.c: Likewise.
15407         * function.h: Likewise.
15408         * gcc.c: Likewise.
15409         * gcov-io.c: Likewise.
15410         * gcov.c: Likewise.
15411         * gcse.c: Likewise.
15412         * genattrtab.c: Likewise.
15413         * ggc-page.c: Likewise.
15414         * gimplify.c: Likewise.
15415         * gthr-lynx.h: Likewise.
15416         * haifa-sched.c: Likewise.
15417         * ipa-cp.c: Likewise.
15418         * ipa-inline.c: Likewise.
15419         * ipa-prop.h: Likewise.
15420         * ipa-pure-const.c: Likewise.
15421         * ipa-struct-reorg.c: Likewise.
15422         * ipa-struct-reorg.h: Likewise.
15423         * ipa-type-escape.c: Likewise.
15424         * ipa.c: Likewise.
15425         * loop-doloop.c: Likewise.
15426         * mips-tfile.c: Likewise.
15427         * mkmap-flat.awk: Likewise.
15428         * mkmap-symver.awk: Likewise.
15429         * modulo-sched.c: Likewise.
15430         * omp-low.c: Likewise.
15431         * optabs.c: Likewise.
15432         * optabs.h: Likewise.
15433         * opts.c: Likewise.
15434         * passes.c: Likewise.
15435         * postreload-gcse.c: Likewise.
15436         * postreload.c: Likewise.
15437         * predict.c: Likewise.
15438         * pretty-print.h: Likewise.
15439         * profile.c: Likewise.
15440         * protoize.c: Likewise.
15441         * ra-conflict.c: Likewise.
15442         * real.c: Likewise.
15443         * recog.c: Likewise.
15444         * regclass.c: Likewise.
15445         * regs.h: Likewise.
15446         * reload.c: Likewise.
15447         * rtl-error.c: Likewise.
15448         * rtlanal.c: Likewise.
15449         * scan.h: Likewise.
15450         * sched-rgn.c: Likewise.
15451         * see.c: Likewise.
15452         * stmt.c: Likewise.
15453         * target.h: Likewise.
15454         * tree-dfa.c: Likewise.
15455         * tree-eh.c: Likewise.
15456         * tree-flow-inline.h: Likewise.
15457         * tree-inline.c: Likewise.
15458         * tree-into-ssa.c: Likewise.
15459         * tree-loop-distribution.c: Likewise.
15460         * tree-nested.c: Likewise.
15461         * tree-parloops.c: Likewise.
15462         * tree-pass.h: Likewise.
15463         * tree-pretty-print.c: Likewise.
15464         * tree-profile.c: Likewise.
15465         * tree-scalar-evolution.c: Likewise.
15466         * tree-sra.c: Likewise.
15467         * tree-ssa-alias-warnings.c: Likewise.
15468         * tree-ssa-ccp.c: Likewise.
15469         * tree-ssa-coalesce.c: Likewise.
15470         * tree-ssa-dom.c: Likewise.
15471         * tree-ssa-dse.c: Likewise.
15472         * tree-ssa-forwprop.c: Likewise.
15473         * tree-ssa-live.c: Likewise.
15474         * tree-ssa-live.h: Likewise.
15475         * tree-ssa-loop-im.c: Likewise.
15476         * tree-ssa-loop-ivopts.c: Likewise.
15477         * tree-ssa-loop-niter.c: Likewise.
15478         * tree-ssa-loop-prefetch.c: Likewise.
15479         * tree-ssa-phiopt.c: Likewise.
15480         * tree-ssa-phiprop.c: Likewise.
15481         * tree-ssa-sccvn.c: Likewise.
15482         * tree-ssa-ter.c: Likewise.
15483         * tree-ssa-threadupdate.c: Likewise.
15484         * tree-ssa.c: Likewise.
15485         * tree-vect-analyze.c: Likewise.
15486         * tree-vect-transform.c: Likewise.
15487         * tree-vectorizer.c: Likewise.
15488         * tree-vn.c: Likewise.
15489         * tree-vrp.c: Likewise.
15490         * tree.c: Likewise.
15491         * tree.def: Likewise.
15492         * tree.h: Likewise.
15493         * unwind-dw2-fde.c: Likewise.
15494         * unwind.inc: Likewise.
15495         * value-prof.c: Likewise.
15496         * vmsdbgout.c: Likewise.
15497
15498 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
15499
15500         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
15501         always place FP constants in the TOC for TARGET_POWERPC64.
15502         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
15503
15504 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
15505
15506         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
15507         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
15508         enable for TARGET_E500_DOUBLE.
15509         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
15510         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
15511         floating-point modes like integer modes for E500 double.
15512         (rs6000_legitimate_offset_address_p): Likewise.
15513         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
15514         addressing for DDmode for E500 double.
15515         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
15516         modes as using 64-bits of registers for E500 double.
15517         (spe_build_register_parallel): Do not handle DDmode or TDmode.
15518         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
15519         specially for E500 double.
15520         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
15521         TDmode for E500 double.
15522         (rs6000_gimplify_va_arg): Only handle SDmode in registers
15523         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
15524         (rs6000_split_multireg_move): Do not handle TDmode specially for
15525         E500 double.
15526         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
15527         using 64-bit registers for E500 double.
15528         (emit_frame_save): Do not handle DDmode specially for E500 double.
15529         (gen_frame_mem_offset): Likewise.
15530         (rs6000_function_value): Do not call spe_build_register_parallel
15531         for DDmode or TDmode.
15532         (rs6000_libcall_value): Likewise.
15533         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
15534         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
15535         for E500 double.
15536
15537 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
15538
15539         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
15540         in comments.
15541
15542 2008-06-04  Junjie Gu <jgu@tensilica.com>
15543
15544         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
15545         comparison for frame pointers.
15546
15547 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
15548
15549         PR target/27386
15550         * config/avr/avr.h (PUSH_ROUNDING): Remove.
15551
15552 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
15553
15554         PR target/30243
15555         * builtins.c (expand_builtin_signbit): Don't take lowpart when
15556         register is already smaller or equal to required mode.
15557
15558 2008-06-04  Xinliang David Li  <davidxl@google.com>
15559
15560         * tree-call-cdce.c: New file.
15561         (cond_dead_built_in_calls): New static variable.
15562         (input_domain): New struct.
15563         (check_pow): New function.
15564         (check_builtin_call): Ditto.
15565         (check_target_format): Ditto.
15566         (is_call_dce_candidate): Ditto.
15567         (gen_one_condition): Ditto.
15568         (gen_conditions_for_domain): Ditto.
15569         (get_domain): Ditto.
15570         (gen_conditions_for_pow_cst_base): Ditto.
15571         (gen_conditions_for_pow_int_base): Ditto.
15572         (gen_conditions_for_pow): Ditto.
15573         (get_no_error_domain): Ditto.
15574         (gen_shrink_wrap_conditions): Ditto.
15575         (shrink_wrap_one_built_in_call): Ditto.
15576         (shink_wrap_conditional_dead_built_in_calls): Ditto.
15577         (tree_call_cdce): Ditto.
15578         (gate_call_cdce): Ditto.
15579         (pass_call_cdce): New gimple pass.
15580         * passes.c: (init_optimization_passes): New pass.
15581         * tree-pass.h: New pass declaration.
15582         * opts.c (decode_options): New flag setting.
15583         * common.opt: Add -ftree-builtin-call-dce flag.
15584         * Makefile.in: Add new source file.
15585         * tempvar.def: New tv_id.
15586         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
15587
15588 2008-06-04  Richard Guenther  <rguenther@suse.de>
15589
15590         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
15591         (is_call_clobbered): Always check var_ann->call_clobbered.
15592         (mark_call_clobbered): Always set var_ann->call_clobbered.
15593         (clear_call_clobbered): Always clear var_ann->call_clobbered.
15594         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
15595         (reset_alias_info): Clear call clobbering info on MTAGs and
15596         globals as well.
15597         (set_pt_anything): Set pt_global_mem.
15598         (create_tag_raw): Adjust comment.
15599         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
15600
15601 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
15602             Maxim Kuvyrkov  <maxim@codesourcery.com>
15603
15604         * config/m68k/m68k.opt (mxgot): New option.
15605         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
15606         (m68k_output_addr_const_extra): New.
15607         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
15608         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
15609         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
15610         * doc/invoke.texi (M680x0 Options): Document -mxgot.
15611
15612 2008-06-04  Richard Guenther  <rguenther@suse.de>
15613
15614         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
15615         negative or non-representable offsets.
15616
15617 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
15618
15619         * config/i386/i386.c (ix86_gen_leave): New.
15620         (ix86_gen_pop1): Likewise.
15621         (ix86_gen_add3): Likewise.
15622         (ix86_gen_sub3): Likewise.
15623         (ix86_gen_sub3_carry): Likewise.
15624         (ix86_gen_one_cmpl2): Likewise.
15625         (ix86_gen_monitor): Likewise.
15626         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
15627         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
15628         ix86_gen_one_cmpl2 and ix86_gen_monitor.
15629         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
15630         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
15631         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
15632         (ix86_expand_epilogue): Updated.
15633         (print_operand): Handle integer register operand for 'z'.
15634         (ix86_expand_strlensi_unroll_1): Likewise.
15635         (ix86_expand_strlen): Likewise.
15636         (ix86_expand_builtin): Likewise.
15637         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
15638         mov{q}/mov{l} and add{q}/add{l}.
15639
15640 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
15641
15642         * config/i386/i386.md (P): New mode iterator.
15643         (SFmode push_operand splitter): Macroize DImode and SImode pushes
15644         using P mode iterator.
15645         (DFmode push_operand splitter): Ditto.
15646         (XFmode push_operand splitter): Ditto.
15647         (DFmode float_extend SFmode push_operand splitter): Ditto.
15648         (XFmode float_extend SFmode push_operand splitter): Do not generate
15649         SImode pushes for 64bit target.  Macroize Dimode and SImode
15650         pushes using P mode iterator.
15651         (XFmode float_extend DFmode push_operand splitter): Ditto.
15652
15653 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
15654
15655         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
15656         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
15657         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
15658         return type to int.
15659         (ix86_call_abi_override): Remove check for call_used_regs.
15660
15661 2008-06-03  Richard Guenther  <rguenther@suse.de>
15662
15663         * tree-ssa-structalias.c (find_func_aliases): Add constraints
15664         for the lhs of calls if the return type contains pointers.
15665
15666 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
15667
15668         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
15669         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
15670         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
15671         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
15672         of cfun and DEFAULT_ABI to deceide abi mode.
15673         (DEFAULT_ABI): New.
15674         (REG_PARM_STACK_SPACE): Removed.
15675         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
15676         (STACK_BOUNDARY): Use default target to deceide stack boundary.
15677         * config/i386/i386-protos.h (ix86_cfun_abi): New.
15678         (ix86_function_abi): Likewise.
15679         (ix86_function_type_abi): Likewise.
15680         (ix86_call_abi_override): Likewise.
15681         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
15682         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
15683         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
15684         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
15685         specific defines.
15686         (X86_64_REGPARM_MAX): New.
15687         (X86_64_SSE_REGPARM_MAX): New.
15688         (X64_REGPARM_MAX): New.
15689         (X64_SSE_REGPARM_MAX): New.
15690         (X86_32_REGPARM_MAX): New.
15691         (X86_32_SSE_REGPARM_MAX): New.
15692         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
15693         (ix86_function_regparm): Handle user calling abi.
15694         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
15695         by DEFAULT_ABI versus SYSV_ABI check.
15696         (ix86_reg_parm_stack_space): New.
15697         (ix86_function_type_abi): New.
15698         (ix86_call_abi_override): New.
15699         (ix86_function_abi): New.
15700         (ix86_cfun_abi): New.
15701         (init_cumulative_args): Call abi specific initialization.
15702         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
15703         (function_arg_64): Extend SSE_REGPARM_MAX check.
15704         (function_arg (): Remove TARGET_64BIT_MS_ABI.
15705         (ix86_pass_by_reference): Likewise.
15706         (ix86_function_value_regno_p): Likewise.
15707         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
15708         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
15709         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
15710         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
15711         (setup_incoming_varargs_64): Adjust regparm for call abi.
15712         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
15713         (ix86_va_start): Likewise.
15714         (ix86_gimplify_va_arg): Likewise.
15715         (ix86_expand_prologue): Likewise.
15716         (output_pic_addr_const): Likewise.
15717         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
15718         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
15719         (x86_output_mi_thunk): Likewise.
15720         (x86_function_profiler): Likewise.
15721         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
15722         (SYSV_ABI, MS_ABI): New constants.
15723         (DEFAULT_ABI): New.
15724         (init_regs): Add prototype of function in regclass.c file.
15725         (OVERRIDE_ABI_FORMAT): New.
15726         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
15727         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
15728         (OUTGOING_REG_PARM_STACK_SPACE): New.
15729         (ix86_reg_parm_stack_space): New prototype.
15730         (CUMULATIVE_ARGS): Add call_abi member.
15731         (machine_function): Add call_abi member.
15732         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
15733         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
15734
15735 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
15736
15737         PR target/34879
15738         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
15739         (avr_builtin_setjmp_frame_value): New function.
15740         * config/avr/avr.md (nonlocal_goto_receiver): Define.
15741         (nonlocal_goto): Define.
15742
15743 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
15744
15745         * config/mips/mips.c (mips_emit_loadgp): Return early if
15746         there is nothing do to, otherwise emit a blockage if
15747         !TARGET_EXPLICIT_RELOCS || crtl->profile.
15748         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
15749
15750 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15751
15752         * configure.ac: Drop unneeded backslash ending up in config.in.
15753         * acinclude.m4: Likewise.
15754         * config.in: Regenerate.
15755
15756 2008-05-26  Jan Hubicka  <jh@suse.cz>
15757
15758         * predict.c (maybe_hot_frequency_p): Break out of...
15759         (maybe_hot_bb_p): ... here.
15760         (maybe_hot_edge_p): New.
15761         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
15762         * basic-block.h (maybe_hot_edge_p): Declare.
15763
15764 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
15765
15766         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
15767         (*cmpfp_<mode>_cc): Ditto.
15768         (*fp_jcc_8<mode>_387): Ditto.
15769         (*fop_<MODEF:mode>_2_i387): Ditto.
15770         (*fop_<MODEF:mode>_3_i387): Ditto.
15771         (*fop_xf_2_i387): Ditto.
15772         (*fop_xf_3_i387): Ditto.
15773
15774 2008-06-02  Tomas Bily  <tbily@suse.cz>
15775
15776         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
15777
15778 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15779
15780         * config/mips/mips.c (mips_valid_offset_p): New function.
15781         (mips_valid_lo_sum_p): Likewise.
15782         (mips_classify_address): Use them.
15783         (mips_force_address): New function.
15784         (mips_legitimize_address): Use it.
15785         * config/mips/mips.md (MOVE128): New mode iterator.
15786         (movtf): Require TARGET_64BIT.  Remove empty strings.
15787         (*movtf_internal): Rename to...
15788         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
15789         of "R" and use {,fp}{load,store} attributes instead of "multi".
15790         Use a separate define_split.
15791         (*movtf_mips16): New pattern.
15792
15793 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15794
15795         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
15796         * config/mips/mips.c (mips_expand_before_return): New function.
15797         (mips_expand_epilogue): Call it.
15798         * config/mips/mips.md (return): Turn into a define_expand.
15799         (*return): New insn.
15800
15801 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15802
15803         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
15804         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
15805         functions.  Do not emit uses and clobbers of CONCATs; individually
15806         use and clobber their operands.
15807         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
15808         gen_clobber, emit_use and gen_use.
15809         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
15810         (expand_builtin_return): Likewise.
15811         * cfgbuild.c (count_basic_blocks): Likewise.
15812         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
15813         * explow.c (emit_stack_restore): Likewise.
15814         * expmed.c (extract_bit_field_1): Likewise.
15815         * expr.c (convert_move, emit_move_complex_parts): Likewise.
15816         (emit_move_multi_word, store_constructor): Likewise.
15817         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
15818         (thread_prologue_and_epilogue_insns): Likewise.
15819         * lower-subreg.c (resolve_simple_move): Likewise.
15820         * optabs.c (widen_operand, expand_binop): Likewise.
15821         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
15822         * reload.c (find_reloads): Likewise.
15823         * reload1.c (eliminate_regs_in_insn): Likewise.
15824         * stmt.c (expand_nl_goto_receiver): Likewise.
15825         * config/alpha/alpha.md (builtin_longjmp): Likewise.
15826         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
15827         * config/arm/arm.c (arm_load_pic_register): Likewise.
15828         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
15829         * config/arm/arm.md (untyped_return): Likewise.
15830         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
15831         * config/avr/avr.c (expand_prologue): Likewise.
15832         * config/bfin/bfin.c (do_unlink): Likewise.
15833         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
15834         * config/cris/cris.c (cris_expand_prologue): Likewise.
15835         * config/darwin.c (machopic_indirect_data_reference): Likewise.
15836         (machopic_legitimize_pic_address): Likewise.
15837         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
15838         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
15839         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
15840         (ix86_expand_convert_uns_didf_sse): Likewise.
15841         (ix86_expand_vector_init_general): Likewise.
15842         * config/ia64/ia64.md (eh_epilogue): Likewise.
15843         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
15844         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
15845         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
15846         (config/iq2000/iq2000.c): Likewise.
15847         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
15848         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
15849         (builtin_longjmp): Likewise.
15850         * config/mn10300/mn10300.md (call, call_value): Likewise.
15851         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
15852         * config/pdp11/pdp11.md (abshi2): Likewise.
15853         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
15854         * config/s390/s390.c (s390_emit_prologue): Likewise.
15855         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
15856         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
15857         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
15858         * config/sh/sh.c (prepare_move_operands): Likewise.
15859         (output_stack_adjust, sh_expand_epilogue): Likewise.
15860         (sh_set_return_address, sh_expand_t_scc): Likewise.
15861         * config/sparc/sparc.c (load_pic_register): Likewise.
15862         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
15863         * config/spu/spu.c (spu_expand_epilogue): Likewise.
15864         * config/v850/v850.c (expand_epilogue): Likewise.
15865
15866 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
15867
15868         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
15869         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
15870         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
15871         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
15872         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
15873         stack pointer register.
15874         (output_movhi): Remove code for interrupt specific writing to the
15875         stack pointer register.
15876
15877 2008-05-31  Richard Guenther  <rguenther@suse.de>
15878
15879         PR tree-optimization/34244
15880         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
15881         (tree_expr_nonzero_warnv_p): Likewise.
15882         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
15883         ssa_name_nonnegative_p.
15884         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
15885         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
15886         not tree_expr_nonzero_warnv_p.
15887
15888         PR tree-optimization/36262
15889         Revert
15890         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
15891
15892         PR tree-optimization/34244
15893         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
15894         (record_numbers_of_iterations): New function.
15895         (execute_vrp): Cache the numbers of iterations of loops.
15896         * tree-scalar-evolution.c (scev_reset_except_niters):
15897         New function.
15898         (scev_reset): Use scev_reset_except_niters.
15899         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
15900
15901 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
15902
15903         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15904         __WORKAROUND_RETS when appropriate.
15905
15906 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
15907
15908         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
15909         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
15910         mode iterator.
15911         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
15912         *fop_df_comm_sse insn patterns using MODEF mode iterator.
15913         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
15914         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
15915         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
15916         *fop_df_1_mixed insn patterns using MODEF mode iterator.
15917         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
15918         *fop_df_1_sse insn patterns using MODEF mode iterator.
15919         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
15920         *fop_df_1_i387 insn patterns using MODEF mode iterator.
15921         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
15922         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
15923         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
15924         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
15925         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
15926         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
15927         (*fop_xf_4_i387): Use <MODE> for mode attribute.
15928         (*fop_xf_5_i387): Ditto.
15929         (*fop_xf_6_i387): Ditto.
15930
15931 2008-05-30  Richard Guenther  <rguenther@suse.de>
15932
15933         * builtins.c (build_string_literal): Avoid generating
15934         a non-gimple_val result.
15935
15936 2008-05-30  DJ Delorie  <dj@redhat.com>
15937
15938         * exec-tool.in: Use an environment variable (private) instead of a
15939         file (shared) as a semaphore, so as to not break parallel builds.
15940
15941 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
15942
15943         * optabs.c (maybe_encapsulate_block): Remove.
15944         (emit_libcall_block): Adjust accordingly.
15945         * optabs.h (maybe_encapsulate_block): Remove prototype.
15946
15947         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
15948         Don't use maybe_encapsulate_block.
15949
15950 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
15951
15952         * config/rs6000/rs6000.c (rs6000_legitimize_address,
15953         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
15954         rtx is a SYMBOL_REF before calling get_pool_constant.
15955
15956 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
15957
15958         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
15959
15960 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
15961
15962         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
15963         rather than OS names to choose INO_T_EQ definition.
15964         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
15965         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
15966
15967 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
15968
15969         PR target/36348
15970         * config/darwin-f.c: New.
15971         * config/t-darwin: Added rule to build darwin-f.o.
15972         * config.gcc: Defined new variable, fortran_target_objs.
15973         (*-*-darwin*): Set fortran_target_objs.
15974         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
15975         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
15976         * configure: Regenerated.
15977
15978 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15979
15980         PR target/35771
15981         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
15982         canonical type if needed.
15983
15984 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
15985
15986         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
15987
15988 2008-05-29  Richard Guenther  <rguenther@suse.de>
15989
15990         PR tree-optimization/36343
15991         PR tree-optimization/36346
15992         PR tree-optimization/36347
15993         * tree-flow.h (clobber_what_p_points_to): Declare.
15994         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
15995         pointed-to variable is dereferenced is irrelevant to whether
15996         the pointer can access the pointed-to variable.
15997         (clobber_what_p_points_to): New function.
15998         * tree-ssa-alias.c (set_initial_properties): Use it.
15999         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
16000         call clobber check for NMTs.
16001
16002 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
16003
16004         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
16005         for printing gcov_type.
16006
16007 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
16008
16009         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
16010         and the eh region information.
16011         * value-prof.c (gimple_move_stmt_histograms): New function.
16012         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
16013
16014 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
16015
16016         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
16017
16018 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
16019
16020         * value-prof.c (tree_ic_transform): Print counts.
16021         * tree-profile.c (tree_gen_ic_func_profiler):
16022         Clear __gcov_indreict_call_callee variable to avoid misattribution
16023         of the profile.
16024
16025 2008-05-28  Rafael Espíndola  <espindola@google.com>
16026
16027         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
16028         invalid sharing.
16029
16030 2008-05-28  Richard Guenther  <rguenther@suse.de>
16031
16032         PR tree-optimization/36339
16033         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
16034         and clobbering code out of the loop.
16035
16036 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
16037
16038         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
16039         letters defined.
16040
16041         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
16042         s390_contiguous_bitmask_p, s390_symref_operand_p,
16043         s390_check_symref_alignment, s390_reload_larl_operand,
16044         s390_reload_symref_address): New functions.
16045         (s390_branch_condition_mnemonic): Support compare and branch
16046         instructions.
16047         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
16048         and 'W' constraints.
16049         (s390_secondary_reload): Add secondary reloads for unaligned
16050         symbol refs or symbol refs to floating point or QI/TI mode
16051         integer values.
16052         (legitimate_address_p): Accept symbol references as addresses.
16053         (s390_expand_insv): Use rotate and insert selected bits
16054         instruction for insv when building for z10.
16055         (print_operand_address): Handle symbol ref addresses.
16056         (print_operand): Output modifier 'c' added for signed byte values.
16057         (s390_encode_section_info): Mark symbol refs with
16058         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
16059
16060         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
16061         (length attribute): RRF, RRR have 4 byte length.
16062         (FPALL, INTALL): New mode iterators added.
16063         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
16064         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
16065         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
16066         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
16067         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
16068         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
16069         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
16070         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
16071         instructions.
16072         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
16073         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
16074         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
16075         reload<INTALL:mode><P:mode>_toreg_z10,
16076         reload<FPALL:mode><P:mode>_tomem_z10,
16077         reload<FPALL:mode><P:mode>_toreg_z10,
16078         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
16079         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
16080         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
16081         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
16082         definition.
16083         (movmem, clrmem, cmpmem): New splitters added.
16084
16085         * config/s390/predicates.md (larl_operand): Use
16086         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
16087         SYMBOL_REF_ALIGN1_P.
16088         (s390_signed_integer_comparison,
16089         s390_unsigned_integer_comparison): New predicates.
16090
16091         * config/s390/s390-protos.h (s390_check_symref_alignment,
16092         s390_contiguous_bitmask_p, s390_reload_larl_operand,
16093         s390_reload_symref_address,
16094         s390_compare_and_branch_condition_mask): Prototypes added.
16095
16096         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
16097         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
16098         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
16099
16100 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
16101
16102         * config/s390/s390.c (z10_cost): New cost function for z10.
16103         (s390_handle_arch_option, override_options): Support -march=z10 switch.
16104         (s390_issue_rate): Adjust issue rate for z10.
16105         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
16106         (processor_flags): Add PF_Z10.
16107         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
16108         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
16109         * gcc/config.gcc: Add z10.
16110
16111 2008-05-28  Richard Guenther  <rguenther@suse.de>
16112
16113         PR tree-optimization/36291
16114         * tree-flow. h (struct gimple_df): Remove var_anns member.
16115         * tree-flow-inline.h (gimple_var_anns): Remove.
16116         (var_ann): Simplify.
16117         * tree-dfa.c (create_var_ann): Simplify.
16118         (remove_referenced_var): Clear alias info from var_anns of globals.
16119         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
16120         (delete_tree_ssa): Clear alias info from var_anns of globals.
16121         Do not free var_anns.
16122         (var_ann_eq): Remove.
16123         (var_ann_hash): Likewise.
16124
16125 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
16126
16127         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
16128         and loongson2f entries.
16129         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
16130         * config/mips/mips.h (processor_type): Add Loongson-2E
16131         and Loongson-2F entries.
16132         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
16133         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
16134         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
16135         * doc/invoke.texi (MIPS Options): Document loongson2e
16136         and loongson2f processor names.
16137
16138 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
16139
16140         PR target/35767
16141         PR target/35771
16142         * config/i386/i386.c (ix86_function_arg_boundary): Use
16143         alignment of canonical type.
16144         (ix86_expand_vector_move): Check unaligned memory access for
16145         all SSE modes.
16146
16147 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
16148
16149         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
16150         Moved to the front of file.
16151
16152 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
16153             H.J. Lu  <hongjiu.lu@intel.com>
16154
16155         * dwarf2out.c (current_fde): New.
16156         (add_cfi): Use it.
16157         (lookup_cfa:): Likewise.
16158         (dwarf2out_end_epilogue): Likewise.
16159         (dwarf2out_note_section_used): Likewise.
16160
16161 2008-05-27  Michael Matz  <matz@suse.de>
16162
16163         PR c++/27975
16164         * c.opt (Wenum-compare): New warning option.
16165         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
16166
16167 2008-05-27  Michael Matz  <matz@suse.de>
16168
16169         PR middle-end/36326
16170         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
16171         non-BLKmode types.
16172         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
16173         into memory as tail calls.
16174
16175 2008-05-27  Richard Guenther  <rguenther@suse.de>
16176
16177         PR tree-optimization/36339
16178         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
16179         pointers cause all addressable variables to be call clobbered.
16180
16181 2008-05-27  Richard Guenther  <rguenther@suse.de>
16182
16183         PR tree-optimization/36245
16184         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
16185
16186 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
16187
16188         * config/s390/s390.md: Replace all occurences of the 'm'
16189         constraint with 'RT'.
16190
16191 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
16192
16193         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
16194         definitions added.
16195         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
16196         "*movdi_64".
16197         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
16198         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
16199         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
16200
16201 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
16202
16203         * reload.c: (find_reloads): Skip alternatives according to the
16204         "enabled" attribute. Constify the constraint variable.
16205         * recog.c (get_attr_enabled): Add default implementation.
16206         (extract_insn): Set the alternative_enabled_p array
16207         in the recog_data struct.
16208         (preprocess_constraints, constrain_operands): Skip
16209         alternatives according to the "enabled" attribute
16210         * recog.h (struct recog_data): New field alternative_enabled_p.
16211         (skip_alternative): New inline function.
16212         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
16213         (record_reg_classes): Skip alternative according to the
16214         "enabled" attribute.
16215
16216         * doc/md.texi: Add documention for the "enabled" attribute.
16217
16218 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
16219
16220         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
16221         * postreload.c (reload_cse_simplify_operands): Replace 'm'
16222         constraint with TARGET_MEM_CONSTRAINT.
16223         * recog.c (asm_operand_ok, preprocess_constraints,
16224         constrain_operands): Likewise.
16225         * regclass.c (record_reg_classes): Likewise.
16226         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
16227         * reload1.c (maybe_fix_stack_asms): Likewise.
16228         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
16229         * recog.h: Adjust comment.
16230         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
16231         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
16232         * doc/md.texi: Add a note to description of 'm' constraint.
16233         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
16234
16235 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
16236
16237         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
16238         that the bitfield is of integral type before testing its precision.
16239
16240 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
16241             Sa Liu  <saliu@de.ibm.com>
16242
16243         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
16244         __modti3, __udivti3, __umodti3 and __udivmodti4.
16245         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
16246         that implement TImode mul and div functions.
16247         * config/spu/multi3.c: New. Implement __multi3.
16248         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
16249         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
16250         functions on SPU.
16251
16252 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
16253
16254         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
16255         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
16256         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
16257         tls_sysv_suffix): New mode and mode attribute iterators.
16258         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
16259         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
16260         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
16261         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
16262         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
16263         iterators.
16264
16265 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
16266
16267         PR tree-optimization/36329
16268         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
16269         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
16270         * cgraphbuild.c (initialize_inline_failed): Use the latter
16271         macro in lieu of the former.
16272         * ipa-inline.c (cgraph_mark_inline): Likewise.
16273         (cgraph_decide_inlining_of_small_function): Likewise.
16274         (cgraph_decide_inlining): Likewise.
16275         (cgraph_decide_inlining_incrementally): Likewise.
16276
16277 2008-05-26  Tristan Gingold  <gingold@adacore.com>
16278             Anatoly Sokolov  <aesok@post.ru>
16279
16280         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
16281         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
16282         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
16283         optimization for 'avr6' architecture.
16284
16285 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
16286
16287         PR target/34932
16288         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
16289
16290 2008-05-26  Richard Guenther  <rguenther@suse.de>
16291
16292         * tree-ssa-sccvn.c (expr_has_constants): Declare.
16293         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
16294
16295 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
16296
16297         PR middle-end/36253
16298         * caller-save.c (insert_restore): Verify alignment of spill space.
16299         (insert_save): Likewise.
16300         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
16301         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
16302         (STACK_SLOT_ALIGNMENT): Likewise.
16303         * function.c (LOCAL_ALIGNMENT): Removed.
16304         (get_stack_local_alignment): New.
16305         (assign_stack_local): Use it.  Set alignment on stack slot.
16306         (assign_stack_temp_for_type): Use get_stack_local_alignment.
16307         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
16308         (STACK_SLOT_ALIGNMENT): New.
16309         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
16310         stack slot in XFmode.
16311
16312         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
16313
16314 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
16315
16316         PR/36321
16317         * config/i386/i386.md (allocate_stack_worker_64): Make sure
16318         argument operand in rax isn't removed.
16319
16320 2008-05-26  Richard Guenther  <rguenther@suse.de>
16321
16322         PR middle-end/36300
16323         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
16324         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
16325
16326 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
16327
16328         PR bootstrap/36331
16329         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
16330
16331 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
16332
16333         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
16334         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
16335
16336 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
16337
16338         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
16339         build a trampoline if we don't want one.
16340         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
16341         return zero for nested functions if we don't want a trampoline.
16342
16343 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
16344
16345         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
16346
16347 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
16348
16349         PR fortran/18428
16350         * c.opt: Removed undocumented option '-lang-fortran'.
16351         * c-common.h: Removed global variable 'lang_fortran'.
16352         * c-opts.c (c_common_handle_option): Removed code to handle
16353         option '-lang-fortran'. Updated includes.
16354         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
16355         definition of '__GFORTRAN__'.
16356         (define__GNUC__): Reimplemented to use BASEVER and
16357         cpp_define_formatted.
16358         (builtin_define_with_value_n): Removed.
16359         * c-incpath.h: Renamed to ...
16360         * incpath.h: ... this.
16361         * c-incpath.c: Renamed to ...
16362         * incpath.c: ... this. Updated includes.
16363         * fix-header.c: Updated includes.
16364         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
16365         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
16366         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
16367
16368 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
16369
16370         * tree.h: Update the table of flags used on tree nodes.
16371         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
16372         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
16373         (FORCED_LABEL): Add access check.
16374         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
16375         (ASM_INPUT_P): Likewise.
16376         (ASM_VOLATILE_P): Likewise.
16377         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
16378         (OMP_SECTION_LAST): Access private_flag directly.
16379         (OMP_RETURN_NOWAIT): Likewise.
16380         (OMP_PARALLEL_COMBINED): Likewise.
16381         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
16382         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
16383         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
16384         deprecated_flag directly.
16385
16386 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
16387
16388         * final.c (frame_pointer_needed): Removed.
16389         * flags.h (frame_pointer_needed): Likewise.
16390
16391         * function.h (rtl_data): Add frame_pointer_needed.
16392         (frame_pointer_needed): New.
16393
16394 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
16395
16396         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
16397
16398 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
16399
16400         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
16401         SRC is a REG.
16402
16403 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
16404
16405         * c-common.c (strip_array_types): Move function to..
16406         * tree.c: ..here.
16407         (get_inner_array_type): Delete.
16408         * c-common.h (strip_array_types): Move declaration to..
16409         * tree.h: ..here.
16410         (get_inner_array_type): Delete.
16411         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
16412         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
16413         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
16414         * config/pa/pa.c (emit_move_sequence): Likewise.
16415
16416 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
16417
16418         * config/i386/i386.md (*sse_prologue_save_insn): Set length
16419         attribute to 34.
16420
16421 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
16422
16423         * function.c: Include target hook for nonlocal_goto frame value.
16424
16425 2008-05-24  Richard Guenther  <rguenther@suse.de>
16426
16427         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
16428         variable can be only accessed through a pointer or a union.
16429
16430 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16431
16432         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
16433         * doc/extend.texi: Likewise.
16434
16435 2008-05-23  DJ Delorie  <dj@redhat.com>
16436
16437         * config/m32c/jump.md (untyped_call): Add.
16438
16439         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
16440         for A24 to PSImode.
16441         (m32c_address_cost): Detail costs for indirect offsets.
16442
16443 2008-05-23  Rafael Espíndola  <espindola@google.com>
16444
16445         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
16446         if a node is a SUBREG.
16447         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
16448         is a SUBREG.
16449
16450 2008-05-23  Paul Brook  <paul@codesourcery.com>
16451             Carlos O'Donell  <carlos@codesourcery.com>
16452
16453         * doc/extend.texi: Clarify use of __attribute__((naked)).
16454         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
16455         * target.h (gcc_target): Add allocate_stack_slots_for_args.
16456         * function.c (use_register_for_decl): Use
16457         targetm.calls.allocate_stack_slots_for_args.
16458         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
16459         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
16460         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
16461
16462 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
16463
16464         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
16465
16466 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
16467
16468         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
16469         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
16470         is only rounded once.
16471
16472 2008-05-23  Richard Guenther  <rguenther@suse.de>
16473
16474         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
16475
16476 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
16477             Jakub Jelinek  <jakub@redhat.com>
16478
16479         PR target/36079
16480         * configure.ac: Handle --enable-cld.
16481         * configure: Regenerated.
16482         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
16483         * config/i386/i386.h (struct machine_function): Add needs_cld field.
16484         (ix86_current_function_needs_cld): New define.
16485         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
16486         (cld): New isns pattern.
16487         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
16488         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
16489         * config/i386/i386.opt (mcld): New option.
16490         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
16491         TARGET_CLD and ix86_current_function_needs_cld.
16492         (override_options): Use -mcld by default for 32-bit code if
16493         USE_IX86_CLD.
16494
16495         * doc/install.texi (Options specification): Document --enable-cld.
16496         * doc/invoke.texi (Machine Dependent Options)
16497         [i386 and x86-64 Options]: Add -mcld option.
16498         (Intel 386 and AMD x86-64 Options): Document -mcld option.
16499
16500 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
16501         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
16502         (return_in_memory_64): Likewise.
16503         (return_in_memory_ms_64): Likewise.
16504
16505 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16506
16507         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
16508         * builtins.c (fold_builtin_fpclassify): New.
16509         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
16510         * builtins.def (BUILT_IN_FPCLASSIFY): New.
16511         * c-common.c (handle_type_generic_attribute): Adjust to accept
16512         fixed arguments before an elipsis.
16513         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
16514         * doc/extend.texi: Document __builtin_fpclassify.
16515
16516 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
16517
16518         * omp-low.c (gate_expand_omp_ssa): Remove.
16519         (pass_expand_omp_ssa): Remove.
16520         (gate_expand_omp): Do not check for flag_openmp_ssa.
16521         * common.opt (-fopenmp-ssa): Remove.
16522         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
16523
16524 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16525
16526         * config/sh/sh.opt (mfixed-range): New option.
16527         * config/sh/sh-protos.h (sh_fix_range): Declare.
16528         * config/sh/sh.c (sh_fix_range): New function.
16529         * config/sh/sh.h (sh_fixed_range_str): Declare.
16530         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
16531         is not empty.
16532         * doc/invoke.texi (SH Options): Document -mfixed-range.
16533
16534 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
16535
16536         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
16537         it before the redeclaration.
16538
16539 2008-05-22  Anatoly Sokolov <aesok@post.ru>
16540
16541         * config/avr/avr.c (get_sequence_length): Add new function.
16542         (expand_prologue, expand_epilogue): Remove duplicate code.
16543
16544 2008-05-22  Rafael Espíndola  <espindola@google.com>
16545
16546         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
16547         sharing.
16548
16549 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
16550
16551         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
16552         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
16553
16554         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
16555         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
16556         (vect_update_misalignment_for_peel): Likewise.
16557         (vector_alignment_reachable_p): Likewise.
16558         * tree-vect-transform.c (vectorizable_load): Likewise.
16559         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
16560         (get_vectype_for_scalar_type): Pass mode of scalar_type
16561         to UNITS_PER_SIMD_WORD.
16562
16563         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
16564         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
16565         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
16566         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
16567         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
16568
16569 2008-05-22  Ira Rosen  <irar@il.ibm.com>
16570
16571         PR tree-optimization/36293
16572         * tree-vect-transform.c (vect_transform_strided_load): Don't check
16573         if the first load must be skipped because of a gap.
16574
16575 2008-05-22  Richard Guenther  <rguenther@suse.de>
16576
16577         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
16578         more cases of offset disambiguation that is possible if
16579         strict-aliasing rules apply.
16580         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
16581         for basic offset and type-based disambiguation.
16582
16583 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
16584
16585         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
16586         ix86_expand_vector_set on V16QImode for SSE4.1.
16587
16588 2008-05-21  Tom Tromey  <tromey@redhat.com>
16589
16590         * c.opt (Wimport): Mark as undocumented.
16591         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
16592         -Wno-import.
16593         (Warning Options): Likewise.
16594         * doc/cppopts.texi: Don't mention -Wimport.
16595
16596 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
16597
16598         PR tree-optimization/36287
16599         PR tree-optimization/36286
16600         * lambda-code.c (build_access_matrix): Do not use the loop->num
16601         for computing the number of induction variables: use the loop depth
16602         instead.
16603
16604 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
16605
16606         PR/36280
16607         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
16608         option -f(no-)leading-underscore.
16609
16610 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
16611
16612         * config/i386/i386.c (ix86_expand_vector_init_general): Use
16613         GET_MODE_NUNITS (mode).
16614
16615 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
16616
16617         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
16618         (-mmulhw): Add 464 to description.
16619         (-mdlmzb): Likewise.
16620         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
16621         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
16622         464fp entries.
16623         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
16624         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
16625         * config/rs6000/rs6000.md: Update comments for 464.
16626
16627 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
16628
16629         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
16630
16631 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
16632
16633         * config/i386/sse.md (vec_extractv4sf): Removed.
16634         (vec_extractv2df): Likewise.
16635         (vec_extractv2di): Likewise.
16636         (vec_extractv4si): Likewise.
16637         (vec_extractv8hi): Likewise.
16638         (vec_extractv16qi): Likewise.
16639         (vec_extract<mode>): New.
16640
16641 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
16642
16643         * config/i386/sse.md (vec_setv4sf): Removed.
16644         (vec_setv2df): Likewise.
16645         (vec_setv2di): Likewise.
16646         (vec_setv4si): Likewise.
16647         (vec_setv8hi): Likewise.
16648         (vec_setv16qi): Likewise.
16649         (vec_set<mode>): New.
16650
16651 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
16652
16653         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
16654         goto for vec_concat and vec_interleave.
16655
16656 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
16657
16658         * config/i386/sse.md (vec_initv4sf): Removed.
16659         (vec_initv2df): Likewise.
16660         (vec_initv2di): Likewise.
16661         (vec_initv4si): Likewise.
16662         (vec_initv8hi): Likewise.
16663         (vec_initv16qi): Likewise.
16664         (vec_init<mode>): New.
16665
16666 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
16667
16668         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
16669
16670 2008-05-21  Tom Tromey  <tromey@redhat.com>
16671
16672         * ggc-zone.c (lookup_page_table_if_allocated): New function.
16673         (zone_find_object_offset): Likewise.
16674         (gt_ggc_m_S): Likewise.
16675         (highest_bit): Likewise.
16676         * ggc-page.c (gt_ggc_m_S): New function.
16677         * stringpool.c (string_stack): Remove.
16678         (init_stringpool): Update.
16679         (ggc_alloc_string): Use ggc_alloc.
16680         (maybe_delete_ident): New function.
16681         (ggc_purge_stringpool): Likewise.
16682         (gt_ggc_m_S): Remove.
16683         * ggc-common.c (ggc_protect_identifiers): New global.
16684         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
16685         ggc_protect_identifiers.
16686         * ggc.h (ggc_protect_identifiers): Declare.
16687         (gt_ggc_m_S): Update.
16688         (ggc_purge_stringpool): Declare.
16689         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
16690         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
16691         special case.
16692         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
16693
16694 2008-05-21  David S. Miller  <davem@davemloft.net>
16695
16696         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
16697         tmake_file.
16698
16699 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16700
16701         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
16702         once finished.
16703
16704 2008-05-20  David Daney  <ddaney@avtrex.com>
16705
16706         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
16707         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
16708         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
16709         UNSPEC_UPDATE_GOT_VERSION): Renumber.
16710         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
16711         (atomic_hiqi_op): New define_code_iterator.
16712         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
16713         mips_expand_compare_and_swap_12.
16714         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
16715         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
16716         (sync_<optab><mode>, sync_old_<optab><mode>,
16717         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
16718         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
16719         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
16720         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
16721         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
16722         (test_and_set_12): New insn.
16723         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
16724         sync_new_<optab><mode>, sync_old_nand<mode>,
16725         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
16726         clobber to operand 0 for SI and DI mode insns.
16727         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
16728         mips_gen_fn_4): New typedefs.
16729         (mips_gen_fn_ptrs): Define new union type.
16730         (mips_expand_compare_and_swap_12): Remove declaration.
16731         (mips_expand_atomic_qihi): Declare function.
16732         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
16733         (mips_expand_atomic_qihi): ... this.  Use new generator function
16734         parameter.
16735         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
16736         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
16737         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
16738         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
16739         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
16740         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
16741         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
16742         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
16743         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
16744         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
16745         New macros.
16746
16747 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
16748
16749         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
16750         the missing break.
16751
16752 2008-05-20  Anatoly Sokolov <aesok@post.ru>
16753
16754         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
16755         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
16756         (avr_attribute_table): Add 'OS_main' function attribute.
16757         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
16758         functions with 'OS_main' attribute.
16759
16760 2008-05-20  Richard Guenther  <rguenther@suse.de>
16761
16762         PR tree-optimization/35204
16763         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
16764         helper, split out from ...
16765         (DFS): ... here.  Make the DFS walk non-recursive.
16766
16767 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
16768             Jan Sjodin  <jan.sjodin@amd.com>
16769
16770         PR tree-optimization/36181
16771         * tree-parloops.c (loop_has_vector_phi_nodes): New.
16772         (parallelize_loops): Don't parallelize when the loop has vector
16773         phi nodes.
16774
16775 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
16776             Sebastian Pop  <sebastian.pop@amd.com>
16777
16778         * tree-loop-linear.c (gather_interchange_stats): Look in the access
16779         matrix, and never look at the tree representation of the memory
16780         accesses.
16781         (linear_transform_loops): Computes parameters and access matrices.
16782         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
16783         when fails.
16784         (access_matrix_get_index_for_parameter): New.
16785         * tree-data-ref.h (struct access_matrix): New.
16786         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
16787         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
16788         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
16789         am_vector_index_for_loop): New.
16790         (struct data_reference): Add field access_matrix.
16791         (DR_ACCESS_MATRIX): New.
16792         (compute_data_dependences_for_loop): Update declaration.
16793         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
16794         * lambda.h (lambda_vector_vec_p): Declared.
16795         * lambda-code.c: Depend on pointer-set.h.
16796         (lambda_collect_parameters_from_af, lambda_collect_parameters,
16797         av_for_af_base, av_for_af, build_access_matrix,
16798         lambda_compute_access_matrices): New.
16799         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
16800
16801 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
16802
16803         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
16804         $SOURCEDIR/include.
16805
16806 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
16807             Sebastian Pop  <sebastian.pop@amd.com>
16808
16809         PR tree-optimization/36206
16810         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
16811         FOLD_CONVERSIONS.
16812         (instantiate_scev_1): Rename flags to fold_conversions.
16813         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
16814         outeside instantiation_loop.
16815         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
16816         (evolution_function_is_affine_or_constant_p): Removed.
16817         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
16818         instantiate_scev.
16819         (analyze_siv_subscript): Pass in the loop nest number.
16820         Call evolution_function_is_affine_in_loop instead of
16821         evolution_function_is_affine_p.
16822         (analyze_overlapping_iterations): Pass in the loop nest number.
16823
16824 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
16825             Sebastian Pop  <sebastian.pop@amd.com>
16826
16827         PR tree-optimization/36206
16828         * tree-chrec.h (chrec_fold_op): New.
16829         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
16830         and other trees.
16831
16832 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
16833
16834         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
16835         (DIRS_EQ): New.
16836         (remove_duplicates): Do not set inode on non-inode systems.
16837         Use DIRS_EQ.
16838
16839 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
16840
16841         * config.gcc (tm_file): Update comments about relative pathnames.
16842
16843 2008-05-20  Richard Guenther  <rguenther@suse.de>
16844
16845         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
16846         * tree-ssa-sccvn.c (process_scc): Likewise.
16847         * tree-ssa-sink.c (execute_sink_code): Likewise.
16848         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
16849         * tree-vrp.c (process_assert_insertions): Likewise.
16850         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
16851         (perform_tree_ssa_dce): Likewise.
16852         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
16853         (dump_dominator_optimization_stats): Likewise.
16854         * tree-vectorizer.c (vectorize_loops): Likewise.
16855
16856 2008-05-20  Richard Guenther  <rguenther@suse.de>
16857
16858         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
16859
16860 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
16861
16862         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
16863         (ix86_i386elf_return_in_memory): Likewise.
16864         (ix86_i386interix_return_in_memory): Likewise.
16865         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
16866         (SUBTARGET_RETURN_IN_MEMORY): New.
16867         * config/i386/i386elf.h: Likewise.
16868         * config/i386/ptx4-i.h: Likewise.
16869         * config/i386/sol2-10.h: Likewise.
16870         * config/i386/sysv4.h: Likewise.
16871         * config/i386/vx-common.h: Likewise.
16872         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
16873         * config/i386/i386.c (ix86_return_in_memory): Made static and
16874         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
16875         (ix86_i386elf_return_in_memory): Removed.
16876         (ix86_i386interix_return_in_memory): Removed.
16877         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
16878         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
16879
16880 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
16881
16882         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
16883
16884 2008-05-19  Xinliang David Li  <davidxl@google.com>
16885
16886         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
16887         * opts.c: Ditto.
16888         * common.opt: Ditto.
16889         * doc/invoke.texi: Ditto.
16890
16891 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
16892
16893         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
16894         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
16895
16896 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
16897
16898         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
16899         sizes of operand array from 8/4 to 4/2.
16900         (ix86_expand_vector_init_general): Change size of operand array
16901         from 32 to 16.  Remove op0, op1 and half_mode.
16902
16903 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
16904
16905         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
16906         (ix86_expand_vector_init_interleave): Likewise.
16907         (ix86_expand_vector_init_general): Use them.  Assert
16908         word_mode == SImode when n_words == 4.
16909
16910 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
16911
16912         * config/i386/i386.c (ix86_secondary_reload): New static function.
16913         (TARGET_SECONDARY_RELOAD): New define.
16914         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
16915         * config/i386/i386.md (reload_outqi): Remove.
16916
16917 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16918
16919         PR middle-end/35509
16920         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
16921         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
16922         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
16923         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
16924         (fold_builtin_1): Likewise.
16925         * builtins.def (BUILT_IN_ISINF_SIGN): New.
16926         c-common.c (check_builtin_function_arguments): Handle
16927         BUILT_IN_ISINF_SIGN.
16928         * doc/extend.texi: Document __builtin_isinf_sign.
16929         * fold-const.c (operand_equal_p): Handle COND_EXPR.
16930
16931 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
16932
16933         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
16934         EH cleanup at the end of the pass, search for those that have been
16935         turned into forwarder blocks and do the cleanup on their successor.
16936
16937 2008-05-18  Richard Guenther  <rguenther@suse.de>
16938
16939         * tree-cfg.c (verify_gimple_expr): Allow conversions from
16940         pointers to sizetype and vice versa.
16941
16942 2008-05-18 Xinliang David Li   <davidxl@google.com>
16943
16944         * gcc/tree-ssa-dce.c: Coding style fix.
16945         (check_pow): Documentation comment.
16946         (check_log): Documenation comment. Coding style fix.
16947         (is_unnecessary_except_errno_call): Ditto.
16948         (gen_conditions_for_pow): Ditto.
16949         (gen_conditions_for_log): Ditto.
16950         (gen_shrink_wrap_conditions): Ditto.
16951         (shrink_wrap_one_built_in_calls): Ditto.
16952         * gcc/doc/invoke.texi: Better documentation string.
16953         * ChangeLog: Fix wrong change log entries from
16954         May 17 checkin on function call DCE.
16955
16956 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
16957
16958         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
16959
16960 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
16961
16962         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
16963         * df-problems.c (simulation routines): Fixed block comment to
16964         properly say how to add forwards scanning functions.
16965
16966 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
16967
16968         * tree-inline.c (setup_one_parameter): Remove dead code.
16969
16970 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
16971
16972         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
16973         a BIT_AND_EXPR only for an INTEGER_TYPE.
16974
16975 2008-05-17 Xinliang David Li   <davidxl@google.com>
16976
16977         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
16978         (check_pow, check_log, is_unnecessary_except_errno_call): New
16979         functions to check for eliminating math functions that are pure
16980         except for setting errno.
16981         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
16982         general condition expressions for shrink-wrapping pow/log calls.
16983         (gen_shrink_wrap_conditions): Ditto.
16984         (shrink_wrap_one_built_in_call): Ditto.
16985         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
16986         (mark_operand_necessary): If debugging, output if OP is necessary.
16987         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
16988         unnecessary.
16989         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
16990         opt level >= 2.
16991         * gcc/common.opt: New user flag -ftree-builtin-dce.
16992         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
16993
16994 2008-05-16  David S. Miller  <davem@davemloft.net>
16995
16996         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
16997         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16998
16999 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
17000
17001         PR target/36246
17002         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
17003
17004 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
17005
17006         * ifcvt.c (dead_or_predicable): Rename
17007         df_simulate_one_insn_backwards to df_simulate_one_insn.
17008         * recog.c (peephole2_optimize): Ditto.
17009         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
17010         Ditto.
17011         * df.h: Rename df_simulate_one_insn_backwards to
17012         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
17013         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
17014         scanning of defs and uses.
17015         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
17016         (df_simulate_one_insn_forwards): Removed.
17017
17018 2008-05-16  Doug Kwan  <dougkwan@google.com>
17019
17020         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
17021         QNaN & SNaN.
17022         (real_from_string): Handle NaNs and Inf as approriate.
17023
17024 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
17025
17026         * doc/gty.texi (Source Files Containing Type Information): Note
17027         that headers should appear first in the gtfiles list.
17028
17029 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
17030
17031         * tree.def (COND_EXEC): Properly documented this code.
17032
17033 2008-05-16  Diego Novillo  <dnovillo@google.com>
17034
17035         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
17036         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
17037         the new field.
17038
17039 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
17040
17041         * tree-ssa-dse (max_stmt_uid): Removed.
17042         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
17043         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
17044         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
17045         * function.h (cfun.last_stmt_uid): New field.
17046         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
17047         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
17048         New functions.
17049         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
17050         (create_stmt_ann): Initialize the ann->uid field.
17051         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
17052         with new calls.
17053         * tree-flow.h (renumber_gimple_stmt_uids): New function.
17054
17055 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
17056
17057         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
17058         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
17059         (init_empty_tree_cfg): Call it.
17060
17061 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
17062
17063         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
17064         Update all users.
17065
17066 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
17067
17068         * doc/invoke.text (-fdump-tree-*-verbose): New option.
17069         * tree-dump.c (dump_options): New verbose option.
17070         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
17071         Add verbose dump.
17072         * tree-pass.h (TDF_VERBOSE): New dump flag.
17073         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
17074         (tree-flow.h): Added include.
17075         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
17076
17077 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
17078
17079         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
17080
17081         From Jie Zhang  <jie.zhang@analog.com>
17082         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
17083         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
17084         mcpu=bf561-none and mcpu=bf561-0.2.
17085         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
17086         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
17087         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
17088         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
17089         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
17090         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
17091         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
17092         option.
17093         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
17094         (cputype_selected): Remove.
17095         (bfin_handle_option): Don't use cputype_selected.
17096         (override_options): When no mcpu option, enable all workarounds.
17097         Don't use bfin_workarounds.
17098         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
17099         processor type.
17100         (DEFAULT_CPU_TYPE): Don't define.
17101
17102 2008-05-16  Richard Guenther  <rguenther@suse.de>
17103
17104         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
17105         on deletion of the last stmt.
17106
17107 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
17108
17109         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
17110         V8HImode for SSE2 and V16QImode for SSE4.1.
17111
17112 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
17113
17114         * cgraph.h (compute_inline_parameters): Made public.
17115         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
17116         variable_generate_summary, function_write_summary,
17117         variable_write_summary, variable_read_summary.  Added generate_summary,
17118         write_summary, read_summary.
17119         * cgraphunit.c (cgraph_process_new_functions): Changed call from
17120         pass_ipa_inline.function_generate_summary, to
17121         compute_inline_parameters.
17122         * ipa-inline.c (compute_inline_parameters): Made public and added
17123         node parameter.
17124         (compute_inline_parameters_for_current): New function.
17125         (pass_inline_param): Now calls compute_inline_parameters_for_current.
17126         (inline_generate_summary): Removed parameter and made to loop over
17127         all cgraph nodes.
17128         (pass_ipa_inline): Updated for new IPA_PASS structure.
17129         * passes.c (execute_ipa_summary_passes): Now is called once per
17130         pass rather than once per node*pass.
17131
17132 2008-05-15  Anatoly Sokolov <aesok@post.ru>
17133
17134         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
17135         avr_have_mul_p, avr_asm_only_p): Remove variables.
17136         (avr_override_options): Remove initialization of removed variables.
17137         (avr_file_start):  Convert removed variables to fields of
17138         'struct base_arch_s *avr_current_arch'.
17139         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
17140         (AVR_HAVE_MUL): (Ditto.).
17141         (AVR_HAVE_MOVW): (Ditto.).
17142         (AVR_HAVE_LPMX): (Ditto.).
17143         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
17144         avr_asm_only_p): Remove declaration.
17145
17146 2008-05-15  Diego Novillo  <dnovillo@google.com>
17147
17148         * config/arm/arm.c (arm_return_in_memory): Fix return type.
17149         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
17150
17151 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
17152
17153         PR middle-end/36194
17154         * combine.c (check_conversion): Rename back to check_promoted_subreg.
17155         Don't call record_truncated_value from here.
17156         (record_truncated_value): Turn it into a for_each_rtx callback.
17157         (record_truncated_values): New function.
17158         (combine_instructions): Call note_uses with record_truncated_values.
17159         Change name of check_conversion to check_promoted_subreg.
17160
17161 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
17162
17163         * doc/sourcebuild.texi: Document support for torture tests.
17164
17165 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
17166
17167         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
17168         to alternative 4 of operand 2.
17169
17170 2008-05-15  Richard Guenther  <rguenther@suse.de>
17171
17172         * tree-pass.h (current_pass): Declare.
17173         (get_pass_for_id): Likewise.
17174         * passes.c (passes_by_id, passes_by_id_size): New globals.
17175         (set_pass_for_id): New function.
17176         (get_pass_for_id): Likewise.
17177         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
17178         (execute_function_todo): Flush per function statistics.
17179         * toplev.c (compile_file): Init statistics.
17180         (general_init): Do early statistics initialization.
17181         (finalize): Finish statistics.
17182         * statistics.h (statistics_early_init): Declare.
17183         (statistics_init): Likewise.
17184         (statistics_fini): Likewise.
17185         (statistics_fini_pass): Likewise.
17186         (statistics_counter_event): Likewise.
17187         (statistics_histogram_event): Likewise.
17188         * statistics.c: New file.
17189         * Makefile.in (OBJS-common): Add statistics.o.
17190         (statistics.o): Add dependencies.
17191         * doc/invoke.texi (-fdump-statistics): Document.
17192
17193         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
17194         (insert): Likewise.
17195         (execute_pre): Use statistics_counter_event.
17196         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
17197         (substitute_and_fold): Increment it.  Use statistics_counter_event.
17198
17199 2008-05-15  Diego Novillo  <dnovillo@google.com>
17200
17201         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
17202
17203         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
17204         * tree-ssa-alias.c (new_type_alias): Remove references to
17205         sub-variables from comment.
17206         * tree-ssa-operands.c (swap_tree_operands): Likewise.
17207
17208 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
17209
17210         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
17211         attribute to 1 only for insertps alternative.
17212
17213 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
17214
17215         * config/bfin/bfin.md (loadbytes): New pattern.
17216         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
17217         (bfin_init_builtins): Initialize it.
17218         (bdesc_1arg): Add it.
17219
17220 2008-05-15  Sa Liu  <saliu@de.ibm.com>
17221
17222         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
17223         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
17224         * testsuite/lib/target-supports.exp: Add
17225         check_effective_target_fortran_integer_16.
17226
17227 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
17228
17229         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
17230         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
17231         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
17232         (TARGET_RETURN_IN_MEMORY): Define.
17233
17234 2008-05-15  Richard Guenther  <rguenther@suse.de>
17235
17236         PR middle-end/36244
17237         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
17238         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
17239         represent unmodifiable vars.
17240
17241 2008-05-15  Richard Guenther  <rguenther@suse.de>
17242
17243         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
17244         INDIRECT_REF and TARGET_MEM_REF.
17245         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
17246         TARGET_MEM_REF.
17247
17248 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
17249             H.J. Lu  <hongjiu.lu@intel.com>
17250
17251         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
17252         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
17253         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
17254         insn alternatives.  Add missing alternatives.
17255         (*vec_concatv2di_rex64_sse4_1): Likewise.
17256         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
17257         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
17258         Require TARGET_SSE.
17259
17260 2008-05-15  Richard Guenther  <rguenther@suse.de>
17261
17262         PR tree-optimization/36009
17263         PR tree-optimization/36204
17264         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
17265         (determine_invariantness_stmt): Record the loop a store is
17266         always executed in.
17267         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
17268         dependency.
17269
17270 2008-05-15  Richard Guenther  <rguenther@suse.de>
17271
17272         PR tree-optimization/34330
17273         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
17274         through the pointer will alias the SMT.
17275
17276 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
17277
17278         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
17279
17280 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
17281
17282         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
17283
17284 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
17285             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
17286
17287         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
17288         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
17289         (vashl_optab): New optab for vector/vector shifts.
17290         (vashr_optab): Ditto.
17291         (vlshr_optab): Ditto.
17292         (vrotl_optab): Ditto.
17293         (vrotr_optab): Ditto.
17294         (optab_subtype): New enum for optab_for_tree_code call.
17295         (optab_for_tree_code): Add enum optab_subtype argument.
17296
17297         * optabs.c (optab_for_tree_code): Take an additional argument to
17298         distinguish between a vector shift by a scalar and vector shift by
17299         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
17300         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
17301         vector shift by a vector.
17302         (expand_widen_pattern_expr): Pass additional argument to
17303         optab_for_tree_code.
17304
17305         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
17306         vrotl_optab, vrotr_optab.
17307
17308         * expr.c (expand_expr_real_1): Update calls to
17309         optab_for_tree_code to distinguish between vector shifted by a
17310         scalar and vector shifted by a vector.
17311         * tree-vectorizer.c (supportable_widening_operation): Ditto.
17312         (supportable_narrowing_operation): Ditto.
17313         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
17314         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
17315         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
17316         (vect_create_epilog_for_reduction): Ditto.
17317         (vectorizable_reduction): Ditto.
17318         (vectorizable_operation): Ditto.
17319         (vect_strided_store_supported): Ditto.
17320         (vect_strided_load_supported): Ditto.
17321         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
17322         * expmed.c (expand_shift): Ditto.
17323
17324         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
17325         scalar type.
17326         (ashr@var{m}3): Ditto.
17327         (vashl@var{m}3): Document new vector/vector shift standard name.
17328         (vashr@var{m}3): Ditto.
17329         (vlshr@var{m}3): Ditto.
17330         (vrotl@var{m}3): Ditto.
17331         (vrotr@var{m}3): Ditto.
17332
17333         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
17334         (PPERM_INVERT): Ditto.
17335         (PPERM_REVERSE): Ditto.
17336         (PPERM_REV_INV): Ditto.
17337         (PPERM_ZERO): Ditto.
17338         (PPERM_ONES): Ditto.
17339         (PPERM_SIGN): Ditto.
17340         (PPERM_INV_SIGN): Ditto.
17341         (PPERM_SRC1): Ditto.
17342         (PPERM_SRC2): Ditto.
17343
17344         * config/i386/sse.md (mulv2di3): Add SSE5 support.
17345         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
17346         allows a memory operand to be the value being added, and split it
17347         to improve vectorization.
17348         (sse5_pmacsdqh_mem): Ditto.
17349         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
17350         (sse5_mulv2div2di3_high): Ditto.
17351         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
17352         (vec_pack_trunc_v4si): Ditto.
17353         (vec_pack_trunc_v2di): Ditto.
17354         (sse5_pcmov_<mode>): Remove code that tried to use use
17355         andps/andnps instead of pcmov.
17356         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
17357         pmacsdqh instructions.
17358         (vec_widen_smult_lo_v4si): Ditto.
17359
17360         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
17361         (PPERM_INVERT): Ditto.
17362         (PPERM_REVERSE): Ditto.
17363         (PPERM_REV_INV): Ditto.
17364         (PPERM_ZERO): Ditto.
17365         (PPERM_ONES): Ditto.
17366         (PPERM_SIGN): Ditto.
17367         (PPERM_INV_SIGN): Ditto.
17368         (PPERM_SRC1): Ditto.
17369         (PPERM_SRC2): Ditto.
17370         (ix86_expand_sse_movcc): Move the SSE5 test after the if
17371         true/false tests.
17372         (ix86_expand_int_vcond): If SSE5 generate all possible integer
17373         comparisons.
17374         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
17375         says ignore whether the last reference is a memory operand.
17376
17377 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
17378             Paolo Bonzini <bonzini at gnu dot org>
17379
17380         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
17381         shift patterns.
17382
17383         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
17384         (vlshr<mode>3): Rename from vlshr<mode>3.
17385         (vashr<mode>3): Rename from vashr<mode>3.
17386         (mulv4sf3): Change the names of vector shift patterns.
17387         (mulv4si3): Ditto.
17388         (negv4sf2): Ditt.
17389
17390         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
17391         shift insns.
17392
17393         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
17394         (SI_SHLHI): Ditto.
17395         (SI_SHL): Ditto.
17396         (SI_SHLI): Ditto.
17397         (SI_ROTH): Ditto.
17398         (SI_ROTHI): Ditto.
17399         (SI_ROT): Ditto.
17400         (SI_ROTI): Ditto.
17401         (SPU_RL_0): Ditto.
17402         (SPU_RL_1): Ditto.
17403         (SPU_RL_2): Ditto.
17404         (SPU_RL_3): Ditto.
17405         (SPU_RL_4): Ditto.
17406         (SPU_RL_5): Ditto.
17407         (SPU_RL_6): Ditto.
17408         (SPU_RL_7): Ditto.
17409         (SPU_SL_0): Ditto.
17410         (SPU_SL_1): Ditto.
17411         (SPU_SL_2): Ditto.
17412         (SPU_SL_3): Ditto.
17413         (SPU_SL_4): Ditto.
17414         (SPU_SL_5): Ditto.
17415         (SPU_SL_6): Ditto.
17416         (SPU_SL_7): Ditto.
17417
17418         * config/spu/spu.md (v): New iterator macro to add v for vector types.
17419         (floatunssidf2_internal): Change vector/vector shift names.
17420         (floatunsdidf2_internal): Ditto.
17421         (mulv8hi3): Ditto.
17422         (ashrdi3): Ditto.
17423         (ashrti3): Ditto.
17424         (cgt_df): Ditto.
17425         (cgt_v2df): Ditto.
17426         (dftsv): Ditto.
17427         (vashl<mode>3): Rename from ashl<mode>3.
17428         (vashr<mode>3): Rename from ashr<mode>3.
17429         (vlshr<mode>3): Rename from lshr<mode>3.
17430         (vrotl<mode>3): Rename from rotl<mode>3.
17431
17432 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
17433
17434         PR target/36224
17435         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
17436         multiply gives the wrong value when doing widening multiplies.
17437         (vec_widen_smult_lo_v4si): Ditto.
17438
17439 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
17440
17441         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
17442         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
17443         emit_library_call_value.
17444         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
17445         * tree.h (ECF_LIBCALL_BLOCK): Removed.
17446         * calls.c (initialize_argument_information, precompute_arguments,
17447         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
17448         (precompute_arguments): Removed flags parameter.
17449         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
17450
17451 2008-05-14  Richard Guenther  <rguenther@suse.de>
17452
17453         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
17454         Make sure to register the store if the use is a PHI_NODE.
17455
17456 2008-05-14  Olivier Hainque  <hainque@adacore.com>
17457
17458         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
17459         memory if the component is to be referenced in BLKmode according
17460         to get_inner_reference.
17461
17462 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
17463
17464         * calls.c (emit_library_call_value_1): Restore code clearing
17465         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
17466
17467 2008-05-14  Olivier Hainque  <hainque@adacore.com>
17468             Nicolas Roche  <roche@adacore.com>
17469
17470         * configure.ac: Add support for a "gcc_subdir" variable in
17471         config-lang.in, to denote a subdirectory where the language/GCC
17472         integration files are to be found.
17473         * configure: Regenerate.
17474
17475 2008-05-14  Ira Rosen  <irar@il.ibm.com>
17476
17477         PR tree-optimization/36098
17478         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
17479         value for the first load in the group in case of a gap.
17480         (vect_build_slp_tree): Check that there are no gaps in loads.
17481
17482 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
17483
17484         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
17485         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
17486         expand_copysign_bit, ): Change call to emit_no_conflict_block to
17487         emit_insn and remove unneeded code to construct extra args.
17488         (emit_no_conflict_block): Removed.
17489         * optabls.h: (emit_no_conflict_block): Removed.
17490         * cse.c (cse_extended_basic_block): Remove search for
17491         REG_NO_CONFLICT note.
17492         * global.c: Removed incorrect comment added in revision 117.
17493         * expr.c (convert_move): Change call to emit_no_conflict_block to
17494         emit_insn.
17495         * recog.c: Change comments so that they do not mention
17496         REG_NO_CONFLICT.
17497         * local_alloc.c (combine_regs): Removed last parameter.
17498         (no_conflict_p): Removed.
17499         (block_alloc): Removed note, no_conflict_combined_regno and set
17500         local vars. Removed all code to process REG_NO_CONFLICT blocks.
17501         (combine_regs): Removed already_dead and code to look for
17502         REG_NO_CONFLICT notes.
17503         * lower_subreg (remove_retval_note): Removed code to look for
17504         REG_NO_CONFLICT block.
17505         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
17506         (resolve_clobber): Remove code to process libcalls that have
17507         REG_NO_CONFLICT notes.
17508         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
17509         case.
17510         * combine.c (can_combine_p, distribute_notes):  Removed
17511         REG_NO_CONFLICT case.
17512         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
17513         to emit_insns.
17514         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
17515         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
17516         Ditto.
17517         * reg-notes.def (NO_CONFLICT): Removed.
17518
17519 2008-05-14  David S. Miller  <davem@davemloft.net>
17520
17521         * config/sparc/sparc.c (sparc_profile_hook): If
17522         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
17523         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
17524         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
17525
17526 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
17527
17528         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
17529
17530 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
17531
17532         PR target/36222
17533         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
17534         and op1 expansion before vector concat to have less live pseudos.
17535
17536 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
17537
17538         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
17539         ix86_expand_vector_set if supported.
17540
17541 2008-05-13  Diego Novillo  <dnovillo@google.com>
17542             Kenneth Zadeck  <zadeck@naturalbridge.com>
17543
17544         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
17545
17546         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
17547         phinodes_print_statistics, init_ssanames, fini_ssanames,
17548         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
17549         release_ssa_name, release_defs, replace_ssa_name_symbol,
17550         ssanames_print_statistics): Move ...
17551         * tree-flow.h: ... here.
17552         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
17553         Use FN instead of cfun.
17554         (make_ssa_name_fn): Rename from make_ssa_name.
17555         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
17556         * tree-flow-inline.h (make_ssa_name): Move from
17557         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
17558         * omp-low.c (expand_omp_parallel):
17559         * tree-flow-inline.h (redirect_edge_var_map_result):
17560         * tree-ssa.c (init_tree_ssa): Add argument FN.
17561         Use it instead of cfun.  Update all users.
17562
17563 2008-05-13  Tom Tromey  <tromey@redhat.com>
17564
17565         PR preprocessor/22168:
17566         * doc/cpp.texi (Top): Update menu.
17567         (Alternatives to Wrapper #ifndef): New node.
17568         (Other Directives): Document deprecation.
17569         (Obsolete Features): Remove menu.
17570         (Assertions): Merge node into Obsolete Features.
17571         (Obsolete once-only headers): Move earlier; rename to Alternatives
17572         to Wrapper #ifndef.
17573         * doc/cppopts.texi: Update.
17574         * c.opt (Wdeprecated): Enable for C and ObjC.
17575         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
17576         (C++ Dialect Options): Move -Wno-deprecated from here to...
17577         (Warning Options): ... here.
17578
17579 2008-05-13  Richard Guenther  <rguenther@suse.de>
17580
17581         PR middle-end/36227
17582         * fold-const.c (fold_sign_changed_comparison): Do not allow
17583         changes in pointer-ness.
17584
17585 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
17586
17587         PR target/24713
17588         * config/sh/sh.c (sh_expand_prologue): Don't clear
17589         RTX_FRAME_RELATED_P for push insns.
17590
17591 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
17592
17593         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
17594
17595 2008-05-12  Anatoly Sokolov <aesok@post.ru>
17596
17597         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
17598         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
17599         Use 'machine->is_leaf' instead of 'leaf_func_p'.
17600
17601 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
17602
17603         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
17604         (*vec_concatv4sf_sse): This.
17605         (*sse2_concatv2si): Renamed to ...
17606         (*vec_concatv2si_sse2): This.
17607         (*sse1_concatv2si): Renamed to ...
17608         (*vec_concatv2si_sse): This.
17609         (*vec_concatv2di_rex): Renamed to ...
17610         (*vec_concatv2di_rex64): This.
17611         (*vec_concatv2si_sse4_1): New.
17612         (*vec_concatv2di_rex64_sse4_1): Likewise.
17613
17614 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
17615
17616         PR rtl-optimization/36111
17617         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
17618         that was created for swappable operands.
17619
17620 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
17621
17622         PR ada/36001
17623         * Makefile.in: Substitute GNATMAKE and GNATBIND.
17624         * configure.ac: Add call to ACX_PROG_GNAT.
17625
17626 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
17627
17628         * optc-gen.awk: Fix comment typo.
17629
17630 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
17631
17632         * pretty-print.c (pp_integer_with_precision): Use
17633         HOST_LONG_LONG_FORMAT.
17634
17635 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
17636
17637         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
17638
17639 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
17640
17641         * config/i386/i386.c (bdesc_ptest): Removed.
17642         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
17643         (bdesc_args): Add __builtin_ia32_ptestz128,
17644         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
17645         (ix86_init_mmx_sse_builtins): Updated.
17646         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
17647         (ix86_expand_builtin): Updated.
17648
17649 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
17650
17651         * tree-cfg.c (valid_fixed_convert_types_p): New function.
17652         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
17653
17654 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
17655
17656         * value-prof.c (interesting_stringop_to_profile): Do not
17657         return early for BUILT_IN_MEMPCPY.
17658
17659 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17660
17661         * calls.c (expand_call): Don't use callgraph to increase
17662         preferred_stack_boundary.
17663
17664         * cgraph.h (cgraph_rtl_info): Use unsigned on
17665         preferred_incoming_stack_boundary.
17666
17667         * final.c (rest_of_clean_state): Use unsigned on
17668         preferred_stack_boundary.
17669
17670 2008-05-09  Tom Tromey  <tromey@redhat.com>
17671
17672         PR preprocessor/22231:
17673         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
17674         proceeding.
17675
17676 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
17677
17678         PR tree-optimization/36129
17679         * tree-ssa-ccp.c: Include value-prof.h.
17680         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
17681         built-in function was folded to a constant.
17682         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
17683
17684 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
17685             Sebastian Pop  <sebastian.pop@amd.com>
17686
17687         * tree-scalar-evolution.c: Document instantiate_scev.
17688         (instantiate_parameters_1): Renamed instantiate_scev_1.
17689         Don't use the same loop for instantiation_loop and evolution_loop.
17690         (instantiate_scev): New.
17691         (instantiate_parameters): Moved...
17692         (resolve_mixers): Update call to instantiate_scev_1 to pass the
17693         same loop twice.  Maintains the semantics for this function.
17694         * tree-scalar-evolution.h (instantiate_scev): Declare.
17695         (instantiate_parameters): ...here.  Now static inline.
17696         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
17697         instead of resolve_mixers.
17698
17699 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
17700
17701         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
17702
17703 2008-05-09  Tomas Bily  <tbily@suse.cz>
17704
17705         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
17706         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
17707         * tree-ssa-structalias.c (get_constraint_for): Likewise.
17708         * c-common.c (c_common_truthvalue_conversion): Likewise.
17709         * tree-object-size.c (compute_object_offset): Likewise.
17710         * tree-inline.c (estimate_num_insns_1): Likewise.
17711         * varasm.c (const_hash_1, compare_constant, copy_constant)
17712         (compute_reloc_for_constant, output_addressed_constants)
17713         (initializer_constant_valid_p): Likewise.
17714         * c-omp.c (check_omp_for_incr_expr): Likewise.
17715         * gimplify.c (gimplify_expr): Likewise.
17716         * c-typeck.c (c_finish_return): Likewise.
17717         * tree-vectorizer.c (supportable_widening_operation)
17718         (supportable_narrowing_operation): Likewise.
17719         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
17720         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
17721         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
17722         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
17723         (descr_info_loc): Likewise.
17724         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
17725         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
17726         (fold_unary): Likewise.
17727         * builtins.c (get_pointer_alignment): Likewise.
17728         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
17729         (instantiate_parameters_1): Likewise.
17730         * tree.c (expr_align, stabilize_reference): Likewise.
17731         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
17732         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
17733         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
17734         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
17735         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
17736         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
17737         Likewise.
17738         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
17739         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
17740         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
17741         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
17742         (forward_propagate_comparison)
17743         (tree_ssa_forward_propagate_single_use_vars): Likewise.
17744         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
17745         * emit-rtl.c (component_ref_for_mem_expr)
17746         (set_mem_attributes_minus_bitpos): Likewise.
17747         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
17748         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
17749         Likewise.
17750         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
17751         (build_function_call, pointer_diff, build_compound_expr)
17752         (c_finish_return): Likewise.
17753         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
17754         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
17755         Likewise.
17756         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
17757         * expr.c (is_aligning_offset): Likewise.
17758         * tree-ssa-alias.c (is_escape_site): Likewise.
17759         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
17760         (check_all_va_list_escapes): Likewise.
17761         * tree-ssa-loop-ivopts.c (determine_base_object)
17762         (determine_common_wider_type): Likewise.
17763         * dojump.c (do_jump): Likewise.
17764         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
17765         * tree-gimple.c (is_gimple_cast): Likewise.
17766         * fold-const.c (decode_field_reference, )
17767         (fold_sign_changed_comparison, fold_unary, fold_comparison)
17768         (fold_binary): Likewise.
17769         * tree-ssa-alias-warnings.c (find_alias_site_helper)
17770         (already_warned_in_frontend_p): Likewise.
17771         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
17772         * tree.c (really_constant_p, get_unwidened): Likewise.
17773         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
17774         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
17775         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
17776         Likewise.
17777         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
17778         CONVERT_EXPR_P.
17779         (CONVERT_EXPR_P): Define.
17780         (CASE_CONVERT): Define.
17781
17782 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
17783
17784         PR middle-end/36117
17785         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
17786         (delete_unmarked_insns): When deleting a call, call
17787         delete_unreachable_blocks.
17788         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
17789         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
17790
17791 2008-05-08  Richard Guenther  <rguenther@suse.de>
17792
17793         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
17794         (-ftree-salias): Likewise.
17795         (salias-max-implicit-fields): Remove param documentation.
17796         (salias-max-array-elements): Likewise.
17797         * tree-pass.h (pass_create_structure_vars): Remove.
17798         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
17799         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
17800         * tree-ssa-alias.c (create_structure_vars): Remove.
17801         (gate_structure_vars): Likewise.
17802         (pass_create_structure_vars): Likewise.
17803         (gate_build_alias): Likewise.
17804         (pass_build_alias): Adjust to run always and dump the function.
17805         * common.opt (ftree-salias): Hide.
17806         * passes.c (init_optimization_passes): Remove
17807         pass_create_structure_vars, adjust comment.
17808         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
17809         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
17810         * opts.c (decode_options): Do not set flag_tree_salias.
17811         (common_handle_option): Add OPT_ftree_salias to the backward
17812         compatibility section.
17813
17814 2008-05-08  Richard Guenther  <rguenther@suse.de>
17815
17816         * tree-flow-inline.h (var_can_have_subvars): Move ...
17817         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
17818         * tree-flow.h (var_can_have_subvars): Remove.
17819         (push_fields_onto_fieldstack): Remove.
17820         (sort_fieldstack): Likewise.
17821         (struct fieldoff): Move ...
17822         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
17823         alias_set and base_for_components fields.
17824         (sort_fieldstack): Make static.
17825         (push_fields_onto_fieldstack): Likewise.  Remove code that
17826         handles anything but RECORD_TYPEs.  Remove alias_set and
17827         base_for_components handling.
17828         (create_variable_info_for): Adjust.
17829
17830 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
17831
17832         * common.opt (Wframe-larger-than=): Shorten the help message
17833         to one line.
17834         * doc/invoke.texi (Wframe-larger-than=): Add more description.
17835
17836 2008-05-08  Rafael Espíndola  <espindola@google.com>
17837
17838         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
17839         trap.
17840         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
17841         trap and that both operands are gimple values.
17842         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
17843         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
17844         is a fp operation.
17845
17846 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
17847
17848         * read-rtl.c (join_c_conditions): Return the first string if the
17849         two strings are equal.
17850
17851 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
17852
17853         * gensupport.h (pred_data): Add a "num_codes" field.
17854         (add_predicate_code): Declare.
17855         * gensupport.c (add_predicate_code): New function.
17856         (std_pred_table): Add an "allows_const_p" field.
17857         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
17858         Remove the (incomplete) list of such codes from the codes field.
17859         (init_predicate_table): Use add_predicate_code.  Add all
17860         RTX_CONST_OBJs if allows_const_p is true.
17861         * genrecog.c (process_define_predicate): Use add_predicate_code.
17862
17863 2008-05-08  David Daney  <ddaney@avtrex.com>
17864             Richard Sandiford  <rsandifo@nildram.co.uk>
17865
17866         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
17867         special case of constant zero operands.
17868         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
17869         old and new values.  Special case constant zero values.
17870         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
17871         fails.
17872         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
17873         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
17874
17875 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
17876
17877         PR target/36090
17878         * simplify-rtx.c (simplify_plus_minus): Create CONST of
17879         similar RTX_CONST_OBJ before CONST_INT.
17880
17881 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
17882
17883         * stmt.c (expand_stack_restore): Change sa mode if needed.
17884
17885 2008-05-08  Richard Guenther  <rguenther@suse.de>
17886
17887         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
17888         return type to bool.
17889         (ix86_sol10_return_in_memory): Likewise.
17890         (ix86_i386elf_return_in_memory): Likewise.
17891         (ix86_i386interix_return_in_memory): Likewise.
17892         * config/i386/i386.c (ix86_return_in_memory): Likewise.
17893         (ix86_sol10_return_in_memory): Likewise.
17894         (ix86_i386elf_return_in_memory): Likewise.
17895         (ix86_i386interix_return_in_memory): Likewise.
17896
17897 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
17898
17899         PR bootstrap/36180
17900         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
17901         fndecl argument.
17902         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
17903         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
17904         declared in front.
17905
17906 2008-05-08  Richard Guenther  <rguenther@suse.de>
17907
17908         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
17909         * tree-data-ref.h (struct dr_alias): Remove subvars field.
17910         (DR_SUBVARS): Remove.
17911         * tree-dfa.c (dump_subvars_for): Remove.
17912         (debug_subvars_for): Likewise.
17913         (dump_variable): Do not dump subvars.
17914         (remove_referenced_var): Do not remove subvars.
17915         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
17916         (lookup_subvars_for_var): Remove.
17917         (get_subvars_for_var): Likewise.
17918         (get_subvars_at): Likewise.
17919         (get_first_overlapping_subvar): Likewise.
17920         (overlap_subvar): Likewise.
17921         * tree-flow.h (subvar_t): Remove.
17922         (struct var_ann_d): Remove subvars field.
17923         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
17924         argument.  Remove special handling of SFTs.
17925         (compute_tag_properties): Likewise.
17926         (set_initial_properties): Likewise.
17927         (compute_call_clobbered): Likewise.
17928         (count_mem_refs): Likewise.
17929         (compute_memory_partitions): Likewise.
17930         (compute_flow_insensitive_aliasing): Likewise.
17931         (setup_pointers_and_addressables): Likewise.
17932         (new_type_alias): Likewise.
17933         (struct used_part): Remove.
17934         (used_portions): Likewise.
17935         (struct used_part_map): Likewise.
17936         (used_part_map_eq): Likewise.
17937         (used_part_map_hash): Likewise.
17938         (free_used_part_map): Likewise.
17939         (up_lookup): Likewise.
17940         (up_insert): Likewise.
17941         (get_or_create_used_part_for): Likewise.
17942         (create_sft): Likewise.
17943         (create_overlap_variables_for): Likewise.
17944         (find_used_portions): Likewise.
17945         (create_structure_vars): Likewise.
17946         * tree.def (STRUCT_FIELD_TAG): Remove.
17947         * tree.h (MTAG_P): Adjust.
17948         (struct tree_memory_tag): Remove base_for_components and
17949         unpartitionable flags.
17950         (struct tree_struct_field_tag): Remove.
17951         (SFT_PARENT_VAR): Likewise.
17952         (SFT_OFFSET): Likewise.
17953         (SFT_SIZE): Likewise.
17954         (SFT_NONADDRESSABLE_P): Likewise.
17955         (SFT_ALIAS_SET): Likewise.
17956         (SFT_UNPARTITIONABLE_P): Likewise.
17957         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
17958         (union tree_node): Remove sft field.
17959         * alias.c (get_alias_set): Remove special handling of SFTs.
17960         * print-tree.c (print_node): Remove handling of SFTs.
17961         * tree-dump.c (dequeue_and_dump): Likewise.
17962         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
17963         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
17964         * tree-predcom.c (set_alias_info): Do not set subvars.
17965         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
17966         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
17967         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
17968         (add_vars_for_offset): Remove.
17969         (add_virtual_operand): Remove special handling of SFTs.
17970         (add_call_clobber_ops): Likewise.
17971         (add_call_read_ops): Likewise.
17972         (get_asm_expr_operands): Likewise.
17973         (get_modify_stmt_operands): Likewise.
17974         (get_expr_operands): Likewise.
17975         (add_to_addressable_set): Likewise.
17976         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
17977         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
17978         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
17979         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
17980         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
17981         (tree_node_structure): Likewise.
17982         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
17983         handling of SFTs.
17984         (find_what_p_points_to): Likewise.
17985
17986 2008-05-08  Sa Liu  <saliu@de.ibm.com>
17987
17988         * config/spu/spu.md: Fixed subti3 pattern.
17989
17990 2008-05-08  Richard Guenther  <rguenther@suse.de>
17991
17992         PR middle-end/36154
17993         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17994         sure to create a representative for trailing arrays for PTA.
17995
17996 2008-05-08  Richard Guenther  <rguenther@suse.de>
17997
17998         PR middle-end/36172
17999         * fold-const.c (operand_equal_p): Two objects which types
18000         differ in pointerness are not equal.
18001
18002 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
18003
18004         * calls.c (compute_argument_block_size): Add argument tree fndecl.
18005         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
18006         (emit_library_call_value_1): Add new variable fndecl initialized by
18007         NULL_TREE. It should be the decl type of orgfun, but this information
18008         seems not to be available here, so it uses the default calling abi.
18009         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
18010         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
18011         by TARGET_RETURN_IN_MEMORY.
18012         * config/i386/i386-interix.h: Likewise.
18013         * config/i386/i386.h: Likewise.
18014         * config/i386/i386elf.h: Likewise.
18015         * config/i386/ptx4-i.h: Likewise.
18016         * config/i386/sol2-10.h: Likewise.
18017         * config/i386/sysv4.h: Likewise.
18018         * config/i386/vx-common.h: Likewise.
18019         * config/cris/cris.h: Removed #if 0 clause.
18020         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
18021         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
18022         argument.
18023         (ix86_sol10_return_in_memory): Likewise.
18024         (ix86_i386elf_return_in_memory): New.
18025         (ix86_i386interix_return_in_memory): New.
18026         * config/mt/mt-protos.h (mt_return_in_memory): New.
18027         * config/mt/mt.c: Likewise.
18028         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
18029         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
18030         * config/bfin/bfin.h: Likewise.
18031         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
18032         argument.
18033         * config/bfin/bfin.c: Likewise.
18034         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
18035         * config/alpha/unicosmk.h: Likewise.
18036         * config/i386/cygming.h: Likewise.
18037         * config/iq2000/iq2000.h: Likewise.
18038         * config/mips/mips.h: Likewise.
18039         * config/mn10300/mn10300.h: Likewise.
18040         * config/rs6000/rs6000.h: Likewise.
18041         * config/score/score.h: Likewise.
18042         * config/spu/spu.h: Likewise.
18043         * config/v850/v850.h: Likewise.
18044         * defaults.h: Likewise.
18045         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
18046         * expr.c (emit_block_move): Adjust use of
18047         OUTGOING_REG_PARM_STACK_SPACE.
18048         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
18049         OUTGOING_REG_PARM_STACK_SPACE.
18050         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
18051
18052 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
18053
18054         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
18055         on OMP_RETURN for OMP_FOR.
18056
18057         PR debug/35896
18058         * dwarf2out.c (dw_expand_expr, common_check): Removed.
18059         (fortran_common): New function.
18060         (gen_variable_die): Call fortran_common instead of common_check,
18061         adjust for it returning tree instead of rtx.  Formatting.
18062
18063 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
18064
18065         PR rtl/7335
18066         PR rtl/33826
18067         * see.c (see_copy_insn): Copy new pure const attributes for new call.
18068         * c-decl.c (merge_decls): Ditto.
18069         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
18070         to RTL_CONST_OR_PURE_CALL_P.
18071         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
18072         Initialized DECL_LOOPING_CONST_PURE.
18073         (process_call_operands): Set tree_side_effects properly.
18074         * tree.h (TREE_READONLY_DECL_P): Removed.
18075         (DECL_IS_PURE): Renamed to DECL_PURE_P.
18076         (DECL_LOOPING_OR_CONST_P): New macro.
18077         (struct tree_function_decl): Added looping_const_or_pure_p.
18078         (ECF_*) Renumbered.
18079         (ECF_LOOPING_OR_CONST_P): New macro.
18080         * rtlanal.c (pure_const_p): Removed.
18081         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
18082         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
18083         to RTL_CONST_CALL_P.
18084         * ipa-pure-const.c (pure_const_state_e): Added looping field.
18085         (check_decl, check_tree, check_call, scan_function): Initialize
18086         looping.
18087         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
18088         (static_execute): Set looping true for recursive functions.
18089         Undo setting state to IPA_NEITHER for recursive functions.
18090         * cse.c (cse_insn):
18091         * ifcvt.c (noce_can_store_speculate_p): Changed
18092         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
18093         RTL_CONST_OR_PURE_CALL_P.
18094         * dse.c (scan_insn): Ditto.
18095         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
18096         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
18097         RTL_CONST_OR_PURE_CALL_P.
18098         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
18099         pure_call_p to RTL_CONST_CALL_P.
18100         * gimplify.c (gimplify_call_expr): Clear side effects for
18101         non-looping pure and constant calls.
18102         * calls.c (emit_call_1): Set rtl flags from ecf flags.
18103         (flags_from_decl_or_type): Set ecf flags from decl flags.
18104         (initialize_argument_information): Turn off
18105         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
18106         Change const to pure if callee_copies is true rather than just
18107         turning off const.
18108         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
18109         way of marking pure calls.
18110         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
18111         Remove hack that was supposed to fix pr7335 and remove old
18112         way of marking pure calls.
18113         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
18114         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
18115         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
18116         RTL_CONST_OR_PURE_CALL_P.
18117         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
18118         * loop-invariant.c (find_exits, find_invariant_bb): Changed
18119         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
18120         * sched-deps.c (schedule_analyze): Ditto.
18121         * rtl.h (struct rtx_def): Use call field, unchanging field, and
18122         return_val field of calls to represent pure and const function info.
18123         (CONST_OR_PURE_CALL_P): Deleted macro.
18124         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
18125         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
18126         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
18127         TREE_READONLY.
18128         * tree-optimize.c (execute_fixup_cfg): Added test for
18129         ECF_LOOPING_CONST_OR_PURE.
18130         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
18131         DECL_PURE_P.
18132         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
18133         effects for looping pure or const calls.
18134         (verify_gimple_expr): Added verification code.
18135         * config/alpha/alpha.c (alpha_legitimize_address,
18136         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
18137         RTL_CONST_CALL_P.
18138         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
18139         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
18140         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
18141         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
18142         RTL_CONST_OR_PURE_CALL_P.
18143         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
18144         and const calls to be deleted.
18145
18146 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
18147
18148         PR target/35714
18149         * config/i386/mmx.md (mmx_subv2sf3): New expander.
18150         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
18151         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
18152         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
18153         to handle nonimmediate operands.
18154         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
18155         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
18156         to handle nonimmediate operands.
18157         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
18158         (mmx_pmulhrwv4hi3): New expander.  Use
18159         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18160         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
18161         (sse2_umulv1siv1di3): New expander.  Use
18162         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18163         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
18164         (mmx_eq<mode>3): New expander.  Use
18165         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18166         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
18167         (mmx_uavgv8qi3): New expander.  Use
18168         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18169         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
18170         (mmx_uavgv4hi3): New expander.  Use
18171         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18172
18173         * config/i386/sse.md
18174         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
18175         to handle nonimmediate operands.
18176         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
18177         to handle nonimmediate operands.
18178         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
18179         to handle nonimmediate operands.
18180         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
18181         to handle nonimmediate operands.
18182         (sse2_unpckhpd_exp): New expander.  Use
18183         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18184         (sse2_unpcklpd_exp): New expander.  Use
18185         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18186         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
18187         to handle nonimmediate operands.
18188         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
18189         to handle nonimmediate operands.
18190         (*sse2_<plusminus_insn><mode>3): Rename from
18191         sse2_<plusminus_insn><mode>3 insn pattern.
18192         (sse2_<plusminus_insn><mode>3): New expander.  Use
18193         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18194         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
18195         (sse2_umulv2siv2di3): New expander.  Use
18196         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18197         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
18198         (sse4_1_mulv2siv2di3): New expander.  Use
18199         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18200         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
18201         (sse2_pmaddwd): New expander.  Use
18202         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18203         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
18204         (sse2_eq<mode>3): New expander.  Use
18205         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18206         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
18207         (sse4_1_eqv2di3): New expander.  Use
18208         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18209         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
18210         (sse2_uavgv16qi3): New expander.  Use
18211         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18212         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
18213         (sse2_uavgv16qi3): New expander.  Use
18214         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18215         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
18216         (sse2_uavgv8hi3): New expander.  Use
18217         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18218         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
18219         (ssse3_pmulhrswv8hi3): New expander.  Use
18220         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18221         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
18222         (ssse3_pmulhrswv4hi3): New expander.  Use
18223         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18224
18225         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
18226         (<sse>_vmmul<mode>3): Ditto.
18227         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
18228         (divv2df3): Ditto.
18229         (ssse3_pmaddubsw128): Use register_operand for operand 1.
18230         (ssse3_pmaddubsw): Ditto.
18231
18232         * config/i386/i386.c (struct_builtin_description)
18233         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
18234         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
18235         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
18236         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
18237         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
18238         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
18239         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
18240         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
18241         (ix86_fixup_binary_operands): Assert that src1
18242         and src2 must have the same mode when swapped.
18243         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
18244         and ix86_binary_operator_ok.  Do not force operands in registers
18245         when optimizing.
18246
18247 2008-05-07  Jan Hubicka  <jh@suse.cz>
18248
18249         * cgraph.c (dump_cgraph_node): Update.
18250         * cgraph.h (cgraph_local_info): Break out inline summary.
18251         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
18252         hook.
18253         * ipa-inline (inline_summary): New accestor function.
18254         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
18255         cgraph_decide_inlining, compute_inline_parameters): Update.
18256         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
18257
18258 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
18259
18260         Cleanup ColdFire scheduling support and add V4 pipeline model.
18261
18262         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
18263         (define_attr cpu): Add cfv4 value.
18264         (define_attr type, define_attr type1): Merge into a single 'type'
18265         attribute.  Update all uses.
18266         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
18267         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
18268         Update all uses.
18269         (define_attr opx_mem, define_attr opy_mem): Remove.
18270         (define_attr op_mem): Clean up, update comment.
18271         (define_attr size): Use specific values instead of general int.
18272         (define_attr guess, define_attr split): Remove.  Update all uses.
18273         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
18274         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
18275         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
18276         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
18277         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
18278         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
18279         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
18280         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
18281         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
18282         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
18283         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
18284         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
18285         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
18286         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
18287         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
18288         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
18289         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
18290         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
18291         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
18292         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
18293         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
18294         Update or set attributes.
18295         (stack_tie): New fake instruction.
18296
18297         * config/m68k/m68k.h (TUNE_CFV4): New macro.
18298         (m68k_sched_attr_size): Update declaration.
18299         (m68k_sched_attr_type2): Remove.
18300         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
18301         Declare new bypass predicates.
18302
18303         * config/m68k/m68k.c (m68k_sched_issue_rate,
18304         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
18305         implementations.
18306         (TARGET_SCHED_ISSUE_RATE,
18307         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
18308         (override_options): Handle scheduling for ColdFire V4 core.
18309         (m68k_expand_prologue): Emit stack_tie.
18310         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
18311         'OP_TYPE_FPN'.  Update all uses.
18312         (sched_guess_p): Remove.
18313         (sched_address_type): Handle symbolic addresses.
18314         (sched_get_operand): New static function.
18315         (sched_operand_type): Merge into sched_attr_op_type.
18316         (sched_attr_op_type): Handle FP registers, handle quick constants,
18317         update.
18318         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
18319         (m68k_sched_attr_size): Update.  Move logic to ...
18320         (sched_get_attr_size_int): New static function.
18321         (sched_get_opxy_mem_type): New static function.
18322         (m68k_sched_attr_op_mem): Update.
18323         (m68k_sched_attr_type2): Remove.
18324         (sched_cfv4_bypass_data): New static variable.
18325         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
18326         (m68k_sched_issue_rate): Implement scheduler hook.
18327         (struct _sched_ib: enabled_p): New field.
18328         (m68k_sched_variable_issue): Update.  Handle V4.
18329         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
18330         sched_dump_class_func_t, sched_dump_split_class,
18331         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
18332         sched_dump_dfa_class, m68k_sched_dump): Remove.
18333         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
18334         hook.
18335         (m68k_sched_init_global): Remove statisctics dumping, introduce
18336         sanity check that all instructions have pipeline reservations.  Handle
18337         ColdFire V4 core.
18338         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
18339         Handle ColdFire V4 core.
18340         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
18341         New static functions.
18342         (m68k_sched_address_bypass_p): New bypass predicate.
18343         (sched_get_indexed_address_scale): New static function.
18344         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
18345
18346         * cf.md: Update comments.
18347         (define_attr type2): Remove.  Use 'type' attribute instead.
18348         Update all uses.
18349         (cf_ib): Rename to cfv123_ib.  Update all uses.
18350         (cf_oep): Rename to cfv123_oep.  Update all uses.
18351         (cf_chr): Rename to cfv123_chr.  Update all uses.
18352         (cf_mem): Rename to cfv123_mem.  Update all uses.
18353         (cf_mac): Move to more appropriate place.
18354         (cfv123_guess): New automaton and cpu_unit.
18355         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
18356         Update uses of 'size' attribute.  Handle before reload scheduling.
18357         (cfv123_guess): New dummy reservation for unhandled instructions.
18358         (cfv4_*): Pipeline description of ColdFire V4 core.
18359         (ignore): New reservation to handle 'ignore' type.
18360
18361 2008-05-07  Ian Lance Taylor  <iant@google.com>
18362
18363         PR middle-end/36013
18364         * gimplify.c (find_single_pointer_decl_1): Don't look through
18365         indirections.
18366         (find_single_pointer_decl): Adjust comments.
18367
18368 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
18369
18370         PR middle-end/36137
18371         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
18372         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
18373
18374         PR middle-end/36106
18375         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
18376         integral type rather than floating point, then VIEW_CONVERT_EXPR
18377         to the floating point type.
18378
18379 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
18380
18381         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
18382         TFmode op0 to register.
18383
18384 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
18385
18386         * c-decl.c (grokdeclarator): Comment typo.
18387
18388 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
18389
18390         * tree-flow.h: Remove prototype for computed_goto_p.
18391         * tree-cfg.c (computed_goto_p): Make static.
18392
18393 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
18394
18395         PR target/35657
18396         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
18397         (contains_aligned_value_p): This.  Handle _Decimal128.
18398         (ix86_function_arg_boundary): Only align _Decimal128 to its
18399         natural boundary and handle it properly.
18400
18401 2008-05-06  Martin Jambor  <mjambor@suse.cz>
18402
18403         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
18404         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
18405         (ipcp_method_set_orig_node): Removed.
18406         (ipcp_cval_get_cvalue_type): Removed.
18407         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
18408         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
18409         (ipcp_cval_set_cvalue_type): Removed.
18410         (ipcp_cval_get_cvalue): Removed.
18411         (ipcp_cval_set_cvalue): Removed.
18412         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
18413         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
18414         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
18415         (ipcp_cval_meet): Renamed to ipa_lattice_meet
18416         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
18417         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
18418         (ipcp_get_ith_lattice): Changed parameters.
18419         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
18420         (ipcp_lattice_from_jfunc): Changed parameters.
18421         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
18422         (ipcp_method_cval_print): Added temporary variable info.
18423         (ipcp_redirect): Removed already unused local variable caller.
18424         (ipcp_redirect): New temporary variable orig_callee_info
18425         (ipcp_redirect): Removed newly unused local variable callee.
18426         (ipcp_redirect): Removed (a bit confusing) local variable type.
18427         (ipcp_insert_stage): Added local variable info.
18428         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
18429         renamed too
18430         (ipcp_formal_create): Removed.
18431         (ipcp_method_cval_set): Removed.
18432         (ipcp_propagate_stage): Renamed lattice variables.
18433         (ipcp_method_cval_set_cvalue_type): Removed.
18434         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
18435         (ipcp_print_all_lattices): Changed printed strings to refer to
18436         lattices rather than cvals.
18437         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
18438         (ipcp_propagate_const): Changed formal parameters.
18439         (build_const_val): Changed formal parameters.
18440         (ipcp_insert_stage): Removed useless variable cvalue
18441         (build_const_val): Changed formal parameters.
18442         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
18443         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
18444         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
18445         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
18446         (ipcp_print_func_profile_counts): Changed string from "method" to
18447         "function"
18448         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
18449         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
18450         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
18451         (ipcp_structures_print): Renamed to ipcp_print_all_structures
18452         (ipcp_profile_print): Renamed to ipcp_print_profile_data
18453         (ipcp_lat_is_const): Changed parameters and made inline.
18454         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
18455         (ipcp_redirect): Renamed to ipcp_need_redirect_p
18456         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
18457         the predicate condition directly
18458         (ipcp_propagate_stage): Added local variable args. Removed local
18459         variable callee.  (Both are mere code simplifications.)
18460         (ipcp_method_dont_insert_const): Renamed to
18461         ipcp_node_not_modifiable_p.
18462         (ipcp_node_not_modifiable_p): Made inline.
18463         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
18464         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
18465         (ipcp_print_all_lattices): Removed variable cvalue
18466         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
18467         Updated comments.
18468
18469 2008-05-06  Olivier Hainque  <hainque@adacore.com>
18470
18471         * tree-sra.c (try_instantiate_multiple_fields): Early return
18472         if field has POINTER_TYPE.
18473
18474 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
18475
18476         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
18477         by using 'q' specifier for instruction.
18478         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
18479
18480 2008-05-06  Anatoly Sokolov <aesok@post.ru>
18481
18482         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
18483         Change mode of zero_extract from QImode to HImode.
18484         (sign bit tests peepholes): (Ditto.).
18485
18486 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
18487
18488         * config/i386/mmx.md: Remove double backslashes from asm templates.
18489         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
18490         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
18491         to handle nonimmediate operands.
18492         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
18493         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
18494         to handle nonimmediate operands.
18495         (*mmx_<code>v2sf3_finite): New insn pattern.
18496         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
18497         (mmx_<code>v2sf3): New expander.  Use
18498         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18499         (mmx_<plusminus_insn><mode>3): New expander.  Use
18500         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18501         (*mmx_<plusminus_insn><mode>3): New insn pattern.
18502         (mmx_add<mode>3): Removed.
18503         (mmx_ssadd<mode>3): Ditto.
18504         (mmx_usadd<mode>3): Ditto.
18505         (mmx_sub<mode>3): Ditto.
18506         (mmx_sssub<mode>3): Ditto.
18507         (mmx_ussub<mode>3): Ditto.
18508         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
18509         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
18510         to handle nonimmediate operands.
18511         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
18512         insn pattern.
18513         (mmx_smulv4hi3_highpart): New expander.  Use
18514         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18515         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
18516         insn pattern.
18517         (mmx_umulv4hi3_highpart): New expander.  Use
18518         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18519         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
18520         (mmx_<code>v4hi3): New expander.  Use
18521         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18522         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
18523         (mmx_<code>v8qi3): New expander.  Use
18524         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18525         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
18526         (mmx_<code><mode>3): New expander.  Use
18527         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18528
18529 2008-05-05  Jan Hubicka  <jh@suse.cz>
18530
18531         PR tree-optimization/36118
18532         * passes.c (pass_init_dump_file): Fix dump header.
18533
18534 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18535
18536         PR middle-end/36141
18537         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
18538         VCE for function decls.
18539
18540 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
18541
18542         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
18543
18544 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
18545
18546         * config/i386/i386.md (sat_plusminus): New.
18547         (plusminus_insn): Likewise.
18548         (plusminus_mnemonic): Likewise.
18549         (addsub): Removed.
18550         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
18551         (*<addsub><mode>3_cc_overflow): Renamed to ...
18552         (*<plusminus_insn><mode>3_cc_overflow): This.
18553         (*<addsub>si3_zext_cc_overflow): Renamed to ...
18554         (*<plusminus_insn>si3_zext_cc_overflow): This.
18555
18556         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
18557         (<plusminus_insn><mode>3): This.
18558         (*<addsub><mode>3): Renamed to ...
18559         (*<plusminus_insn><mode>3): This.
18560         (<sse>_vm<addsub><mode>3): Renamed to ...
18561         (<sse>_vm<plusminus_insn><mode>3): This.
18562         (sse3_h<addsub>v4sf3): Renamed to ...
18563         (sse3_h<plusminus_insn>v4sf3): This.
18564         (sse3_h<addsub>v2df3): Renamed to ...
18565         (sse3_h<plusminus_insn>v2df3): This.
18566         (<plusminus_insn><mode>3): New.
18567         (*<plusminus_insn><mode>3): Likewise.
18568         (sse2_<plusminus_insn><mode>3): Likewise.
18569         (add<mode>): Removed.
18570         (*add<mode>3): Likewise.
18571         (sse2_ssadd<mode>3): Likewise.
18572         (sse2_usadd<mode>3): Likewise.
18573         (sub<mode>3): Likewise.
18574         (*sub<mode>3): Likewise.
18575         (sse2_sssub<mode>3): Likewise.
18576         (sse2_ussub<mode>3): Likewise.
18577
18578 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
18579
18580         * gthr-single.h: Add in required interface elements as per gthr.h.
18581         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
18582         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
18583         Generalize UNUSED macro.
18584         (__gthread_once): Add.
18585         (__gthread_key_create): Add.
18586         (__gthread_key_delete): Add.
18587         (__gthread_getspecific): Add.
18588         (__gthread_setspecific): Add.
18589
18590 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
18591
18592         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
18593         the same size types for the indirect reference on the rhs, then
18594         create a VCE.
18595
18596 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
18597
18598         * config/i386/i386.md
18599         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
18600         one insn template instead of template series.
18601         (*xordi_1_rex64): Ditto.
18602         (*xordi_2_rex64): Ditto.
18603
18604 2008-05-05  Ira Rosen  <irar@il.ibm.com>
18605
18606         PR tree-optimization/36119
18607         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
18608         in case of SLP.
18609
18610 2008-06-04  Jan Hubicka  <jh@suse.cz>
18611
18612         tree-optimization/36100
18613         * tree-pass.h (pass_O0_always_inline): Declare.
18614         * ipa-inline.c (inline_transform): Remove dead code.
18615         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
18616         pass_O0_always_inline): New.
18617         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
18618
18619 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
18620
18621         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
18622         mnemonic in this_param move for TARGET_64BIT.
18623
18624 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
18625
18626         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
18627         (*strmovsi_rex_1): Ditto.
18628         (*strsetsi_1): Ditto.
18629         (*strsetsi_rex_1): Ditto.
18630
18631         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
18632         adddicc expanders using SWI mode iterator.
18633
18634 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
18635
18636         PR target/36121
18637         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
18638         argument handling.
18639
18640 2008-05-04  David S. Miller  <davem@davemloft.net>
18641
18642         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
18643         (sparc*-*-linux*): Use linux.h in tm_file.
18644         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
18645         compiler defaulting to 32-bit.
18646         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
18647         no longer needed.
18648         * config/sparc/linux.h: Remove definitions now obtained
18649         properly from linux.h
18650         * config/sparc/linux64.h: Likewise.
18651         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
18652         don't want this setting for 32-bit builds in a biarch compiler.
18653         * doc/install.texi: Add sparc-linux to list of targets
18654         supporting --enable-targets=all.
18655
18656 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
18657
18658         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
18659
18660 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
18661
18662         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
18663         after V4SI_FTYPE_V8HI.
18664         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
18665         case V4SI_FTYPE_V2DF.
18666
18667 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
18668
18669         * doc/invoke.texi (max-flow-memory-locations): Removed.
18670         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
18671
18672 2008-05-03  Richard Guenther  <rguenther@suse.de>
18673
18674         PR middle-end/34973
18675         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
18676
18677 2008-05-02  David S. Miller  <davem@davemloft.net>
18678
18679         * config.gcc (need_64bit_hwint): Document libcpp dependency.
18680
18681 2008-05-02  Simon Baldwin <simonb@google.com>
18682
18683         PR bootstrap/36108
18684         * c-common.h (warn_array_subscript_range): Removed.
18685         * c-common.c (warn_array_subscript_range): Ditto.
18686         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
18687         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
18688
18689 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
18690
18691         * config/i386/i386.c (ix86_special_builtin_type): New.
18692         (bdesc_special_args): Likewise.
18693         (ix86_expand_special_args_builtin): Likewise.
18694         (ix86_init_mmx_sse_builtins): Updated.
18695         (ix86_expand_builtin): Updated.
18696         (ix86_expand_store_builtin): Removed.
18697         (ix86_expand_unop_builtin): Likewise.
18698
18699         * config/i386/mm3dnow.h (__v2sf): Moved to ...
18700         * config/i386/mmintrin.h (__v2sf): Here.
18701
18702         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
18703         const __v2sf.
18704         (_mm_loadl_pi): Likewise.
18705         (_mm_storeh_pi): Replace __v2si with __v2sf.
18706         (_mm_storel_pi): Likewise.
18707
18708         * doc/extend.texi: Correct __builtin_ia32_loadhps,
18709         __builtin_ia32_loadlps, __builtin_ia32_storehps,
18710         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
18711         __builtin_ia32_loadlpd.
18712
18713 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
18714
18715         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
18716         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
18717         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
18718         (ix86_init_mmx_sse_builtins): Updated.
18719         (ix86_expand_args_builtin): Likewise.
18720         (ix86_expand_builtin): Likewise.
18721         (ix86_expand_unop1_builtin): Renamed to ...
18722         (ix86_expand_unop_vec_merge_builtin): This.
18723
18724 2008-05-01  Jan Hubicka  <jh@suse.cz>
18725
18726         PR bootstrap/36100
18727         * ipa-inline.c (inline_generate_summary): Make static.
18728         (inline_transform): Do not call inlining at -O0; make static.
18729         * passes.c (execute_todo): Add sanity check.
18730         (execute_one_ipa_transform_pass): Execute proper flags.
18731
18732 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
18733
18734         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
18735         (DECL_NONADDRESSABLE_P): Likewise.
18736         * alias.c (record_component_aliases): Fix comment.
18737
18738 2008-05-01  Simon Baldwin <simonb@google.com>
18739
18740         * c-common.h (warn_array_subscript_range): New function.
18741         * c-common.c (warn_array_subscript_range): Ditto.
18742         * tree-vrp.c (check_array_ref): Corrected code to agree with
18743         comment, ignoring only arrays of size 0 or size 1.
18744         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
18745
18746 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18747
18748         * config/i386/i386.c (ix86_builtin_type): Replace
18749         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
18750         (bdesc_args): Updated.
18751         (ix86_init_mmx_sse_builtins): Likewise.
18752         (ix86_expand_args_builtin): Likewise.
18753
18754         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
18755         with __v1di.
18756
18757         * doc/extend.texi: Correct __builtin_ia32_palignr.
18758
18759 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18760
18761         PR target/36095
18762         * config/i386/i386.c (bdesc_crc32): Removed.
18763         (ix86_expand_crc32): Likewise.
18764         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
18765         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
18766         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
18767         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
18768         UINT_FTYPE_UINT_UCHAR.
18769         (bdesc_args): Updated. Add crc32 builtins.
18770         (ix86_init_mmx_sse_builtins): Updated.
18771         (ix86_expand_args_builtin): Updated to support subreg.
18772
18773         * doc/extend.texi: Correct __builtin_ia32_crc32di.
18774
18775 2008-05-01  Jan Hubicka  <jh@suse.cz>
18776
18777         * tree-pass.h (opt_pass): Add IPA_PASS.
18778         (varpool_node, cgraph_node): Forward declare.
18779         (ipa_opt_pass): Define.
18780         (pass_ipa_inline): Turn into ipa_opt_pass.
18781         (pass_apply_inline): Remove.
18782         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
18783         (apply_inline): Turn into ....
18784         (inline_transform): ... this one.
18785         (inline_generate_summary): New function.
18786         (pass_apply_inline): Remove.
18787         * function.h (ipa_opt_pass): Forward declare structure; typedef;
18788         vector.
18789         (struct function): Add ipa_transforms_to_apply.
18790         * passes.c (register_one_dump_file): Work on IPA_PASS.
18791         (init_optimization_passes): Remove pass_inline_parameters and
18792         pass_apply_inline.
18793         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
18794         (execute_one_pass) ... here; apply transforms when possible.
18795         (add_ipa_transform_pass, execute_ipa_summary_asses,
18796         execute_one_ipa_transform_pass): New.
18797         (execute_ipa_pass_list): Update for IPA_PASS type.
18798
18799 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18800
18801         * config/i386/i386.c (ix86_builtin_type): Add
18802         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
18803         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
18804         (bdesc_args): Add SSE4a builtins.
18805         (ix86_init_mmx_sse_builtins): Updated.
18806         (ix86_expand_args_builtin): Likewise.
18807         (ix86_expand_builtin): Likewise.
18808
18809 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18810
18811         * config/i386/i386.c (ix86_builtin_type): Add
18812         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
18813         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
18814         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
18815         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
18816         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
18817         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
18818         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
18819         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
18820         and DI_FTYPE_DI_DI_INT.
18821         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
18822         (ix86_init_mmx_sse_builtins): Updated.
18823         (ix86_expand_args_builtin): Likewise.
18824         (ix86_expand_builtin): Likewise.
18825         (ix86_expand_binop_imm_builtin): Removed.
18826
18827         * doc/extend.texi: Correct __builtin_ia32_palignr128.
18828
18829 2008-04-30  Richard Guenther  <rguenther@suse.de>
18830
18831         PR tree-optimization/32921
18832         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
18833
18834 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
18835
18836         * config/arm/arm.c (arm_unwind_emit): Use
18837         crtl->all_throwers_are_sibcalls instead of
18838         cfun->all_throwers_are_sibcalls.
18839         (arm_output_fn_unwind): Likewise.
18840         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
18841         instead of cfun->uses_pic_offset_table.
18842         (frv_expand_prologue): Likewise.
18843         (frv_frame_pointer_required): Likewise.
18844         (frv_expand_fdpic_call): Likewise.
18845         (frv_emit_movsi): Likewise.
18846         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
18847         cfun->returns_pcc_struct instead of
18848         current_function_returns_pcc_struct.
18849         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
18850         instead of cfun->calls_eh_return.
18851         (m32c_pushm_popm): Likewise.
18852         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
18853         "extern" declaration.
18854
18855 2008-04-30  Richard Guenther  <rguenther@suse.de>
18856
18857         PR tree-optimization/21636
18858         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
18859         constant address.
18860         (evaluate_stmt): Print the likely value.
18861         (ccp_visit_stmt): Avoid excessive vertical spacing.
18862
18863 2008-04-30  Rafael Espíndola  <espindola@google.com>
18864
18865         * builtins.c (fold_call_expr): Return realret.
18866         * tree-ssa-threadedge.c
18867         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
18868         __builtin_object_size.
18869
18870 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
18871
18872         * gcc.c (wrapper_string): New variable.
18873         (insert_wrapper): New function.
18874         (execute): New option -wrapper.
18875         * doc/invoke.texi (Overall Options): New driver option -wrapper.
18876
18877 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
18878
18879         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
18880         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
18881         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
18882         from...
18883         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
18884         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
18885         config/rs6000/e500crtres64gprctr.asm,
18886         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
18887         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
18888         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
18889         config/rs6000/e500crtsav64gprctr.asm,
18890         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
18891         config/rs6000/e500crtsavg64gprctr.asm: New files.
18892         * config/rs6000/t-ppccomm: Add build rules for new files.
18893         (LIB2FUNCS_STATIC_EXTRA): Add new files.
18894         * config/rs6000/t-netbsd: Add build rules for new files.
18895         (LIB2FUNCS_STATIC_EXTRA): New variable.
18896         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
18897         (CRTSAVRES_DEFAULT_SPEC): Likewise.
18898         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18899
18900 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
18901
18902         * config/i386/i386.c (ix86_builtin_type): Add
18903         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
18904         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
18905         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
18906         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
18907         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
18908         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
18909         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
18910         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
18911         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
18912         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
18913         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
18914         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
18915         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
18916         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
18917         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
18918         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
18919         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
18920         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
18921         V1DI_FTYPE_V2SI_V2SI.
18922         (bdesc_2arg): Moved to ...
18923         (bdesc_args): Here.
18924         (ix86_init_mmx_sse_builtins): Updated.
18925         (ix86_expand_args_builtin): Updated.  Take a pointer
18926         to const struct builtin_description.  Handle comparison
18927         builtin functions.
18928         (ix86_expand_sse_compare): Take a new argument for swapping operands.
18929         (ix86_expand_builtin): Updated.
18930
18931         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
18932         (ssse3_pmaddubsw128): This.
18933         (ssse3_pmaddubswv4hi3): Renamed to ...
18934         (ssse3_pmaddubsw): This.
18935
18936         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
18937         (__builtin_ia32_packssdw128): Likewise.
18938         (__builtin_ia32_packuswb128): Likewise.
18939         (__builtin_ia32_pmaddubsw): Likewise.
18940         (__builtin_ia32_pmaddubsw128): Likewise.
18941
18942 2008-04-30  Richard Guenther  <rguenther@suse.de>
18943
18944         PR tree-optimization/14847
18945         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
18946         (recognize_bits_test): Use it.
18947         (recognize_single_bit_test): Likewise.
18948
18949 2008-04-30  Martin Jambor  <mjambor@suse.cz>
18950
18951         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
18952         instead of setting number of formal parameters to zero.
18953         (ipcp_init_stage): Do not set the number of actual parameters to zero
18954         either.
18955         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
18956         which are called with variable number of arguments.
18957         (ipcp_insert_stage): Explicitely skipping all nodes which are
18958         called with variable number of arguments.
18959         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
18960         number of parameters.
18961
18962         * ipa-prop.h (struct ipa_node_params): Added flag
18963         called_with_var_arguments
18964         (ipa_set_param_count): Added.  Changed sole setter to use it.
18965         (ipa_get_param_count): Added.  All readers of param_count
18966         converted to use it instead.
18967         (ipa_set_called_with_variable_arg): Added.
18968         (ipa_is_called_with_var_arguments): Added.
18969         (ipa_get_ith_param): Added.  All readers of param_decls converted
18970         to use it instead.
18971         (ipa_set_cs_argument_count): Added, sole writer to argument_count
18972         changed to use it.
18973         (ipa_get_cs_argument_count): Added, all readers of argument_count
18974         changed to cal it.
18975         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
18976         to use it.
18977
18978         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
18979         (struct ipcp_lattice): Renamed cval_type to type
18980         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
18981
18982         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
18983         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
18984         (ipcp_insert_stage): Changed the type of variable cvalue to tree
18985         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
18986         (build_const_val): Changed the type of parameter cvalue to tree
18987         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
18988         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
18989
18990         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
18991         constant
18992
18993         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
18994         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
18995         (ipa_add_method): Renamed to ipa_push_func_to_list
18996         (ipa_remove_method): Renamed to ipa_pop_func_from_list
18997         (ipa_callsite_param_count): Removed.
18998         (ipa_callsite_param_count_set): Removed.
18999         (ipa_callsite_param): Removed.
19000         (ipa_callsite_callee): Removed.
19001         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
19002         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
19003         (ipa_method_formal_count): Removed.
19004         (ipa_method_formal_count_set): Removed.
19005         (ipa_method_get_tree): Removed.
19006         (ipa_method_tree_map_create): Removed.
19007         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
19008         (ipa_create_param_decls_array): Creates the array itself
19009         (ipa_create_param_decls_array): Temporary variable info instead of
19010         a few dereferences.
19011         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
19012         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
19013         (get_type): Removed.
19014         (ipa_jf_get_info_type): Removed.
19015         (ipa_node_create): Renamed to ipa_create_node_params
19016         (ipa_free): Renamed to ipa_free_all_node_params
19017         (ipa_nodes_create): Renamed to ipa_create_all_node_params
19018         (ipa_edges_create): Renamed to ipa_create_all_edge_args
19019         (ipa_edges_free): Renamed to ipa_free_all_edge_args
19020         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
19021         (ipa_free_all_node_params): Deallocation to jump_functions moved to
19022         ipa_free_all_edge_args
19023         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
19024         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
19025         (ipa_create_methodlist_node): Removed.
19026         (ipa_methodlist_method): Removed.
19027         (ipa_methodlist_method_set): Removed.
19028         (ipa_methodlist_next_method): Removed.
19029         (ipa_methodlist_next_method_set): Removed.
19030         (ipa_method_is_modified): Removed.
19031         (ipa_method_modify_create): Removed.
19032         (ipa_method_modify_init): Temporary variable info instead of a few
19033         dereferences.
19034         (ipa_detect_param_modifications): Temporary variable info instead of
19035         a few dereferences.
19036         (ipa_compute_jump_functions): Temporary variable info instead of
19037         a few dereferences.
19038         (ipa_method_modify_set): Removed.
19039         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
19040         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
19041         than craph_node as the first parameter.
19042         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
19043         (ipa_method_modify_init): Removed.
19044         (ipa_compute_jump_functions): Added a temp variable instead of
19045         repeatadly dereferencing the cgraph_edge.aux pointer
19046         (ipa_callsite_param_set_type): Removed.
19047         (ipa_compute_jump_functions): i renamed to index and moved to
19048         an inner block
19049         (ipa_callsite_param_set_info_type_formal): Removed.
19050         (ipa_callsite_param_set_info_type): Removed.
19051         (ipa_callsite_param_map_create): Removed.
19052         (ipa_callsite_tree): Removed.
19053         (ipa_callsite_caller): Removed.
19054         (ipa_pop_func_from_list): return_method removed to return_func
19055
19056         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
19057         prefixed all values with IPA_. Changed all users.
19058         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
19059         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
19060         and FORMAL_IPATYPE IPA_PASS_THROUGH.
19061         (union parameter_info): Renamed to jump_func_value.
19062         (union jump_func_value): Renamed value to constant
19063         (struct ipa_jump_func): Renamed info_type to value
19064         (struct ipa_node): Renamed to ipa_node_params
19065         (struct ipa_node_params): Renamed ipa_arg_num to param_count
19066         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
19067         (struct ipa_node_params): Renamed ipa_mod to modified_flags
19068         (struct ipa_edge): Renamed to ipa_edge_args
19069         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
19070         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
19071         (struct ipa_methodlist): Renamed to ipa_func_list
19072         (struct ipa_func_list): method_p renamed to node, next_method
19073         renamed to next
19074         (ipa_methodlist_p): Removed, switched all users to struct pointer
19075         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
19076
19077 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
19078
19079         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
19080         (rs6000_emit_epilogue): Use backchain to restore only when we
19081         have a large frame.  Make use of frame pointer to restore if we
19082         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
19083
19084 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
19085
19086         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
19087         Add mode to zero_extract.
19088         (sign bit tests peepholes): (Ditto.).
19089
19090 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19091
19092         * config/i386/i386.c (ix86_builtins): Replace Prescott New
19093         Instructions in comments with SSE3.
19094         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
19095         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
19096         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
19097         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
19098         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
19099         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
19100         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
19101         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
19102         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
19103         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
19104         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
19105         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
19106         (bdesc_sse_args): Renamed to ...
19107         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
19108         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
19109         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
19110         IX86_BUILTIN_FABSQ.
19111         (bdesc_1arg): Moved to ...
19112         (bdesc_args): Here.
19113         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
19114         Instructions in comments with SSE3.
19115         (ix86_expand_sse_operands_builtin): Renamed to ...
19116         (ix86_expand_args_builtin): This.  Updated.
19117         (ix86_expand_unop1_builtin): Update comments.
19118         (ix86_expand_builtin): Updated.
19119
19120 2008-04-29  Richard Guenther  <rguenther@suse.de>
19121
19122         PR tree-optimization/36078
19123         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
19124         Update virtual SSA form after cleaning up the CFG.
19125
19126 2008-04-29  Richard Guenther  <rguenther@suse.de>
19127
19128         PR middle-end/15255
19129         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
19130
19131 2008-04-29  Richard Guenther  <rguenther@suse.de>
19132
19133         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
19134         (compute_may_aliases): Do not call finalize_ref_all_pointers.
19135         (compute_flow_insensitive_aliasing): Do not treat
19136         PTR_IS_REF_ALL pointers special.
19137         (get_smt_for): Likewise.
19138         (may_alias_p): Re-structure.
19139         (is_escape_site): A ref-all pointer conversion is not an escape site.
19140         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
19141         PTR_IS_REF_ALL pointers special.
19142         * tree-ssa-structalias.h (struct alias_info): Remove
19143         ref_all_symbol_mem_tag field.
19144         (PTR_IS_REF_ALL): Remove.
19145
19146 2008-04-29  Richard Guenther  <rguenther@suse.de>
19147
19148         PR middle-end/36077
19149         * fold-const.c (extract_muldiv_1): In combining division constants
19150         make sure to never overflow.
19151
19152 2008-04-29  Nick Clifton  <nickc@redhat.com>
19153
19154         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
19155
19156 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19157
19158         PR bootstrap/35169
19159         * optc-gen.awk: Work around HP-UX/IA awk bug.
19160
19161 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
19162
19163         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
19164         2008-04-25 commit.
19165
19166 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
19167
19168         PR target/36073
19169         * config/i386/i386.md
19170         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
19171         Change operand 1 predicate to nonimmediate_operand.
19172
19173 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
19174
19175         PR debug/36060
19176         * dwarf2out.c (struct die_struct): Mark as chain_circular through
19177         die_sub field.
19178         * gengtype.c (walk_type, write_func_for_structure): Handle
19179         chain_circular.
19180         * doc/gty.texi: Document chain_circular.
19181
19182 2008-04-28  Richard Guenther  <rguenther@suse.de>
19183
19184         PR tree-optimization/36066
19185         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
19186         SCEV and loop.
19187
19188 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
19189
19190         PR target/36064
19191         * config/i386/i386.md
19192         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
19193         Use match_scratch instead of match_operand for operands 3 and 4.
19194
19195 2008-04-27  Richard Guenther  <rguenther@suse.de>
19196
19197         PR tree-optimization/18754
19198         PR tree-optimization/34223
19199         * tree-pass.h (pass_complete_unrolli): Declare.
19200         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
19201         loop size before and after unconditionally of UL_NO_GROWTH in effect.
19202         Rewrite loop into loop closed SSA form if it is not already.
19203         (tree_unroll_loops_completely): Re-structure to iterate over
19204         innermost loops with intermediate CFG cleanups.
19205         Unroll outermost loops only if requested or the code does not grow
19206         doing so.
19207         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
19208         loops are available.
19209         (tree_vectorize): Instead do so here.
19210         (tree_complete_unroll): Also unroll outermost loops.
19211         (tree_complete_unroll_inner): New function.
19212         (gate_tree_complete_unroll_inner): Likewise.
19213         (pass_complete_unrolli): New pass.
19214         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
19215         uses outside of the loop.
19216         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
19217         form if it is available.
19218         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
19219         * passes.c (init_optimization_passes): Schedule complete inner
19220         loop unrolling pass before the first CCP pass after final inlining.
19221
19222 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
19223
19224         * targhooks.h (default_emutls_var_fields,
19225         default_emutls_var_init): Declare.
19226         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
19227         * target.h (struct gcc_target): Add struct emutls member.
19228         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
19229         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
19230         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
19231         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
19232         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
19233         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
19234         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
19235         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
19236         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
19237         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
19238         emit debug information.
19239         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
19240         * varasm.c: Include targhooks.h.
19241         (emutls_object_section, emutls_tmpl_section): New.
19242         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
19243         (EMUTLS_SEPARATOR): New.
19244         (prefix_name): New.
19245         (get_emutls_object_name): New.
19246         (default_emutls_var_fields): New, broken out of ...
19247         (get_emutls_object_type): ... here.  Adjust to use target hooks.
19248         (get_emutls_init_templ_addr): Adjust to use target hooks.
19249         (emutls_decl): Adjust to use target hooks.
19250         (emutls_finish): Likewise.
19251         (default_emutls_var_init): New, broken out of ...
19252         (assemble_variable): ... here.  Adjust to use target hooks.
19253         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
19254         SECCAT_EMUTLS_TMPL.
19255         * c-common.c (handle_section_attribute): Prevent overriding
19256         sections for emulated tls with special sections.
19257         * config/i386/i386.c (x86_64_elf_select_section): Add
19258         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
19259         (x86_64_elf_unique_section): Likewise.
19260         * config/vxworks.c: Include tree.h.
19261         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
19262         (vxworks_override_options): Set TLS scheme.
19263         * doc/tm.texi (Emulated TLS): New node.
19264
19265 2008-04-26  Simon Baldwin <simonb@google.com>
19266
19267         PR c/35652
19268         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
19269         with propagated string constants.
19270
19271 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
19272
19273         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
19274         constraint for operand 2 when operand 0 is memory operand.
19275         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
19276         operand 0 is memory operand.
19277         (fix_trunc<mode>_i387_with_temp): Ditto.
19278         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
19279         operand 2 when operand 1 is memory operand.
19280         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
19281         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
19282         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
19283         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
19284         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
19285         operands 2,3 and 4 when operand 1 is memory operand.
19286         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
19287         is memory operand.
19288         (fistdi2_floor_with_temp): Ditto.
19289         (fist<mode>2_floor_with_temp): Ditto.
19290         (fistdi2_ceil_with_temp): Ditto.
19291         (fist<mode>2_ceil_with_temp): Ditto.
19292         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
19293
19294 2008-04-26  David Daney  <ddaney@avtrex.com>
19295
19296         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
19297         unspec_volitile.
19298         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
19299         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
19300         UNSPEC_UPDATE_GOT_VERSION): Renumber.
19301         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
19302         (compare_and_swap_12): New insn.
19303         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
19304         * config/mips/mips.c (mips_force_binary): New function.
19305         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
19306         (mips_expand_compare_and_swap_12): New function.
19307         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
19308
19309 2008-04-25  Jan Hubicka  <jh@suse.cz>
19310
19311         PR testsuite/35843
19312         * cfgexpand.c (pass_expand): Turn into RTL pass.
19313         * passes.c (execute_one_pass): Do pass typechecking after execution.
19314         * tree-pass.h (pass_expand): Turn into RTL pass.
19315
19316         * function.h (struct rtl_data): Move here fields
19317         accesses_prior_frames, calls_eh_return, saves_all_registers,
19318         has_nonlocal_goto, has_asm_statement, is_thunk,
19319         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
19320         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
19321         arg_pointer_save_area_init from struct function; turn into bool.
19322         (struct function): Move
19323         calls_eh_return, saves_all_registers, has_nonlocal_goto,
19324         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
19325         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
19326         tail_call_emit, arg_pointer_save_area_init
19327         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
19328         (current_function_returns_struct, current_function_returns_pcc_struct,
19329         current_function_calls_setjmp, current_function_calls_alloca,
19330         current_function_accesses_prior_frames,
19331         current_function_calls_eh_return, current_function_is_thunk,
19332         current_function_stdarg, current_function_profile,
19333         current_function_limit_stack, current_function_uses_pic_offset_table,
19334         current_function_uses_const_pool, current_function_has_nonlocal_label,
19335         current_function_saves_all_registers,
19336         current_function_has_nonlocal_goto,
19337         current_function_has_asm_statement): Remove accesor macros.
19338         * ra-conflict.c (global_conflicts): Update.
19339         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
19340         (suitable_for_tail_call_opt_p): Update.
19341         * builtins.c (expand_builtin_return_addr): Update.
19342         (expand_builtin_setjmp_setup): Update.
19343         (expand_builtin_nonlocal_goto): Update.
19344         * final.c (final_start_function): Update.
19345         (profile_function): Update.
19346         (leaf_function_p): Update.
19347         (only_leaf_regs_used): Update.
19348         * df-scan.c (df_get_exit_block_use_set): Update.
19349         * dojump.c (clear_pending_stack_adjust): Update.
19350         * tree-stdarg.c (gate_optimize_stdarg): Update.
19351         * gimple-low.c (lower_function_body): Update.
19352         * global.c (compute_regsets): Update.
19353         (global_alloc): Update.
19354         * dwarf2out.c (dwarf2out_begin_prologue): Update.
19355         * expr.c (expand_assignment): Update.
19356         * dse.c (dse_step0): Update.
19357         (dse_step1): Update.
19358         * c-decl.c (store_parm_decls): Update.
19359         * local-alloc.c (combine_regs): Update.
19360         (find_free_reg): Update.
19361         * function.c (assign_parms_augmented_arg_list): Update.
19362         (assign_parm_find_data_types): Update.
19363         (assign_parms): Update.
19364         (allocate_struct_function): Update.
19365         (expand_function_start): Update.
19366         (expand_function_end): Update.
19367         (get_arg_pointer_save_area): Update.
19368         (thread_prologue_and_epilogue_insns): Update.
19369         (rest_of_match_asm_constraints): Update.
19370         * stor-layout.c (variable_size): Update.
19371         * gcse.c (gcse_main): Update.
19372         (bypass_jumps): Update.
19373         * gimplify.c (gimplify_function_tree): Update.
19374         * calls.c (emit_call_1): Update.
19375         (expand_call): Update.
19376         * bt-load.c (compute_defs_uses_and_gen): Update.
19377         * except.c (sjlj_assign_call_site_values): Update.
19378         (sjlj_emit_function_enter): Update.
19379         (can_throw_external): Update.
19380         (set_nothrow_function_flags): Update.
19381         (expand_builtin_unwind_init): Update.
19382         (expand_eh_return): Update.
19383         (convert_to_eh_region_ranges): Update.
19384         (output_function_exception_table): Update.
19385         * emit-rtl.c (gen_tmp_stack_mem): Update.
19386         * cfgexpand.c (expand_used_vars): Update.
19387         (tree_expand_cfg): Update.
19388         * cfgcleanup.c (rest_of_handle_jump): Update.
19389         * explow.c (allocate_dynamic_stack_space): Update.
19390         * varasm.c (assemble_start_function): Update.
19391         (force_const_mem): Update.
19392         (mark_constant_pool): Update.
19393         * tree-optimize.c (tree_rest_of_compilation): Update.
19394         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
19395         * tree-cfg.c (notice_special_calls): Update.
19396         (is_ctrl_altering_stmt): Update.
19397         (tree_can_make_abnormal_goto): Update.
19398         (tree_purge_dead_abnormal_call_edges): Update.
19399         * config/alpha/predicates.md: Update.
19400         * config/alpha/alpha.c (alpha_sa_mask): Update.
19401         (alpha_sa_size): Update.
19402         (alpha_does_function_need_gp): Update.
19403         (alpha_expand_prologue): Update.
19404         (alpha_start_function): Update.
19405         (alpha_output_function_end_prologue): Update.
19406         (alpha_expand_epilogue): Update.
19407         * config/frv/frv.c (frv_stack_info): Update.
19408         (frv_expand_epilogue): Update.
19409         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
19410         (s390_register_info): Update.
19411         (s390_frame_info): Update.
19412         (s390_init_frame_layout): Update.
19413         (s390_can_eliminate): Update.
19414         (save_gprs): Update.
19415         * config/spu/spu.c (spu_split_immediate): Update.
19416         (need_to_save_reg): Update.
19417         (spu_expand_prologue): Update.
19418         (spu_expand_epilogue): Update.
19419         * config/sparc/sparc.md: Update.
19420         * config/sparc/sparc.c (eligible_for_return_delay): Update.
19421         (sparc_tls_got): Update.
19422         (legitimize_pic_address): Update.
19423         (sparc_emit_call_insn): Update.
19424         (sparc_expand_prologue): Update.
19425         (output_return): Update.
19426         (print_operand): Update.
19427         (sparc_function_ok_for_sibcall): Update.
19428         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
19429         * config/m32r/m32r.md: Update.
19430         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
19431         (m32r_compute_frame_size): Update.
19432         (m32r_expand_prologue): Update.
19433         (m32r_expand_epilogue): Update.
19434         (m32r_legitimize_pic_address): Update.
19435         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
19436         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
19437         * config/i386/i386.c (ix86_frame_pointer_required): Update.
19438         (gen_push): Update.
19439         (ix86_save_reg): Update.
19440         (ix86_compute_frame_layout): Update.
19441         (ix86_expand_prologue): Update.
19442         (ix86_expand_epilogue): Update.
19443         * config/sh/sh.c (output_stack_adjust): Update.
19444         (calc_live_regs): Update.
19445         (sh5_schedule_saves): Update.
19446         (sh_expand_prologue): Update.
19447         (sh_expand_epilogue): Update.
19448         (sh_setup_incoming_varargs): Update.
19449         (sh_allocate_initial_value): Update.
19450         (sh_get_pr_initial_val): Update.
19451         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
19452         * config/sh/sh.md (label:): Update.
19453         * config/avr/avr.c (out_movhi_mr_r): Update.
19454         * config/crx/crx.h (enum): Update.
19455         * config/xtensa/xtensa.h (along): Update.
19456         * config/stormy16/stormy16.c Update.
19457         (xstormy16_compute_stack_layout): Update.
19458         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
19459         (fr30_expand_prologue): Update.
19460         * config/cris/cris.c (cris_conditional_register_usage): Update.
19461         (cris_reg_saved_in_regsave_area): Update.
19462         (cris_initial_frame_pointer_offset): Update.
19463         (cris_simple_epilogue): Update.
19464         (cris_expand_prologue): Update.
19465         (cris_expand_epilogue): Update.
19466         (cris_expand_pic_call_address): Update.
19467         (cris_asm_output_symbol_ref): Update.
19468         (cris_asm_output_label_ref): Update.
19469         * config/cris/cris.md Update.
19470         * config/iq2000/iq2000.c (compute_frame_size): Update.
19471         (iq2000_expand_epilogue): Update.
19472         * config/mt/mt.h (save_direction): Update.
19473         * config/mn10300/mn10300.c (mn10300_function_value): Update.
19474         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
19475         (ia64_secondary_reload_class): Update.
19476         * config/m68k/m68k.c (m68k_save_reg): Update.
19477         (m68k_expand_prologue): Update.
19478         (m68k_expand_epilogue): Update.
19479         (legitimize_pic_address): Update.
19480         * config/rs6000/rs6000.c (rs6000_got_register): Update.
19481         (first_reg_to_save): Update.
19482         (first_altivec_reg_to_save): Update.
19483         (compute_vrsave_mask): Update.
19484         (compute_save_world_info): Update.
19485         (rs6000_stack_info): Update.
19486         (spe_func_has_64bit_regs_p): Update.
19487         (rs6000_ra_ever_killed): Update.
19488         (rs6000_emit_eh_reg_restore): Update.
19489         (rs6000_emit_allocate_stack): Update.
19490         (rs6000_emit_prologue): Update.
19491         (rs6000_emit_epilogue): Update.
19492         (rs6000_output_function_epilogue): Update.
19493         (output_profile_hook): Update.
19494         (rs6000_elf_declare_function_name): Update.
19495         * config/rs6000/rs6000.h (rs6000_args): Update.
19496         * config/rs6000/rs6000.md: Update.
19497         * config/mcore/mcore.c (mcore_expand_prolog): Update.
19498         * config/arc/arc.c (arc_output_function_epilogue): Update.
19499         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
19500         * config/darwin.c (machopic_function_base_name): Update.
19501         * config/score/score3.c (score3_compute_frame_size): Update.
19502         (rpush): Update.
19503         (rpop): Update.
19504         (score3_epilogue): Update.
19505         * config/score/score7.c (score7_compute_frame_size): Update.
19506         (score7_prologue): Update.
19507         (score7_epilogue): Update.
19508         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
19509         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
19510         * config/arm/arm.c (use_return_insn): Update.
19511         (require_pic_register): Update.
19512         (arm_load_pic_register): Update.
19513         (arm_compute_save_reg0_reg12_mask): Update.
19514         (arm_compute_save_reg_mask): Update.
19515         (thumb1_compute_save_reg_mask): Update.
19516         (output_return_instruction): Update.
19517         (arm_output_function_prologue): Update.
19518         (arm_output_epilogue): Update.
19519         (arm_get_frame_offsets): Update.
19520         (arm_expand_prologue): Update.
19521         (thumb_pushpop): Update.
19522         (thumb_exit): Update.
19523         (thumb1_expand_prologue): Update.
19524         (thumb1_expand_epilogue): Update.
19525         (arm_unwind_emit): Update.
19526         (arm_output_fn_unwind): Update.
19527         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
19528         * config/arm/arm.md: Update.
19529         * config/pa/pa.md: Update.
19530         * config/pa/pa.c (legitimize_pic_address): Update.
19531         (compute_frame_size): Update.
19532         (hppa_expand_prologue): Update.
19533         (hppa_expand_epilogue): Update.
19534         (borx_reg_operand): Update.
19535         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
19536         (HARD_REGNO_RENAME_OK): Update.
19537         * config/mips/mips.c (mips_global_pointer): Update.
19538         (mips_save_reg_p): Update.
19539         (mips_compute_frame_info): Update.
19540         (mips_frame_pointer_required): Update.
19541         (mips_expand_prologue): Update.
19542         (mips_expand_epilogue): Update.
19543         (mips_can_use_return_insn): Update.
19544         (mips_reorg_process_insns): Update.
19545         * config/v850/v850.c (compute_register_save_size): Update.
19546         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
19547         * config/mmix/mmix.c (along): Update.
19548         (mmix_expand_epilogue): Update.
19549         * config/bfin/bfin.c (legitimize_pic_address): Update.
19550         (must_save_p): Update.
19551         (stack_frame_needed_p): Update.
19552         (add_to_reg): Update.
19553         (bfin_expand_prologue): Update.
19554         * stmt.c (expand_asm_operands): Update.
19555         * reload1.c (reload): Update.
19556         (init_elim_table): Update.
19557
19558 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
19559
19560         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
19561
19562 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
19563
19564         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
19565         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
19566         (mov<mode>): Removed.
19567         (*movv4sf_internal): Likewise.
19568         (*movv2df_internal): Likewise.
19569
19570 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
19571
19572         * config.gcc (crx-*-elf): Remove deprecation.
19573
19574 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
19575
19576         * config/i386/cygming-crtend.c (register_frame_ctor): Register
19577         __gcc_deregister_frame with atexit.
19578         (deregister_frame_dtor): Remove.
19579
19580 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
19581             Nathan Sidwell  <nathan@codesourcery.com>
19582
19583         * config/rs6000/rs6000.opt (mspe): Remove Var property.
19584         (misel): Likewise.
19585         * config/rs6000/rs6000.h (rs6000_spe): Declare.
19586         (rs6000_isel): Likewise.
19587         * config/rs6000/rs6000.c (rs6000_spe): New variable.
19588         (rs6000_isel): New variable.
19589         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
19590
19591 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
19592
19593         PR c++/35758
19594         * c-common.c (handle_vector_size_attribute): Call
19595         lang_hooks.types.reconstruct_complex_type instead of
19596         reconstruct_complex_type.
19597         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
19598         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
19599         * langhooks.h (struct lang_hooks_for_types): Add
19600         reconstruct_complex_type hook.
19601         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
19602         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
19603
19604 2008-04-24  Richard Guenther  <rguenther@suse.de>
19605
19606         * c-common.h (check_builtin_function_arguments): Declare.
19607         * c-common.c (validate_nargs): New function.
19608         (check_builtin_function_arguments): Likewise.
19609         * c-typeck.c (build_function_call): Call
19610         check_builtin_function_arguments.
19611         * builtins.c (fold_builtin_classify): Remove error reporting code.
19612         (fold_builtin_unordered_cmp): Likewise.
19613         (fold_builtin_1): Likewise.
19614         (fold_builtin_n): Likewise.
19615
19616 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
19617
19618         PR tree-optimization/36008
19619         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
19620         the original op1, rather than delta by step.
19621
19622 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
19623             Sebastian Pop  <sebastian.pop@amd.com>
19624
19625         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
19626         eliminate_local_variables_stmt, eliminate_local_variables,
19627         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
19628         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
19629         of code delimited by two edges in the CFG.
19630         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
19631         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
19632         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
19633         the case of parallelisation of reductions.
19634         (expr_invariant_in_region_p): New.
19635
19636         * tree-flow.h (gather_blocks_in_sese_region): Declared.
19637         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
19638
19639 2008-04-24  Ira Rosen  <irar@il.ibm.com>
19640             Richard Guenther  <rguenther@suse.de>
19641
19642         PR tree-optimization/36034
19643         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
19644         incapable of dealing with loads with gaps.
19645
19646 2008-04-24  Rafael Espíndola  <espindola@google.com>
19647
19648         * tree-flow.h (vrp_evaluate_conditional): Change signature.
19649         * tree-ssa-propagate.c (fold_predicate_in): Update call to
19650         vrp_evaluate_conditional.
19651         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
19652         (vrp_evaluate_conditional): Split the cond argument.
19653         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
19654         (simplify_stmt_for_jump_threading): Update call to
19655         vrp_evaluate_conditional.
19656
19657 2008-04-24  Ira Rosen  <irar@il.ibm.com>
19658
19659         PR tree-optimization/35982
19660         * tree-vect-analyze.c (vect_check_interleaving): Check that the
19661         interleaved data-refs are of the same type.
19662
19663 2008-04-24  Danny Smith  <dannysmith@users.net>
19664
19665         * c-format.c (check_format_info_main): Use strncmp rather than a
19666         magic prefix to handle multichar length specs.
19667         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
19668         Don't prefix "I64" and "I32" with '\0'.
19669
19670 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
19671
19672         PR target/36015
19673         * config/i386/i386.c (init_cumulative_args): Don't pass anything
19674         in registers for -m32 only if stdarg_p (fntype).
19675
19676 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
19677
19678         PR rtl-optimization/36006
19679         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
19680         temp to op0 in order to avoid invalid rtx sharing.
19681
19682 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
19683
19684         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
19685         check TREE_INVARIANT.
19686         * tree-gimple.c (is_gimple_address): New.
19687         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
19688         * tree-gimple.h (is_gimple_address): New.
19689         * tree.h (decl_address_invariant_p): New.
19690         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
19691         (build_string): Likewise.
19692         (decl_address_invariant_p): New, from is_gimple_invariant_address.
19693         (tree_invariant_p_1): Likewise.
19694         (save_expr): Use it.
19695         (tree_invariant_p): New.
19696         (skip_simple_arithmetic): Use it.
19697         (stabilize_reference_1): Use it.
19698         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
19699         simplify.
19700         (build1_stat): Drop code to compute TREE_INVARIANT.
19701         (build2_stat): Drop code to compute TREE_INVARIANT.
19702         (build3_stat): Drop code to compute TREE_INVARIANT.
19703         (build4_stat): Drop code to compute TREE_INVARIANT.
19704         (build5_stat): Drop code to compute TREE_INVARIANT.
19705         (build7_stat): Drop code to compute TREE_INVARIANT.
19706         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
19707         * tree.h (struct tree_base): Remove invariant_flag.
19708         (TREE_INVARIANT): Remove.
19709         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
19710         (fold_builtin_expect): Check TREE_CONSTANT.
19711         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
19712         * c-tree.h (c_expr_to_decl): Drop third parameter.
19713         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
19714         (build_c_cast): Don't set TREE_INVARIANT.
19715         (pop_init_level): Don't set TREE_INVARIANT.
19716         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
19717         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
19718         TREE_CONSTANT.
19719         (gimplify_init_constructor): Don't set TREE_INVARIANT.
19720         (gimplify_addr_expr): Adjust comment.
19721         * tree-mudflap.c (mf_build_string):
19722         * print-tree.c (print_node): Don't print TREE_INVARIANT.
19723         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
19724         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
19725         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
19726         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
19727         * langhooks.h (struct lang_hooks): Drop third parameter from
19728         expr_to_decl.
19729
19730 2008-04-23  Richard Guenther  <rguenther@suse.de>
19731
19732         PR tree-optimization/27799
19733         PR tree-optimization/32921
19734         PR tree-optimization/32624
19735         * tree-ssa-structalias.c (merge_smts_into): Only merge the
19736         SMTs aliases and the tag itself into the solution.
19737         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
19738         merge the points-to solution back into the SMT aliases.
19739         (may_alias_p): Use alias_set_subset_of instead of
19740         aliases_conflict_p.  A pointer which points to
19741         memory with alias set zero may access any variable.
19742
19743 2008-04-23  Richard Guenther  <rguenther@suse.de>
19744
19745         * alias.c (alias_set_subset_of): Correctly handle asking
19746         if zero is a subset of an alias set with zero child.
19747         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
19748         (compute_flow_insensitive_aliasing): Correctly walk all
19749         pointers.  Do not unnecessarily union sets.
19750
19751 2008-04-23  Richard Guenther  <rguenther@suse.de>
19752
19753         PR middle-end/36021
19754         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
19755
19756 2008-04-22  Tomas Bily  <tbily@suse.cz>
19757
19758         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
19759         unreachable case.
19760         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
19761         NON_LVALUE_EXPR.
19762         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19763         * tree-ssa-structalias.c (get_constraint_for): Likewise.
19764         * tree-inline.c (estimate_num_insns_1): Likewise.
19765         * varasm.c (const_hash_1, compare_constant, copy_constant)
19766         (compute_reloc_for_constant, output_addressed_constants): Likewise.
19767         * emit-rtl.c (component_ref_for_mem_expr)
19768         (set_mem_attributes_minus_bitpos): Likewise.
19769         * expr.c (highest_pow2_factor, expand_expr_real_1, )
19770         (is_aligning_offset): Likewise.
19771         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
19772         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19773         * dojump.c (do_jump): Likewise.
19774         * builtins.c (get_pointer_alignment, get_memory_rtx)
19775         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
19776         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
19777
19778 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
19779
19780         PR rtl-optimization/36017
19781         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
19782         expanding the library call.
19783
19784 2008-04-22  Ian Lance Taylor  <iant@google.com>
19785
19786         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
19787         than size_in_bytes.
19788
19789 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
19790
19791         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
19792         of LR/CTR moves for Power6.
19793
19794 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
19795
19796         PR middle-end/36003
19797         * passes.c (init_optimization_passes): Remove
19798         pass_fast_rtl_byte_dce.
19799
19800 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
19801
19802         PR target/29096
19803         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
19804         builtin functions to generate faster code.
19805         (_mm_cvtpu16_ps): Ditto.
19806         (_mm_cvtpi32x2_ps): Ditto.
19807
19808 2008-04-22  Nick Clifton  <nickc@redhat.com>
19809
19810         * common.opt (ftree-loop-distribution): Add Optimization
19811         attribute.
19812
19813         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
19814         (frv_expand_builtin_va_start): Likewise.
19815
19816         * config/arm/arm.c (thumb_find_work_register): Fix location of
19817         argument register count.
19818
19819 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
19820
19821         Support scheduling for ColdFire V1 and V3 microarchitecture.
19822         Improve scheduling of multiplication instructions.
19823
19824         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
19825         (mac): New instruction attribute.
19826         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
19827         (m68k_sched_mac): New variable.
19828         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
19829         Handle cfv1 and cfv3.
19830         (max_insn_size): New static variable.
19831         (struct _sched_ib): New type.
19832         (sched_ib): New static variable.
19833         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
19834         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
19835         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
19836         Update.
19837         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
19838         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
19839         new variables.  Update.
19840         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
19841         Add modeling of cfv3 instruction buffer.  Update.
19842         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
19843         * config/m68k/m68k.h (TUNE_CFV3): New macro.
19844         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
19845         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
19846         a particular reservation applies to.
19847         (type2): Reorganize attribute values.  Rename alu to alu_reg,
19848         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
19849         to mul_l and mul_w.
19850         (cf_ib_*): Simplify description of instruction buffer.
19851         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
19852         (cf_mem): Split into cf_mem1 and cf_mem2.
19853         (cf_v2_move_??): Rename to cfv12_alu_??.
19854         (cf_v2_move_l_??): Rename to cfv12_omove_??.
19855         (cf_v2_mul_??): Remove reservations.
19856         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
19857         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
19858         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
19859         appropriate place.
19860         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
19861         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
19862         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
19863         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
19864         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
19865         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
19866         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
19867         expansions of the above reservations for instructions of sizes
19868         1, 2 and 3 words.
19869
19870 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
19871
19872         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
19873
19874 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
19875
19876         * coverage.c: Include tree-pass.h.
19877         (coverage_counter_alloc): Print da_file_name to the dump file.
19878
19879 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
19880
19881         * sbitmap.c (sbitmap_range_empty_p): New function.
19882         * sbitmap.h (sbitmap_range_empty_p): New function.
19883         * bitmap.h: Now includes obstack.h.
19884
19885 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
19886             Kenneth Zadeck  <zadeck@naturalbridge.com>
19887
19888         * dbgcnt.def (ra_byte_scan): Added.
19889         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
19890         when the last hit happens for a counter.
19891         * timevar.def (TV_DF_BYTE_LR): New variable.
19892         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
19893         * passes.c (pass_fast_rtl_byte_dce): New pass.
19894         * fwprop.c (update_df): Added mode to call df_ref_create.
19895         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19896         DF_REF_EXTRACT_OFFSET.
19897         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
19898         DF_BYTE_LR_OUT, df_byte_lr): New macro.
19899         (df_mm): New enum.
19900         (df_ref_extract): Added mode field.
19901         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
19902         DF_REF_EXTRACT_OFFSET.
19903         (DF_REF_EXTRACT_MODE): New macro.
19904         (df_byte_lr_bb_info): New structure.
19905         (df_print_byte_regset, df_compute_accessed_bytes,
19906         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
19907         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
19908         df_byte_lr_simulate_uses,
19909         df_byte_lr_simulate_artificial_refs_at_top,
19910         df_byte_lr_simulate_artificial_refs_at_end,
19911         df_compute_accessed_bytes): New function.
19912         (df_ref_create): Add parameter.
19913         (df_byte_lr_get_bb_info): New inline function.
19914         * df-scan.c (df_ref_record, df_uses_record,
19915         df_ref_create_structure): Added mode parameter.
19916         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
19917         df_defs_record, df_uses_record, df_get_conditional_uses,
19918         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
19919         df_entry_block_defs_collect, df_exit_block_uses_collect):
19920         Added mode parameter to calls to df_ref_record, df_uses_record,
19921         df_ref_create_structure.
19922         (df_ref_equal_p, df_ref_compare): Added test for modes.
19923         (df_ref_create_structure): Added code to set mode.  Renamed
19924         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19925         DF_REF_EXTRACT_OFFSET.
19926         * df-core.c (df_print_byte_regset): New function.
19927         * df-byte-scan.c: New file.
19928         * df-problems.c (df_rd_transfer_function): Removed unnecessary
19929         calls to BITMAP_FREE.
19930         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
19931         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
19932         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
19933         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
19934         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
19935         df_byte_lr_local_compute, df_byte_lr_init,
19936         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19937         df_byte_lr_transfer_function, df_byte_lr_free,
19938         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
19939         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
19940         df_byte_lr_simulate_uses,
19941         df_byte_lr_simulate_artificial_refs_at_top,
19942         df_byte_lr_simulate_artificial_refs_at_end): New function.
19943         * dce.c (byte_dce_process_block): New function.
19944         (dce_process_block): au is now passed in rather than computed
19945         locally.  Changed loops that look at artificial defs to not look
19946         for conditional or partial ones, because there never are any.
19947         (fast_dce): Now is able to drive byte_dce_process_block or
19948         dce_process_block depending on the kind of dce being done.
19949         (rest_of_handle_fast_dce): Add parameter to fast_dce.
19950         (rest_of_handle_fast_byte_dce): New function.
19951         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
19952         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
19953
19954 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
19955
19956         PR fortran/35019
19957         * gcc.h: Added fortran options that take arguments to
19958         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
19959         macros.
19960
19961 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
19962
19963         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
19964         scalarization if on the LHS and not a full access.
19965
19966 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19967
19968         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
19969
19970 2008-04-18  Rafael Espíndola  <espindola@google.com>
19971
19972         * tree-vrp.c (find_case_label_index): Fix the binary search.
19973         (find_case_label_range): New.
19974         (vrp_visit_switch_stmt): Use find_case_label_range.
19975         (simplify_switch_using_ranges): Use find_case_label_range.
19976
19977 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
19978
19979         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
19980         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
19981
19982 2008-04-18  Tom Tromey  <tromey@redhat.com>
19983
19984         PR libcpp/15500:
19985         * doc/cpp.texi (Implementation-defined behavior): Mention
19986         -finput-charset.
19987
19988 2008-04-18  Ian Lance Taylor  <iant@google.com>
19989
19990         * fold-const.c (pointer_may_wrap_p): New static function.
19991         (fold_comparison): Add another test for pointer overflow.  Use
19992         pointer_may_wrap_p to disable some false positives.
19993
19994 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
19995
19996         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
19997         (fname_as_string): Match updated cpp_interpret_string prototype.
19998         (fix_string_type): Support char16_t* and char32_t*.
19999         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
20000         derivative) nodes.  Register as builtin if C++0x.
20001         (c_parse_error): Support CPP_CHAR{16,32}.
20002         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
20003         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
20004         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
20005         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
20006         CTI_CHAR32_ARRAY_TYPE>: New elements.
20007         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
20008         char32_type_node, signed_char32_type_node, char16_array_type_node,
20009         char32_array_type_node): New defines.
20010         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
20011         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
20012         (lex_string): Support CPP_STRING{16,32}, match updated
20013         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
20014         (lex_charconst): Support CPP_CHAR{16,32}.
20015         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
20016         and CPP_STRING{16,32}.
20017
20018 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
20019
20020         PR bootstrap/35457
20021         * aclocal.m4: Regenerate.
20022         * configure: Regenerate.
20023
20024 2008-04-18  Jan Hubicka  <jh@suse.cz>
20025
20026         * except.c (dw2_size_of_call_site_table,
20027         sjlj_size_of_call_site_table): Use vector API for call_site_record.
20028
20029         * cgraphbuild.c (build_cgraph_edges): Update.
20030         * tree-pass.h: Update comment.
20031         * final.c (leaf_function_p): Update.
20032         (leaf_renumber_regs): Update.
20033         (rest_of_clean_state): Update.
20034         * omp-low.c (expand_omp_parallel): Update.
20035         * ipa-reference.c (analyze_function): Update.
20036         * reorg.c (find_end_label): Update.
20037         (optimize_skip): Update.
20038         (fill_simple_delay_slots): Update.
20039         (fill_simple_delay_slots): Update.
20040         (make_return_insns): Update.
20041         (dbr_schedule): Update.
20042         * gimple-low.c (record_vars_into): Update.
20043         * cfgbuild.c (make_edges): Update.
20044         * function.c (assign_stack_local): Update.
20045         (assign_parm_adjust_stack_rtl): Update.
20046         (locate_and_pad_parm): Update.
20047         (allocate_struct_function): Do not initialize stack_alignment_needed
20048         and preferred_stack_boundary here.
20049         (stack_protect_prologue): Update.
20050         (stack_protect_epilogue): Update.
20051         (expand_function_start): Initialize stack_alignment_needed,
20052         preferred_stack_boundary and max_jumptable_ents.
20053         (expand_function_end): Update.
20054         (free_after_compilation): Do not NULLify epilogue_delay_list.
20055         * function.h (struct rtl_data): Add stack_protect_guard,
20056         stack_alignment_needed,
20057         preferred_stack_boundary, epilogue_delay_list.
20058         (struct function): Remove value_histograms, stack_alignment_needed,
20059         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
20060         last_label_uid,
20061         unexpanded_var_list, stack_protect_guard.
20062         (current_function_epilogue_delay_list): Remove.
20063         * ipa-type-escape.c (analyze_function): Update.
20064         * gimplify.c (pop_gimplify_context): Update comment.
20065         * calls.c (expand_call): Update.
20066         (emit_library_call_value_1): Update.
20067         * except.c (set_nothrow_function_flags): Update.
20068         * cfgexpand.c (get_decl_align_unit): Update.
20069         (create_stack_guard): Update.
20070         (estimated_stack_frame_size): Update.
20071         (expand_used_vars): Update.
20072         (tree_expand_cfg): Free histogram earliers, init expansion variables.
20073         * explow.c (allocate_dynamic_stack_space): Update.
20074         * tree-ssa-live.c (remove_unused_locals): Update.
20075         * varasm.c (mark_constant_pool): Update.
20076         * tree-inline.c (remap_decls): Update.
20077         (initialize_cfun): Update.
20078         (declare_return_variable): Update.
20079         (inline_forbidden_p): Update.
20080         (expand_call_inline): Update.
20081         (declare_inline_vars): Update.
20082         (tree_function_versioning): Update.
20083         * tree-flow.h (value_histograms): New.
20084         (VALUE_HISTOGRAMS): New macro.
20085         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
20086         last_label_uid.
20087         * tree-cfg.c (set_bb_for_stmt): Update.
20088         (replace_by_duplicate_decl): Update.
20089         (move_block_to_fn): Update.
20090         (new_label_mapper): Update.
20091         (dump_function_to_file): Update.
20092         * ipa-struct-reorg.c (build_data_structure): Update.
20093         * cfgrtl.c (print_rtl_with_bb): Update.
20094         * reload1.c (reload): Update.
20095         (reload): Update.
20096         * config/i386/i386.c (setup_incoming_varargs_64,
20097         ix86_compute_frame_layout): Update.
20098         * config/arc/arc.c (arc_output_function_epilogue): Update.
20099
20100 2008-04-18  Marius Strobl <marius@FreeBSD.org>
20101
20102         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
20103         for FreeBSD as well.
20104         * gthr-posix95.h: Likewise.
20105
20106 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
20107
20108         PR rtl-optimization/35838
20109         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
20110         out the byte offset of the first subreg.
20111
20112 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
20113
20114         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
20115         to split_ti instead of three separate calls with single member arrays.
20116         (subti3 splitter): Ditto.
20117         (adddi3 splitter): Ditto with split_di.
20118         (subdi3 splitter): Ditto.
20119         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
20120         two separate calls with single member arrays.  Swap match_dup
20121         operands 1 and 2 to better fit into the array.
20122         (negdi2 splitter): Ditto with split_di.
20123         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
20124         two separate calls with single member arrays.  Swap match_dup operands
20125         6 and 7 to better fit into the array.
20126
20127 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
20128
20129         * config/i386/i386.c (sse_builtin_type): New.
20130         (bdesc_sse_args): Likewise.
20131         (bdesc_sse_3arg): Removed.
20132         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
20133         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
20134         IX86_BUILTIN_ROUNDPS.
20135         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
20136         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
20137         IX86_BUILTIN_ROUNDPS.
20138         (ix86_expand_sse_4_operands_builtin): Removed.
20139         (ix86_expand_sse_operands_builtin): New.
20140         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
20141         and CODE_FOR_sse4_1_roundps.
20142         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
20143         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
20144
20145 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
20146
20147         PR target/35907
20148         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
20149         regs before frame pop when needed.  If use_backchain_to_restore_sp
20150         then load backchain into a temp reg to restore vr and vrsave.  Add
20151         code to restore vr after frame pop if possible.
20152
20153 2008-04-17  Richard Guenther  <rguenther@suse.de>
20154
20155         * tree-vn.c (expressions_equal_p): Do not check type
20156         equality or compatibility before calling operand_equal_p.
20157         * fold-const.c (operand_equal_p): Check equivalence of
20158         integer constants before bailing out due to signedness or
20159         precision differences.
20160         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
20161         spurious differences in type qualification.  Ignore types
20162         for COMPONENT_REFs at all.
20163
20164 2008-04-17  Christian Bruel  <christian.bruel@st.com>
20165
20166         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
20167         msw_skip comparison.
20168
20169 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
20170
20171         PR c/35739
20172         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
20173         reg type.
20174
20175         PR tree-optimization/35899
20176         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
20177         rather than TREE_OPERAND.
20178
20179 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
20180
20181         PR target/35944
20182         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
20183         temporary registers.  Change operand predicate to general_operand.
20184         (remainderxf3): Ditto.
20185
20186 2008-04-16  Richard Guenther  <rguenther@suse.de>
20187
20188         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
20189         * tree-affine.c (aff_combination_expand): Look through some
20190         conversions.
20191
20192 2008-04-15  Doug Kwan  <dougkwan@google.com>
20193
20194         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
20195         for hex printing.
20196         * tree-pretty-print.c (dump_generic_node): Ditto.
20197         * final.c (output_addr_const): Ditto.
20198         * dwarf2out.c (output_cfi): Ditto.
20199         * c-pretty-print.c (pp_c_integer_constant): Ditto.
20200         * print-rtl.c (print_rtx): Ditto.
20201         * print-tree.c (print_node_brief, print_node): Ditto.
20202         * c-common.c (match_case_to_enum_1): Ditto.
20203         * sched-vis.c (print_value): Ditto.
20204         * config/i386/i386.c (print_operand): Cast to long unsigned int
20205         for hex printing.
20206
20207 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
20208         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
20209         MS Windows VirtualProtect function.
20210
20211 2008-04-15  Jan Hubicka  <jh@suse.cz>
20212
20213         * gengtype.c (write_root): Param_is argument is OK.
20214         * expr.c (expand_expr_real_1): Update call of get_exception_*.
20215         * function.h: Include varray.h
20216         (rtl_eh): New stucture based on except.c one.
20217         (call_site_record): New forward declaration and vector type.
20218         * calls.c (emit_call_1): Do not call
20219         note_current_region_may_contain_throw.
20220         * except.c (eh_status): Remove cur_region, try_region since they are
20221         unused.
20222         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
20223         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
20224         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
20225         Remove call_site_data_used, call_site_data_size.
20226         Turn call_site_record into vector in function.h.
20227         (note_current_region_may_contain_throw): Remove.
20228         (get_exception_pointer, get_exception_filter): Do not take struct
20229         function argument; update.
20230         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
20231         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
20232         build_post_landing_pads, dw2_build_landing_pads,
20233         sjlj_assign_call_site_values, sjlj_mark_call_sites,
20234         sjlj_emit_function_enter, sjlj_emit_function_enter,
20235         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
20236         sjlj_build_landing_pads, finish_eh_generation,
20237         remove_exception_handler_label, remove_eh_handler,
20238         maybe_remove_eh_handler, add_reachable_handler,
20239         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
20240         add_action_record, collect_one_action_chain, add_call_site,
20241         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
20242         sjlj_output_call_site_table, output_function_exception_table,
20243         * except.h (note_current_region_may_contain_throw): Remove
20244         (get_exception_pointer, get_exception_filter): Do not take struct
20245         function argument.
20246         * Makefile.in (GTFILES): Put varargs before struct function.
20247
20248 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20249
20250         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
20251         punt for STRING_CST.
20252         (get_constraint_for): Deal with STRING_CST here instead.
20253
20254 2008-04-15  Richard Guenther  <rguenther@suse.de>
20255
20256         * tree-ssa-propagate.c (substitute_and_fold): Substitute
20257         statements in a basic-block with a backward walk.  Do not
20258         substitute into dead statements but instead remove those.
20259
20260 2008-04-15  Richard Guenther  <rguenther@suse.de>
20261
20262         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
20263         to zero, thus disable creation of SFTs.
20264
20265 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20266
20267         * tree-predcom.c (suitable_reference_p): Return false if the
20268         reference can throw.
20269
20270 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
20271
20272         PR c/35751
20273         * c-decl.c (finish_decl): If extern or static var has variable
20274         size, set TREE_TYPE (decl) to error_mark_node.
20275
20276 2008-04-15  Rafael Espíndola  <espindola@google.com>
20277
20278         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
20279         variable arg1.
20280
20281 2008-04-15  Richard Guenther  <rguenther@suse.de>
20282
20283         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
20284         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
20285         (visit_reference_op_load): Do walk vuse-vdef chains on
20286         vn_reference_lookup.
20287         (visit_reference_op_store): But do not here.
20288         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
20289         vn_reference_lookup.
20290         (vn_lookup_with_vuses): But do so here.
20291
20292 2008-04-14  Ian Lance Taylor  <iant@google.com>
20293
20294         * fold-const.c (fold_overflow_warning): Remove assertion.
20295
20296 2008-04-15  Ben Elliston  <bje@au.ibm.com>
20297
20298         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
20299         temp1 local variables.
20300
20301 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
20302
20303         PR target/35661
20304         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
20305         ".text.unlikely" section as executable.
20306
20307 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
20308
20309         * config/ia64/ia64.c (rtx_needs_barrier): Handle
20310         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
20311         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
20312         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
20313         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
20314         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
20315         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
20316
20317 2008-04-14  Ian Lance Taylor  <iant@google.com>
20318
20319         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
20320         * fold-const.c (fold_comparison): If appropriate, test
20321         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
20322         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
20323         reassociating a pointer type.
20324         * doc/invoke.texi (Optimize Options): Document that
20325         -fstrict-overflow applies to pointer wraparound.
20326
20327 2008-04-13  Jan Hubicka  <jh@suse.cz>
20328
20329         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
20330
20331 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
20332
20333         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
20334         we are going to "save the world".
20335
20336 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
20337
20338         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
20339         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
20340         operand 0 constraint, not "=".
20341
20342 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
20343
20344         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
20345
20346 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
20347
20348         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
20349         of size of positions_needed * CHAR_BIT.
20350
20351 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
20352
20353         PR middle-end/35897
20354         * dse.c (store_info): Change positions_needed to unsigned
20355         HOST_WIDE_INT.
20356         (lowpart_bitmask): New.
20357         (record_store): Cast to unsigned HOST_WIDE_INT for
20358         positions_needed.  Assert width <= size of positions_needed *
20359         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
20360         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
20361         lowpart_bitmask to set mask.
20362
20363 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
20364
20365         * config/bfin/constraints.md: New file.
20366         * config/bfin/bfin.md: Include it.
20367         (adddi3): Use satisfies_constraint functions instead of the old macros.
20368         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
20369         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
20370         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
20371         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
20372         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
20373         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
20374         EXTRA_CONSTRAINT): Delete.
20375         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
20376         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
20377         of the old macros.
20378         * config/bfin/bfin.c: Include "tm-constrs.h".
20379         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
20380         Use satisfies_constraint functions instead of the old macros.
20381         * doc/md.texi (Blackfin Constraints): Update file name reference.
20382
20383 2008-04-11  Richard Guenther  <rguenther@suse.de>
20384
20385         PR tree-optimization/35869
20386         * tree-vrp.c (execute_vrp): Move switch statement update after
20387         jump threading.  Schedule another cfg cleanup run.
20388
20389 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
20390
20391         PR c/35744
20392         * attribs.c (decl_attributes): Return early on errorneous node.
20393
20394 2008-04-10  Oleg Ryjkov  <olegr@google.com>
20395
20396         * tree.h (struct tree_base): Added a new flag default_def_flag.
20397         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
20398
20399 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20400
20401         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
20402
20403 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20404
20405         PR target/35768
20406         * pa.md: Define mode iterator P.  Define mode attribute dwc.
20407         (dcacheflush): Update pattern to use iterator P and attribute dwc.
20408         (icacheflush): Likewise.
20409         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
20410         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
20411
20412 2008-04-11  Ben Elliston  <bje@au.ibm.com>
20413
20414         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
20415
20416 2008-04-10  Rafael Espíndola  <espindola@google.com>
20417
20418         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
20419         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
20420         (extract_range_from_expr): The same.
20421
20422 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
20423
20424         * config/mips/mips.md (GPR2): New mode iterator.
20425         (seq): Add comment.
20426         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
20427         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
20428         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
20429         Rewrite these to take two modes, the mode of comparison and the
20430         mode of the destination.
20431         * config/mips/mips.c (mips_expand_scc): Instead of having
20432         paradoxical subreg as destination, expand "narrowing" scc if mode
20433         of comparison is SI and target is requested in DI mode.
20434         (mips_emit_int_order_test): Update comment.  Make mode of
20435         comparison match CMP0 rather than TARGET.  When creating inverse
20436         target use mode of TARGET.
20437
20438 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
20439
20440         * gcov-dump.c (tag_summary): Only print summaries for the first
20441         GCOV_COUNTERS_SUMMABLE counters.
20442
20443 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
20444
20445         * config/i386/i386.md (absneg): New code iterator.
20446         (absnegprefix): New code attribute.
20447         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
20448         patterns using absneg code iterator.
20449         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
20450         using absneg code iterator.
20451         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
20452         *neg<mode>2 patterns using absneg code iterator.
20453         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
20454         *negextendsfdf2 patterns using absneg code iterator.
20455         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
20456         *negextendsfxf2 patterns using absneg code iterator.
20457         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
20458         *negextendsfdf2 patterns using absneg code iterator.
20459         * config/i386/sse.md (<code><mode>2): Macroize expander from
20460         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
20461
20462 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
20463
20464         * config/s390/s390.h: Remove the remains of the recent search
20465         & replace action of current_function_outgoing_args_size.
20466
20467 2008-04-10  Ira Rosen  <irar@il.ibm.com>
20468
20469         PR tree-optimization/35821
20470         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
20471         NEW_STMT_LIST is not NULL.
20472
20473 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
20474
20475         PR libstdc++/35597
20476         * toplev.c (process_options): Remove -ffunction-sections debugging
20477         warning.
20478
20479 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
20480
20481         PR middle-end/PR28690
20482         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
20483         than gen_rtx_fmt_ee to perform more canonicalizations.
20484
20485 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20486
20487         PR driver/35665
20488         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
20489
20490 2008-04-09  Richard Guenther  <rguenther@suse.de>
20491
20492         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
20493         (dump_function_to_file): Dump function arguments with types.
20494
20495 2008-04-08  Richard Guenther  <rguenther@suse.de>
20496
20497         * fold-const.c (fold_widened_comparison): Do not allow
20498         sign-changes that change the result.
20499
20500 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
20501
20502         PR target/35839
20503         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
20504         kinds of indirect references.
20505
20506 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
20507
20508         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
20509         GNU Fortran language string.
20510
20511 2008-04-08  Rafael Espíndola  <espindola@google.com>
20512
20513         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
20514         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
20515         * tree.h (tree_call_nonnegative_warnv_p): New.
20516
20517 2008-04-08  Jan Hubicka  <jh@suse.cz>
20518
20519         * function.c (free_after_compilation): Clear out regno_reg_rtx
20520         pointer.
20521
20522 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
20523
20524         Revert
20525         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
20526
20527         PR middle-end/PR28690
20528         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
20529         same precedence as REG_POINTER and MEM_POINTER operands.
20530
20531 2008-04-08  Richard Guenther  <rguenther@suse.de>
20532
20533         PR middle-end/35834
20534         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
20535         for adding index to base.
20536
20537 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
20538
20539         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
20540         (MINGW_ENABLE_EXECUTE_STACK): New.
20541         (IN_LIBGCC2): For libgcc include windows.h file for
20542         function declarations.
20543
20544 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
20545
20546         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
20547         and tem2 if tem1 is not a REG or MULT.
20548
20549 2008-04-08  Jan Hubicka  <jh@suse.cz>
20550
20551         * function.h (incomming_args): Break out of struct function.
20552         (function_subsections): Break out of struct function.
20553         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
20554         return_rtx and hard_reg_initial_vals from struct function.
20555         Kill inl_max_label_num.
20556         (current_function_pops_args, current_function_args_info,
20557         current_function_args_size, current_function_args_size,
20558         current_function_pretend_args_size,
20559         current_function_outgoing_args_size,
20560         current_function_internal_arg_pointer, current_function_return_rtx):
20561         Kill compatibility accestor macros.
20562         * builtins.c (expand_builtin_apply_args_1): Update.
20563         (expand_builtin_next_arg): Update.
20564         * df-scan.c (df_get_call_refs): Update.
20565         * dbxout.c (dbxout_function_end): Update.
20566         * dwarf2out.c (dwarf2out_switch_text_section): Update.
20567         (output_line_info): Update.
20568         (secname_for_decl): Update.
20569         (dwarf2out_var_location): Update.
20570         * function.c (free_after_compilation): Update.
20571         (assign_parm_find_stack_rtl): Update.
20572         (assign_parms): Update.
20573         (expand_dummy_function_end): Update.
20574         (expand_function_end): Update.
20575         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
20576         (expand_call): Update.
20577         (emit_library_call_value_1): Update.
20578         (store_one_arg): Update.
20579         * varasm.c (initialize_cold_section_name): Update.
20580         (unlikely_text_section): Update.
20581         (unlikely_text_section_p): Update.
20582         (assemble_start_function): Update.
20583         (assemble_end_function): Update.
20584         (default_section_type_flags): Update.
20585         (switch_to_section): Update.
20586         * integrate.c (set_decl_abstract_flags): Update.
20587         (get_hard_reg_initial_val): Update.
20588         (has_hard_reg_initial_val): Update.
20589         (allocate_initial_values): Update.
20590         * resource.c (init_resource_info): Update.
20591         * config/alpha/alpha.c (NUM_ARGS): Update.
20592         (direct_return): Update.
20593         (alpha_va_start): Update.
20594         (alpha_sa_size): Update.
20595         (alpha_initial_elimination_offset): Update.
20596         (alpha_expand_prologue): Update.
20597         (alpha_start_function): Update.
20598         (alpha_expand_epilogue): Update.
20599         (unicosmk_initial_elimination_offset):
20600         * config/alpha/alpha.md (call expander): Update.
20601         * config/s390/s390.c (s390_register_info): Update.
20602         (s390_register_info): Update.
20603         (s390_frame_info): Update.
20604         (s390_initial_elimination_offset): Update.
20605         (s390_build_builtin_va_list): Update.
20606         (s390_va_start): Update.
20607         * config/spu/spu.c (direct_return): Update.
20608         (spu_expand_prologue): Update.
20609         (spu_initial_elimination_offset): Update.
20610         (spu_build_builtin_va_list): Update.
20611         (spu_va_start): Update.
20612         * config/sparc/sparc.c (sparc_init_modes): Update.
20613         (sparc_compute_frame_size): Update.
20614         (function_value): Update.
20615         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
20616         * config/i386/i386.md (return expander): Update.
20617         * config/i386/i386.c (ix86_va_start): Update.
20618         (ix86_can_use_return_insn_p): Update.
20619         (ix86_compute_frame_layout): Update.
20620         (ix86_expand_epilogue): Update.
20621         * config/sh/sh.c (output_stack_adjust): Update.
20622         (calc_live_regs): Update.
20623         (sh_expand_prologue): Update.
20624         (sh_builtin_saveregs): Update.
20625         (sh_va_start): Update.
20626         (initial_elimination_offset): Update.
20627         (sh_allocate_initial_value): Update.
20628         (sh_function_ok_for_sibcall): Update.
20629         (sh_get_pr_initial_val): Update.
20630         * config/sh/sh.md (return expander): Update.
20631         * config/avr/avr.c (frame_pointer_required_p): UPdate.
20632         * config/crx/crx.c (crx_compute_frame): UPdate.
20633         (crx_initial_elimination_offset): UPdate.
20634         * config/xtensa/xtensa.c (compute_frame_size): Update
20635         (xtensa_builtin_saveregs): Update.
20636         (xtensa_va_start): Update.
20637         (order_regs_for_local_alloc): Update.
20638         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
20639         (xstormy16_expand_builtin_va_start): Update.
20640         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
20641         * config/m68hc11/m68hc11.md (return expanders): Update.
20642         * config/m68hc11/m68hc11.c (expand_prologue): Update.
20643         (expand_epilogue): Update.
20644         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
20645         (cris_simple_epilogue): Update.
20646         (cris_expand_prologue): Update.
20647         (cris_expand_epilogue): Update.
20648         * config/iq2000/iq2000.c (iq2000_va_start): Update.
20649         (compute_frame_size): Update.
20650         * config/mt/mt.c (mt_compute_frame_size): Update.
20651         * config/mn10300/mn10300.c (expand_prologue): Update.
20652         (expand_epilogue): Update.
20653         (initial_offset): Update.
20654         (mn10300_builtin_saveregs):
20655         * config/mn10300/mn10300.md (return expander): Update.
20656         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
20657         (ia64_initial_elimination_offset): Update.
20658         (ia64_initial_elimination_offset): Update.
20659         (ia64_expand_prologue): Update.
20660         * config/m68k/m68k.md (return expander): Update.
20661         * config/rs6000/rs6000.c (rs6000_va_start): Update.
20662         (rs6000_stack_info): Update.
20663         * config/mcore/mcore.c (layout_mcore_frame): Update.
20664         (mcore_expand_prolog): Update.
20665         * config/arc/arc.c (arc_compute_frame_size): Update.
20666         * config/score/score3.c (score3_compute_frame_size): Update.
20667         * config/score/score7.c (score7_compute_frame_size): Update.
20668         * config/arm/arm.c (use_return_insn): Update.
20669         (thumb_find_work_register): Update.
20670         (arm_compute_save_reg_mask): Update.
20671         (arm_output_function_prologue): Update.
20672         (arm_output_epilogue): Update.
20673         (arm_size_return_regs): Update.
20674         (arm_get_frame_offsets): Update.
20675         (arm_expand_prologue): Update.
20676         (thumb_exit): Update.
20677         (thumb_unexpanded_epilogue): Update.
20678         (thumb1_output_function_prologue): Update.
20679         * config/pa/pa.md (return expander): Update.
20680         * config/pa/pa.c (compute_frame_size): Update.
20681         (hppa_builtin_saveregs): Update.
20682         * config/mips/mips.c (mips_va_start): Update.
20683         (mips16_build_function_stub): Update.
20684         (mips_compute_frame_info): Update.
20685         (mips_restore_gp): Update.
20686         (mips_output_function_prologue): Update.
20687         (mips_expand_prologue): Update.
20688         * config/v850/v850.c (compute_frame_size): Update.
20689         (expand_prologue): * config/mmix/mmix.c (along): update.
20690         (mmix_initial_elimination_offset): update.
20691         (mmix_reorg): update.
20692         (mmix_use_simple_return): update.
20693         (mmix_expand_prologue): update.
20694         (mmix_expand_epilogue): Update.
20695         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
20696         (emit_link_insn): Update.
20697
20698 2008-04-08  Anatoly Sokolov <aesok@post.ru>
20699
20700         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
20701         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
20702         instructions.
20703         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
20704         atmega103 device.
20705
20706 2008-04-07  Jan Hubicka  <jh@suse.cz>
20707
20708         * function.h (rtl): Rename to x_rtl.
20709         (crtl): New define.
20710         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
20711         frame_offset, stack_check_probe_note, arg_pointer_save_area,
20712         used_temp_slots avail_temp_slots, temp_slot_level,
20713         nonlocal_goto_handler_labels): Update accesstors.
20714         (rtl): New global variable.
20715         (struct function): Move some fileds to rtl_data.
20716         (get_arg_pointer_save_area): Update prototype.
20717         * builtins.c (expand_builtin_setjmp_receiver): Update call of
20718         get_arg_pointer_save_area.
20719         * expr.c (init_expr): Update
20720         * function.c (get_frame_size): Update
20721         (assign_stack_local): Update
20722         (expand_function_end): Update.
20723         (get_art_pointer_save_area): Update
20724         * function.h
20725         * emit-rtl.c (rtl): Declare.
20726         (regno_reg_rtx): Declare.
20727         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20728         Update.
20729         (gen_reg_rtx): Update.
20730         * varasm.c (n_deferred_constatns): Update accestor.
20731         (init_varasm_status): Do not allocate varasm_status.
20732         (force_const_mem, get_pool_size, output_constant_pool): Update.
20733         * stmt.c (force_label_rtx): Do not use x_ prefixes.
20734         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20735         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
20736         * sparc/sparc.h (INIT_EXPANDERS): Update.
20737         * ia64/ia64.h (INIT_EXPANDERS): Update.
20738
20739 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
20740
20741         * reload.c (push_secondary_reload): Add missing break to for loop.
20742
20743 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
20744
20745         PR middle-end/PR28690
20746         * rtlanal.c: Update copyright years.
20747         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
20748         as REG_POINTER and MEM_POINTER operands.
20749         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
20750         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
20751         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
20752         * gcse.c: Update copyright years.
20753         (pre_delete): Call gen_reg_rtx_and_attrs.
20754         (hoist_code): Likewise.
20755         (build_store_vectors): Likewise.
20756         (delete_store): Likewise.
20757         * loop-invariant.c (move_invariant_reg): Likewise.
20758         Update copyright years.
20759
20760 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
20761
20762         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
20763         control string instead of quoted.
20764
20765 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
20766
20767         * doc/rtl.texi: Rewrite of subreg section.
20768
20769 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
20770
20771         PR/35842
20772         * config/i386/i386.c (legitimize_pic_address): Add treating
20773         of dllimport SYM_REF's.
20774         (legitimize_dllimport_symbol): Add prototype.
20775
20776 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
20777
20778         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
20779         reference in constructor with non self-referential type.
20780
20781 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
20782
20783         Removal of Return with Depressed Stack Pointer support
20784         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
20785         (ECF_SP_DEPRESSED): Likewise.
20786         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
20787         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
20788         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20789         (expand_call): Do not test ECF_SP_DEPRESSED.
20790         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20791         * function.c (keep_stack_depressed): Delete.
20792         (handle_epilogue_set): Likewise.
20793         (update_epilogue_consts): Likewise.
20794         (emit_equiv_load): Likewise.
20795         (thread_prologue_and_epilogue_insns): Remove support for Return with
20796         Depressed Stack Pointer.
20797         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20798
20799 2008-04-06  Richard Guenther  <rguenther@suse.de>
20800
20801         PR tree-optimization/35400
20802         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
20803         information from SSA_NAMEs.
20804
20805 2008-04-06  Anatoly Sokolov <aesok@post.ru>
20806
20807         * config/avr/avr.h (avr_mega_p): Remove declaration.
20808         (AVR_MEGA): Remove macro.
20809         * config/avr/avr.c (avr_mega_p): Remove variable.
20810         (avr_override_options): Remove inicializion of avr_mega_p.
20811         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
20812         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
20813         (avr_jump_mode): (Ditto.).
20814         (avr_output_progmem_section_asm_op): (Ditto.).
20815         (avr_asm_init_sections): (Ditto.).
20816         (avr_asm_init_sections): (Ditto.).
20817         (avr_rtx_costs): (Ditto.).
20818         * config/avr/avr.md: (Ditto.).
20819         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
20820         '__AVR_MEGA__'.
20821
20822 2008-04-06  Richard Guenther  <rguenther@suse.de>
20823
20824         PR tree-optimization/35842
20825         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
20826         is_gimple_invariant_address.
20827
20828 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
20829
20830         * gcc.c (default_compilers): Sync Fortran extensions list with
20831         that in fortran/lang-specs.h.
20832         * doc/invoke.texi: Likewise.
20833         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
20834         * dwarf2out.c (gen_compile_unit_die): Likewise.
20835
20836 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
20837
20838         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
20839
20840 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
20841
20842         PR target/12329
20843         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
20844         attribute is used for nested functions.
20845
20846 2008-04-05  Jan Hubicka  <jh@suse.cz>
20847
20848         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
20849
20850         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
20851         letter argument.
20852         (dump_files): Update.
20853         (enable_rtl_dump_file): Do not accept letter argument.
20854         * tree-pass.h (dump_file_info): Remove letter argument.
20855         * toplev.c (decode_d_option): Update -da handling.
20856         * toplev.h (enable_rtl_dump_file): Update prototype.
20857         * passes.c (register_one_dump_file): Do not accept IPA argument; work
20858         it out based on pass type.
20859         (register_dump_files_1): Likewise.
20860         (init_optimization_passes): Update register_one_dump_file calls.
20861         (execute_one_pass): Sanity check that IPA passes are called at IPA
20862         level and RTL passes at RTL level.
20863         (execute_pass_list): IPA pass can not be after or subpass of
20864         GIMPLE/RTL pass.
20865         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
20866         disallov RTL subpasses of IPA subpasses.
20867
20868 2008-04-05  Ben Elliston  <bje@au.ibm.com>
20869
20870         * tree-cfg.c (need_fake_edge_p): Return false for calls to
20871         builtins that return exactly once and do not throw. Cache call to
20872         call_expr_flags.
20873
20874 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
20875
20876         PR rtl-optimization/34916
20877         PR middle-end/35519
20878         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
20879         between instruction pairs.
20880
20881 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
20882
20883         * doc/invoke.texi: Document -mbitops for SH.
20884         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
20885         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
20886         * config/sh/sh.c (print_operand): Add %t operand code.
20887         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
20888         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
20889         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
20890         (extendqihi2): Likewise.
20891         (movqi_i): Likewise.
20892         (insv): Use bset, bclr and bst instructions for SH2A if possible.
20893         (extv): Use bld instruction for SH2A if possible.
20894         (extzv): Likewise.
20895         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
20896         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
20897         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
20898         (bset.b, bclr.b): Define peepholes.
20899         * config/sh/sh.opt (mbitops): New option.
20900
20901 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
20902
20903         PR target/35620
20904         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
20905         and view convert expression.
20906
20907 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
20908
20909         PR target/35364
20910         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
20911
20912 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
20913
20914         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
20915
20916         * config/i386/cpuid.h (bit_AES): New.
20917         (bit_PCLMUL): Likewise.
20918
20919         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
20920         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
20921         SSE2 if AES or PCLMUL is enabled.
20922         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
20923         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20924         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
20925         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
20926         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
20927         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
20928         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20929         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
20930         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
20931         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
20932         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
20933         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
20934         __builtin_ia32_aeskeygenassist128 and
20935         __builtin_ia32_pclmulqdq128.
20936         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
20937         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
20938         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
20939
20940         * config/i386/i386.h (TARGET_AES): New.
20941         (TARGET_PCLMUL): Likewise.
20942         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
20943
20944         * config/i386/i386.md (UNSPEC_AESENC): New.
20945         (UNSPEC_AESENCLAST): Likewise.
20946         (UNSPEC_AESDEC): Likewise.
20947         (UNSPEC_AESDECLAST): Likewise.
20948         (UNSPEC_AESIMC): Likewise.
20949         (UNSPEC_AESKEYGENASSIST): Likewise.
20950         (UNSPEC_PCLMUL): Likewise.
20951
20952         * config/i386/i386.opt (maes): New.
20953         (mpclmul): Likewise.
20954
20955         * config/i386/sse.md (aesenc): New pattern.
20956         (aesenclast): Likewise.
20957         (aesdec): Likewise.
20958         (aesdeclast): Likewise.
20959         (aesimc): Likewise.
20960         (aeskeygenassist): Likewise.
20961         (pclmulqdq): Likewise.
20962
20963         * config/i386/wmmintrin.h: New.
20964
20965         * doc/extend.texi: Document AES and PCLMUL built-in function.
20966
20967         * doc/invoke.texi: Document -maes and -mpclmul.
20968
20969 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
20970
20971         * function.c (free_after_parsing): Replace with
20972         cxx_push_function_context from C++ front-end.
20973         (allocate_struct_function): Don't call langhook.
20974         * langhooks.h (struct lang_hooks_for_functions): Delete.
20975         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
20976         member "function".
20977         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
20978         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
20979         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
20980         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
20981         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
20982         remove LANG_HOOKS_FUNCTION_INITIALIZER.
20983         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
20984
20985         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
20986         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
20987
20988 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
20989
20990         PR c/35440
20991         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
20992         for all types.
20993
20994 2008-04-04  Richard Guenther  <rguenther@suse.de>
20995
20996         PR middle-end/35823
20997         * fold-const.c (optimize_minmax_comparison): Use the correct
20998         type for the constant in the simplified comparison.
20999
21000 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
21001
21002         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
21003         Pass L2 size as "--param l2-cache-size" to the compiler.
21004         (decode_l2_cache): New function to decode L2 cache parameters using
21005         0x8000006 extended cpuid function.
21006         (detect_caches_amd): Determine parameters of L2 cache using
21007         decode_l2_caches function.
21008         (decode_caches_intel): Decode L2 cache parameters.
21009         (detect_caches_intel): Determine L2 cache parameters using
21010         decode_caches_intel and decode_l2_caches functions.
21011
21012 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
21013
21014         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
21015         secondary input reload for subword loads from the constant pool.
21016
21017 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
21018
21019         PR target/35713
21020         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
21021           constants of the appropriate size for runtime calculations.
21022
21023         PR c/35712
21024         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
21025           decimal-float literal constant zero.
21026
21027 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
21028
21029         PR c/35738
21030         * c-parser.c (c_parser_omp_atomic): Call
21031         default_function_array_conversion on the RHS.
21032
21033         PR middle-end/35818
21034         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
21035         call is_variable_sized if decl has incomplete type.
21036
21037 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
21038
21039         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
21040
21041 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
21042
21043         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
21044         iterators.
21045         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
21046         (sgt<u>): Merge sgt and sgtu into new expander.
21047         (sgt, sgtu): Remove expanders.
21048         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
21049         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
21050         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
21051         *sgtu_<mode>_mips16 into new pattern.
21052         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
21053         (sge<u>): Merge sge and sgeu into new expander.
21054         (sge, sgeu): Remove expanders.
21055         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
21056         new pattern.
21057         (*sge_<mode>, second *sge_<mode>): Remove patterns.
21058         (slt<u>): Merge slt and sltu into new expander.
21059         (slt, sltu): Remove expanders.
21060         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
21061         (*slt_<mode>, *sltu_<mode>): Remove patterns.
21062         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
21063         *sltu_<mode>_mips16 into new pattern.
21064         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
21065         (sle<u>): Merge sle and sleu into new expander.
21066         (sle, sleu): Remove expanders.
21067         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
21068         (*sle_<mode>, *sleu_<mode>): Remove patterns.
21069         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
21070         *sleu_<mode>_mips16 into new pattern.
21071         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
21072
21073 2008-04-03  Jan Hubicka  <jh@suse.cz>
21074
21075         PR tree-optimization/35795
21076         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
21077         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
21078         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
21079         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
21080         * score/score3.c (score3_output_mi_thunk): Likewise.
21081         * score/score7.c (score7_output_mi_thunk): Likewise.
21082         * mips/mips.c (mips_output_mi_thunk): Likewise.
21083
21084 2008-04-03  Richard Guenther  <rguenther@suse.de>
21085
21086         * tree-vrp.c (extract_range_from_unary_expr): Handle all
21087         conversions.  Simplify code.
21088
21089 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
21090
21091         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
21092
21093 2008-04-03  Tom Tromey  <tromey@redhat.com>
21094             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21095
21096         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
21097         * config/bfin/t-bfin-linux (generated_files): Add
21098         linux-sysroot-suffix.h.
21099         * doc/install.texi (Prerequisites): Require make 3.80.
21100         * doc/sourcebuild.texi (Front End Directory): Document new
21101         variable.
21102         * Makefile.in (generated_files): New variable.
21103         (ALL_HOST_OBJS): New variable.
21104         ($(ALL_HOST_OBJS)): New target.
21105
21106 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
21107
21108         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
21109         (remap_block): Call id->transform_lang_insert_block instead
21110         of langhook.
21111         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
21112         Set id.transform_lang_insert_block to NULL.
21113         (clone_body): Move to cp/optimize.c
21114         * tree-inline.h (struct copy_body_data): Change
21115         transform_lang_insert_block to function pointer.
21116         (copy_generic_body, copy_decl_no_change): Export.
21117         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
21118         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
21119         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
21120
21121         * c-tree.h (insert_block): Kill.
21122         * c-decl.c (insert_block): Kill.
21123
21124 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
21125
21126         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
21127         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
21128         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
21129         argument.
21130         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
21131         argument, call {push,pop}_function_context from here.
21132         * c-parser.c: Use c_{push,pop}_function_context.
21133
21134         * function.c (push_function_context_to): Move meat ...
21135         (push_function_context): ... here.  Simplify.
21136         * function.c (pop_function_context_from): Move meat ...
21137         (pop_function_context): ... here.  Simplify.
21138         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
21139         leave_nested).
21140         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
21141         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
21142         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
21143         * tree.h (push_function_context_to, pop_function_context_from): Remove.
21144
21145 2008-04-03  Ben Elliston  <bje@au.ibm.com>
21146
21147         * expmed.c (extract_force_align_mem_bit_field): Remove.
21148
21149 2008-04-03  Richard Guenther  <rguenther@suse.de>
21150
21151         PR middle-end/35800
21152         * expr.h (try_casesi): Adjust prototype.
21153         * expr.c (try_casesi): Take fallback label as extra parameter.
21154         Use that for gen_casesi if default_label is NULL.
21155         * stmt.c (expand_case): Pass fallback label to try_casesi,
21156         make sure to fill gaps with a fallback label if default_label
21157         is not present.
21158
21159 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
21160
21161         PR target/35801
21162         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
21163
21164 2008-04-03  Ben Elliston  <bje@au.ibm.com>
21165
21166         * expmed.c (extract_split_bit_field): Remove if (0) code.
21167         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
21168         (do_ds_constraint): Likewise.
21169
21170 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
21171
21172         * doc/cppopts.texi (-dU): Document.
21173         * c-common.h (flag_dump_macros): Update comment.
21174         * c-opts.c (handle_OPT_d): Handle -dU.
21175         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
21176         dump_queued_macros, cb_used_define, cb_used_undef): New.
21177         (init_pp_output): Handle -dU.
21178         (cb_line_change): Call dump_queued_macros.
21179         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
21180
21181 2008-04-02  Anatoly Sokolov <aesok@post.ru>
21182
21183         * config/avr/predicates.md (io_address_operand): New predicate.
21184         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
21185         * config/avr/avr.c (avr_io_address_p): Remove function.
21186         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
21187         'avr_io_address_p' function.
21188         (out_movhi_r_mr): (Ditto.).
21189         (out_movqi_mr_r): (Ditto.).
21190         (out_movhi_mr_r): (Ditto.).
21191         (avr_address_cost): (Ditto.).
21192
21193 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
21194
21195         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
21196         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
21197         in 32bit mode when XMM registers are available to avoid store
21198         forwarding stalls.
21199         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
21200         corresponding post-reload splitters.
21201
21202 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
21203
21204         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
21205         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
21206         __builtin_ia32_roundss.
21207         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
21208         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
21209         __builtin_ia32_roundss.
21210         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
21211         IX86_BUILTIN_SHUFPD here.
21212
21213 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
21214
21215         * config/i386/i386.md (plogic): New.
21216         (plogicprefix): Likewise.
21217
21218         * config/i386/mmx.md (mmx_<code><mode>3): New.
21219         (mmx_and<mode>3): Removed.
21220         (mmx_ior<mode>3): Likewise.
21221         (mmx_xor<mode>3): Likewise.
21222
21223         * config/i386/sse.md (<code><mode>3): New.
21224         (*<code><mode>3): Likewise.
21225         (*<code><mode>3): Likewise.
21226         (<code><mode>3): Likewise.
21227         (*sse_<code><mode>3): Likewise.
21228         (*sse2_<code><mode>3): Likewise.
21229         (<code>tf3): Likewise.
21230         (*<code>tf3): Likewise.
21231         (and<mode>3): Likewise.
21232         (*and<mode>3): Likewise.
21233         (ior<mode>3): Removed.
21234         (*ior<mode>3): Likewise.
21235         (xor<mode>3): Likewise.
21236         (*xor<mode>3): Likewise.
21237         (*and<mode>3): Likewise.
21238         (*ior<mode>3): Likewise.
21239         (*xor<mode>3): Likewise.
21240         (and<mode>3): Likewise.
21241         (*sse_and<mode>3): Likewise.
21242         (*sse2_and<mode>3): Likewise.
21243         (andtf3): Likewise.
21244         (*andtf3): Likewise.
21245         (ior<mode>3): Likewise.
21246         (*sse_ior<mode>3): Likewise.
21247         (*sse2_ior<mode>3): Likewise.
21248         (iortf3): Likewise.
21249         (*iortf3): Likewise.
21250         (xor<mode>3): Likewise.
21251         (*sse_xor<mode>3): Likewise.
21252         (*sse2_xor<mode>3): Likewise.
21253         (xortf3): Likewise.
21254         (*xortf3): Likewise.
21255
21256 2008-04-02  Richard Guenther  <rguenther@suse.de>
21257
21258         PR tree-optimization/14495
21259         PR tree-optimization/34793
21260         * tree-vrp.c (struct switch_update): New structure.
21261         (to_remove_edges, to_update_switch_stmts): New VECs.
21262         (simplify_switch_using_ranges): New function.  Remove not taken
21263         case labels and edges.
21264         (simplify_stmt_using_ranges): Call it.
21265         (identify_jump_threads): Mark edges we have queued for removal
21266         so we don't thread them.
21267         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
21268         case label vector.
21269         * tree-cfg.c (group_case_labels): Deal with missing default label.
21270         (tree_verify_flow_info): Allow missing default label.
21271         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
21272         (emit_case_nodes): Likewise.
21273         (expand_case): Do not rely on the default label to be present.
21274         * expr.c (try_casesi): Deal with NULL default_label.
21275         (do_tablejump): Likewise.
21276
21277 2008-04-02  Richard Guenther  <rguenther@suse.de>
21278
21279         PR tree-optimization/14495
21280         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
21281         SWITCH_EXPR here ...
21282         (vrp_visit_switch_stmt): ... but here (new function).
21283         (find_case_label_index): New helper function.
21284         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
21285
21286 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
21287
21288         * fwprop.c: Fix ISO-C99ism.
21289
21290 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
21291
21292         PR bootstrap/35752
21293         * Makefile.in (objdir): Set it here.
21294         * configure.ac: Not here.  Find dynamic linker characteristics.
21295         * exec-tool.in: Use them.
21296         * aclocal.m4: Regenerate.
21297         * configure: Regenerate.
21298
21299 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
21300
21301         * expr.c (expand_var): Delete it.
21302         * expr.h (expand_var): Delete prototype.
21303         * function.c (expand_function_start): Use expand_decl instead.
21304         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
21305         langhook.
21306
21307 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
21308
21309         PR rtl-optimization/35542
21310         * fwprop.c (forward_propagate_and_simplify): Replace
21311         loc_reg_mentioned_in_p with reg_mentioned_p.
21312
21313 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
21314
21315         PR rtl-optimization/35281
21316         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
21317         (propagate_rtx_1): Handle PR_HANDLE_MEM.
21318         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
21319         (varying_mem_p): Move above propagate_rtx.
21320         (all_uses_available_at): Do not check MEMs.
21321
21322 2008-04-02  Rafael Espíndola  <espindola@google.com>
21323
21324         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
21325         (register_edge_assert_for_2): Split the cond argument.
21326         (register_edge_assert_for_1): Adjust for the change in
21327         register_edge_assert_for_2.
21328         (register_edge_assert_for): Split the cond argument.
21329         (find_switch_asserts): Adjust for the change in
21330         register_edge_assert_for.
21331
21332 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
21333
21334         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
21335         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
21336         offsets for 64-bit mingw.
21337         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
21338         abi for x86_64-pc-mingw.
21339
21340 2008-04-02  Richard Guenther  <rguenther@suse.de>
21341
21342         * tree-vrp.c (extract_range_from_assert): Make sure to not
21343         produce range min/max with TREE_OVERFOW set.
21344         If merging a anti-range and a range keep the anti-range if
21345         the range covers all values of the type.
21346         (register_edge_assert_for_2): Only allow sign-changing
21347         conversions in detecting canonical range checks.  Also
21348         register an assert for the unsigned name if useful.
21349
21350         PR tree-optimization/35787
21351         * tree-vrp.c (vrp_val_max): New function.
21352         (vrp_val_min): Likewise.
21353         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
21354         (vrp_val_is_min): Likewise.
21355         (supports_overflow_infinity): Use vrp_val_{min,max}.
21356         (negative_overflow_infinity): Likewise.
21357         (positive_overflow_infinity): Likewise.
21358         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
21359         (is_positive_overflow_infinity): Likewise.
21360         (is_overflow_infinity): Likewise.
21361         (avoid_overflow_infinity): Use vrp_val_{min,max} and
21362         vrp_val_is_{min,max}.
21363         (set_and_canonicalize_value_range): Canonicalize anti-ranges
21364         to ranges if possible.  Avoid empty ranges.
21365
21366 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21367
21368         PR middle-end/35705
21369         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
21370         the expression is a function address.
21371
21372 2008-04-01  George Helffrich  <george@gcc.gnu.org>
21373
21374         PR fortran/35154, fortran/23057
21375         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
21376         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
21377         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
21378         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
21379         in common.
21380         (dbxout_syms): Check for COMMON-based symbol and wrap in
21381         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
21382         in bracket for efficiency.
21383
21384         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
21385         using DW_TAG_common_block + member offset.
21386         (add_pubname_string): New function.
21387         (dw_expand_expr): New function to find block name and offset for
21388         COMMON var.
21389         (common_check): New function to check whether symbol in Fortran COMMON.
21390         (gen_variable_die): If COMMON, use DW_TAG_common_block.
21391
21392 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
21393
21394         PR c/35436
21395         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
21396
21397 2008-04-02  Ben Elliston  <bje@au.ibm.com>
21398
21399         * config/v850/v850.md (casesi): Remove if (0) code.
21400         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21401         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
21402
21403 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
21404
21405         * config/i386/i386.md (rex64suffix): New mode attribute.
21406         (floathi<mode>2): Disable expander for SSE math.
21407         (*floathi<mode>2_1): New insn insn_and_split pattern.
21408         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
21409         corresponding post-reload splitters.
21410         (*floathi<mode>2_i387): New macroized insn pattern.
21411         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
21412         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
21413         insn_and_split pattern.
21414         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
21415         New macroized instruction patterns and corresponding post-reload
21416         splitters.
21417         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
21418         and corresponding post-reload splitters.
21419         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
21420         New macroized instruction patterns.
21421         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
21422         macroized instruction patterns and corresponding post-reload splitters.
21423         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
21424         corresponding post-reload splitters.
21425         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
21426         New macroized instruction patterns.
21427         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
21428         corresponding post-reload splitters.
21429         (*floatsi<mode>2_i387): New macroized instruction patterns.
21430
21431 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
21432
21433         * config/i386/i386.md (smaxmin): New.
21434         (umaxmin): Likewise.
21435         (maxminiprefix): Likewise.
21436         (maxminfprefix): Likewise.
21437         (<code><mode>3): Likewise.
21438         (smin<mode>3): Removed.
21439         (smax<mode>3): Likewise.
21440
21441         * config/i386/mmx.md (mmx_<code>v2sf3): New.
21442         (mmx_<code>v4hi3): Likewise.
21443         (mmx_<code>v8qi3): Likewise.
21444         (mmx_smaxv2sf3): Removed.
21445         (mmx_sminv2sf3): Likewise.
21446         (mmx_umaxv8qi3): Likewise.
21447         (mmx_smaxv4hi3): Likewise.
21448         (mmx_uminv8qi3): Likewise.
21449         (mmx_sminv4hi3): Likewise.
21450
21451         * config/i386/sse.md (<addsub><mode>3): New.
21452         (*<addsub><mode>3): Likewise.
21453         (<sse>_vm<addsub><mode>3): Likewise.
21454         (<maxmin><mode>3): Likewise.
21455         (*<maxmin><mode>3_finite): Likewise.
21456         (*<maxmin><mode>3): Likewise.
21457         (<sse>_vm<maxmin><mode>3): Likewise.
21458         (sse3_h<addsub>v4sf3): Likewise.
21459         (sse3_h<addsub>v2df3): Likewise.
21460         (<maxmin>v16qi3): Likewise.
21461         (*<maxmin>v16qi3): Likewise.
21462         (<maxmin>v8hi3): Likewise.
21463         (*<maxmin>v8hi3): Likewise.
21464         (*sse4_1_<maxmin><mode>3): Likewise.
21465         (*sse4_1_<maxmin><mode>3): Likewise.
21466         (add<mode>3): Removed.
21467         (*add<mode>3): Likewise.
21468         (<sse>_vmadd<mode>3): Likewise.
21469         (sub<mode>3): Likewise.
21470         (*sub<mode>3): Likewise.
21471         (<sse>_vmsub<mode>3): Likewise.
21472         (smin<mode>3): Likewise.
21473         (*smin<mode>3_finite): Likewise.
21474         (*smin<mode>3): Likewise.
21475         (<sse>_vmsmin<mode>3): Likewise.
21476         (smax<mode>3): Likewise.
21477         (*smax<mode>3_finite): Likewise.
21478         (*smax<mode>3): Likewise.
21479         (<sse>_vmsmax<mode>3): Likewise.
21480         (sse3_haddv4sf3): Likewise.
21481         (sse3_haddv2df3): Likewise.
21482         (sse3_hsubv4sf3): Likewise.
21483         (sse3_hsubv2df3): Likewise.
21484         (umaxv16qi3): Likewise.
21485         (*umaxv16qi3): Likewise.
21486         (smaxv8hi3): Likewise.
21487         (*smaxv8hi3): Likewise.
21488         (*sse4_1_smax<mode>3): Likewise.
21489         (*sse4_1_umax<mode>3): Likewise.
21490         (uminv16qi3): Likewise.
21491         (*uminv16qi3): Likewise.
21492         (sminv8hi3): Likewise.
21493         (*sminv8hi3): Likewise.
21494         (*sse4_1_smin<mode>3): Likewise.
21495         (*sse4_1_umin<mode>3): Likewise.
21496
21497 2008-04-01  Rafael Espíndola  <espindola@google.com>
21498
21499         * tree-cfg.c (verify_expr): remove in_phi.
21500         (verify_stmt): Don't call walk_tree with verify_expr. Use
21501         is_gimple_min_invariant instead of is_gimple_val.
21502
21503 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
21504
21505         * doc/include/gpl_v3.texi: Update for manpage generation.
21506         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
21507         gpl.texi.
21508         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
21509         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
21510         gpl_v3.texi instead of gpl.texi.
21511         (gpl.pod): New.
21512
21513 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
21514
21515         PR pch/13675
21516         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
21517
21518 2008-04-01  Rafael Espíndola  <espindola@google.com>
21519
21520         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
21521         (extract_code_and_val_from_cond): Use
21522         extract_code_and_val_from_cond_with_ops.
21523
21524 2008-04-01  Jan Hubicka  <jh@suse.cz>
21525
21526         * function.c (free_after_compilation): Free epilogue_delay_list.
21527         (prepare_function_start): Assert that previous compilation was freed.
21528
21529 2008-04-01  Jan Hubicka  <jh@suse.cz>
21530             Jim Wilson  <wilson@tuliptree.org>
21531             Andreas Tobler <andreast@gcc.gnu.org>
21532
21533         PR middle-end/35781
21534         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
21535         rtl.emit instead cfun->emit.
21536         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
21537         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
21538
21539 2008-04-01  Ben Elliston  <bje@au.ibm.com>
21540
21541         * doc/c-tree.texi (Function Basics): Fix grammatical error.
21542
21543 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
21544
21545         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
21546         New options
21547         (fprofile-use): Add var flag_profile_use
21548         * coverage.c (coverage_begin_output): Do not open a gcno file for
21549         output only if -ftest-coverage is set.
21550         Do not add getpwd() to gcda file path.
21551         (build_gcov_info): Check the new flag
21552         flag_profile_datafile_relative_path.
21553         (coverage_init): Use profile_data_prefix.
21554         Read profile counter only if flag_profile_use is set.
21555         * opts.c (common_handle_option): New option fprofile-use=,
21556         fprofile-dir=, fprofile-generate=.
21557         * toplev.c (profile_data_prefix): New variable definition.
21558         * toplev.h (profile_data_prefix): New declaration.
21559         * doc/invoke.tex (Option Summary, Optimization Options):
21560         Add new options.
21561
21562 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
21563
21564         * varasm.c (output_constant_pool_1): In LABEL_REF check,
21565         use tmp consistently.
21566
21567         PR target/35695
21568         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
21569         * config/ia64/ia64.c (rtx_needs_barrier): Handle
21570         UNSPEC_FR_RECIP_APPROX_RES.
21571         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
21572
21573 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
21574
21575         PR c/35750
21576         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
21577
21578 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21579
21580         PR middle-end/30186
21581         * fold-const.c (fold_indirect_ref_1): Support accessing non first
21582         element of the vector via a pointer.
21583
21584 2008-03-31  Ian Lance Taylor  <iant@google.com>
21585
21586         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
21587
21588 2008-03-31  Jan Hubicka  <jh@suse.cz>
21589
21590         * builtins.c (expand_builtin_setjmp_receiver): Update call of
21591         get_arg_pointer_save_area.
21592         * expr.c (init_expr): Just clear out rtl.expr.
21593         * function.c (free_after_compilation): Clear out whole RTL structure.
21594         (get_func_frame_size): Merge into ...
21595         (get_frame_size): ... this one.
21596         (assign_stack_local_1): Merge into ...
21597         (assign_stack_local): ... this one.
21598         (expand_function_end): Update call of get_arg_pointer_save_area.
21599         (get_art_pointer_save_area): Remove cfun argument.
21600         * function.h (emit_status): regno_pointer_align does not need length
21601         attribute. Move x_regno_reg_rtx to ...
21602         (regno_reg_rtx): ... new global array.
21603         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
21604         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
21605         apply_args_value, forced_labels, stack_pointer_delta):
21606         Update accestors.
21607         (struct varasm_status): Move here from varasm.c
21608         (struct rtl_data): New. Move here some fields from struct function.
21609         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
21610         frame_offset, stack_check_probe_note, arg_pointer_save_area,
21611         used_temp_slots avail_temp_slots, temp_slot_level,
21612         nonlocal_goto_handler_labels): Update accesstors.
21613         (rtl): New global variable.
21614         (struct function): Move some fileds to rtl_data.
21615         (get_arg_pointer_save_area): Update prototype.
21616         * emit-rtl.c (rtl): Declare.
21617         (regno_reg_rtx): Declare.
21618         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
21619         Update.
21620         (gen_reg_rtx): Update.
21621         (init_virtual_regs): Do not tate emit_status argument.
21622         (init_emit): Do not allocate emit.
21623         * varasm.c (varasm_statuc): Move to function.h.
21624         (n_deferred_constatns): Update accestor.
21625         (init_varasm_status): Do not allocate varasm_status.
21626         (force_const_mem, get_pool_size, output_constant_pool): Update.
21627         * stmt.c (force_label_rtx): Do not use x_ prefixes.
21628         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
21629
21630 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
21631
21632         PR rtl-optimization/35729
21633         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
21634         references.
21635
21636 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
21637
21638         PR target/32000
21639         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
21640         load/store if memory is unaligned.
21641         (*movti_rex64): Likewise.
21642
21643         * config/i386/predicates.md (misaligned_operand): New.
21644
21645 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
21646
21647         PR tree-opt/35431
21648         * tree-ssa-phiopt.c (conditional_replacement): Return early for
21649         complex types.
21650
21651 2008-03-31  Jan Beulich  <jbeulich@novell.com>
21652
21653         * config/ia64/constraints.md: Add 'j' constraint.
21654         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
21655         (movdi_internal): Likewise.
21656
21657 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
21658
21659         PR c/35748
21660         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
21661
21662 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
21663
21664         PR target/35757
21665         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
21666         proper error message for the third argument on blendpd and
21667         blendps.
21668
21669         * config/i386/sse.md (blendbits): New.
21670         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
21671
21672 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
21673
21674         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
21675
21676 2008-03-30  Richard Guenther  <rguenther@suse.de>
21677
21678         PR middle-end/31023
21679         * fold-const.c (fold_sign_changed_comparison): Do leave
21680         conversions to base-types alone.
21681
21682 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21683
21684         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
21685         the link register if one altivec register is be saved.
21686
21687 2008-03-30  Ben Elliston  <bje@au.ibm.com>
21688
21689         * final.c (final_scan_insn): Remove if (0) code.
21690
21691 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
21692
21693         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
21694
21695 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
21696
21697         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
21698         of V4SFmode to ix86_binary_operator_ok.
21699
21700 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
21701
21702         * config/i386/i386.c (override_options): Initialize
21703         ix86_veclib_handler to ix86_veclibabi_svml when
21704         -mveclibabi=svml is used.
21705         (ix86_veclibabi_svml): New function for SVML ABI style
21706         vectorization support.
21707         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
21708
21709 2008-03-28  Rafael Espíndola  <espindola@google.com>
21710
21711         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
21712         (tree_binary_nonnegative_warnv_p): Make it public.
21713         (tree_single_nonnegative_warnv_p): Make it public.
21714         (tree_invalid_nonnegative_warnv_p): Make it public.
21715         (tree_unary_nonzero_warnv_p): Make it public.
21716         (tree_binary_nonzero_warnv_p): Make it public
21717         (tree_single_nonzero_warnv_p): Make it public.
21718         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
21719         (extract_range_from_binary_expr): Split the expr argument.
21720         (extract_range_from_unary_expr): Split the expr argument.
21721         (extract_range_from_comparison): Split the expr argument.
21722         (extract_range_from_expr): Use the new aux functions.
21723         (vrp_evaluate_conditional_warnv): Use
21724         vrp_evaluate_conditional_warnv_with_ops.
21725         * tree.h (tree_unary_nonzero_warnv_p): Declare.
21726         (tree_binary_nonzero_warnv_p): Declare.
21727         (tree_single_nonzero_warnv_p): Declare.
21728         (tree_expr_nonzero_warnv_p): Declare.
21729         (tree_unary_nonnegative_warnv_p): Declare.
21730         (tree_binary_nonnegative_warnv_p): Declare.
21731         (tree_single_nonnegative_warnv_p): Declare.
21732         (tree_invalid_nonnegative_warnv_p): Declare.
21733
21734 2008-03-28  Richard Guenther  <rguenther@suse.de>
21735
21736         PR tree-optimization/30317
21737         PR tree-optimization/30911
21738         PR tree-optimization/34793
21739         * tree-vrp.c (set_and_canonicalize_value_range): New function.
21740         (struct assert_locus_d): New member EXPR.
21741         (register_new_assert_for): Add EXPR parameter to support
21742         ASSERT_EXPR <name, expr OP limit>.
21743         (register_edge_assert_for_1): Adjust callers.
21744         (find_assert_locations): Likewise.
21745         (process_assert_insertions_for): Build condition from expression.
21746         (extract_range_from_assert): Handle ASSERT_EXPRs
21747         of the form ASSERT_EXPR <name, expr OP limit>.
21748         (register_edge_assert_for_2): New helper registering
21749         asserts for comparisons.  Recognize range tests of the form
21750         (unsigned)i - CST1 OP CST2.
21751         (register_edge_assert_for_1): Use it.
21752         (register_edge_assert_for): Likewise.
21753         (needs_overflow_infinity): Integer sub-types
21754         do not need overflow infinities.
21755         (vrp_val_is_max): The extreme values of integer sub-types
21756         are those of the base type.
21757         (vrp_val_is_min): Likewise.
21758         * tree.def (ASSERT_EXPR): Document extra allowed conditional
21759         expressions.
21760
21761 2008-03-28  Nick Clifton  <nickc@redhat.com>
21762
21763         PR target/31110
21764         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
21765         Return GENERAL_REGS for stack adjustment reloads.
21766
21767 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21768
21769         PR target/31334
21770         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
21771         const_vector when all the vectors are constant.
21772
21773 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
21774
21775         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
21776         comparisons.
21777         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
21778         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
21779         (scc_sf): New.
21780         (s<code>_sf): Use new scc_sf attribute for opcode names.
21781
21782 2008-03-27  Tom Tromey  <tromey@redhat.com>
21783
21784         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
21785         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
21786         config/spu/t-spu-elf, config/i386/t-interix,
21787         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
21788         config/i386/x-darwin, config/i386/x-mingw32,
21789         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
21790         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
21791         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
21792         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
21793         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
21794         config/rs6000/x-darwin, config/rs6000/t-rs6000,
21795         config/score/t-score-elf, config/arm/t-strongarm-pe,
21796         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
21797         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
21798         Revert automatic dependency patch.
21799
21800 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21801
21802         PR target/35657
21803         * config/i386/i386.c (ix86_function_arg_boundary): Align
21804         decimal floating point to its natural boundary.
21805
21806 2008-03-27  Richard Guenther  <rguenther@suse.de>
21807
21808         PR middle-end/35716
21809         * fold-const.c (fold_comparison): Restrict distinct decl
21810         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
21811         solely rely on operand_equal_p.
21812
21813 2008-03-27  Richard Guenther  <rguenther@suse.de>
21814
21815         PR c/32511
21816         * c-common.c (handle_weak_attribute): Reject combination of
21817         weak and inline.
21818
21819 2008-03-27  Richard Guenther  <rguenther@suse.de>
21820
21821         PR tree-optimization/32810
21822         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
21823         conversions from DECL_INITIAL.
21824         (fold_const_aggregate_ref): Likewise from constructor elements.
21825
21826 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
21827
21828         * tree-affine.h (aff_combination_expand): Declare.
21829         (get_inner_reference_aff): Likewise.
21830         * tree-affine.c (aff_combination_expand): Split out from
21831         tree_to_aff_combination_expand.
21832         (get_inner_reference_aff): New function.
21833         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
21834         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
21835         (struct lim_aux_data): sm_done field removed.
21836         (mem_ref_loc_p, mem_ref_locs_p): New types.
21837         (struct mem_ref): Added id, stored, accesses_in_loop,
21838         indep_loop, dep_loop, indep_ref, dep_ref fields.
21839         Removed is_stored, locs and next fields.
21840         (memory_accesses): New variable.
21841         (movement_possibility): Do not allow moving statements
21842         that store to memory.
21843         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
21844         New functions.
21845         (determine_max_movement): For statements with memory references,
21846         find the outermost loop in that the reference is independent.
21847         (move_computations_stmt): Mark the virtual operands for renaming.
21848         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
21849         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
21850         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
21851         add_vop_ref_mapping, create_vop_ref_mapping_loop,
21852         create_vop_ref_mapping, analyze_memory_references,
21853         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
21854         get_all_locs_in_loop, ref_always_accessed_p,
21855         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
21856         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
21857         store_motion_loop, store_motion): New functions.
21858         (struct vop_to_refs_elt): New type.
21859         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
21860         memref_hash, memref_eq, hoist_memory_references): Rewritten.
21861         (schedule_sm): Replaced by...
21862         (execute_sm): ... this.
21863         (determine_lsm_ref, hoist_memory_references,
21864         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
21865         find_more_ref_vops, free_mem_ref, free_mem_refs,
21866         determine_lsm_loop, determine_lsm): Removed.
21867         (tree_ssa_lim_finalize): Free data structures used by store motion.
21868         (tree_ssa_lim): Call analyze_memory_references.  Use
21869         store_motion instead of determine_lsm.
21870
21871 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
21872
21873         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
21874         rename tmake_file to m68hc11/t-m68hc11.
21875         (mcore): Set inhibit_libc to true.
21876         * config.host (alpha*-dec-*vms*): Set extra_programs.
21877         (interix3*): Don't use host_xmake_file.
21878         * configure.ac: Let config.gcc override inhibit_libc.
21879         * configure: Regenerate.
21880
21881         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
21882         * config/t-openbsd-thread: Remove commented out lines.
21883
21884         * config/x-interix: Remove.
21885
21886         * config/m68hc11/t-m68hc11-gas: Rename to...
21887         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
21888
21889         * config/mcore/t-mcore: Remove T_CFLAGS.
21890         * config/mcore/t-mcore-pe: Likewise.
21891
21892 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
21893
21894         * configure.ac: Replace custom __GNU_SOURCE test with
21895         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
21896         * aclocal.m4: Regenerate.
21897         * configure: Regenerate.
21898         * config.in: Regenerate.
21899
21900 2008-03-27  Richard Guenther  <rguenther@suse.de>
21901
21902         * fold-const.c (target.h): Include.
21903         (fold_comparison): Fold comparison of addresses of decls
21904         that bind locally or of constants.  Consolidate address folding code.
21905         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
21906         results from fold_binary_to_constant.
21907         (compare_values_warnv): Likewise.
21908
21909 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
21910
21911         PR middle-end/35429
21912         * fold-const.c (fold_truthop): Check for integeral types when folding
21913         a == 0 && b == 0 and a != 0 || b != 0 .
21914
21915 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
21916
21917         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
21918
21919 2008-03-26  Andreas Schwab  <schwab@suse.de>
21920
21921         * doc/invoke.texi: Fix use of @item vs. @itemx.
21922
21923 2008-03-26  Tom Tromey  <tromey@redhat.com>
21924
21925         * Makefile.in (build/gensupport.o, build/print-rtl.o,
21926         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
21927         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
21928         build/gencodes.o, build/genconditions.o, build/genconfig.o,
21929         build/genconstants.o, build/genemit.o, build/genextract.o,
21930         build/genflags.o, build/genmddeps.o, build/genopinit.o,
21931         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
21932         options.h.
21933
21934 2008-03-26  Richard Guenther  <rguenther@suse.de>
21935
21936         Revert
21937         2008-03-26  Richard Guenther  <rguenther@suse.de>
21938
21939         * fold-const.c (target.h): Include.
21940         (fold_comparison): Fold comparison of addresses of two decls
21941         that bind locally.  Consolidate address folding code.
21942
21943 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21944
21945         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
21946         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
21947         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
21948         dconstsqrt2, dconstthird, dconste and/or dconst10.
21949         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
21950         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
21951         dconstsqrt2, dconste): Delete.
21952         (init_emit_once): Likewise.  Simplify initializing dconstm1.
21953         Constify variable.
21954         * real.c (get_real_const): New.
21955         * real.h (dconst3, dconst10, dconstm2, dconstthird,
21956         dconstsqrt2, dconste): Delete.
21957         (real_value_const, get_real_const): New.
21958
21959 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
21960
21961         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
21962
21963         * config/i386/i386.c (ix86_function_arg_boundary): Check
21964         BIGGEST_ALIGNMENT instead of 128.
21965         (setup_incoming_varargs_64): Likewise.
21966
21967 2008-03-26  Tom Tromey  <tromey@redhat.com>
21968
21969         * Makefile.in (DEPFILES): Add missing '/'.
21970
21971 2008-03-26  Richard Guenther  <rguenther@suse.de>
21972
21973         * fold-const.c (target.h): Include.
21974         (fold_comparison): Fold comparison of addresses of two decls
21975         that bind locally.  Consolidate address folding code.
21976
21977 2008-03-26  Nick Clifton  <nickc@redhat.com>
21978
21979         PR target/31232
21980         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
21981         not allow INT+INT as a legitimate addressing mode.
21982
21983 2008-03-26  Richard Guenther  <rguenther@suse.de>
21984
21985         * tree-flow.h (widen_bitfield): Remove declaration.
21986         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
21987         (widen_bitfield): Remove function.
21988         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
21989         code.
21990
21991 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21992
21993         PR target/31558
21994         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
21995         error_mark_node's.
21996
21997 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
21998
21999         PR rtl-optimization/35232
22000         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
22001         (forget_old_reloads_1, forget_marked_reloads): Don't clear
22002         reg_reloaded_call_part_clobbered here.
22003         (reload_regs_reach_end_p): New function.
22004         (reload_reg_rtx_for_input): New variable.
22005         (reload_reg_rtx_for_output): Likewise.
22006         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
22007         when reassigning a pseudo register.  Load reloadreg from
22008         reload_reg_rtx_for_input, moving the mode and register
22009         calculation to...
22010         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
22011         instead of the original when deciding whether an input reload
22012         would be a no-op or whether an output reload can be deleted.
22013         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
22014         when setting up new_spill_reg_store.  Load it from
22015         reload_reg_rtx_for_output, moving the mode and register
22016         calculation to...
22017         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
22018         instead of the original when deciding whether an output reload
22019         would be a no-op.  Do the same when modifying insn notes.
22020         Use rtx_equal_p instead of == to compare the registers.
22021         (inherit_piecemeal_p): Take a mode and two register numbers
22022         as argument.
22023         (emit_reload_insns): Clear new_spill_reg_store for every hard
22024         register in the reload register.  Remove spill registers
22025         from reg_reloaded_valid before considering whether to record
22026         inheritance information for them.  Use reload_reg_rtx_for_output
22027         instead of reg_rtx when recording output reloads.  Use
22028         reload_reg_rtx_for_input instead of reg_rtx when recording
22029         input reloads.  Set or clear reg_reloaded_call_part_clobbered
22030         at the same time as setting reg_reloaded_valid.
22031         (delete_output_reload): Add a new_reload_reg parameter and use it
22032         instead of rld[j].reg_rtx.
22033         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
22034         calls accordingly.
22035
22036 2008-03-25  Tom Tromey  <tromey@redhat.com>
22037
22038         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
22039         (build/genattr.o): Likewise.
22040         (build/genattrtab.o): Likewise.
22041         (build/gencodes.o): Likewise.
22042         (build/genconfig.o): Likewise.
22043         (build/genconstants.o): Likewise.
22044         (build/genemit.o): Likewise.
22045         (build/genextract.o): Likewise.
22046         (build/genflags.o): Likewise.
22047
22048 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
22049
22050         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
22051         instead of size_int for integer types.
22052         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
22053         to match type of MINUS_EXPR.
22054
22055 2008-03-25  Tom Tromey  <tromey@redhat.com>
22056
22057         * configure: Rebuilt.
22058         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
22059         Makefile.
22060
22061 2008-03-25  Tom Tromey  <tromey@redhat.com>
22062
22063         * config/x-solaris (host-solaris.o): Update.
22064         * config/x-linux (host-linux.o): Update.
22065         * config/x-hpux (host-hpux.o): Update.
22066         * config/x-darwin (host-darwin.o): Update.
22067         * config/v850/t-v850e (v850-c.o): Update.
22068         * config/v850/t-v850 (v850-c.o): Update.
22069         * config/t-vxworks (vxworks.o): Update.
22070         * config/t-sol2 (sol2-c.o, sol2.o): Update.
22071         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
22072         * config/spu/t-spu-elf (spu-c.o): Update.
22073         (spu.o): Remove.
22074         * config/sh/t-symbian (sh-c.o): Update.
22075         (symbian.o): Update.
22076         * config/sh/t-sh (sh-c.o): Update.
22077         * config/score/t-score-elf (score7.o, score3.o): Update.
22078         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
22079         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
22080         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
22081         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
22082         (rs6000.o): Remove.
22083         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
22084         * config/m32c/t-m32c (m32c-pragma.o): Update.
22085         * config/ia64/t-ia64 (ia64-c.o): Update.
22086         * config/i386/x-mingw32 (host-mingw32.o): Update.
22087         * config/i386/x-i386 (driver-i386.o): Update.
22088         * config/i386/x-darwin (host-i386-darwin.o): Update.
22089         * config/i386/x-cygwin (host-cygwin.o): Update.
22090         * config/i386/t-nwld (nwld.o): Update.
22091         * config/i386/t-netware (netware.o): Update.
22092         * config/i386/t-interix (winnt.o): Update.
22093         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
22094         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
22095         msformat-c.o): Update.
22096         * config/bfin/t-bfin-linux (generated_files): Add
22097         linux-sysroot-suffix.h.
22098         * config/arm/t-wince-pe (pe.o): Update.
22099         * config/arm/t-strongarm-pe (pe.o): Update.
22100         * config/arm/t-pe (pe.o): Update.
22101         * config/arm/t-arm (arm-c.o): Update.
22102         * doc/install.texi (Prerequisites): Require make 3.80.
22103         * Makefile.in: Remove .o targets.
22104         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
22105         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
22106         (simple_generated_h, simple_generated_c): Move earlier.
22107         (generated_files): New variable.
22108         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
22109         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
22110         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
22111         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
22112         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
22113         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
22114         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
22115         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
22116         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
22117         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
22118         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
22119         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
22120         (.c.o): Remove.
22121         (COMPILE.base, COMPILE): New variables.
22122         (%.o): New pattern rule.
22123         (ALL_HOST_OBJS): New variable.
22124         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
22125         (dummy-checksum.o, cc1-checksum.o): Remove.
22126         (DRIVER_SHLIB): New variable.
22127         (DRIVER_DEFINES): Use it.
22128         (gencondmd.c): Move out of build/.
22129         (s-conditions): Update.
22130         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
22131         (ALL_BUILD_OBJS): Likewise.
22132         (build/%.o): Use BUILDCOMPILE.
22133         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
22134         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
22135         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
22136         build/gencheck.o, build/gencodes.o, build/genconditions.o,
22137         build/genconfig.o, build/genconstants.o, build/genemit.o,
22138         build/genextract.o, build/genflags.o, build/genmddeps.o,
22139         build/genopinit.o, build/genoutput.o, build/genpeep.o,
22140         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
22141         build/gen-protos.o, build/scan.o, build/fix-header.o,
22142         build/scan-decls.o): Simplify.
22143         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
22144         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
22145         prefix.o, toplev.o): Reduce to variable setting.
22146         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
22147         ($(out_object_file), gcc-options.o): New targets.
22148         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
22149         * configure: Rebuilt.
22150         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
22151         * doc/sourcebuild.texi (Front End Directory): Document new variable.
22152
22153 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
22154
22155         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
22156         complain when we hit an error, return ERROR_MARK_NODE.
22157
22158 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
22159
22160         * config/sh/constraints.md (Pso, Psz): New constraints.
22161         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
22162         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
22163
22164 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
22165
22166         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
22167         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
22168
22169 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
22170
22171         * config/sh/sh.md (prefetch): Add condition for SH2A target.
22172         (prefetch_sh2a): New.
22173
22174 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
22175             Naveen.H.S  <naveen.hs@kpitcummins.com>
22176
22177         * config/sh/constraints.md (I28): New constraint.
22178         * config/sh/sh.c (broken_move): Add support for movi20s.
22179         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
22180
22181 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
22182             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
22183             Naveen.H.S  <naveen.hs@kpitcummins.com>
22184
22185         * config/sh/sh.c (SH_ATTRIBUTES): Define.
22186         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
22187         (print_operand): Handle resbank in %@ operand code.
22188         (sh_encode_section_info): New.
22189         (push_regs): Add conditions for resbank.
22190         (sh_expand_epilogue): Likewise.
22191         (sh_insert_attributes): Likewise.
22192         (sh_attribute_table): Likewise.
22193         (sh_handle_resbank_handler_attribute): New.
22194         (sh2a_handle_function_vector_handler_attribute): New.
22195         (sh2a_is_function_vector_call): New.
22196         (sh2a_get_function_vector_number): New.
22197         (sh2a_function_vector_p): New.
22198         (sh_cfun_resbank_handler_p): New.
22199         * config/sh/sh.md (calli): Emit jsr/n if possible.
22200         (calli_tbr_rel): New.
22201         (calli_pcrel): Emit jsr/n if possible.
22202         (return_i): Emit rts/n if possible.
22203         (call_valuei_tbr_rel): New.
22204         (call_valuei_pcrel): Add condition for SH2A target.
22205         (call_value): Likewise.
22206         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
22207         (sh2a_get_function_vector_number): Likewise.
22208         (sh2a_is_function_vector_call): Likewise.
22209         * doc/extend.texi: Document TBR relative addressing of SH2A.
22210         (resbank): Add description for SH2A.
22211
22212 2008-03-24  Richard Guenther  <rguenther@suse.de>
22213
22214         PR c/22371
22215         * gimplify.c (gimplify_modify_expr): For frontend type-correct
22216         pointer assignments change conversions according to middle-end rules.
22217         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
22218         * configure.ac: Include type checking in yes.
22219         * configure: Regenerate.
22220
22221 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22222
22223         * diagnostic.c (diagnostic_count_diagnostic): Delete.
22224         (diagnostic_report_diagnostic): Update. Handle ICEs here.
22225
22226 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
22227
22228         * gthr-vxworks.h (UNUSED): Define.
22229
22230 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
22231
22232         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
22233
22234 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
22235
22236         * doc/extend.texi (Function Attributes): Add missing comma in the
22237         example of the "alloc_size" attribute.
22238
22239 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
22240
22241         Revert:
22242         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
22243
22244         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
22245         32bit host.
22246
22247         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
22248
22249         PR target/35496
22250         * stor-layout.c (update_alignment_for_field): Set minimum alignment
22251         of the underlying type of a MS bitfield layout to the natural
22252         alignment of the type.
22253
22254         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
22255
22256         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
22257         to their natural alignment to avoid store forwarding stalls.
22258
22259 2008-03-22  Richard Guenther  <rguenther@suse.de>
22260
22261         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
22262         For PHI nodes verify the address is invariant.
22263         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
22264         (get_symbol_constant_value): Use is_gimple_min_invariant.
22265         (maybe_fold_stmt_indirect): Likewise.
22266
22267 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
22268
22269         PR rtl-optimization/33927
22270         * Makefile.in (dse.o): Depend on $(TM_P_H).
22271         * expr.h (extract_low_bits): Declare.
22272         * expmed.c (extract_low_bits): New function.
22273         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
22274         * dse.c: Include tm_p.h.
22275         (find_shift_sequence): Remove the read_reg argument and return the
22276         read value.  Emit the instructions instead of returning them.
22277         Iterate on new_mode rather than calculating it each time.
22278         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
22279         source to NEW_MODE and extract_low_bits to convert the shifted
22280         value to READ_MODE.
22281         (replace_read): Allow the load and store to have different mode
22282         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
22283         or extraction instructions before trying the replacement.  Update
22284         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
22285
22286 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
22287
22288         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
22289         to their natural alignment to avoid store forwarding stalls.
22290
22291 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22292
22293         PR target/27946
22294         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
22295         encouraging but not allowing gprs for input;
22296         change the input constraint to !f#r.
22297         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
22298         gprs for output;
22299         change the output constraint to !f#r.
22300
22301 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
22302
22303         PR target/13958
22304         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
22305         corresponding post-reload splitters.
22306         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
22307         when x87 FP math is selected.
22308         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
22309         New function prototype.
22310         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
22311         unreachable function to ease macroization of insn patterns.
22312
22313 2008-03-21  Martin Jambor  <mjambor@suse.cz>
22314
22315         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
22316         reference dumps if ddr is NULL or dependence is unknown.
22317
22318 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
22319
22320         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
22321         unsigned extension into account.
22322         (ATOMIC_COMPARE_AND_SWAP): Likewise.
22323         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
22324         Do computations on a scratch register.
22325
22326 2008-03-21  Richard Guenther  <rguenther@suse.de>
22327
22328         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
22329         Use is_gimple_min_invariant instead of TREE_INVARIANT.
22330         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
22331         * tree-ssa-dom.c (record_equality): Likewise.
22332         * tree-inline.c (copy_body_r): Likewise.
22333         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
22334         TREE_INVARIANT.
22335
22336 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
22337
22338         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
22339         as 'delete_unused' argument.
22340
22341 2008-03-20  Richard Guenther  <rguenther@suse.de>
22342
22343         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
22344         special casing of constant qualifiers.
22345         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
22346         care about them in general.
22347         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
22348         regardless of their type.
22349         (fold_stmt_r): Forcefully fold *& if we end up with that.
22350
22351 2008-03-20  Paul Brook  <paul@codesourcery.com>
22352
22353         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
22354         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
22355         linker flags.
22356         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
22357         definition.
22358         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
22359         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
22360
22361 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
22362
22363         * common.opt (Wmudflap): New option.
22364         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
22365         (mx_register_decls): Likewise.
22366         (mudflap_finish_file): Likewise.
22367         * doc/invoke.texi: Document -Wno-mudflap.
22368
22369 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
22370
22371         * c-format.c (replace_format_name_to_system_name): New.
22372         (cmp_attribs): New.
22373         (convert_format_name_to_system_name): New.
22374         (decode_format_attr): Add use of convert_format_name_to_system_name.
22375         (format_types_orig): Add gnu_ prefix to names.
22376         (check_format_info_main): Special treating of \0 escaped names for
22377         supporting multi-character format specifiers as I32, I64.
22378         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
22379         (gnu_target_overrides_format_attributes): New.
22380         * c-format.h: Add structure target_ovr_attr to hold
22381         system specific formatter names.
22382         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
22383         msformat-c.o file to c_target_objs and cxx_target_objs.
22384         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
22385         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
22386         (TARGET_N_FORMAT_TYPES): New.
22387         * config/i386/msformat-c.c: New.
22388         * config/i386/t-cygming: Add build rule for msformat-c.o.
22389         * doc/extend.texi: Add new format names gnu_* and ms_* and
22390         further details.
22391         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
22392
22393 2008-03-20  Ira Rosen  <irar@il.ibm.com>
22394
22395         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
22396         optimizations turned on under -O3.
22397         (ftree-vectorize): Add that the flag is turned on with -O3.
22398
22399 2008-03-20  Ben Elliston  <bje@au.ibm.com>
22400
22401         * regmove.c (try_auto_increment): Fix spelling error in comment.
22402         * final.c (final_scan_insn): Likewise.
22403
22404 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
22405
22406         PR target/14552
22407         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
22408         allocator preferences for "y" and "r" class registers.
22409         ("*mov<mode>_internal"): Ditto.
22410         ("*movv2sf_internal_rex64"): Ditto.
22411         ("*movv2sf_internal"): Ditto.
22412
22413 2008-03-19  Michael Matz  <matz@suse.de>
22414
22415         PR middle-end/35616
22416         * calls.c (expand_call): Check overlap of arguments with call
22417         address for sibcalls.
22418
22419 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
22420
22421         PR target/35496
22422         * stor-layout.c (update_alignment_for_field): Set minimum alignment
22423         of the underlying type of a MS bitfield layout to the natural
22424         alignment of the type.
22425
22426 2008-03-19  Jan Hubicka  <jh@suse.cz>
22427
22428         PR other/35094
22429         * toplev.c (decode_d_option): Handle all CPP flags.
22430         * tree-vrp.c: Update tree_pass descriptors.
22431         * regrename.c: Update tree_pass descriptors.
22432         * fwprop.c: Update tree_pass descriptors.
22433         * doc/invoke.texi: Remove documentation of dropped -d? flags.
22434         * tree-into-ssa.c: Update tree_pass descriptors.
22435         * tree-dump.c: Update tree_pass descriptors.
22436         * tree-complex.c: Update tree_pass descriptors.
22437         * tree-dump.h: Update tree_pass descriptors.
22438         * see.c: Update tree_pass descriptors.
22439         * cgraphbuild.c: Update tree_pass descriptors.
22440         * tracer.c: Update tree_pass descriptors.
22441         * tree-loop-distribution.c: Update tree_pass descriptors.
22442         * cgraph.c: Update tree_pass descriptors.
22443         * postreload-gcse.c: Update tree_pass descriptors.
22444         * postreload.c: Update tree_pass descriptors.
22445         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
22446         * tree-tailcall.c: Update tree_pass descriptors.
22447         * tree-pass.h (tree_opt_pass): Rename to ...
22448         (opt_pass) ... this one; add "type" field and remove letter field.
22449         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
22450         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
22451         all_lowering_passes): Update declaration.
22452         * ipa-cp.c: Update tree_pass descriptors.
22453         * final.c: Update tree_pass descriptors.
22454         * omp-low.c: Update tree_pass descriptors.
22455         * tree-ssa-dse.c: Update tree_pass descriptors.
22456         * ipa-reference.c: Update tree_pass descriptors.
22457         * tree-ssa-uncprop.c: Update tree_pass descriptors.
22458         * auto-inc-dec.c: Update tree_pass descriptors.
22459         * reorg.c: Update tree_pass descriptors.
22460         * cgraphunit.c: Update tree_pass descriptors.
22461         * tree-ssa-copyrename.c: Update tree_pass descriptors.
22462         * tree-ssa-ccp.c: Update tree_pass descriptors.
22463         * df-core.c: Update tree_pass descriptors.
22464         * mode-switching.c: Update tree_pass descriptors.
22465         * tree-nomudflap.c: Update tree_pass descriptors.
22466         * modulo-sched.c: Update tree_pass descriptors.
22467         * ipa-pure-const.c: Update tree_pass descriptors.
22468         * cse.c: Update tree_pass descriptors.
22469         * web.c: Update tree_pass descriptors.
22470         * tree-stdarg.c: Update tree_pass descriptors.
22471         * tree-ssa-math-opts.c: Update tree_pass descriptors.
22472         * tree-ssa-dom.c: Update tree_pass descriptors.
22473         * tree-nrv.c: Update tree_pass descriptors.
22474         * tree-ssa-alias.c: Update tree_pass descriptors.
22475         * loop-init.c: Update tree_pass descriptors.
22476         * gimple-low.c: Update tree_pass descriptors.
22477         * ipa-inline.c: Update tree_pass descriptors.
22478         * tree-ssa-sink.c: Update tree_pass descriptors.
22479         * global.c: Update tree_pass descriptors.
22480         * ifcvt.c: Update tree_pass descriptors.
22481         * jump.c: Update tree_pass descriptors.
22482         * predict.c: Update tree_pass descriptors.
22483         * tree-ssa-loop.c: Update tree_pass descriptors.
22484         * recog.c: Update tree_pass descriptors.
22485         * dse.c: Update tree_pass descriptors.
22486         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
22487         * tree-eh.c: Update tree_pass descriptors.
22488         * regmove.c: Update tree_pass descriptors.
22489         * local-alloc.c
22490         * function.c: Update tree_pass descriptors.
22491         * tree-vectorizer.c: Update tree_pass descriptors.
22492         * gcse.c: Update tree_pass descriptors.
22493         * ipa-type-escape.c: Update tree_pass descriptors.
22494         * tree-if-conv.c: Update tree_pass descriptors.
22495         * init-regs.c: Update tree_pass descriptors.
22496         * ipa.c: Update tree_pass descriptors.
22497         * tree-ssa-phiopt.c: Update tree_pass descriptors.
22498         * rtl-factoring.c: Update tree_pass descriptors.
22499         * lower-subreg.c: Update tree_pass descriptors.
22500         * bt-load.c: Update tree_pass descriptors.
22501         * tree-dfa.c: Update tree_pass descriptors.
22502         * except.c: Update tree_pass descriptors.
22503         * emit-rtl.c: Update tree_pass descriptors.
22504         * cfgexpand.c: Update tree_pass descriptors.
22505         * tree-cfgcleanup.c: Update tree_pass descriptors.
22506         * cfgcleanup.c: Update tree_pass descriptors.
22507         * tree-ssa-pre.c: Update tree_pass descriptors.
22508         * tree-sra.c: Update tree_pass descriptors.
22509         * tree-mudflap.c: Update tree_pass descriptors.
22510         * tree-ssa-copy.c: Update tree_pass descriptors.
22511         * cfglayout.c: Update tree_pass descriptors.
22512         * tree-ssa-forwprop.c: Update tree_pass descriptors.
22513         * tree-ssa-dce.c: Update tree_pass descriptors.
22514         * tree-ssa.c: Update tree_pass descriptors.
22515         * regclass.c: Update tree_pass descriptors.
22516         * integrate.c: Update tree_pass descriptors.
22517         * tree-optimize.c: Update tree_pass descriptors.
22518         * tree-ssa-phiprop.c: Update tree_pass descriptors.
22519         * tree-object-size.c: Update tree_pass descriptors.
22520         * combine.c: Update tree_pass descriptors.
22521         * tree-outof-ssa.c: Update tree_pass descriptors.
22522         * bb-reorder.c: Update tree_pass descriptors.
22523         * stack-ptr-mod.c: Update tree_pass descriptors.
22524         * var-tracking.c: Update tree_pass descriptors.
22525         * tree-profile.c: Update tree_pass descriptors.
22526         * tree-vect-generic.c: Update tree_pass descriptors.
22527         * reg-stack.c: Update tree_pass descriptors.
22528         * sched-rgn.c: Update tree_pass descriptors.
22529         * tree-ssa-structalias.c: Update tree_pass descriptors.
22530         * tree-cfg.c: Update tree_pass descriptors.
22531         * passes.c (current_pass): Update declaration.
22532         (finish_optimization_passes): Update.
22533         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
22534         (register_one_dump_file, register_dump_files_1, next_pass_1):
22535         Update arguments.
22536         (init_optimization_passes): Update handling of new types.
22537         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
22538         * ipa-struct-reorg.c: Update tree_pass descriptors.
22539         * tree-ssa-reassoc.c: Update tree_pass descriptors.
22540         * combine-stack-adj.c: Update tree_pass descriptors.
22541         * cfgrtl.c: Update tree_pass descriptors.
22542         * dce.c: Update tree_pass descriptors.
22543         * tree-ssanames.c: Update tree_pass descriptors.
22544
22545 2008-03-19  Richard Guenther  <rguenther@suse.de>
22546
22547         PR middle-end/35609
22548         * tree-ssa.c (walk_data): New structure.
22549         (warn_uninitialized_var): If not always_executed warn with "maybe"
22550         instead of "is".
22551         (execute_early_warn_uninitialized): Compute post-dominators.
22552         Initialize always_executed before processing each basic block.
22553
22554 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
22555
22556         PR target/35504
22557         * config/i386/i386.c (x86_this_parameter): Calculate correct location
22558         of "this" pointer when "regparm = N" or "fastcall" is in effect.
22559
22560 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22561
22562         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
22563
22564 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
22565
22566         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
22567         is true.
22568         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
22569         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
22570         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
22571         target after ignore has been set, and move there also the commputation
22572         of subtarget and original_target.
22573         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
22574         (LANG_HOOKS_INITIALIZER): Remove it.
22575         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
22576
22577 2008-03-18  Richard Guenther  <rguenther@suse.de>
22578
22579         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
22580         found an expression with constants, note that in the VN for the lhs.
22581         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
22582         fold them to constants if possible.  Run cleanup_cfg if done so.
22583         (execute_pre): Return todo.
22584         (do_pre): Likewise.
22585         (execute_fre): Likewise.
22586         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
22587         of constants.
22588         (get_prop_source_stmt): Look through pointer conversions.
22589
22590 2008-03-18  Jan Hubicka  <jh@suse.cz>
22591
22592         * tree-pretty-print.c: Include predict.h.
22593         (dump_generic_node): Dump predictor.
22594         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
22595         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
22596         * gimple-low.c (lower_stmt): Likewise.
22597         * expr.c (expand_expr_real): Likewise.
22598         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
22599         them.
22600         (build_predict_expr, build_predict_expr): New.
22601         * predict.h (predictor_name, build_predict_expr): Update.
22602         * c-typeck.c (c_finish_bc_stmt): Add prediction.
22603         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
22604         * predict.def (PRED_CONTINUE): Update hitrate.
22605         * tree.def (PREDICT_EXPR): Define.
22606         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
22607         do not handle BIND_EXPR.
22608         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
22609         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
22610         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
22611         operands.
22612
22613 2008-03-18  Michael Matz  <matz@suse.de>
22614
22615         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
22616
22617 2008-03-18  Richard Guenther  <rguenther@suse.de>
22618
22619         * tree-gimple.h (is_gimple_invariant_address): Declare.
22620         (is_gimple_constant): Likewise.
22621         * tree-gimple.c (is_gimple_constant): New function.
22622         (is_gimple_invariant_address): Likewise.
22623         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
22624         and is_gimple_invariant_address.
22625         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
22626         previous change.
22627         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
22628         an addressable base.
22629
22630 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
22631
22632         PR middle-end/35611
22633         * gimplify.c (gimplify_expr): Gimplify second operand of
22634         OMP_ATOMIC_LOAD.
22635
22636 2008-03-17  Richard Guenther  <rguenther@suse.de>
22637
22638         PR tree-optimization/19637
22639         * fold-const.c (fold_unary): Remove restrictions of removing
22640         intermediate pointer-conversions (P2)(P1)P0.
22641         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
22642         conversion to void pointer.
22643         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
22644
22645 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
22646
22647         PR debug/31510
22648         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
22649         emulated thread local variables.
22650
22651 2008-03-16  Richard Guenther  <rguenther@suse.de>
22652
22653         PR middle-end/35607
22654         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
22655         expand TREE_INVARIANT operations that are not gimple invariant.
22656
22657 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
22658
22659         * doc/extend.texi (Alignment): Say that the ABI controls
22660         the __alignof__ for non-strict-alignment targets rather
22661         than being a recommendation.
22662
22663 2008-03-15  Paul Brook  <paul@codesourcery.com>
22664
22665         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
22666         annotations.
22667         (arm_output_fn_unwind): Mark functions that can not be unwound.
22668
22669 2008-03-15  Paul Brook  <paul@codesourcery.com>
22670
22671         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
22672         extension instructions.
22673
22674 2008-03-15  Richard Guenther  <rguenther@suse.de>
22675
22676         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
22677         and fold constant aggregate refs.
22678         (fold_const_aggregate_ref): Handle string constants
22679         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
22680         (evaluate_stmt): Simplify now that ccp_fold folds constant
22681         aggregate refs.
22682
22683 2008-03-15  Paul Brook  <paul@codesourcery.com>
22684
22685         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
22686         (extzv): Use gen_extzv_t2.
22687         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
22688
22689 2008-03-15  Richard Guenther  <rguenther@suse.de>
22690
22691         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
22692         (fold_const_aggregate_ref): Likewise.
22693         (get_value): Return NULL if we don't have any values.
22694         (ccp_finalize): Set const_val to NULL after freeing it.
22695         * tree-flow.h (get_symbol_constant_value): Declare.
22696         (fold_const_aggregate_ref): Likewise.
22697         * tree-ssa-sccvn.c (try_to_simplify): Use them.
22698
22699 2008-03-15  Richard Guenther  <rguenther@suse.de>
22700
22701         PR middle-end/35593
22702         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
22703         to not produce negative array indices if not allowed.  Add
22704         parameter to indicate that.
22705         (maybe_fold_offset_to_component_ref): Allow negative array
22706         indices only for the first member of a structure.
22707         (maybe_fold_offset_to_reference): Allow negative array indices.
22708         (maybe_fold_stmt_addition): Likewise.
22709
22710 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
22711             Anatoly Sokolov <aesok@post.ru>
22712
22713         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
22714         (avr_arch): Add ARCH_AVR6.
22715         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
22716         (initial_elimination_offset): Initialize and use 'avr_pc_size'
22717         instead of fixed value 2.
22718         (print_operand_address): Use gs() asm specifier instead of pm().
22719         (avr_assemble_integer): (Ditto.).
22720         (avr_output_addr_vec_elt): (Ditto.).
22721         (print_operand): Handle "!" code.
22722         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
22723         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
22724         (AVR_HAVE_EIJMP_EICALL): Define.
22725         (AVR_3_BYTE_PC): Redefine.
22726         (AVR_2_BYTE_PC): (Ditto.).
22727         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
22728         (LINK_SPEC): Add atmega2560 and atmega2561.
22729         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
22730         (crtm2561.o).
22731         * config/avr/avr.md (call_insn): Use eicall instead of icall
22732         for 3 byte PC devices.
22733         (call_value_insn): (Ditto.).
22734         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
22735         (indirect_jump): Use only for for 2 byte PC devices.
22736         (*tablejump): (Ditto.).
22737         (*indirect_jump_avr6): Add insn.
22738         (*tablejump_rjmp): Don't use for 3 byte PC devices.
22739         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
22740         instead of ijmp for 3 byte PC devices.
22741         (__tablejump2__): (Ditto.).
22742         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
22743         (MULITLIB_DIRNAMES): (Ditto.).
22744         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
22745
22746 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
22747
22748         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
22749         "sse2_umulsidi3".  Use V1DI mode for operand 0.
22750         ("mmx_psadbw"): Use V1DI mode for operand 0.
22751         * config/i386/i386-modes.def (V1SI): New vector mode.
22752         * config/i386/i386.c (struct builtin_description)
22753         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
22754         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
22755         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
22756         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
22757         v1di_ftype_v8qi_v8qi type.
22758         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
22759
22760         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
22761         __builtin_ia32_pmuludq]: Fix the mode of return value.
22762
22763 2008-03-15  Richard Guenther  <rguenther@suse.de>
22764
22765         PR middle-end/35595
22766         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
22767         being a PHI_NODE.
22768
22769 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
22770
22771         * doc/invoke.texi (Option Summary, Xtensa Options): Document
22772         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
22773         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
22774         unless TARGET_SERIALIZE_VOLATILE is enabled.
22775         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
22776         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
22777         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
22778
22779 2008-03-14  Richard Guenther  <rguenther@suse.de>
22780
22781         PR tree-optimization/34172
22782         * tree-flow.h (refs_may_alias_p): Declare.
22783         (get_single_def_stmt): Likewise.
22784         (get_single_def_stmt_from_phi): Likewise.
22785         (get_single_def_stmt_with_phi): Likewise.
22786         * tree-dfa.c (refs_may_alias_p): New function.
22787         (get_single_def_stmt): Likewise.
22788         (get_single_def_stmt_from_phi): Likewise.
22789         (get_single_def_stmt_with_phi): Likewise.
22790         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
22791         (vn_reference_lookup_1): New helper function.
22792         (vn_reference_lookup): Walk the virtual use-def chain to
22793         continue searching for a match if the def does not alias the
22794         reference we are looking for.
22795
22796 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
22797
22798         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
22799         archive and Perzl.  Update The Written Word listing.
22800
22801 2008-03-14  Richard Guenther  <rguenther@suse.de>
22802
22803         PR tree-optimization/34043
22804         PR tree-optimization/33989
22805         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
22806         when doing FRE.
22807         (bitmap_find_leader): Use extra argument to verify dominance
22808         relationship inside a basic-block.
22809         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
22810         (find_leader_in_sets): Adjust.
22811         (create_component_ref_by_pieces): Take extra argument for
22812         dominance check, handle lookup failures.
22813         (find_or_generate_expression): Likewise.
22814         (create_expression_by_pieces): Likewise.
22815         (insert_into_preds_of_block): Adjust.
22816         (create_value_expr_from): If asked for, verify all operands
22817         are in the blocks AVAIL_OUT set.
22818         (make_values_for_stmt): Check for SSA_NAMEs that are life
22819         over an abnormal edge.
22820         (compute_avail): Remove such check.
22821         (do_SCCVN_insertion): New function.
22822         (eliminate): If we do not find a leader suitable for replacement
22823         insert a replacement expression from SCCVN if available.
22824         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
22825         (struct vn_ssa_aux): Add needs_insertion flag.
22826         * tree-ssa-sccvn.c (may_insert): New global flag.
22827         (copy_reference_ops_from_ref): Value-number union member access
22828         based on its size, not type and member if insertion is allowed.
22829         (visit_reference_op_load): For a weak match from union type
22830         punning lookup a view-converted value and insert a SSA_NAME
22831         for that value if that is not found.
22832         (visit_use): Make dumps shorter.  Do not disallow value numbering
22833         SSA_NAMEs that are life over an abnormal edge to constants.
22834         (free_scc_vn): Release inserted SSA_NAMEs.
22835         (run_scc_vn): New flag to specify whether insertion is allowed.
22836         Process SSA_NAMEs in forward order.
22837         * tree-ssa-loop-im.c (for_each_index): Handle invariant
22838         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
22839         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
22840         pointer type to/from integral types that do not change the
22841         precision to regular conversions.
22842
22843 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
22844
22845         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22846         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22847         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
22848         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
22849         input arguments and the mode of return value.  Built-in functions
22850         that operate on whole 64-bit MMX register now use V1DI mode.
22851
22852 2008-03-13  Alon Dayan  <alond@il.ibm.com>
22853             Olga Golovanevsky  <olga@il.ibm.com>
22854
22855         PR tree-optimization/35041
22856         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
22857         to locate the right position in a statement.
22858
22859 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
22860
22861         PR target/34000
22862         PR target/35553
22863         * config/i386/xmmintrin.h:  Change all static inline functions to
22864         extern inline and add __gnu_inline__ attribute.
22865         * config/i386/bmintrin.h: Ditto.
22866         * config/i386/smmintrin.h: Ditto.
22867         * config/i386/tmmintrin.h: Ditto.
22868         * config/i386/mmintrin-common.h: Ditto.
22869         * config/i386/ammintrin.h: Ditto.
22870         * config/i386/emmintrin.h: Ditto.
22871         * config/i386/pmmintrin.h: Ditto.
22872         * config/i386/mmintrin.h: Ditto.
22873         * config/i386/mm3dnow.h: Ditto.
22874
22875 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
22876
22877         PR middle-end/35185
22878         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
22879         (lower_omp_2): New function.
22880         (lower_omp_1, lower_omp): Rewritten.
22881
22882 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
22883
22884         PR 35054
22885         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
22886         with the phrase "Microsoft Windows compilers".
22887         (Push/Pop Macro Pragmas): New subsection. Document
22888         #pragma push_macro and pragma pop_macro.
22889
22890 2008-03-12  Paul Brook  <paul@codesourcery.com>
22891
22892         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
22893
22894 2008-03-12  Paul Brook  <paul@codesourcery.com>
22895
22896         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
22897         (thumb2_alusi3_short): Exclude PLUS and MINUS.
22898         (thumb2_addsi_shortim): Rename ...
22899         (thumb2_addsi_short): ... to this.  Allow register operands.
22900         (thumb2_subsi_short): New pattern.
22901         (thumb2_one_cmplsi2_short,
22902         thumb2_negsi2_short): New patterns and peepholes.
22903
22904 2008-03-12  Paul Brook  <paul@codesourcery.com>
22905
22906         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
22907
22908 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
22909
22910         * config/i386/i386.md (int_cond): New code iterator.
22911         (fp_cond): Ditto.
22912         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
22913         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
22914         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
22915         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
22916         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
22917         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
22918         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
22919         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
22920
22921 2008-03-12  Paul Brook  <paul@codesourcery.com>
22922
22923         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
22924         instead of {arm,thumb}_compute_save_reg_mask.
22925         (output_return_instruction): Ditto.
22926         (thumb_unexpanded_epilogue): Ditto.
22927         (thumb1_expand_prologue): Ditto.
22928         (thumb1_output_function_prologue): Ditto.
22929         (arm_set_return_address): Ditto.
22930         (thumb_set_return_address): Ditto.
22931         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
22932         regs to achieve stack alignment.
22933         (thumb1_compute_save_reg_mask): Fix compiler warning.
22934         (arm_output_epilogue): Use offsets->saved_regs_mask.
22935         Adjust stack pointer by poping call clobered registers.
22936         (arm_expand_prologue): Use offsets->saved_regs_mask.
22937         Adjust stack pointer by pushing extra registers.
22938         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
22939
22940 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
22941
22942         PR tree-opt/35422
22943         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
22944         conversion to the operands of a multiplication.
22945
22946 2008-03-12  Richard Guenther  <rguenther@suse.de>
22947
22948         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
22949         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
22950         * timevar.def (TV_TREE_PHIPROP): Add.
22951         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
22952         pass description.  Use TV_TREE_PHIPROP.
22953         * tree-ssa-forwprop.c: Remove phiprop code.
22954
22955 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
22956
22957         PR middle-end/35549
22958         * omp-low.c (maybe_lookup_decl): Constify first argument.
22959         (use_pointer_for_field): Change last argument from bool to
22960         omp_context *.  Disallow shared copy-in/out in nested
22961         parallel if decl is shared in outer parallel too.
22962         (build_outer_var_ref, scan_sharing_clauses,
22963         lower_rec_input_clauses, lower_copyprivate_clauses,
22964         lower_send_clauses, lower_send_shared_vars): Adjust callers.
22965
22966 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
22967             Ira Rosen  <irar@il.ibm.com>
22968
22969         * tree-vectorizer.c (free_stmt_vec_info): New function.
22970         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
22971         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
22972         * tree-vectorizer.h (free_stmt_vec_info): Declare.
22973         * tree-vect-transform.c (vectorizable_conversion): Free
22974         vec_oprnds0 if it was allocated.
22975         (vect_permute_store_chain): Remove unused VECs.
22976         (vectorizable_store): Free VECs that are allocated in the..
22977         function.
22978         (vect_transform_strided_load, vectorizable_load): Likewise.
22979         (vect_remove_stores): Simplify the code.
22980         (vect_transform_loop): Move code to vect_remove_stores().
22981         Call vect_remove_stores() and free_stmt_vec_info().
22982
22983 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22984
22985         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
22986         TARGET_HPUX.  Revise comment.
22987         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
22988         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
22989         Use sr4 variant of `be' instruction when not generating PIC code.
22990         (attr_length_call): Adjust for above change.
22991
22992 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22993
22994         * ipa-reference.c (static_execute): Remove module_statics_const and
22995         associated setting code.
22996
22997 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
22998
22999         PR target/35540
23000         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
23001         predicate for operand 1.
23002         (paritysi2_cmp): Use register_operand predicate for operand 2.
23003         Use earlyclobber modifier for operand 1.  Remove support for
23004         memory operands.
23005         (paritydi2_cmp): Use register_operand predicate for operand 3.
23006         Use earlyclobber modifier for operand 1.  Remove support for
23007         memory operands.
23008
23009 2008-03-11  Paul Brook  <paul@codesourcery.com>
23010             Vladimir Prus  <vladimir@codesourcery.com>
23011
23012         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
23013         (arm_compute_save_reg0_reg12_mask): Always
23014         check if register 11 must be saved.  Always safe hard frame pointer
23015         when frame_pointer_needeed.
23016         (arm_compute_save_reg_mask): Save IP and PC
23017         only with apcs frames.
23018         (arm_output_epilogue): Adjust Thumb2 codepath to
23019         be also invoked and work for ARM non-apcs frames.
23020         (arm_expand_prologue): Don't bother saving IP
23021         for non-apcs frame, since it's not clobbered by
23022         prologue code.  Implement non-apcs frame
23023         layout.
23024
23025 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
23026
23027         PR rtl-optimization/35281
23028         * expr.c (convert_move): Use a new pseudo for the intermediate
23029         from_mode->word_mode result.
23030
23031 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
23032
23033         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
23034         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
23035         * toplev.c (compile_file): Don't call it.
23036
23037 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
23038
23039         PR middle-end/35526
23040         * expr.c (store_expr): Call emit_block_move if the mode
23041         of "temp" RTX is BLKmode.
23042
23043 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23044             Richard Guenther  <rguenther@suse.de>
23045
23046         PR tree-optimization/31358
23047         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
23048         the step with a NULL_TREE.
23049         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
23050         to sizetype if type is a pointer type.
23051         (add_candidate_1): Don't convert the base and step to
23052         the generic type if the orginal type is a pointer type.
23053         (add_iv_value_candidates): Use sizetype for the step
23054         if type is a pointer type.
23055         (cand_value_at): Likewise.
23056         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
23057         for pointer types.
23058         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
23059         Don't convert the tem affine to the type.
23060         (add_elt_to_tree): Use sizetype for the step if a pointer.
23061         Use POINTER_PLUS_EXPR for pointers.
23062         (aff_combination_to_tree): Use sizetype for the step if a
23063         pointer.
23064
23065 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
23066
23067         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
23068         Remove commutativity hint.
23069
23070 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
23071
23072         PR c/35438
23073         PR c/35439
23074         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
23075         errorneous type.  Check that v is a VAR_DECL.
23076
23077         PR middle-end/35099
23078         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
23079
23080 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
23081
23082         PR tree-optimization/35494
23083         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
23084         may be overriden at link and run time.
23085
23086 2008-03-10  Richard Guenther  <rguenther@suse.de>
23087
23088         PR tree-optimization/34677
23089         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
23090         (poolify_tree): Likewise.
23091         (modify_expr_template): Likewise.
23092         (poolify_modify_stmt): Likewise.
23093         (insert_fake_stores): Handle all component-ref style stores
23094         in addition to INDIRECT_REF.  Also handle complex types.
23095         Do not poolify the inserted load.
23096         (realify_fake_stores): Do not rebuild the tree but only
23097         make it a SSA_NAME copy.
23098         (init_pre): Remove initialzation of modify_expr_template.
23099         Do not allocate modify_expr_node_pool.
23100         (fini_pre): Do not free modify_expr_node_pool.
23101
23102 2008-03-10  Paul Brook  <paul@codesourcery.com>
23103
23104         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
23105         to avoid conflicts.
23106
23107 2008-03-10  Paul Brook  <paul@codesourcery.com>
23108             Mark Shinwell  <shinwell@codesourcery.com>
23109
23110         * config/arm/cortex-r4.md: New.
23111         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
23112         insn attributes.
23113         * config/arm/arm.md: Include cortex-r4.md.
23114         (insn): Add smmls, sdiv and udiv values.
23115         (generic_sched): Don't use generic scheduling for Cortex-R4.
23116         (arm_issue_rate): New function.
23117         (TARGET_SCHED_ISSUE_RATE): Define.
23118
23119 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
23120
23121         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
23122
23123 2008-03-10  Richard Guenther  <rguenther@suse.de>
23124
23125         * tree-ssa-pre.c (get_sccvn_value): Simplify.
23126         (compute_avail): Do not add stmt uses to AVAIL_OUT.
23127
23128 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
23129
23130         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
23131         Set default to true.
23132
23133 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23134
23135         * c.opt (Wsynth): Deprecate.
23136         * doc/invoke.texi (Option Summary, Warning Options): Document
23137         -Wno-format-contains-nul.
23138
23139 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
23140
23141         PR target/35496
23142         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
23143         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
23144
23145 2008-03-09  Ira Rosen  <irar@il.ibm.com>
23146
23147         * config/rs6000/rs6000.c (builtin_description): Rename vector
23148         left shift operations.
23149         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
23150         (altivec_vsl<VI_char>): Rename to ...
23151         (ashl<mode>3): ... new name.
23152         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
23153         gen_ashlv4si3.
23154         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
23155
23156 2008-03-08  Richard Guenther  <rguenther@suse.de>
23157
23158         * coverage.h (tree_coverage_counter_addr): Declare.
23159         * coverage.c (tree_coverage_counter_addr): New function.
23160         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
23161         before using again.
23162         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
23163         (tree_gen_one_value_profiler): Likewise.
23164         (tree_gen_ic_profiler): Likewise.
23165         (tree_gen_average_profiler): Likewise.
23166         (tree_gen_ior_profiler): Likewise.
23167
23168 2008-03-08  Richard Guenther  <rguenther@suse.de>
23169
23170         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
23171         (vn_binary_op_insert): Likewise.
23172         (vn_unary_op_lookup): Likewise.
23173         (vn_unary_op_insert): Likewise.
23174         (vn_nary_op_lookup): Declare.
23175         (vn_nary_op_insert): Likewise.
23176         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
23177         and binary hashes, use a single obstack for unary_op_pool
23178         and binary_op_pool.
23179         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
23180         a single struct vn_nary_op_s.  Store tree code length and
23181         a variable number of operands.
23182         (struct vn_reference_op_struct): Remove unused op2.
23183         (vn_reference_op_eq): Do not compare op2.
23184         (vn_reference_op_compute_hash): Do not compute hash of op2.
23185         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
23186         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
23187         with vn_nary_op_compute_hash.
23188         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
23189         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
23190         vn_nary_op_lookup.
23191         (vn_unary_op_insert, vn_binary_op_insert): Replace with
23192         vn_nary_op_insert.
23193         (visit_unary_op): Call nary functions.
23194         (visit_binary_op): Likewise.
23195         (process_scc): Adjust for struct vn_tables_s changes.
23196         (allocate_vn_table): Likewise.
23197         (free_vn_table): Likewise.
23198         * tree-vn.c (vn_add): Call nary functions.
23199         (vn_lookup): Likewise.
23200
23201 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
23202
23203         PR target/35498
23204         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
23205         wdst back after sync_compare_and_swapqhi_internal.
23206
23207 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
23208
23209         PR target/22152
23210         * config/i386/i386-modes.def (V1DI): New vector mode.
23211         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
23212         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
23213         (MMXMODE248): Ditto.
23214         (MMXMODE): Add V1DI mode.
23215         (mmxvecsize): Change DI mode to V1DI mode.
23216         ("mov<mode>): Use MMXMODEI8 mode iterator.
23217         ("*mov<mode>_internal_rex64"): Ditto.
23218         ("*mov<mode>_internal"): Ditto.
23219         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
23220         ("mmx_sub<mode>3"): Ditto.
23221         ("mmx_adddi3"): Remove insn pattern.
23222         ("mmx_subdi3"): Ditto.
23223         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
23224         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
23225         ("mmx_ashl<mode>3"): Ditto.
23226         ("mmx_lshrdi3"): Remove insn pattern.
23227         ("mmx_ashldi3"): Ditto.
23228         * config/i386/i386.c (classify_argument): Handle V1DImode.
23229         (function_arg_advance_32): Ditto.
23230         (function_arg_32): Ditto.
23231         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
23232         mmx_addv1di3 insn pattern.
23233         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
23234         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
23235         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
23236         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
23237         Remove definitions of built-in functions.
23238         (V1DI_type_node): New node.
23239         (v1di_ftype_v1di_int): Ditto.
23240         (v1di_ftype_v1di_v1di): Ditto.
23241         (v2si_ftype_v2si_si): Ditto.
23242         (v4hi_ftype_v4hi_di): Remove node.
23243         (v2si_ftype_v2si_di): Ditto.
23244         (ix86_init_mmx_sse_builtins): Handle V1DImode.
23245         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
23246         Redefine builtins using def_builtin_const with *_ftype_*_int node.
23247         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
23248         Add new builtins using def_builtin_const.
23249         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
23250         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
23251         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
23252         * config/i386/mmintrin.h (__v1di): New typedef.
23253         (_mm_add_si64): Cast arguments to __v1di type.
23254         (_mm_sub_si64): Ditto.
23255         (_mm_sll_pi16): Cast __count to __v4hi type.
23256         (_mm_sll_pi32): Cast __count to __v2si type.
23257         (_mm_sll_si64): Cast arguments to __v1di type.
23258         (_mm_srl_pi16): Cast __count to __v4hi type.
23259         (_mm_srl_pi32): Cast __count to __v2si type.
23260         (_mm_srl_si64): Cast arguments to __v1di type.
23261         (_mm_sra_pi16): Cast __count to __v4hi type.
23262         (_mm_sra_pi32): Cast __count to __v2si type.
23263         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
23264         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
23265         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
23266         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
23267         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
23268         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
23269         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
23270         (_mm_srai_pi32): Use __builtin_ia32_psradi.
23271         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
23272         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
23273         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
23274         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
23275
23276 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
23277
23278         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
23279
23280 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
23281
23282         PR target/35373
23283         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
23284         reg+const addressing for Altivec modes.  Don't generate reg+reg
23285         addressing for TFmode or TDmode quantities.
23286
23287 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
23288
23289         * c-common.c (vector_types_convertible_p): Call langhook
23290         instead of comptypes.
23291
23292 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23293
23294         PR tree-opt/35402
23295         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
23296         integral and scalar float variables which have a
23297         NULL DECL_INITIAL.
23298
23299 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
23300
23301         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
23302         dwarf_register_span hook when emitting unwind information for
23303         register-to-memory saves.
23304         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
23305         (rs6000_frame_related): Remove call to spe_synthesize_frame.
23306
23307 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
23308
23309         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
23310         for the same VAR_DECL.
23311
23312 2008-03-06  Tom Tromey  <tromey@redhat.com>
23313
23314         * treelang: Delete.
23315         * doc/standards.texi (Standards): Don't mention treelang.
23316         * doc/invoke.texi (Overall Options): Don't mention treelang.
23317         * doc/install.texi (Prerequisites): Don't mention bison or
23318         treelang.
23319         (Configuration): Don't mention treelang.
23320         (Building): Likewise.
23321         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
23322
23323 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
23324
23325         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
23326         word-extractions out of a multi-word object.
23327
23328 2008-03-06  Richard Guenther  <rguenther@suse.de>
23329
23330         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
23331         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
23332         result type and precision.
23333         * expr.c (get_inner_reference): Set unsignedp based on the result
23334         type of BIT_FIELD_REF.
23335         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
23336         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
23337         (try_instantiate_multiple_fields): Likewise.  Use the correct type
23338         for BIT_FIELD_REF.
23339         (sra_build_assignment): Likewise.
23340         (sra_build_elt_assignment): Likewise.
23341         (sra_explode_bitfield_assignment): Likewise.
23342         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
23343         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
23344         set BIT_FIELD_REF_UNSIGNED.
23345         (vectorizable_load): Likewise.
23346
23347 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
23348
23349         * cse.c (cse_extended_basic_block): Invalidate artificial defs
23350         at bb start.
23351
23352 2008-03-06  Richard Guenther  <rguenther@suse.de>
23353
23354         * alias.c (struct alias_set_entry): Move has_zero_child field
23355         to pack with alias_set.
23356
23357 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
23358
23359         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
23360         32bit host.
23361
23362 2008-03-05  Ian Lance Taylor  <iant@google.com>
23363
23364         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
23365
23366 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
23367
23368         * fwprop.c (update_df): Support width and offset parameters of
23369         df_ref_create.
23370         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
23371         global_conflicts): Change DF_REF_EXTRACT to either
23372         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
23373         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
23374         * df-scan.c (df_ref_record, df_defs_record,
23375         df_ref_create_structure, df_def_record_1, df_uses_record,
23376         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
23377         df_bb_refs_collect, df_entry_block_defs_collect,
23378         df_exit_block_uses_collect): Support new width and offset fields.
23379         (ref_extract_pool): New storage pool.
23380         (df_free_ref): New function.
23381         (df_reg_chain_unlink, df_free_collection_rec,
23382         df_sort_and_compress_refs): Call df_free_ref.
23383         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
23384         of df_ref_extract.
23385         (df_ref_create_structure): Allocate df_ref_extract if offset and
23386         width fields are used.
23387         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
23388         (df_uses_record): Get offset and width from ZERO_EXTRACT
23389         and SIGN_EXTRACT.
23390         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
23391         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
23392         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
23393         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
23394         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
23395         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
23396         (df_ref_extract): New structure.
23397         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
23398         (df_ref_create): Add width and offset parameters.
23399
23400 2008-03-05  Richard Guenther  <rguenther@suse.de>
23401
23402         * tree-ssa-structalias.c (get_constraint_for_component_ref):
23403         Use ranges_overlap_p.
23404         (offset_overlaps_with_access): Rename
23405         to ranges_overlap_p and move ...
23406         * tree-flow-inline.h (ranges_overlap_p): ... here.
23407
23408         * tree.h (get_inner_reference, handled_component_p): Update
23409         comments.
23410
23411         * tree.h (record_component_aliases, get_alias_set,
23412         alias_sets_conflict_p, alias_sets_must_conflict_p,
23413         objects_must_conflict_p): Move declarations ...
23414         * alias.h (record_component_aliases, get_alias_set,
23415         alias_sets_conflict_p, alias_sets_must_conflict_p,
23416         objects_must_conflict_p): ... here.
23417         Include coretypes.h.
23418         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
23419
23420 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
23421
23422         * cfg.c: Include tree-flow.h.
23423         (remove_edge_raw): Call redirect_edge_var_map_clear.
23424         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
23425         * tree-flow-inline.h (redirect_edge_var_map_def): New.
23426         (redirect_edge_var_map_result): New.
23427         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
23428         PENDING_STMT use with redirect_edge_var_map_*.
23429         * tree-ssa.c (edge_var_maps): New definition.
23430         (redirect_edge_var_map_add): New.
23431         (redirect_edge_var_map_clear): New.
23432         (redirect_edge_var_map_dup): New.
23433         (redirect_edge_var_map_vector): New.
23434         (redirect_edge_var_map_destroy): New.
23435         (ssa_redirect_edge): Replace PENDING_STMT use with
23436         redirect_edge_var_map_*.
23437         (flush_pending_stmts): Same.
23438         (delete_tree_ssa): Destroy edge var map.
23439         * tree-flow.h (struct _edge_var_map): New.
23440         Define edge_var_map vector type.
23441         Declare redirect_edge_var_map_* prototypes.
23442         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
23443         * tree-cfg.c (reinstall_phi_args): Replace
23444         PENDING_STMT use with redirect_edge_var_map_*.
23445
23446 2008-03-05  Richard Guenther  <rguenther@suse.de>
23447
23448         PR tree-optimization/35472
23449         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
23450         whose single use_stmt has a overlapping set of loaded and
23451         stored symbols as that use_stmt might be a noop assignment then.
23452
23453 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
23454
23455         * gthr-rtems.h: Implement __gthread_mutex_destroy.
23456
23457 2008-03-05  Richard Guenther  <rguenther@suse.de>
23458
23459         PR c++/35336
23460         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
23461         should be constants.
23462         * tree-cfg.c (verify_expr): Verify it.
23463         * fold-const.c (fold_truthop): Remove code generating
23464         BIT_FIELD_REFs of structure bases.
23465         (fold_binary): Likewise.
23466         (fold_ternary): Position and size of BIT_FIELD_REFs are
23467         always host integers.
23468         (make_bit_field_ref): Remove.
23469         (optimize_bit_field_compare): Remove.
23470         (all_ones_mask_p): Remove.
23471
23472 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
23473
23474         PR gcc/33009
23475         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
23476         (split_block_and_df_analyze): New. Split basic block and rebuild
23477         dataflow.
23478         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
23479         SPLIT_BLOCK.
23480         (split_pattern_seq): Likewise.
23481         (erase_matching_seqs): Likewise.
23482         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
23483
23484 2008-03-04  Geoff Keating  <geoffk@apple.com>
23485
23486         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
23487         declaration and code.
23488         (tree_invalid_nonnegative_warnv_p): Likewise.
23489
23490 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
23491
23492         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
23493         examples.  Truncate option-names then causing overfull hbox.
23494
23495 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23496
23497         PR target/35222
23498         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
23499         on hpux10.
23500         * configure: Rebuilt.
23501
23502 2008-03-04  Rafael Espíndola  <espindola@google.com>
23503
23504         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
23505         (tree_unary_nonnegative_warnv_p): New.
23506         (tree_binary_nonnegative_warnv_p): New.
23507         (tree_single_nonnegative_warnv_p): New.
23508         (tree_invalid_nonnegative_warnv_p): New.
23509         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
23510
23511 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23512
23513         PR 28322
23514         * opts.c (handle_option): Postpone 'unknown option' errors only for
23515         warning options.
23516
23517 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
23518
23519         PR target/35453
23520         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
23521         (_SIDD_XXX): This.
23522
23523 2008-03-04  Rafael Espíndola  <espindola@google.com>
23524
23525         * fold-const.c (tree_unary_nonzero_warnv_p): New.
23526         (tree_binary_nonzero_warnv_p): New.
23527         (tree_single_nonzero_warnv_p): New.
23528         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
23529
23530 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
23531
23532         PR middle-end/35456
23533         * fold-const.c (fold_cond_expr_with_comparison): Prevent
23534         transformations for modes that have signed zeros.
23535         * ifcvt.c (noce_try_abs): Ditto.
23536
23537 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
23538
23539         * config/i386/i386.c (override_options): Force
23540         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
23541
23542 2008-03-04  Jan Hubicka  <jh@suse.cz>
23543
23544         PR c++/35262
23545         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
23546         in last commit.
23547
23548 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
23549
23550         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
23551         label to probe the stack.
23552
23553 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
23554
23555         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
23556         (__gthr_win32_mutex_destroy): Declare.
23557         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
23558         __gthr_win32_mutex_destroy.
23559         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
23560
23561 2008-03-03  Jan Hubicka  <jh@suse.cz>
23562
23563         PR c++/35262
23564         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
23565         aggressive on inlining cold calls.
23566
23567 2008-03-03  Richard Guenther  <rguenther@suse.de>
23568
23569         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
23570         struct copies into the expression table.
23571         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
23572         (try_to_simplify): Likewise.
23573         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
23574         integral and pointer arguments which do not change the
23575         precision to NOP_EXPRs.
23576         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
23577         VIEW_CONVERT_EXPR case.
23578
23579 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
23580
23581         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
23582         defined in a loop at depth 0 is invariant.
23583         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
23584         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
23585         be called at loop depth 0.
23586
23587 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
23588
23589         PR driver/35420
23590         * gcc.c (process_command): Update copyright notice dates.
23591         * gcov.c (print_version): Likewise.
23592         * gcov-dump.c (print_version): Likewise.
23593         * mips-tfile.c (main): Likewise.
23594         * mips-tdump.c (main): Likewise.
23595
23596 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23597
23598         PR 24924
23599         * c-common.c (flag_permissive): Delete.
23600         (constant_expression_warnings): Check flags first.
23601         (constant_expression_error): New.
23602         * c-common.h (flag_permissive): Delete.
23603         (constant_expression_error): Declare.
23604         * flags.h (flag_permissive): Declare. Update description.
23605         * diagnostic.c (pedwarn): Update.
23606         (permerror): New.
23607         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
23608         (permissive_error_kind): New.
23609         * toplev.c (flag_permissive): Define. Update description.
23610         * toplev.h (permissive_error_kind): Declare.
23611         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
23612         (pedwarn_c90): Use pedantic_warning_kind.
23613         * c-opts.c (c_common_post_options): flag_permissive does not affect
23614         flag_pedantic_errors.
23615
23616 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
23617
23618         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
23619         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
23620         __absvsi2, __absvDI2): Use unsigned arithmetic.
23621
23622 2008-03-02  Andi Kleen  <ak@suse.de>
23623             Richard Guenther  <rguenther@suse.de>
23624
23625         * struct-equiv.c: Remove file.
23626         * cfg_cleanup.c (condjump_equiv_p): Remove.
23627         * Makefile.in (OBJS-common): Remove struct-equiv.o.
23628         (struct-equiv.o): Remove rule.
23629         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
23630         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
23631         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
23632
23633 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
23634
23635         * ifcvt.c (noce_process_if_block): Try to handle only the then
23636         block if the else block exists but isn't suitable.
23637
23638 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
23639
23640         PR gcc/35063
23641         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
23642         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
23643         regression from previous patch.
23644
23645 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
23646
23647         PR gcc/35063
23648         * gthr.h: Add __gthread_mutex_destroy as a function that must be
23649         implemented.
23650         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
23651         * gthr-single.h (__gthread_mutex_destroy): Likewise.
23652         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
23653         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
23654         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
23655         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
23656         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
23657         (__gthread_mutex_destroy_function): Rename to
23658         __gthread_mutex_destroy.
23659         * gthr-dce.h (__gthread_mutex_destroy): Call
23660         pthread_mutex_destroy.
23661         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
23662         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
23663         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
23664
23665 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
23666
23667         * df-scan.c (df_ref_chain_change_bb): Simplify.
23668         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
23669         set_block_for_insn if there's any change.
23670         * df.h ((df_insn_change_bb): Fix prototype.
23671         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
23672         df_insn_change_bb, don't call set_block_for_insn.
23673         * emit-rtl.c (reorder_insns): Likewise.
23674         * haifa-sched.c (move_insn): Likewise.
23675
23676 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
23677
23678         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
23679
23680 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
23681
23682         * tree-flow-inline.h (next_readonly_imm_use): Return
23683         NULL_USE_OPERAND_P after the end.
23684
23685 2008-03-01  Richard Guenther  <rguenther@suse.de>
23686
23687         PR tree-optimization/35411
23688         * tree-sra.c (sra_build_assignment): Split conversion to
23689         final type to a separate statement if we are not assigning
23690         to a register.
23691
23692 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
23693
23694         * fold-const.c (fold_convertible_p): Correct the logic to follow
23695         that in fold_convert().
23696
23697 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
23698
23699         PR c++/35315
23700         * tree-inline.c (build_duplicate_type): When we make a
23701         duplicate type, make it unique in the canonical types system.
23702
23703 2008-02-29  Tom Tromey  <tromey@redhat.com>
23704
23705         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
23706         input_file_stack_history, input_file_stack_restored): Remove.
23707         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
23708         * input.h (struct file_stack): Remove.
23709         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
23710         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
23711         Likewise.
23712         * diagnostic.h (struct diagnostic_context) <last_module>: Change
23713         type.
23714         (diagnostic_last_module_changed): Add 'map' argument.
23715         (diagnostic_set_last_function): Likewise.
23716         * diagnostic.c (undiagnostic_report_current_module): Iterate using
23717         line map, not input_file_stack.
23718         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
23719
23720 2008-02-29  Paul Brook  <paul@codesourcery.com>
23721
23722         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
23723
23724 2008-02-29  Paul Brook  <paul@codesourcery.com>
23725
23726         * config/arm/ieee754-df.S (muldf3): Use RET macros.
23727
23728 2008-02-29  Richard Guenther  <rguenther@suse.de>
23729
23730         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
23731         vn_lookup_or_add.
23732         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
23733         value for comparing for a store match.
23734         (simplify_unary_expression): Do nothing for SSA_NAMEs.
23735         (try_to_simplify): Do not do a full-blown reference lookup.
23736
23737 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
23738
23739         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
23740         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
23741
23742         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
23743
23744 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
23745
23746         * tree-loop-linear.c (try_interchange_loops): Compare memory access
23747         strides against cache sizes.
23748
23749 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
23750
23751         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
23752         constant to fpul.
23753
23754 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
23755
23756         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
23757         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
23758         is smaller than the original promoted value.
23759         (simplify_subreg): If OP is a SUBREG, try to preserve its
23760         SUBREG_PROMOTED_VAR_P information.
23761
23762 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
23763
23764         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
23765         (VN_INFO_GET): Allocate new objects on the obstack.
23766         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
23767         for rpo_numbers_temp, for consistency.
23768         (free_scc_vn): Free the obstack.
23769
23770 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
23771
23772         * doc/invoke.texi: Document -ftree-loop-distribution.
23773         * tree-loop-distribution.c: New.
23774         * tree-pass.h (pass_loop_distribution): New.
23775         * graphds.h (struct graph): Add htab_t indices.
23776         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
23777         * tree-vectorizer.c (rename_variables_in_loop): Extern.
23778         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
23779         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
23780         * tree-data-ref.c (debug_data_dependence_relations): New.
23781         (dump_data_dependence_relation): Also print data references.
23782         (free_data_ref): Extern.
23783         (same_access_functions): Moved...
23784         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
23785         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
23786         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
23787         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
23788         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
23789         (stmts_from_loop): Skip LABEL_EXPR.
23790         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
23791         New.
23792         (build_rdg): Initialize rdg->indices htab.
23793         (free_rdg, stores_from_loop, ref_base_address,
23794         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
23795         have_similar_memory_accesses_1, ref_base_address_1,
23796         remove_similar_memory_refs): New.
23797         * tree-data-ref.h: Depend on tree-chrec.h.
23798         (debug_data_dependence_relations, free_data_ref): Declared.
23799         (same_access_functions): ... here.
23800         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
23801         New.
23802         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
23803         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
23804         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
23805         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
23806         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
23807         rdg_vertex_for_stmt): Declared.
23808         (struct rdg_edge): Add level.
23809         (RDGE_LEVEL): New.
23810         (free_rdg, stores_from_loop, remove_similar_memory_refs,
23811         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
23812         Declared.
23813         (rdg_has_similar_memory_accesses): New.
23814         * tree-vect-analyze.c: Remove unused static decls.
23815         * lambda.h (dependence_level): New.
23816         * common.opt (ftree-loop-distribution): New.
23817         * tree-flow.h (mark_virtual_ops_in_bb,
23818         slpeel_tree_duplicate_loop_to_edge_cfg,
23819         rename_variables_in_loop): Declared.
23820         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
23821         (OBJS-common): Add tree-loop-distribution.o.
23822         (tree-loop-distribution.o): New rule.
23823         * tree-cfg.c (mark_virtual_ops_in_bb): New.
23824         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
23825         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
23826
23827 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
23828
23829         PR target/33963
23830         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
23831         other than structures and unions.
23832
23833 2008-02-28  Richard Guenther  <rguenther@suse.de>
23834
23835         Revert:
23836         2008-02-26  Richard Guenther  <rguenther@suse.de>
23837
23838         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23839         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23840         (lookup_decl_from_uid): Declare.
23841         (remove_decl_from_map): Likewise.
23842         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23843         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23844         (decl_for_uid_map): New global hashtable mapping DECL_UID
23845         to the decl tree.
23846         (init_ttree): Allocate it.
23847         (insert_decl_to_uid_decl_map): New helper function.
23848         (make_node_stat): Insert new decls into the map.
23849         (copy_node_stat): Likewise.
23850         (lookup_decl_from_uid): New function.
23851         (remove_decl_from_map): Likewise.
23852         (print_decl_for_uid_map_statistics): New helper.
23853         (dump_tree_statistics): Call it.
23854
23855         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23856         (referenced_var_iterator): Adjust.
23857         (FOR_EACH_REFERENCED_VAR): Adjust.
23858         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23859         (num_referenced_vars): Adjust.
23860         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23861         (first_referenced_var): Remove.
23862         (end_referenced_vars_p): Likewise.
23863         (next_referenced_var): Likewise.
23864         (referenced_var_iterator_set): New helper function.
23865         * tree-dfa.c (referenced_var_lookup): Adjust.
23866         (referenced_var_check_and_insert): Likewise.
23867         (remove_referenced_var): Likewise.
23868         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23869         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23870         (verify_call_clobbering): Likewise.
23871         (verify_memory_partitions): Likewise.
23872         (init_tree_ssa): Allocate bitmap instead of hashtable for
23873         referenced_vars.
23874         (delete_tree_ssa): Adjust.
23875         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23876         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23877         (compute_tag_properties): Likewise.
23878         (set_initial_properties): Likewise.
23879         (find_partition_for): Likewise.
23880         (update_reference_counts): Likewise.
23881         (dump_may_aliases_for): Likewise.
23882         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23883         (add_call_clobber_ops): Likewise.
23884         (add_call_read_ops): Likewise.
23885         (get_asm_expr_operands): Likewise.
23886         * tree-into-ssa.c (dump_decl_set): Likewise.
23887         (update_ssa): Likewise.
23888         * tree-sra.c (scan_function): Likewise.
23889         (decide_instantiations): Likewise.
23890         (scalarize_parms): Likewise.
23891         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23892         (dsa_named_for): Likewise.
23893         * tree-ssa-structalias.c (update_alias_info): Likewise.
23894         (merge_smts_into): Likewise.
23895
23896 2008-02-27  David Daney  <ddaney@avtrex.com>
23897
23898         PR target/34409
23899         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
23900         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
23901         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
23902         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
23903         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
23904
23905 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
23906
23907         PR target/25477
23908         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
23909         (BUILT_IN_NEXTTOWARD): Remove.
23910         (BUILT_IN_NEXTTOWARDF): Ditto.
23911         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
23912         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
23913
23914 2008-02-27  Tom Tromey  <tromey@redhat.com>
23915
23916         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
23917         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
23918
23919 2008-02-27  Jan Beulich  <jbeulich@novell.com>
23920
23921         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
23922         update the respective field on newdecl.
23923
23924 2008-02-27  Revital Eres  <eres@il.ibm.com>
23925
23926         PR rtl-optimization/34999
23927         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
23928         crossing edges that ends with a call insn.
23929         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
23930         call insn and clear the EDGE_CROSSING flag of the crossing edge
23931         when fixing fallthru edges.
23932
23933 2008-02-27  Richard Guenther  <rguenther@suse.de>
23934
23935         PR middle-end/35390
23936         * fold-const.c (fold_unary): Return the correct argument,
23937         converted to the result type.
23938
23939 2008-02-27  Richard Guenther  <rguenther@suse.de>
23940
23941         PR middle-end/34971
23942         * expr.c (expand_expr_real_1): Assert on rotates that operate
23943         on partial modes.
23944         * fold-const.c (fold_binary): Use the types precision, not the
23945         bitsize of the mode if folding rotate expressions.  Build rotates
23946         only for full modes.
23947
23948 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
23949
23950         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
23951         and CPP_PRAGMA_EOL.
23952         * c-pragma.c (pragma_ns_name): New typedef.
23953         (registered_pp_pragmas): New variable.
23954         (c_pp_lookup_pragma): New function.
23955         (c_register_pragma_1): If flag_preprocess_only, do nothing
23956         for non-expanded pragmas, for expanded ones push pragma's
23957         namespace and name into registered_pp_pragmas vector.
23958         (c_invoke_pragma_handler): Register OpenMP pragmas even when
23959         flag_preprocess_only, don't register GCC pch_preprocess
23960         pragma if flag_preprocess_only.
23961         * c-opts.c (c_common_init): Call init_pragma even if
23962         flag_preprocess_only.
23963         * c-pragma.c (c_pp_lookup_pragma): New prototype.
23964         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
23965         cpp_register_pragma if flag_preprocess_only.
23966
23967 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23968
23969         PR c/28800
23970         * c-parser.c (c_parser_translation_unit): Warn for empty
23971         translation unit, not empty source file.
23972
23973 2008-02-26  Paul Brook  <paul@codesourcery.com>
23974
23975         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
23976         operand for Thumb-2.
23977         * config/arm/arm.h (reg_class): Add CORE_REGS.
23978         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
23979         (BASE_REG_CLASS): Use CORE_REGS.
23980         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
23981         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
23982         (REGNO_OK_FOR_INDEX_P): Exclude SP.
23983         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
23984         ARM_REGNO_OK_FOR_INDEX_P.
23985         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
23986         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
23987         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
23988         (ldm/stm peepholes): Ditto.
23989         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
23990         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
23991         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
23992         * config/arm/constraints.md: Enable "k" constraint on ARM.
23993
23994 2008-02-27  Ben Elliston  <bje@au.ibm.com>
23995
23996         * config/rs6000/rs6000.c: Annotate cache line size field in all
23997         instances of struct processor_costs.
23998
23999 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
24000
24001         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
24002         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
24003         jump_bypass): New counters.
24004         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
24005         * dce.c (gate_ud_dce): Same.
24006         (gate_fast_dce): Same.
24007         * dse.c (gate_dse1): New function.
24008         (gate_dse2): New function.
24009         (gate_dse): Merge results of new gate functions.
24010         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
24011         (gate_handle_jump_bypass): Add dbg_cnt.
24012         (gate_handle_gcse): Add dbg_cnt.
24013         * ifcvt.c (gate_handle_if_conversion): Same.
24014         (gate_handle_if_after_combine): Same.
24015         (gate_handle_if_after_reload): Same.
24016         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
24017
24018 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
24019
24020         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
24021         line sizes.
24022         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
24023
24024 2008-02-26  Jason Merrill  <jason@redhat.com>
24025
24026         PR c++/35315
24027         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
24028         alone if it's the naming decl for the type's main variant.
24029
24030 2008-02-26  Tom Tromey  <tromey@redhat.com>
24031
24032         * system.h (USE_MAPPED_LOCATION): Poison.
24033         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
24034         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
24035         (make_goto_expr_edges): Likewise.
24036         (remove_bb): Likewise.
24037         (execute_warn_function_return): Likewise.
24038         * basic-block.h (struct edge_def) <goto_locus>: Change type to
24039         location_t.
24040         * c-common.c (fname_decl): Remove old location code.
24041         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
24042         location code.
24043         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
24044         variant.
24045         (ASM_INPUT_SOURCE_LOCATION): Likewise.
24046         (gen_rtx_ASM_INPUT): Likewise.
24047         (gen_rtx_ASM_INPUT_loc): Likewise.
24048         (get_rtx_asm_OPERANDS): Remove.
24049         * cfglayout.c (insn_locators_alloc): Remove old location code.
24050         (set_curr_insn_source_location): Likewise.
24051         (curr_insn_locator): Likewise.
24052         * print-tree.c (print_node): Remove old location code.
24053         * tree-mudflap.c (mf_varname_tree): Remove old location code.
24054         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
24055         * cfgexpand.c (expand_gimple_cond_expr): Don't use
24056         location_from_locus.
24057         (construct_exit_block): Remove old location code.
24058         * emit-rtl.c (force_next_line_note): Remove old location code.
24059         * profile.c (branch_prob): Remove old location code.
24060         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
24061         LOC_LINE): Remove old-location variants.
24062         * langhooks.c (lhd_print_error_function): Remove old location
24063         code.
24064         * configure, config.in: Rebuilt.
24065         * configure.ac (--enable-mapped-location): Remove.
24066         * c-decl.c (c_init_decl_processing): Remove old location code.
24067         (finish_function): Likewise.
24068         * recog.c (decode_asm_operands): Remove old location code.
24069         * c-pch.c (c_common_read_pch): Remove old location code.
24070         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
24071         variants.
24072         * gimple-low.c (lower_function_body): Remove old location code.
24073         * toplev.c (unknown_location): Remove.
24074         (push_srcloc): Remove old-location variant.
24075         (process_options): Remove old location code.
24076         (lang_dependent_init): Likewise.
24077         * input.h (UNKNOWN_LOCATION): Move definition.
24078         (location_t): Undeprecate.
24079         (source_locus): Remove.
24080         (location_from_locus): Remove.
24081         (struct location_s): Remove.
24082         Remove all old-location code.
24083         (input_line, input_filename): Remove.
24084         * final.c (final_scan_insn): Remove old location code.
24085         * diagnostic.c (diagnostic_build_prefix): Remove
24086         USE_MAPPED_LOCATION test.
24087         * tree.h (gimple_stmt) <locus>: Now a location_t.
24088         (tree_exp) <locus>: Likewise.
24089         (DECL_IS_BUILTIN): Remove old-location variant.
24090         (annotate_with_file_line, annotate_with_locus): Likewise.
24091         (expr_locus, set_expr_locus): Update.
24092         * tree.c (build1_stat): Remove old location code.
24093         (last_annotated_node): Remove.
24094         (annotate_with_file_line): Remove old-location variant.
24095         (annotate_with_locus): Likewise.
24096         (expr_location): Remove old location code.
24097         (set_expr_location): Likewise.
24098         (expr_has_location): Likewise.
24099         (expr_locus): Likewise.
24100         (set_expr_locus): Likewise.
24101         (expr_filename): Don't use location_from_locus.
24102         (expr_lineno): Likewise.
24103         * rtl-error.c (location_for_asm): Remove old location code.
24104         * c-lex.c (cb_line_change): Remove old location code.
24105         (fe_file_change): Likewise.
24106         (cb_def_pragma): Likewise.
24107         (c_lex_with_flags): Likewise.
24108         * gengtype.c (do_typedef): Don't special-case location types.
24109         (define_location_structures): Remove.
24110         (main): Don't call define_location_structures.
24111         * tree-pretty-print.c (dump_implicit_edges): Remove old location
24112         code.
24113
24114 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24115
24116         PR 26264
24117         * builtins.def (BUILT_IN_STDARG_START): Remove.
24118         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
24119         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
24120         * tree-inline.c (inline_forbidden_p_1): Likewise.
24121
24122 2008-02-26  Richard Guenther  <rguenther@suse.de>
24123
24124         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
24125         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
24126         (lookup_decl_from_uid): Declare.
24127         (remove_decl_from_map): Likewise.
24128         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
24129         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
24130         (decl_for_uid_map): New global hashtable mapping DECL_UID
24131         to the decl tree.
24132         (init_ttree): Allocate it.
24133         (insert_decl_to_uid_decl_map): New helper function.
24134         (make_node_stat): Insert new decls into the map.
24135         (copy_node_stat): Likewise.
24136         (lookup_decl_from_uid): New function.
24137         (remove_decl_from_map): Likewise.
24138         (print_decl_for_uid_map_statistics): New helper.
24139         (dump_tree_statistics): Call it.
24140
24141         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
24142         (referenced_var_iterator): Adjust.
24143         (FOR_EACH_REFERENCED_VAR): Adjust.
24144         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
24145         (num_referenced_vars): Adjust.
24146         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
24147         (first_referenced_var): Remove.
24148         (end_referenced_vars_p): Likewise.
24149         (next_referenced_var): Likewise.
24150         (referenced_var_iterator_set): New helper function.
24151         * tree-dfa.c (referenced_var_lookup): Adjust.
24152         (referenced_var_check_and_insert): Likewise.
24153         (remove_referenced_var): Likewise.
24154         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
24155         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24156         (verify_call_clobbering): Likewise.
24157         (verify_memory_partitions): Likewise.
24158         (init_tree_ssa): Allocate bitmap instead of hashtable for
24159         referenced_vars.
24160         (delete_tree_ssa): Adjust.
24161         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
24162         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24163         (compute_tag_properties): Likewise.
24164         (set_initial_properties): Likewise.
24165         (find_partition_for): Likewise.
24166         (update_reference_counts): Likewise.
24167         (dump_may_aliases_for): Likewise.
24168         * tree-ssa-operands.c (add_virtual_operand): Likewise.
24169         (add_call_clobber_ops): Likewise.
24170         (add_call_read_ops): Likewise.
24171         (get_asm_expr_operands): Likewise.
24172         * tree-into-ssa.c (dump_decl_set): Likewise.
24173         (update_ssa): Likewise.
24174         * tree-sra.c (scan_function): Likewise.
24175         (decide_instantiations): Likewise.
24176         (scalarize_parms): Likewise.
24177         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
24178         (dsa_named_for): Likewise.
24179         * tree-ssa-structalias.c (update_alias_info): Likewise.
24180         (merge_smts_into): Likewise.
24181
24182 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24183
24184         PR 34351
24185         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
24186         * c-opts.c (c_common_handle_option): Wall enables
24187         Wvolatile-register-var.
24188         * common.opt: Move Wvolatile-register-var to...
24189         * c.opt: ...here.
24190
24191 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24192
24193         * common.opt (Wlarger-than=): New.
24194         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
24195         -Wlarger-than=.
24196         * opts.c (common_handle_option): Handle -Wlarger-than=.
24197         * optc-gen.awk: Likewise.
24198         * opth-gen.awk: Likewise.
24199         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
24200         * tree-optimize.c (tree_rest_of_compilation): Likewise.
24201
24202 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24203
24204         * c-common.c (match_case_to_enum_1): Add appropriate
24205         OPT_W* parameter to warning.
24206         (c_do_switch_warnings): Likewise.
24207         * c-typeck.c (warning_init): Add one more parameter following
24208         'warning' function.
24209         (push_init_level): Update call to warning_init.
24210         (pop_init_level): Likewise.
24211         (add_pending_init): Likewise.
24212         (output_init_element: Likewise.
24213
24214 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24215
24216         PR 28322
24217         * toplev.c (toplev_main): If there are warnings or error, print
24218         errors for ignored options.
24219         * opts.c (ignored_options): New static variable.
24220         (postpone_unknown_option_error): New.
24221         (print_ignored_options): New.
24222         (handle_option): Postpone errors for unknown -Wno-* options.
24223         * opts.h (print_ignored_options): Declare.
24224
24225 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
24226
24227         * config/mips/mips.md (loadgp_blockage, blockage): Change type
24228         to "ghost".
24229
24230 2008-02-25  Richard Guenther  <rguenther@suse.de>
24231
24232         Revert:
24233         2008-02-25  Richard Guenther  <rguenther@suse.de>
24234
24235         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
24236         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
24237         (lookup_decl_from_uid): Declare.
24238         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
24239         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
24240         (decl_for_uid_map): New global hashtable mapping DECL_UID
24241         to the decl tree.
24242         (init_ttree): Allocate it.
24243         (insert_decl_to_uid_decl_map): New helper function.
24244         (make_node_stat): Insert new decls into the map.
24245         (copy_node_stat): Likewise.
24246         (lookup_decl_from_uid): New function.
24247         (print_decl_for_uid_map_statistics): New helper.
24248         (dump_tree_statistics): Call it.
24249
24250         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
24251         (referenced_var_iterator): Adjust.
24252         (FOR_EACH_REFERENCED_VAR): Adjust.
24253         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
24254         (num_referenced_vars): Adjust.
24255         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
24256         (first_referenced_var): Remove.
24257         (end_referenced_vars_p): Likewise.
24258         (next_referenced_var): Likewise.
24259         (referenced_var_iterator_set): New helper function.
24260         * tree-dfa.c (referenced_var_lookup): Adjust.
24261         (referenced_var_check_and_insert): Likewise.
24262         (remove_referenced_var): Likewise.
24263         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
24264         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24265         (verify_call_clobbering): Likewise.
24266         (verify_memory_partitions): Likewise.
24267         (init_tree_ssa): Allocate bitmap instead of hashtable for
24268         referenced_vars.
24269         (delete_tree_ssa): Adjust.
24270         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
24271         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24272         (compute_tag_properties): Likewise.
24273         (set_initial_properties): Likewise.
24274         (find_partition_for): Likewise.
24275         (update_reference_counts): Likewise.
24276         (dump_may_aliases_for): Likewise.
24277         * tree-ssa-operands.c (add_virtual_operand): Likewise.
24278         (add_call_clobber_ops): Likewise.
24279         (add_call_read_ops): Likewise.
24280         (get_asm_expr_operands): Likewise.
24281         * tree-into-ssa.c (dump_decl_set): Likewise.
24282         (update_ssa): Likewise.
24283         * tree-sra.c (scan_function): Likewise.
24284         (decide_instantiations): Likewise.
24285         (scalarize_parms): Likewise.
24286         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
24287         (dsa_named_for): Likewise.
24288         * tree-ssa-structalias.c (update_alias_info): Likewise.
24289         (merge_smts_into): Likewise.
24290
24291 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
24292
24293         PR fortran/29549
24294         * doc/invoke.texi (-fcx-limited-range): Document new option.
24295         * toplev.c (process_options): Handle -fcx-fortran-rules.
24296         * common.opt: Add documentation for -fcx-fortran-rules.
24297
24298 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
24299
24300         PR c/35162
24301         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
24302         actual behaviour and C99.
24303
24304 2008-02-26  Ben Elliston  <bje@au.ibm.com>
24305
24306         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
24307         (ASM_CPU_POWER6_SPEC): Likewise.
24308         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
24309         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
24310         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
24311
24312 2008-02-25  Richard Guenther  <rguenther@suse.de>
24313
24314         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
24315         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
24316         (lookup_decl_from_uid): Declare.
24317         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
24318         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
24319         (decl_for_uid_map): New global hashtable mapping DECL_UID
24320         to the decl tree.
24321         (init_ttree): Allocate it.
24322         (insert_decl_to_uid_decl_map): New helper function.
24323         (make_node_stat): Insert new decls into the map.
24324         (copy_node_stat): Likewise.
24325         (lookup_decl_from_uid): New function.
24326         (print_decl_for_uid_map_statistics): New helper.
24327         (dump_tree_statistics): Call it.
24328
24329         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
24330         (referenced_var_iterator): Adjust.
24331         (FOR_EACH_REFERENCED_VAR): Adjust.
24332         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
24333         (num_referenced_vars): Adjust.
24334         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
24335         (first_referenced_var): Remove.
24336         (end_referenced_vars_p): Likewise.
24337         (next_referenced_var): Likewise.
24338         (referenced_var_iterator_set): New helper function.
24339         * tree-dfa.c (referenced_var_lookup): Adjust.
24340         (referenced_var_check_and_insert): Likewise.
24341         (remove_referenced_var): Likewise.
24342         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
24343         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24344         (verify_call_clobbering): Likewise.
24345         (verify_memory_partitions): Likewise.
24346         (init_tree_ssa): Allocate bitmap instead of hashtable for
24347         referenced_vars.
24348         (delete_tree_ssa): Adjust.
24349         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
24350         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24351         (compute_tag_properties): Likewise.
24352         (set_initial_properties): Likewise.
24353         (find_partition_for): Likewise.
24354         (update_reference_counts): Likewise.
24355         (dump_may_aliases_for): Likewise.
24356         * tree-ssa-operands.c (add_virtual_operand): Likewise.
24357         (add_call_clobber_ops): Likewise.
24358         (add_call_read_ops): Likewise.
24359         (get_asm_expr_operands): Likewise.
24360         * tree-into-ssa.c (dump_decl_set): Likewise.
24361         (update_ssa): Likewise.
24362         * tree-sra.c (scan_function): Likewise.
24363         (decide_instantiations): Likewise.
24364         (scalarize_parms): Likewise.
24365         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
24366         (dsa_named_for): Likewise.
24367         * tree-ssa-structalias.c (update_alias_info): Likewise.
24368         (merge_smts_into): Likewise.
24369
24370 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
24371
24372         PR target/35258
24373         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
24374         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
24375         * alias.h (nonoverlapping_memrefs_p): Likewise.
24376
24377 2008-02-25  Jan Beulich  <jbeulich@novell.com>
24378
24379         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
24380         * config/i386/netware-libgcc.exp: Add __bswap?i2,
24381         __emultls_get_address, __emultls_register_common,
24382         __floatundi?f, and _Unwind_GetIPInfo.
24383         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
24384         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
24385         (gen_regparm_prefix): Likewise.
24386         (i386_nlm_encode_section_info): Sync with
24387         config/i386/winnt.c:i386_pe_encode_section_info().
24388         (i386_nlm_maybe_mangle_decl_assembler_name): New.
24389         i386_nlm_mangle_decl_assembler_name): New.
24390         (netware_override_options): New.
24391         * config/i386/netware.h (netware_override_options): Declare.
24392         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
24393         (i386_nlm_mangle_decl_assembler_name): Declare.
24394         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
24395
24396 2008-02-25  Ben Elliston  <bje@au.ibm.com>
24397
24398         PR other/32948
24399         * c-decl.c (grokdeclarator): Remove unused local variables
24400         `typedef_type' and `type_as_written'.
24401         * bb-reorder.c
24402         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
24403         unused local variable `has_hot_blocks'.
24404         (fix_crossing_conditional_branches): Remove unused local variable
24405         `prev_bb'.
24406
24407 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
24408
24409         PR middle-end/19984
24410         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
24411         using DEF_C99_BUILTIN.
24412         (BUILT_IN_NANF): Ditto.
24413         (BUILT_IN_NANL): Ditto.
24414
24415 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
24416             Revital Eres  <eres@il.ibm.com>
24417
24418         * modulo-sched.c (calculate_must_precede_follow): Address TODO
24419         regarding the order of two dependent insns in the same row.
24420
24421 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
24422
24423         * stor-layout.c (layout_decl): Do not bump the alignment of a
24424         bit-field to more than byte alignment if it is packed.
24425
24426 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
24427
24428         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
24429         e300c2 and e300c3.
24430
24431 2008-02-24  Diego Novillo  <dnovillo@google.com>
24432
24433         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
24434
24435         PR 33738
24436         * tree-vrp.c (vrp_evaluate_conditional): With
24437         -Wtype-limits, emit a warning when comparing against a
24438         constant outside the natural range of OP0's type.
24439         * c.opt (Wtype-limits): Move ...
24440         * common.opt (Wtype-limits): ... here.
24441
24442 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
24443
24444         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
24445         * config/rs6000/e300c2c3.md: New file.
24446         * config/rs6000/rs6000.c (processor_costs): Add new costs for
24447         e300c2 and e300c3.
24448         (rs6000_override_options): Add e300c2 and e300c3 cases to
24449         processor_target_table. Do not allow usage of Altivec or Spe
24450         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
24451         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
24452         * config/rs6000/rs6000.h (processor_type): Add
24453         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
24454         (ASM_CPU_SPEC): Add e300c2 and e300c3.
24455         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
24456         and ppce300c3. Include e300c2c3.md.
24457
24458 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
24459
24460         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
24461         instead of TARGET_STRICT_ALIGN.
24462
24463 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
24464
24465         * explow.c (memory_address): Assert that the generated address is
24466         valid.
24467
24468 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
24469
24470         PR target/25477
24471         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
24472         * config/darwin-ppc-ldouble-patch.def: New file.
24473         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
24474         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
24475         SUBTARGET_INIT_BUILTINS if defined.
24476         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
24477         New functions.
24478
24479 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24480
24481         PR rtl-opt/33512
24482         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
24483         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
24484
24485 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24486
24487         PR pch/35027
24488         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
24489         file" warning condtional on -Winvalid-PCH.
24490
24491 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
24492
24493         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
24494
24495 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
24496
24497         PR target/22076
24498         PR target/34256
24499         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
24500         prevent reload from using MMX registers.
24501         (*mov<mode>_internal): Ditto.
24502         (*movv2sf_internal_rex64): Ditto.
24503         (*movv2sf_internal): Ditto.
24504
24505 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24506
24507         PR documentation/31569
24508         * doc/install.texi2html: Use makeinfo --no-number-sections.
24509
24510 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
24511
24512         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
24513         ensure that we can address an entire entity > 8 bytes.  Don't
24514         generate reg+reg addressing for such data.
24515
24516 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
24517
24518         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
24519         strings when optimizing for size, unless the target cares about
24520         alignment.
24521
24522 2008-02-22  Tom Tromey  <tromey@redhat.com>
24523
24524         * regclass.c (current_pass): Remove declaration.
24525
24526 2008-02-22  Anatoly Sokolov <aesok@post.ru>
24527
24528         * config/avr/libgcc.S (__RAMPZ__): Define.
24529         (__do_copy_data): Add for devices with 128KB code memory.
24530
24531 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
24532
24533         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
24534         Use spe_abi.
24535         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
24536
24537 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
24538
24539         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
24540         GENNONACR_REGS.
24541
24542 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24543
24544         PR c/19999
24545         * c-typeck.c (build_binary_op): Warn about floating point
24546         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
24547
24548 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
24549
24550         PR target/34526
24551         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
24552         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
24553         add vrsave.
24554         (rs6000_override_options): Set altivec_abi as default, not override,
24555         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
24556         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
24557         is used; use new member spe_abi.
24558         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
24559         spe_abi and altivec_abi.
24560
24561 2008-02-22  Tomas Bily  <tbily@suse.cz>
24562
24563         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
24564
24565 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24566
24567         PR bootstrap/35273
24568         * config.build (build_file_translate): Set to `CMD //c' only if
24569         it works.
24570         * Makefile.in (build_file_translate): Improve comment.
24571
24572 2008-02-21  Jan Hubicka  <jh@suse.cz>
24573
24574         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
24575         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
24576         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
24577
24578 2008-02-21  Michael Matz  <matz@suse.de>
24579
24580         PR target/35264
24581         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
24582
24583 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
24584
24585         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
24586         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
24587         as insn constraint.
24588         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
24589         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
24590         SSE_VEC_FLOAT_MODE_P as insn constraint.
24591         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
24592         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
24593         sse4a_movntdf using MODEF mode iterator.
24594         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
24595         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
24596         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
24597         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
24598         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
24599         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
24600         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
24601
24602 2008-02-21  Richard Guenther  <rguenther@suse.de>
24603
24604         * tree.def (PAREN_EXPR): New tree code.
24605         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
24606         and PAREN_EXPR.
24607         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
24608         * expr.c (expand_expr_real_1): Likewise.
24609         * tree-inline.c (estimate_num_insns_1): Likewise.
24610         * tree-complex.c (expand_complex_move): Likewise.
24611         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
24612         as plain x.
24613
24614 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24615
24616         PR target/35225
24617         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
24618
24619 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24620
24621         PR target/35190
24622         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
24623
24624         * config/sh/sh.c (find_barrier): Don't go past
24625         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
24626
24627 2008-02-20  DJ Delorie  <dj@redhat.com>
24628
24629         * config/h8300/h8300.md (insv): Force source operand to be a register.
24630
24631         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
24632         as a jump, not as a plain insn.
24633
24634 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
24635
24636         * doc/invoke.texi (Warning Options): Add new option
24637         -Wframe-larger-than=.
24638         (-Wframe-larger-than): Document.
24639
24640         * flags.h (warn_frame_larger_than, frame_larger_than_size):
24641         Add declarations for new option variables.
24642
24643         * final.c (final_start_function): Check the frame size
24644         before emission and issue a Wframe-larger-than warning.
24645
24646         * opts.c (warn_frame_larger_than, frame_larger_than_size):
24647         Add definitions for new option variables.
24648         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
24649
24650         * common.opt (Wframe-larger-than=): New option.
24651
24652 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
24653
24654         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
24655         (<sse>_div<mode>3): Ditto.
24656         (<sse>_vmdiv<mode>3): Ditto.
24657         (<sse>_vmsqrt<mode>2): Ditto.
24658         (*smax<mode>3): Ditto.
24659         (sse5_frcz<mode>2): Ditto.
24660         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
24661         as insn constraint.
24662
24663 2008-02-20  Richard Guenther  <rguenther@suse.de>
24664
24665         PR middle-end/35265
24666         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
24667         be happy with INTEGRAL_TYPE_P.
24668
24669 2008-02-20  Richard Guenther  <rguenther@suse.de>
24670
24671         * fold-const.c (split_tree): Associate floatig-point expressions
24672         if flag_associative_math is set.
24673
24674 2008-02-20  Richard Guenther  <rguenther@suse.de>
24675
24676         * tree.h (fold_real_zero_addition_p): Declare.
24677         * fold-const.c (fold_real_zero_addition_p): Export.
24678         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
24679         floating-point operations with zero and one.
24680
24681 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
24682
24683         * doc/install.texi: Correct references to CFLAGS, replacing them
24684         with BOOT_CFLAGS.  Document flags used during bootstrap for
24685         target libraries.
24686
24687 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
24688
24689         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
24690         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
24691         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
24692         insn constraint.
24693         (smin<mode>3): Ditto from similar patterns.
24694         (smax<mode>3): Ditto.
24695         (*ieee_smin<mode>3): Ditto.
24696         (*ieee_smax<mode>3): Ditto.
24697         * config/i386/sse.md (sse): New mode attribute.
24698         (mov<mode>): Macroize expander from movv4sf and movv2df using
24699         SSEMODEF2P mode iterator.
24700         (<sse>_movnt<mode>): Ditto from similar patterns. Use
24701         SSE_VEC_FLOAT_MODE_P as insn constraint.
24702         (storent<mode>): Ditto.
24703         (storent<mode>): Macroize expander from storentsf and storentdf using
24704         MODEF mode iterator.
24705         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
24706         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
24707         (abs<mode>2): Ditto from similar patterns.
24708         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
24709         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
24710         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
24711         (<sse>_vmsqrt<mode>2): Ditto.
24712         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
24713         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
24714         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
24715         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
24716         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
24717         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
24718         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
24719         insn constraint.
24720         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
24721         iterator and SSE_FLOAT_MODE_P as insn constraint.
24722         (<sse>_ucomi): Ditto from similar patterns.
24723         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
24724         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
24725         SSE_VEC_FLOAT_MODE_P as insn constraint.
24726         (vcond<mode>): Ditto from similar patterns.
24727         (and<mode>3, *and<mode>3): Ditto.
24728         (<sse>_nand<mode>3): Ditto.
24729         (ior<mode>3, *ior<mode>3): Ditto.
24730         (xor<mode>3, *xor<mode>3): Ditto.
24731         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
24732         iterator and SSE_FLOAT_MODE_P as insn constraint.
24733         (*nand<mode>3): Ditto from similar patterns.
24734         (*ior<mode>3): Ditto.
24735         (*xor<mode>3): Ditto.
24736
24737 2008-02-20  Ira Rosen  <irar@il.ibm.com>
24738
24739         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
24740         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
24741         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
24742
24743 2008-02-19  Jan Hubicka  <jh@suse.cz>
24744
24745         * predict.c (tree_bb_level_predictions): Remove variable next
24746         mistakely introduced by previous commit.
24747
24748 2008-02-19  Jan Hubicka  <jh@suse.cz>
24749
24750         * predict.c (predict_paths_leading_to): Rewrite.
24751         (predict_paths_for_bb): New.
24752         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
24753
24754 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24755
24756         PR bootstrap/35218
24757         * Makefile.in (build_file_translate): New.
24758         (gcc-vers.texi): Use it for translating $(abs_srcdir).
24759         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
24760         * configure.ac (build_file_translate): Substitute it.
24761         * configure: Regenerate.
24762
24763 2008-02-19  Jan Hubicka  <jh@suse.cz>
24764
24765         PR rtl-optimization/34408
24766         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
24767         invalid sharing.
24768
24769 2008-02-19  Jan Hubicka  <jh@suse.cz>
24770
24771         PR middle-end/28779
24772         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
24773         call_expr.
24774
24775 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
24776
24777         PR Ada/35186
24778         * config/i386/i386-modes.def: Revert the last DI alignment
24779         change until Ada people can look into it.
24780
24781 2008-02-19  Nick Clifton  <nickc@redhat.com>
24782
24783         * opts.c (print_specific_help): Fix typo in --help text.
24784
24785 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
24786
24787         PR target/35239
24788         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
24789         32-bit inline asm without asm alternatives for host GCC < 3.0.
24790
24791 2008-02-19  Richard Guenther  <rguenther@suse.de>
24792
24793         PR tree-optimization/34989
24794         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
24795         Allow propagation to INDIRECT_REF if we can simplify only.
24796
24797 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24798
24799         * c-common.c (warn_for_collisions_1): Use appropriate option when
24800         warning.
24801
24802 2008-02-19  Nick Clifton  <nickc@redhat.com>
24803
24804         PR other/31349
24805         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
24806         (handle_options): Fix indentation.
24807         (print_filtered_help): If no language-specific options were
24808         displayed tell the user how to list all the options supported by
24809         the language's front-end.
24810         (print_specific_help): Fix indentation and remove duplicate line.
24811         (common_handle_option): Handle the -v option.
24812         For --help enable the display of undocumented options if the -v
24813         switch has been included on the command line.
24814         For --help= check for overlaps in the arguments between the option
24815         classes and the language names and issue a warning when they
24816         cannot be disambiguated.
24817         * c.opt (v): Pass on to the common option handler.
24818
24819 2008-02-19  Revital Eres  <eres@il.ibm.com>
24820
24821         * modulo-sched.c (sms_schedule): Change dump message when
24822         create_ddg function fails.
24823         (try_scheduling_node_in_cycle): Rename row to cycle.
24824         (print_partial_schedule): Rename CYCLE to ROW.
24825
24826 2008-02-19  Christian Bruel  <christian.bruel@st.com>
24827             Zdenek Dvorak  <ook@ucw.cz>
24828
24829         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
24830
24831 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
24832
24833         PR target/33555
24834         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
24835         (*x86_movdicc_0_m1_se): Ditto.
24836
24837 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
24838
24839         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
24840         (CMPtype): Define as __gcc_CMPtype.
24841         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
24842         (CMPtype): Define as __gcc_CMPtype.
24843
24844 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
24845
24846         Support valgrind 3.3 for --enable-checking=valgrind.
24847         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
24848         here.
24849         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
24850         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
24851         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
24852         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
24853         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
24854         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
24855         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
24856         respectively.
24857         * ggc-zone.c: Similar.
24858         * ggc-page.c: Similar.
24859
24860 2008-02-19  Paul Brook  <paul@codesourcery.com>
24861
24862         PR target/35071
24863         * config/arm/ieee754-df.S: Fix do_it typo.
24864         * config/arm/ieee754-sf.S: Fix do_it typo.
24865
24866 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
24867
24868         PR target/35189
24869         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
24870         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
24871         (OPTION_MASK_ISA_SSE_SET): Likewise.
24872         (OPTION_MASK_ISA_SSE2_SET): Likewise.
24873         (OPTION_MASK_ISA_SSE3_SET): Likewise.
24874         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
24875         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
24876         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
24877         (OPTION_MASK_ISA_SSE4_SET): Likewise.
24878         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
24879         (OPTION_MASK_ISA_SSE5_SET): Likewise.
24880         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
24881         (OPTION_MASK_ISA_MMX_UNSET): Updated.
24882         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
24883         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
24884         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
24885         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
24886         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
24887         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
24888         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
24889         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
24890         (OPTION_MASK_ISA_SSE4): Removed.
24891         (ix86_handle_option): Turn on bits in ix86_isa_flags and
24892         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
24893         (override_options): Don't turn on implied SSE/MMX bits in
24894         ix86_isa_flags.
24895
24896 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
24897
24898         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24899         32bit host.
24900
24901 2008-02-18  Joey Ye  <joey.ye@intel.com>
24902
24903         PR middle-end/34921
24904         * tree-nested.c (insert_field_into_struct): Set type alignment
24905         to field alignment if the former is less than the latter.
24906
24907 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
24908
24909         * BASE-VER: Set to 4.4.0.
24910
24911 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24912
24913         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
24914         * doc/cfg.texi: Likewise.
24915         * doc/extend.texi: Likewise.
24916         * doc/gty.texi: Likewise.
24917         * doc/invoke.texi: Likewise.
24918         * doc/loop.texi: Likewise.
24919         * doc/md.texi: Likewise.
24920         * doc/passes.texi: Likewise.
24921         * doc/rtl.texi: Likewise.
24922         * doc/sourcebuild.texi: Likewise.
24923         * doc/tm.texi: Likewise.
24924         * doc/tree-ssa.texi: Likewise.
24925
24926 2008-02-17  Richard Guenther  <rguenther@suse.de>
24927
24928         PR middle-end/35227
24929         * tree-complex.c (init_parameter_lattice_values): Handle parameters
24930         without default definition.
24931
24932 2008-02-17  Richard Guenther  <rguenther@suse.de>
24933
24934         PR tree-optimization/35231
24935         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
24936         if A | B != 1.
24937
24938 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
24939
24940         Revert:
24941         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24942         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24943         libgcc_cmp_return mode.
24944
24945 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24946
24947         PR c/28368
24948         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
24949
24950 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
24951
24952         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
24953         multilibs.
24954
24955 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24956
24957         * doc/c-tree.texi: Use `@.' where appropriate.
24958         * doc/extend.texi: Likewise.
24959         * doc/install.texi: Likewise.
24960         * doc/invoke.texi: Likewise.
24961         * doc/loop.texi: Likewise.
24962         * doc/makefile.texi: Likewise.
24963         * doc/md.texi: Likewise.
24964         * doc/passes.texi: Likewise.
24965         * doc/standards.texi: Likewise.
24966         * doc/tm.texi: Likewise.
24967
24968 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
24969
24970         PR middle-end/35196
24971         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
24972         in entry_bb.
24973         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
24974         rather than in entry_bb.
24975
24976 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24977
24978         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24979         libgcc_cmp_return mode.
24980
24981 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
24982
24983         PR middle-end/35130
24984         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
24985         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
24986
24987 2008-02-15  Richard Guenther  <rguenther@suse.de>
24988             Zdenek Dvorak  <ook@ucw.cz>
24989
24990         PR tree-optimization/35164
24991         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
24992         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
24993         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
24994         Only propagate addresses which do not have abnormal SSA_NAMEs
24995         in their operands.
24996
24997 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
24998
24999         PR target/35088
25000         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
25001
25002 2008-02-15  Jan Hubicka  <jh@suse.cz>
25003
25004         PR middle-end/35149
25005         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
25006
25007 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
25008
25009         PR middle-end/34621
25010         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
25011         when calculating alignment_pad.
25012
25013 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
25014
25015         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
25016         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
25017         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
25018         and STACK_BOUNDARY define.
25019
25020 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
25021
25022         PR preprocessor/35061
25023         * c-pragma.c (handle_pragma_pop_macro): Check that
25024         pushed_macro_table has been allocated.
25025
25026 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
25027
25028         PR middle-end/35136
25029         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
25030         (force_gimple_operand): Likewise.
25031         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
25032         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
25033         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
25034         (find_interesting_uses_address): Check addressability and alignment
25035         of the base expression only after substituting bases of IVs into it.
25036
25037 2008-02-14  Michael Matz  <matz@suse.de>
25038
25039         PR target/34930
25040         * function.c (instantiate_virtual_regs_in_insn): Reload address
25041         before falling back to reloading the whole operand.
25042
25043 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
25044
25045         * config/s390/s390.c (s390_mainpool_start): Emit the pool
25046         before the first section switch note.
25047
25048 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25049
25050         * doc/bugreport.texi: Update copyright years.
25051         * doc/c-tree.texi: Likewise.
25052         * doc/cfg.texi: Likewise.
25053         * doc/cpp.texi: Likewise.
25054         * doc/cppinternals.texi: Likewise.
25055         * doc/fragments.texi: Likewise.
25056         * doc/frontends.texi: Likewise.
25057         * doc/gcc.texi: Likewise.
25058         * doc/gty.texi: Likewise.
25059         * doc/hostconfig.texi: Likewise.
25060         * doc/implement-c.texi: Likewise.
25061         * doc/libgcc.texi: Likewise.
25062         * doc/loop.texi: Likewise.
25063         * doc/makefile.texi: Likewise.
25064         * doc/options.texi: Likewise.
25065         * doc/passes.texi: Likewise.
25066         * doc/rtl.texi: Likewise.
25067         * doc/sourcebuild.texi: Likewise.
25068         * doc/standards.texi: Likewise.
25069         * doc/tree-ssa.texi: Likewise.
25070         * doc/trouble.texi: Likewise.
25071
25072         * doc/extend.texi: Use @: or add comma where appropriate.
25073         * doc/invoke.texi: Likewise.
25074         * doc/tm.texi: Likewise.
25075
25076 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
25077
25078         PR target/34393
25079         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
25080         to a reg.
25081
25082 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
25083
25084         * doc/md.texi (clz, ctz): Add reference.
25085         * doc/rtl.texi (clz, ctz): Likewise.
25086
25087 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25088
25089         PR other/35148
25090         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
25091         srcdir.
25092
25093 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
25094
25095         * config/s390/s390.c (struct constant_pool): New field
25096         emit_pool_after added.
25097         (s390_mainpool_start): Set the emit_pool_after flag according
25098         to the section switch notes.
25099         (s390_mainpool_finish): Consider emit_pool_after when emitting
25100         the literal pool at the end of the function.
25101         (s390_chunkify_start): Force literal pool splits at section
25102         switch notes.
25103
25104 2008-02-13  Michael Matz  <matz@suse.de>
25105
25106         PR debug/35065
25107         * var-tracking.c (clobber_variable_part): Correctly traverse the
25108         list.
25109
25110 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25111
25112         PR 29673
25113         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
25114         Add -fdump-ipa-inline.
25115         * tree-dump.c (dump_files): Remove tree-inlined dump.
25116         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
25117
25118 2008-02-12  Richard Guenther  <rguenther@suse.de>
25119
25120         PR tree-optimization/35171
25121         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
25122         default defs.
25123
25124 2008-02-12  Richard Guenther  <rguenther@suse.de>
25125
25126         PR middle-end/35163
25127         * fold-const.c (fold_widened_comparison): Use get_unwidened in
25128         value-preserving mode.  Disallow final truncation.
25129
25130 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
25131
25132         PR middle-end/35136
25133         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
25134         code from here to...
25135         (force_gimple_operand): ...here.
25136
25137 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
25138
25139         PR c++/35144
25140         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
25141         non-compatible pointers.
25142         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
25143         different FIELD_DECLs, try harder by comparing field offsets, sizes
25144         and types.
25145
25146         PR inline-asm/35160
25147         * function.c (match_asm_constraints_1): Don't replace the same input
25148         multiple times.
25149
25150 2008-02-12  Anatoly Sokolov <aesok@post.ru>
25151
25152         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
25153         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
25154         (expand_epilogue): Restore RAMPZ register.
25155         * config/avr/avr.md (RAMPZ_ADDR): New constant.
25156
25157 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
25158
25159         * config/i386/cygwin.asm: (__alloca): Correct calling
25160         convention and alignment.
25161         (__chkstk): Force 8 byte stack alignment.
25162
25163 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
25164             Richard Guenther  <rguenther@suse.de>
25165
25166         PR tree-optimization/33992
25167         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
25168         the zero we compare against.
25169
25170 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
25171
25172         PR libfortran/35063
25173         * gthr-win32.h (__gthread_mutex_destroy_function): New function
25174         to CloseHandle after unlocking to prevent accumulation of handle
25175         count.
25176
25177 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25178
25179         PR middle_end/34150
25180         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
25181         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
25182         and update LABEL_NUSES during and after reload.
25183
25184 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
25185
25186         PR middle-end/34627
25187         * combine.c (simplify_if_then_else): Make sure the comparison is
25188         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
25189
25190 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
25191
25192         PR bootstrap/35051
25193         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
25194         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
25195         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
25196         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
25197         * tree.h (get_type_static_bounds): Likewise.
25198
25199 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25200
25201         * doc/invoke.texi (Option Summary, C++ Dialect Options)
25202         (Objective-C and Objective-C++ Dialect Options, Warning Options):
25203         Make -Wfoo language annotations match what the compiler outputs.
25204
25205 2008-02-08  Sa Liu  <saliu@de.ibm.com>
25206
25207         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
25208         intrinsics spu_convts, spu_convtu, spu_convtf.
25209
25210 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
25211
25212         * doc/extend.texi (Function Attributes) <noinline>: Mention
25213         asm ("") as method to keep calls.
25214
25215 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25216
25217         PR other/32754
25218         * doc/options.texi (Options): Replace references to opts.sh with
25219         optc-gen.awk.
25220         * opts-common.c: Likewise.
25221         * optc-gen.awk: Likewise.
25222
25223 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
25224
25225         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
25226
25227 2008-02-07  Richard Henderson  <rth@redhat.com>
25228
25229         PR rtl-opt/33410
25230         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
25231         EXPR_LIST for the REG_EQUAL instead of a comparison with a
25232         funny mode.
25233
25234 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
25235
25236         PR tree-optimization/35085
25237         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
25238         for operand entry oe2 in addition to operand entry oe3 in order to
25239         expose more opportunities for vectorizer sum reduction.
25240
25241 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25242
25243         PR other/35107
25244         * Makefile.in (LIBS): Remove $(GMPLIBS).
25245         (cc1-dummy, cc1): Add $(GMPLIBS).
25246
25247 2008-02-06  Jan Hubicka  <jh@suse.cz>
25248
25249         PR target/23322
25250         * i386.md (moddf_integer): Do not produce partial memory stalls for
25251         targets where it hurts.
25252
25253 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
25254
25255         PR target/35083
25256         * optabs.c (expand_float): Do not check for decimal modes when
25257         expanding unsigned integer through signed conversion.
25258
25259 2008-02-06  Nick Clifton  <nickc@redhat.com>
25260
25261         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
25262         inside the clobber with a match_operand and duplicated operand
25263         number in the constraint.
25264         (ineqbranchsi): Delete redundant comment.
25265
25266 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
25267
25268         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
25269         builtin_define ("__USE_INIT_FINI__").
25270         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
25271         -msx multilibs.
25272         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
25273
25274 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25275
25276         PR documentation/30330
25277         * doc/invoke.texi (C++ Dialect Options)
25278         (Objective-C and Objective-C++ Dialect Options, Warning Options):
25279         For each warning option -Wfoo that allows -Wno-foo, ensure both
25280         -Wfoo and -Wno-foo are listed in the option index.  Fix index
25281         entry of -Wswitch-default, index -Wnormalized= including the
25282         `=', and -Wlarger-than-@var{len} including @var{len}.
25283
25284 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
25285
25286         * config/i386/i386.md (floatunssisf2): Use
25287         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
25288         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
25289         Macroize expander using MODEF mode iterator.
25290
25291 2008-02-05  Diego Novillo  <dnovillo@google.com>
25292
25293         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
25294
25295         PR 33738
25296         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
25297
25298 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25299
25300         PR other/35070
25301         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
25302
25303 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
25304
25305         PR target/35084
25306         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
25307         to indicate if a message should be generated.
25308         (init_cumulative_args): Updated.
25309         (function_value_32): Likewise.
25310
25311 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
25312
25313         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
25314
25315 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
25316
25317         PR target/35083
25318         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
25319         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
25320
25321 2008-02-04  Diego Novillo  <dnovillo@google.com>
25322
25323         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
25324
25325         PR 33738
25326         * tree-vrp.c (vrp_evaluate_conditional): With
25327         -Wtype-limits, emit a warning when comparing against a
25328         constant outside the natural range of OP0's type.
25329
25330 2008-02-04  Richard Guenther  <rguenther@suse.de>
25331
25332         PR middle-end/33631
25333         * expr.c (count_type_elements): Give for unions instead of
25334         guessing.
25335
25336 2008-02-04  Richard Guenther  <rguenther@suse.de>
25337
25338         PR middle-end/35043
25339         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
25340         to TYPE_DOMAINs base type instead of using bitsizetype here.
25341
25342 2008-02-03  Jason Merrill  <jason@redhat.com>
25343
25344         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
25345
25346 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25347
25348         PR other/29972
25349         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
25350         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
25351         (RS/6000 and PowerPC Options): Fix typos and markup.
25352         * doc/passes.texi (Tree-SSA passes): Likewise.
25353
25354 2008-02-02  Michael Matz  <matz@suse.de>
25355
25356         PR target/35045
25357         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
25358         from record_last_reg_set_info.
25359         (record_last_reg_set_info): Take an RTX argument, iterate over all
25360         constituent hardregs.
25361         (record_last_set_info, record_opr_changes): Change calls to
25362         new signature or to record_last_reg_set_info_regno.
25363
25364 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
25365
25366         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
25367
25368 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
25369
25370         PR rtl-optimization/34773
25371         * reg-notes.def (EQUAL): Mention significance of combination of
25372         REG_EQUAL and REG_RETVAL.
25373         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
25374         insn that has a REG_RETVAL.
25375
25376 2008-02-01  Roger Sayle  <roger@eyesopen.com>
25377
25378         PR bootstrap/33781
25379         * configure.ac (--enable-fixed-point): Disable unless explicitly
25380         requested on IRIX.
25381         * configure: Regenerate.
25382
25383 2008-02-01  Richard Guenther  <rguenther@suse.de>
25384
25385         PR other/35042
25386         * invoke.texi (-finline-limit): Remove no longer true parts
25387         of the documentation.  Note that there is no default value.
25388
25389 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
25390             Mark Mitchell  <mark@codesourcery.com>
25391             Ben Elliston  <bje@au.ibm.com>
25392
25393         PR c/29326
25394         * doc/extend.texi (Other Builtins): Document.
25395
25396 2008-01-31  Tom Browder <tom.browder@gmail.com>
25397
25398         * doc/c-tree.texi (Types): Fix grammar.
25399         (Expression trees): Ditto.
25400         * doc/passes.texi (Tree-SSA passes): Ditto.
25401
25402         * doc/configterms.texi (Configure Terms): Fix typo.
25403         * doc/cpp.texi (Common Predefined Macros): Ditto.
25404         * doc/md.texi (Machine Constraints): Ditto.
25405
25406         * doc/makefile.texi (Makefile): Add comma.
25407
25408 2008-01-31  Tom Browder  <tom.browder@gmail.com>
25409             Gerald Pfeifer  <gerald@pfeifer.com>
25410
25411         * doc/sourcebuild.texi (Front End): Remove references to CVS
25412         and CVSROOT/modules.
25413         (Texinfo Manuals): Replace reference to CVS by one to SVN.
25414         (Back End): Remove reference to CVS.
25415
25416 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
25417
25418         PR target/34900
25419         * config/mips/mips.c (gen_load_const_gp): New function, taking a
25420         comment from...
25421         (mips16_gp_pseudo_reg): ...here.
25422         * config/mips/mips.md (load_const_gp): Replace with...
25423         (load_const_gp_<mode>): ...this :P-based insn.
25424
25425 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25426
25427         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
25428         options. Minor fixes.
25429         (-std): Move reference to standards closer to where language
25430         standards are first mentioned.
25431
25432 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
25433
25434         PR rtl-optimization/34995
25435         * reload.c (alternative_allows_const_pool_ref): Take an rtx
25436         parameter and return a bool.  If the rtx parameter is nonnull,
25437         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
25438         (find_reloads): Update call accordingly.  Pass the new operand
25439         if it needed no address reloads, otherwise pass null.
25440
25441 2008-01-30  Richard Henderson  <rth@redhat.com>
25442
25443         PR c/34993
25444         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
25445         for unbounded arrays.
25446
25447 2008-01-30  Silvius Rus  <rus@google.com>
25448
25449         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
25450
25451 2008-01-30  Jan Hubicka  <jh@suse.cz>
25452
25453         PR target/34982
25454         * i386.c (init_cumulative_args): Use real function declaration when
25455         calling locally.
25456
25457 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
25458
25459         PR rtl-optimization/34998
25460         * global.c (build_insn_chain): Treat non-subreg_lowpart
25461         SUBREGs of pseudos as clobbering all the words covered by the
25462         SUBREG, not just all the bytes.
25463         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
25464         original df_ref rather than an extract parameter.
25465         (global_conflicts): Update call accordingly.
25466
25467 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
25468
25469         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
25470         the overflow check to make it easier to read.
25471         (__fixtfdi): Change the type of the ll member in union
25472         long_double to UDItype_x.
25473
25474 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
25475
25476         PR middle-end/34969
25477         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
25478         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
25479         * tree-inline.c (fold_marked_statements): Call
25480         cgraph_update_edges_for_call_stmt if folding a call statement.
25481         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
25482         debug_generic_stmt calls, reset it back afterwards.
25483
25484         PR c/35017
25485         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
25486         static decls.
25487         * c-typeck.c (build_external_ref): Don't pedwarn about
25488         static vars in current function's scope.
25489
25490 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
25491
25492         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
25493
25494 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
25495
25496         PR c/35002
25497         * ipa-struct-reorg.c: Fix spelling.
25498         * params.def: Ditto.
25499
25500 2008-01-29  Richard Guenther  <rguenther@suse.de>
25501
25502         PR middle-end/35006
25503         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
25504         field.
25505         * tree-inline.c (remap_type): Increment remapping_type_depth
25506         around remapping types.
25507         (copy_body_r): Only add referenced variables if they are referenced
25508         from code, not types.
25509
25510 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
25511
25512         PR c++/34055
25513         PR c++/34103
25514         PR c++/34219
25515         PR c++/34606
25516         PR c++/34753
25517         PR c++/34754
25518         PR c++/34755
25519         PR c++/34919
25520         PR c++/34961
25521         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
25522         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
25523
25524 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
25525
25526         PR target/34412
25527         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
25528         pointer for tiny stack.
25529
25530 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
25531
25532         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
25533
25534 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
25535
25536         * config/vx-common.h: Fix typo in comment.
25537
25538 2008-01-28  Ian Lance Taylor  <iant@google.com>
25539
25540         PR c++/34862
25541         PR c++/33407
25542         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
25543         coalesce pointers if they have different DECL_NO_TBAA_P values.
25544         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
25545         between variables with different DECL_NO_TBAA_P values.
25546
25547 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
25548
25549         PR 31535
25550         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
25551         are not legitimate small data references on SPE targets.
25552
25553 2008-01-28  David Daney  <ddaney@avtrex.com>
25554
25555         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
25556
25557 2008-01-28  David Daney  <ddaney@avtrex.com>
25558
25559         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
25560
25561 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
25562
25563         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
25564         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
25565         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
25566         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
25567         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
25568         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
25569         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
25570         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
25571
25572 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
25573
25574         * basic-block.h (condjump_equiv_p): Fix comment.
25575
25576 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
25577
25578         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
25579         print_generic_stmt_indented): Fix comment.
25580
25581 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
25582
25583         * configure.ac (__stack_chk_fail): Add detecion for availability
25584         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
25585         * configure: Regenerate.
25586
25587 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
25588
25589         PR middle-end/34688
25590         * final.c (output_addr_const): Handle TRUNCATE.
25591
25592 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
25593
25594         PR target/34711
25595         * tree-ssa-loop-ivopts.c (comp_cost): New type.
25596         (zero_cost, infinite_cost): New constants.
25597         (struct cost_pair): Change type of cost to comp_cost.
25598         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
25599         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
25600         New functions.
25601         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
25602         split_address_cost, ptr_difference_cost, difference_cost,
25603         get_computation_cost_at, get_computation_cost,
25604         determine_use_iv_cost_generic, determine_use_iv_cost_address,
25605         determine_use_iv_cost_condition, determine_use_iv_costs,
25606         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
25607         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
25608         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
25609         Change type of cost to comp_cost.
25610         (determine_iv_cost): Increase cost of non-original ivs, instead
25611         of decreasing the cost of original ones.
25612         (get_address_cost): Indicate the complexity of the addressing mode
25613         in comp_cost.
25614         (try_add_cand_for): Prefer using ivs not specific to some object.
25615         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
25616
25617 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
25618             Janis Johnson  <janis187@us.ibm.com>
25619
25620         PR target/34814
25621         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
25622         (TARGET_INSTANTIATE_DECLS): Likewise.
25623         * target.h (expand_to_rtl_hook): New target hook.
25624         (instantiate_decls): Likewise.
25625         * function.c (instantiate_decl): Make non-static.  Rename to...
25626         (instantiate_decl_rtl): ... this.
25627         (instantiate_expr): Use instantiate_decl_rtl.
25628         (instantiate_decls_1): Likewise.
25629         (instantiate_decls): Likewise.
25630         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
25631         * function.h (instantiate_decl_rtl): Add prototype.
25632         * cfgexpand.c (target.h): New include.
25633         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
25634         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
25635         (TARGET_INSTANTIATE_DECLS): Likewise.
25636         (TARGET_INITIALIZER): New target hooks added.
25637         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
25638         New prototype.
25639         * config/rs6000/rs6000.c (tree-flow.h): New include.
25640         (machine_function): Add sdmode_stack_slot field.
25641         (rs6000_alloc_sdmode_stack_slot): New function.
25642         (rs6000_instantiate_decls): Likewise.
25643         (rs6000_secondary_memory_needed_rtx): Likewise.
25644         (rs6000_check_sdmode): Likewise.
25645         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
25646         (TARGET_INSTANTIATE_DECLS): Likewise.
25647         (rs6000_hard_regno_mode_ok): Allow SDmode.
25648         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
25649         (rs6000_emit_move): Handle SDmode.
25650         (function_arg_advance): Likewise.
25651         (function_arg): Likewise.
25652         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
25653         SDmode var args for 32-bit compiles.
25654         (rs6000_secondary_reload_class): Handle SDmode.
25655         (rs6000_output_function_epilogue): Likewise.
25656         (rs6000_function_value): Simplify if statement.
25657         (rs6000_libcall_value): Likewise.
25658         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
25659         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
25660         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
25661         (movsd_hardfloat): New define_insn.
25662         (movsd_softfloat): Likewise.
25663         (movsd_store): Likewise.
25664         (movsd_load): Likewise.
25665         (extendsddd2): Likewise.
25666         (extendsdtd2): Likewise.
25667         (truncddsd2): Likewise.
25668         (movdd_hardfloat64): Fixup comment.
25669         (UNSPEC_MOVSD_LOAD): New constant.
25670         (UNSPEC_MOVSD_STORE): Likewise.
25671
25672 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
25673
25674         PR c++/34965
25675         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
25676         TRUTH_XOR_EXPR.
25677         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
25678         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
25679         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
25680         and TRUTH_XOR_EXPR.
25681
25682 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
25683
25684         PR target/34794
25685         * config.gcc: Separate AIX 5.3 from AIX 6.1.
25686         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25687         __LONGDOUBLE128 too.
25688         * config/rs6000/aix61.h: New file.
25689
25690 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
25691
25692         PR rtl-optimization/34959
25693         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
25694         popcount and parity rtxes the same mode as their operand.
25695         Truncate or extend the result to the return value's mode
25696         if necessary.
25697
25698 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
25699
25700         PR target/34981
25701         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
25702         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
25703         to GOT_VERSION_REGNUM.
25704         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
25705         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
25706         * config/mips/mips.c (mips_emit_call_insn): New function.
25707         (mips_call_tls_get_addr): Call mips_expand_call directly.
25708         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
25709         emit_call_insn.
25710         (mips16_build_call_stub): Likewise.  Return the call insn or null.
25711         (mips_expand_call): Update the call to mips16_build_call_stub
25712         accordingly and a remove redundant condition.  Assert that MIPS16
25713         stubs do not use lazy binding.  Use mips_emit_call_insn and return
25714         the call insn.
25715         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
25716         TARGET_USE_GOT.
25717         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
25718         (mips_avoid_hazard): Remove hazard_set handling.
25719         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
25720         (UNSPEC_RESTORE_GP): ...this.
25721         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
25722         (FAKE_CALL_REGNO): Rename to...
25723         (GOT_VERSION_REGNUM): ...this.
25724         (type): Add "ghost" value.  Add an associated insn reservation.
25725         (hazard_set): Remove.
25726         (exception_receiver): Rename to...
25727         (restore_gp): ...this and update the unspec identifier accordingly.
25728         (exception_receiver, nonlocal_got_receiver): New expanders.
25729         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
25730         FAKE_CALL_REGNO.  Remove hazard_set attribute.
25731         (set_got_version, update_got_version): New patterns.
25732
25733 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
25734
25735         PR target/34970
25736         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
25737
25738 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
25739
25740         PR other/31955
25741         * doc/install.texi2html: Generate gcc-vers.texi.
25742
25743 2008-01-25  DJ Delorie  <dj@redhat.com>
25744
25745         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
25746
25747 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
25748
25749         * config/c4x: Remove directory.
25750         * config.gcc (crx-*, mt-*): Mark obsolete.
25751         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
25752         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
25753         sh-*-rtemscoff*): Remove cases.
25754         * defaults.h (C4X_FLOAT_FORMAT): Remove.
25755         * real.c (encode_c4x_single, decode_c4x_single,
25756         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
25757         c4x_extended_format): Remove.
25758         * real.h (c4x_single_format, c4x_extended_format): Remove.
25759         * doc/extend.texi (interrupt, naked): Remove mention of attributes
25760         on C4x.
25761         (Pragmas): Remove comment about c4x pragmas.
25762         * doc/install.texi (c4x): Remove target-specific instructions.
25763         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
25764         * doc/md.texi (Machine Constraints): Remove C4x documentation.
25765         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
25766         refer to C4x source files as examples.
25767         (C4X_FLOAT_FORMAT): Remove documentation.
25768
25769 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
25770
25771         * config/bfin/bfin.c (override_options): Reorder tests so that
25772         flag_pic gets enabled for -msep-data.
25773
25774 2008-01-25  Richard Guenther  <rguenther@suse.de>
25775
25776         PR middle-end/32244
25777         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
25778         to its bitfield precision if required.
25779
25780 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
25781
25782         PR middle-end/33880
25783         * tree-nested.c (walk_omp_for): New function.
25784         (convert_nonlocal_reference, convert_local_reference): Call
25785         walk_omp_for on OMP_FOR.
25786         (convert_call_expr): Call walk_body on OMP_FOR's
25787         OMP_FOR_PRE_INIT_BODY.
25788
25789 2008-01-25  Richard Guenther  <rguenther@suse.de>
25790
25791         PR tree-optimization/34966
25792         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
25793         default defs and PHI_NODEs we have to insert after the
25794         defining statement.
25795
25796 2008-01-24  Nick Clifton  <nickc@redhat.com>
25797
25798         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
25799         Provide a default definition.
25800         (LIBGCC2_UNITS_PER_WORD): Likewise.
25801
25802         * config/stormy16/stormy16.c: Include df.h for the prototype
25803         for df_regs_ever_live_p.
25804         (xstormy16_expand_builtin_va_start): Convert the stack offset
25805         into a component_ref and then use POINTER_PLUS_EXPR to add it
25806         to the incoming_virtual_args_rtx.
25807         (xstormy16_gimplify_va_arg_expr): Rename to
25808         xstormy16_gimplify_va_arg_expr.
25809         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
25810         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
25811         xstormy16_gimplify_va_arg_expr.
25812         Fix up some formatting issues.
25813
25814         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
25815         Move to predicates.md.
25816         (xs_hi_general_operand): Likewise.
25817         (xs_hi_nonmemory_operand): Likewise.
25818         * config/stormy16/predicates.md:
25819         (xstormy16_carry_plus_operand): New predicate.
25820         (xs_hi_general_operand): New predicate.
25821         (xs_hi_nonmemory_operand): New predicate.
25822         * config/stormy16/stormy16-protos.h:
25823         (xstormy16_carry_plus_operand): Delete prototype.
25824         (xs_hi_general_operand): Likewise.
25825         (xs_hi_nonmemory_operand): Likewise.
25826
25827         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
25828         modifiers as they are no longer needed and they can trigger
25829         reload spill failures.
25830
25831         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
25832         with a match_operand in order to help reload.
25833
25834         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
25835         constraint with 'e' for the 8th alternative as this version of
25836         the mov.w instruction only accepts the lower 8 registers.
25837
25838 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
25839
25840         PR target/34856
25841         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
25842         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
25843         vector elements.
25844
25845 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
25846
25847         PR middle-end/33333
25848         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
25849
25850 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
25851
25852         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
25853         New functions.
25854         (remove_structure): Update allocations list before removing structure.
25855
25856 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
25857
25858         * ipa-struct-reorg.c (is_safe_cond_expr,
25859         create_new_stmts_for_cond_expr): Use integer_zerop function,
25860         that recognize not only zero-pointer, but zero-integer too.
25861
25862 2008-01-25  Ben Elliston  <bje@au.ibm.com>
25863
25864         PR other/22232
25865         * fixproto: Escape "." in sed expression that strips leading "./".
25866
25867 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
25868
25869         PR driver/34904
25870         * gcc.c (SWITCH_OK): Removed.
25871         (SWITCH_LIVE): Changed to bit.
25872         (SWITCH_FALSE): Likewise.
25873         (SWITCH_IGNORE): Likewise.
25874         (switchstr): Change live_cond to unsigned int.
25875         (process_command): Replace SWITCH_OK with 0.
25876         (do_self_spec): Likewise.
25877         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
25878         (give_switch): Likewise.
25879         (used_arg): Likewise.
25880         (do_spec_1): Set the SWITCH_IGNORE bit.
25881         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
25882         bits.  Set the SWITCH_LIVE bit.
25883
25884 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
25885
25886         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
25887
25888 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
25889
25890         PR tree-optimization/34472
25891         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
25892         parameter to a "bool *" and set *DATA to false if there is
25893         an unsafe access.  Do not delete the structure here.
25894         (check_cond_exprs): Delete it here instead.
25895         (check_cond_exprs, exclude_cold_structs): Do not increase
25896         I when removing a structure.
25897
25898 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
25899
25900         PR target/34856
25901         * config/i386/i386.c (ix86_expand_vector_init): Consider only
25902         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
25903
25904 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
25905
25906         PR middle-end/34934
25907         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
25908         a fixed vector for stack.
25909
25910 2008-01-24  Ben Elliston  <bje@au.ibm.com>
25911
25912         PR c++/25701
25913         * doc/gcc.texi (Software development): Add a direntry for g++.
25914
25915 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
25916
25917         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
25918         stale and straggling -fforce-addr comments above.
25919
25920         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
25921         define.
25922         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
25923         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
25924
25925 2008-01-23  Michael Matz  <matz@suse.de>
25926
25927         PR debug/34895
25928         * dwarf2out.c (force_type_die): Use modified_type_die instead of
25929         gen_type_die.
25930
25931 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
25932
25933         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
25934         malloc result type.
25935
25936 2008-01-23 Anatoly Sokolov <aesok@post.ru>
25937
25938         * config/avr/avr.c (avr_current_arch): New variable.
25939         (avr_arch_types): Add 'avr31' and 'avr51' entries.
25940         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
25941         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
25942         (avr_override_options): Init 'avr_current_arch'.
25943         (base_arch_s): Move from here...
25944         * config/avr/avr.h (base_arch_s): ... here. Add new members
25945         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
25946         'mega' to 'have_jmp_call'.
25947         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
25948         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
25949         macros.
25950         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
25951         architectures.
25952         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
25953         MULTILIB_MATCHES): Ditto.
25954
25955 2008-01-23  Richard Guenther  <rguenther@suse.de>
25956
25957         PR middle-end/31529
25958         * cgraphunit.c (cgraph_reset_node): Always mark the node
25959         not reachable if it is not queued already.
25960
25961 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
25962
25963         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
25964         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
25965         (cputype_selected): New static variable.
25966         (bfin_handle_option): Set it if -mcpu is used.
25967         (override_option): Select default set of workarounds if no cpu type
25968         selected on the command line.
25969         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
25970
25971         From  Michael Frysinger  <michael.frysinger@analog.com>
25972         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
25973         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
25974
25975         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
25976         for bf547, bf523, bf524, and bf526.
25977         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
25978         bf526.
25979         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
25980         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
25981         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
25982         __ADSPBF547__ and __ADSPBF54x__ for bf547.
25983         * doc/invoke.texi (Blackfin Options): Document that
25984         -mcpu now accept bf547, bf523, bf524, and bf526.
25985
25986 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
25987
25988         PR rtl-optimization/34628
25989         * combine.c (try_combine): Stop and undo after the first combination
25990         if an autoincrement side-effect on the first insn has effectively
25991         been lost.
25992
25993 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
25994
25995         PR target/34529
25996         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
25997         Offset addresses are not valid for Altivec or paired float modes.
25998
25999 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
26000
26001         PR c++/34607
26002         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
26003         if DECL_INITIAL (decl) is error_mark_node.
26004
26005         PR c++/34914
26006         * c-common.c (handle_vector_size_attribute): Only allow
26007         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
26008         the same way as pointer, array etc. types.
26009         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
26010
26011         PR c++/34917
26012         * tree.c (build_type_attribute_qual_variant): Call
26013         build_qualified_type if attributes are equal, but quals are not.
26014
26015 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26016
26017         PR 32102
26018         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
26019         * flags.h (warn_strict_aliasing): Remove.
26020         (warn_strict_overflow): Remove.
26021         * opts.c (warn_strict_aliasing): Remove.
26022         (warn_strict_overflow): Remove.
26023         * c-opts.c (c_common_handle_option): -Wall only sets
26024         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
26025         (c_common_post_options): Give default values to -Wstrict-aliasing
26026         and -Wstrict-overflow if they are uninitialized.
26027         * common.opt (Wstrict-aliasing): Specify Var and Init.
26028         (Wstrict-overflow): Likewise.
26029
26030 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
26031
26032         PR rtl-optimization/26854
26033         PR rtl-optimization/34400
26034         PR rtl-optimization/34884
26035         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
26036         DF_RD->gen.
26037         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
26038         (df_rd_bb_info.expanded_lr_out): Deleted
26039         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
26040         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
26041         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
26042         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
26043         Removed code to allocate, initialize or free expanded_lr_out.
26044         (df_rd_bb_local_compute_process_def): Restructured to make more
26045         understandable.
26046         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
26047         sets if the sets are being trimmed.
26048
26049 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
26050
26051         PR bootstrap/32287
26052         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
26053         (as_vers): Likewise.
26054         * configure: Regenerated.
26055
26056 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26057
26058         PR middle-end/33092
26059         * tree-pass.h (pass_build_alias): New pass.
26060         * tree-ssa-alias.c (gate_build_alias): New.
26061         (pass_build_alias): New.
26062         * passes.c (init_optimization_passes): Add pass_build_alias after
26063         pass_create_structure_vars.
26064
26065 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
26066
26067         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
26068         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
26069         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
26070         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
26071         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
26072         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
26073         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
26074         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
26075         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
26076         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
26077         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
26078         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
26079         * config/s390/s390.md (FP_ALL): New mode iterator.
26080         (_d): New mode attribute.
26081         ("*signbit<mode>2>"): Changed mode of first operand.
26082         ("isinf<mode>2"): Changed mode of first operand.
26083         ("*TDC_insn"): Adaptation for DFP modes.
26084
26085 2008-01-22  Ben Elliston  <bje@au.ibm.com>
26086
26087         * tree.c (check_qualified_type): Improve function description.
26088
26089 2008-01-21  Jason Merrill  <jason@redhat.com>
26090
26091         PR c++/34196
26092         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
26093         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
26094         if it is set.
26095
26096 2008-01-21  DJ Delorie  <dj@redhat.com>
26097
26098         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
26099         return zero.
26100
26101 2008-01-21  Richard Guenther  <rguenther@suse.de>
26102
26103         PR middle-end/34856
26104         * tree-cfg.c (verify_expr): Allow all invariant expressions
26105         instead of just constant class ones as reference argument.
26106         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
26107         like any other constant.
26108         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
26109
26110 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
26111
26112         * regmove.c (fixup_match_1): Update call crossed frequencies.
26113
26114 2008-01-21  Richard Guenther  <rguenther@suse.de>
26115
26116         PR c/34885
26117         * tree-inline.c (setup_one_parameter): Deal with mismatched
26118         types using a VIEW_CONVERT_EXPR.
26119
26120 2008-01-21  Alon Dayan  <alond@il.ibm.com>
26121             Olga Golovanevsky  <olga@il.ibm.com>
26122
26123         PR tree-optimization/34701
26124         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
26125         when the structure size is not a power of 2.
26126
26127 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
26128
26129         * doc/install.texi: Add doc for --enable-checking=df.
26130
26131 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
26132
26133         PR rtl-optimization/34808
26134         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
26135
26136 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
26137
26138         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
26139         input.
26140
26141 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
26142
26143         PR rtl-optimization/26854
26144         PR rtl-optimization/34400
26145         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
26146         DF_RD->gen.
26147         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
26148         (df_rd_bb_info.expanded_lr_out): New.
26149         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
26150         * loop_iv.c (iv_analysis_loop_init): Ditto.
26151         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
26152         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
26153         Added code to allocate, initialize or free expanded_lr_out.
26154         (df_rd_bb_local_compute_process_def): Restructured to make
26155         more understandable.
26156         (df_rd_confluence_n): Add code to do nothing with fake edges and
26157         code to no apply invalidate_by_call sets if the sets are being trimmed.
26158         (df_lr_local_finalize): Renamed to df_lr_finalize.
26159         (df_live_local_finalize): Renamed to df_live_finalize.
26160
26161 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
26162
26163         PR target/34831
26164         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
26165         deciding whether to use reciprocal instructions.
26166
26167 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
26168
26169         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
26170         dwarf2out_note_section_used if cold_text_section is NULL.
26171
26172 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
26173
26174         PR gcov-profile/34610
26175         * tree-cfg.c (make_edges): Mark both outgoing edges from
26176         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
26177         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
26178         from OMP_FOR and OMP_CONTINUE outgoing edges.
26179
26180         * tree-profile.c (tree_profiling): Return early if
26181         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
26182         at the end.
26183         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
26184         from cfun to child_cfun.
26185         * function.h (struct function): Add after_tree_profile bit.
26186
26187 2008-01-19 Anatoly Sokolov <aesok@post.ru>
26188
26189         * config/avr/avr.S (_exit): Disable interrupt.
26190
26191 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
26192             Steven Bosscher  <stevenb.gcc@gmail.com>
26193
26194         PR rtl-optimization/26854
26195         PR rtl-optimization/34400
26196         * df-problems.c (df_live_scratch): New scratch bitmap.
26197         (df_live_alloc): Allocate df_live_scratch when doing df_live.
26198         (df_live_reset): Clear the proper bitmaps.
26199         (df_live_bb_local_compute): Only process the artificial defs once
26200         since the order is not important.
26201         (df_live_init): Init the df_live sets only with the variables
26202         found live by df_lr.
26203         (df_live_transfer_function): Use the df_lr sets to prune the
26204         df_live sets as they are being computed.
26205         (df_live_free): Free df_live_scratch.
26206
26207 2008-01-18  Ian Lance Taylor  <iant@google.com>
26208
26209         * common.opt: Add fmerge-debug-strings.
26210         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
26211         flag_merge_debug_strings rather than flag_merge_constants.
26212         * doc/invoke.texi (Option Summary): Mention
26213         -fmerge-debug-strings.
26214         (Debugging Options): Document -fmerge-debug-strings.
26215
26216 2008-01-18  Ian Lance Taylor  <iant@google.com>
26217
26218         PR c++/33407
26219         * tree.h (DECL_IS_OPERATOR_NEW): Define.
26220         (struct tree_function_decl): Add new field operator_new_flag.
26221         * tree-inline.c (expand_call_inline): When inlining a call to
26222         operator new, force the return value to go into a variable, and
26223         set DECL_NO_TBAA_P on that variable.
26224         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
26225
26226 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
26227
26228         PR debug/34484
26229         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
26230         DWARF2_DEBUGGING_INFO.
26231         (dwarf2out_note_section_used): Ditto.  Add prototype.
26232         (have_multiple_function_sections, text_section_used,
26233         cold_text_section_used, *cold_text_sections): Move declarations
26234         before their uses.
26235
26236 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
26237
26238         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
26239         field and add signal_ra.
26240         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
26241         assignments to frame state pc.  Move end of stack check after
26242         MD_FALLBACK_FRAME_STATE_FOR.
26243         (uw_update_context_1): Use frame state signal_regs if set, instead
26244         of checking signal_frame flag.
26245         (uw_update_context): Use frame state signal_ra if set.
26246         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
26247         * config/xtensa/linux-unwind.h: New file.
26248
26249 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
26250
26251         * modulo-sched.c (get_sched_window): Fix comment typo.
26252
26253 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
26254
26255         PR tree-optimization/34648
26256         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
26257
26258 2008-01-17  Anatoly Sokolov <aesok@post.ru>
26259
26260         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
26261         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
26262
26263 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
26264
26265         PR rtl-optimization/34400
26266         * df-core.c (df_worklist_dataflow_overeager,
26267         df_worklist_dataflow_doublequeue): New functions.
26268         (df_worklist_dataflow): Two different worklist solvers.
26269         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
26270         New param.
26271
26272 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
26273
26274         PR testsuite/34821
26275         * doc/invoke.texi: Document the dependence on pthread for fopenmp
26276         and ftree-parallelize-loops.
26277
26278 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
26279
26280         PR rtl-optimization/34826
26281         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
26282
26283 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
26284
26285         * global.c (find_reg): Mark the eh regs as used if necessary.
26286         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
26287         * ra.h (struct allocno): no_eh_reg field added.  Changed
26288         no_stack_reg type to bitfield.
26289
26290 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
26291
26292         * tree.c (substitute_in_expr): Add missing 'break'.
26293
26294 2008-01-17  Richard Guenther  <rguenther@suse.de>
26295
26296         PR tree-optimization/34825
26297         * tree-ssa-math-opts.c (is_division_by): Do not recognize
26298         x / x as division to handle.
26299
26300 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26301
26302         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
26303         "-pthread" is specified.
26304         * pa-hpux11.h (LIB_SPEC): Likewise.
26305
26306 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
26307             Peter Bergner  <bergner@vnet.ibm.com>
26308
26309         PR rtl-optimization/33796
26310         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
26311
26312 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26313
26314         PR libgfortran/34699
26315         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
26316         static links.
26317         * pa-hpux10.h (LINK_SPEC): Likewise.
26318         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
26319
26320 2008-01-16  Richard Guenther  <rguenther@suse.de>
26321
26322         PR middle-end/32628
26323         * fold-const.c (fold_convert_const_int_from_int): Do not
26324         set overflow if that occured only because of a sign extension
26325         change when converting from/to a sizetype with the same
26326         precision and signedness.
26327
26328 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
26329
26330         PR debug/34249
26331         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
26332         location address to the correct place.  Update copyright year.
26333
26334 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
26335
26336         * lambda-code.c (lambda_transform_legal_p): Handle the case of
26337         no dependences in the dependence_relations vector.
26338
26339 2008-01-16  Jan Hubicka  <jh@suse.cz>
26340
26341         PR rtl-optimization/31396
26342         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
26343         * cfg.c (dump_reg_info): Print it.
26344         * regs.h (struct reg_info_t): add freq_calls_crossed.
26345         (REG_FREQ_CALLS_CROSSED): New macro.
26346         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
26347         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
26348         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
26349         regmove_optimize): Update call crossed frequencies.
26350         * local-alloc.c (struct qty): Add freq_calls_crossed.
26351         (alloc_qty): Copute freq_calls_crossed.
26352         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
26353         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
26354         * ra.h (struct allocno): Add freq_calls_crossed.
26355
26356 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
26357
26358         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
26359         libgomp when compiling with ftree-parallelize-loops.
26360         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
26361
26362 2008-01-16  Richard Guenther  <rguenther@suse.de>
26363
26364         PR tree-optimization/34769
26365         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
26366         * tree.c (int_cst_value): Instead make this function more
26367         permissive in what it accepts as valid input.  Document this
26368         function always sign-extends the value.
26369
26370 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
26371             Richard Guenther  <rguenther@suse.de>
26372
26373         PR c/34668
26374         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
26375         (gimple_fold_indirect_ref_rhs): ... this.
26376         (gimple_fold_indirect_ref): New function with foldings
26377         that preserve lvalueness.
26378         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
26379         * tree-flow.h (gimple_fold_indirect_ref): Declare.
26380         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
26381         to fold an INDIRECT_REF, fall back to the old use of
26382         fold_indirect_ref_1.
26383
26384 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
26385
26386         * tree-data-ref.c (subscript_dependence_tester_1): Call
26387         free_conflict_function.
26388         (compute_self_dependence): Same.
26389
26390 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
26391
26392         PR debug/34249
26393         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
26394         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
26395         function global.
26396         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
26397         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
26398         for DWARF2_UNWIND_INFO targets.
26399
26400 2008-01-16  Richard Guenther  <rguenther@suse.de>
26401
26402         PR c/34768
26403         * c-typeck.c (common_pointer_type): Do not merge inconsistent
26404         type qualifiers for function types.
26405
26406 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
26407
26408         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
26409         loop_iterator li from previous commit.
26410
26411 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
26412
26413         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
26414
26415 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
26416
26417         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
26418         (parallelize_loops): Don't parallelize irreducible components.
26419
26420 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26421
26422         PR c++/24924
26423         * c-opts (c_common_post_options): Do not enable CPP
26424         flag_pedantic_errors by default.
26425
26426 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
26427
26428         PR rtl-optimization/31944
26429         * cse.c (remove_pseudo_from_table): New function.
26430         (merge_equiv_classes): Use above function to remove pseudo-registers.
26431         (invalidate): Likewise.
26432
26433 2008-01-13  Richard Guenther  <rguenther@suse.de>
26434
26435         PR middle-end/34601
26436         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
26437         instead of TYPE_MODE to deal with calls from expand_one_error_var.
26438
26439 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
26440
26441         * gcse.c (cprop_jump): Call validate_unshare_change instead of
26442         validate_change to unshare the source of the PC set.
26443
26444 2008-01-12  Jan Hubicka  <jh@suse.cz>
26445
26446         PR middle-end/32135
26447         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
26448         references above array bounds.  This might trigger bounds checks for
26449         pointers to arrays.
26450
26451 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
26452
26453         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
26454         new_replaceable_dependencies.
26455
26456 2008-01-12  Doug Kwan  <dougkwan@google.com>
26457
26458         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
26459         instead of OPT_Wreturn_type in warning due to ignored return type
26460         qualifiers.
26461         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
26462         options included in -Wextra.
26463         * c.opt: New option -Wignored_qualifiers.
26464         * doc/invoke.texi (Warning Options, -Wextra): Add new option
26465         -Wignore_qualifiers.
26466         (-Wignored-qualifiers): Document.
26467         (-Wreturn-type): Remove description of functionality now handled
26468         by -Wignored-qualifiers.
26469
26470 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
26471
26472         PR ada/33788
26473         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
26474         NOP_EXPR if it is between integral types with the same precision.
26475
26476 2008-01-12  Jan Hubicka  <jh@suse.cz>
26477
26478         PR other/28023
26479         * invoke.texi (max-inline-recursive-depth): Fix default value.
26480
26481 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
26482
26483         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
26484         correct type.
26485
26486 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
26487
26488         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
26489
26490 2008-01-11  James E. Wilson  <wilson@specifix.com>
26491
26492         PR target/26015
26493         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
26494
26495 2008-01-11  Anatoly Sokolov <aesok@post.ru>
26496
26497         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
26498         save/restore frame pointer register and don't use 'call-prologues'
26499         optimization in function with "OS_task" attribute.
26500
26501 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
26502
26503         PR middle-end/31309
26504         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
26505         when copying to memory.
26506
26507 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
26508
26509         PR rtl-optimization/30905
26510         * cfgcleanup.c: Include dce.h
26511         (crossjumps_occured): New global variable.
26512         (try_crossjump_bb): Exit loop after finding a fallthru edge.
26513         If something changed, set crossjumps_occured to true.
26514         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
26515         Don't add/remove fake edges to exit here...
26516         (cleanup_cfg): ...but do it here, when crossjumping.
26517         Run a fast DCE when successful crossjumps occured in the latest
26518         iteration of try_optimize_cfg.
26519
26520 2008-01-11  Richard Guenther  <rguenther@suse.de>
26521
26522         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
26523         (struct vn_unary_op_s): Likewise.
26524         (vn_reference_insert): Free old reference on hash collision.
26525
26526 2008-01-10  Raksit Ashok  <raksit@google.com>
26527
26528         PR rtl-optimization/27971
26529         * combine.c (find_split_point): Split PLUS expressions which are
26530         inside a MEM rtx, and whose first operand is complex.
26531
26532 2008-01-10  DJ Delorie  <dj@redhat.com>
26533
26534         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
26535         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
26536         (m32c_hard_regno_ok): Call the underlying function.
26537
26538 2008-01-10  Richard Guenther  <rguenther@suse.de>
26539
26540         PR middle-end/34683
26541         * tree-cfg.c (tree_merge_blocks): Do not go through the
26542         full-blown folding and stmt updating path if we just deal
26543         with virtual operands.
26544         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
26545         test for abnormal SSA_NAMEs.
26546
26547 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
26548
26549         PR middle-end/34641
26550         * reload.c (push_reload): Add assertions.  All constants from
26551         reg_equiv_constant should have been used for replacing the respective
26552         pseudo earlier.
26553         (find_reloads_address): Invoke find_reloads_address_part for
26554         constant taken from the reg_equiv_constant array.
26555
26556 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
26557
26558         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
26559         field (valnum) the first in the struct.  Replace bools with
26560         unit bit fields.
26561
26562 2008-01-10  Richard Guenther  <rguenther@suse.de>
26563
26564         PR tree-optimization/34651
26565         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
26566         types and ordering for masking and converting.
26567
26568 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
26569
26570         PR tree-optimization/34017
26571         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
26572         also for PHI_NODE expressions.
26573
26574 2008-01-09  Jan Hubicka  <jh@suse.cz>
26575
26576         PR tree-optimization/34708
26577         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
26578         based on number of case labels.
26579         (init_inline_once): Remove switch_cost.
26580         * tree-inline.h (eni_weights_d): Remove switch_cost.
26581
26582 2008-01-09  Richard Guenther  <rguenther@suse.de>
26583         Andrew Pinski  <andrew_pinski@playstation.sony.com>
26584
26585         PR middle-end/30132
26586         * gimplify.c (gimplify_cond_expr): Do not create an addressable
26587         temporary if an rvalue is ok or an lvalue is not required.
26588
26589 2008-01-09  Richard Guenther  <rguenther@suse.de>
26590
26591         PR middle-end/34458
26592         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
26593         adjust return type.
26594
26595 2008-01-09  Richard Guenther  <rguenther@suse.de>
26596
26597         PR middle-end/34679
26598         * tree.c (host_integerp): Check for sizetype only if the
26599         type is an integer type.
26600
26601 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
26602
26603         PR debug/26364
26604         * opts.c (decode_options): Disable inlining of functions called
26605         once if not in unit-at-a-time mode.
26606
26607 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
26608
26609         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
26610
26611 2008-01-08  Richard Guenther  <rguenther@suse.de>
26612
26613         PR middle-end/31863
26614         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
26615         out early if the result will be unused.
26616
26617 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
26618
26619         PR target/34709
26620         Revert:
26621
26622         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
26623         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
26624         for TARGET_RECIP.
26625
26626 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
26627
26628         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
26629         for vectorization tuned.
26630
26631 2008-01-08  Richard Guenther  <rguenther@suse.de>
26632
26633         PR tree-optimization/34683
26634         * tree-ssa-operands.c (operand_build_cmp): Export.
26635         * tree-ssa-operands.h (operand_build_cmp): Declare.
26636         * tree-vn.c (vuses_compare): Remove.
26637         (sort_vuses): Use operand_build_cmp.
26638         (sort_vuses_heap): Likewise.
26639         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
26640         to re-use old VEC if available.  Do not sort already sorted VUSEs.
26641         (vdefs_to_vec): Do not sort already sorted VDEFs.
26642
26643 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
26644
26645         PR middle-end/34694
26646         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
26647
26648 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
26649
26650         PR target/34702
26651         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
26652         limitations of reciprocal sequences on x86 targets.
26653
26654 2008-01-08  Richard Guenther  <rguenther@suse.de>
26655
26656         PR tree-optimization/34683
26657         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
26658
26659 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
26660
26661         PR target/34622
26662         * config/darwin.c (darwin_mergeable_string_section): Don't use
26663         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
26664
26665 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
26666
26667         PR target/34682
26668         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
26669         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
26670         predicates of op0 and op1 to register_operand.
26671         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
26672         expander using X87MODEF mode iterator.  Change predicates of
26673         op0 and op1 to register_operand.
26674         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
26675         corresponding patterns and macroize using MODEF macro.  Change
26676         predicates of op0 and op1 to register_operand and remove
26677         "m" constraint. Disparage "r" alternative with "!".
26678         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
26679         macroize using X87MODEF macro.  Change predicates of op0 and op1
26680         to register_operand and remove "m" constraint.  Disparage "r"
26681         alternative with "!".
26682         (absneg splitter with memory operands): Remove.
26683         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
26684         patterns and macroize using X87MODEF mode iterator.
26685         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
26686         Change predicate of op1 to register_operand.
26687         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
26688         for memory operands.
26689
26690 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
26691
26692         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
26693
26694 2008-01-07  Richard Guenther  <rguenther@suse.de>
26695
26696         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
26697         fields.
26698
26699 2008-01-07  Richard Guenther  <rguenther@suse.de>
26700
26701         PR tree-optimization/34683
26702         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
26703         VOPs of the needed size to save memory.  Use VEC_quick_push
26704         to save compile-time.
26705         (vdefs_to_vec): Likewise.
26706
26707 2008-01-07  Sa Liu  <saliu@de.ibm.com>
26708
26709         * config/spu/spu.md (divdf3): Genetate inline code for double
26710         division.  The implementation doesn't handle INF or NAN, therefore it
26711         only applies when -ffinite-math-only is given.
26712
26713 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
26714
26715         PR libstdc++/34680
26716         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
26717         * doc/cpp.texi ([Common Predefined Macros]): Document.
26718
26719 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
26720
26721         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
26722         order to use commutative addition instead of subtraction.
26723
26724 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26725             Mircea Namolaru  <namolaru@il.ibm.com>
26726             Vladimir Yanovsky  <yanov@il.ibm.com>
26727             Revital Eres  <eres@il.ibm.com>
26728
26729         PR tree-optimization/34263
26730         * tree-outof-ssa.c (process_single_block_loop_latch,
26731         contains_tree_r): New functions.
26732         (analyze_edges_for_bb): Call process_single_block_loop_latch
26733         function to empty single-basic-block latch block if possible.
26734
26735 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
26736
26737         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
26738         for TARGET_RECIP.
26739         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
26740
26741 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
26742
26743         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
26744
26745 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
26746
26747         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
26748
26749 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
26750
26751         PR tree-optimization/34618
26752         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
26753         flag from T.
26754
26755 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
26756
26757         PR target/34673
26758         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
26759         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
26760         Update copyright year.
26761
26762         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
26763         Update copyright year.
26764         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
26765         using NR fixup.
26766
26767 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
26768
26769         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
26770         edge does not point to current bb before changing need_assert.
26771
26772 2008-01-04  Richard Guenther  <rguenther@suse.de>
26773
26774         PR middle-end/34029
26775         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
26776         for verifying purposes if they are is_gimple_min_invariant.
26777
26778 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
26779
26780         PR tree-optimization/34448
26781         PR tree-optimization/34465
26782         * gimplify.c (gimplify_init_constructor): Add new parameter
26783         notify_temp_creation.  Use it.
26784         (gimplify_modify_expr_rhs): Take volatiles into account when
26785         optimizing constructors.
26786         Do not optimize constructors if gimplify_init_constructor will dump to
26787         memory.
26788         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
26789         * gcc.c-torture/compile/pr34448.c: New.
26790
26791 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
26792
26793         PR gcov-profile/34609
26794         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
26795         return_slot if result is TREE_ADDRESSABLE.
26796
26797 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
26798
26799         * config/mips/mips.md (sqrt_condition): Tweak comment.
26800         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
26801
26802 2008-01-03  Tom Tromey  <tromey@redhat.com>
26803
26804         PR c/34457
26805         * c-common.c (c_type_hash): Handle VLAs.
26806
26807 2008-01-03  Jan Hubicka  <jh@suse.cz>
26808
26809         PR tree-optimization/31081
26810         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
26811         0 when inlining and not inlining to first basic block.
26812         (remap_decl): When var is initialized to 0, don't set default_def.
26813         (expand_call_inline): Set entry_bb.
26814         * tree-inline.h (copy_body_data): Add entry_bb.
26815
26816 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
26817
26818         PR c++/34619
26819         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
26820         before returning.
26821
26822         PR tree-optimization/29484
26823         * tree-inline.c (inline_forbidden_p_2): New function.
26824         (inline_forbidden_p): Disallow inlining if some static var
26825         has an address of a local LABEL_DECL in its initializer.
26826         * doc/extend.texi (Labels as Values): Document &&foo behaviour
26827         vs. inlining.
26828
26829 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
26830
26831         PR tree-optimization/34635
26832         * tree-data-ref.c (add_other_self_distances): Make sure that the
26833         evolution step is constant.
26834
26835 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
26836
26837         PR middle-end/34608
26838         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
26839
26840 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
26841
26842         * tree-sra.c (scalarize_init): Insert the generate_element_init
26843         statements after the generate_element_zero statements.
26844
26845 2008-01-02  Richard Guenther  <rguenther@suse.de>
26846
26847         PR middle-end/34093
26848         PR middle-end/31976
26849         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
26850         for very large number of operands instead of ICEing.
26851
26852 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
26853
26854         PR target/34013
26855         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
26856         while stack probing.
26857
26858 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
26859
26860         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
26861         in C++0x mode.
26862
26863 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
26864
26865         PR libmudflap/26442
26866         * tree-mudflap.c (mx_register_decls): Guard warning by
26867         !DECL_ARTIFICIAL check.
26868
26869 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
26870
26871         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
26872         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
26873         sse5_perm<mode>): Fix constraints.