OSDN Git Service

2008-12-30 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-12-30  Richard Guenther  <rguenther@suse.de>
2
3         PR middle-end/38564
4         * fold-const.c (fold_comparison): Use the correct result type.
5
6 2008-12-30  Dorit Nuzman  <dorit@il.ibm.com>
7             Ira Rosen  <irar@il.ibm.com>
8
9         PR tree-optimization/38529
10         * tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts
11         whose DEF is used in the loop-nest that is being vectorized, but
12         outside the immediately enclosing loop.
13
14 2008-12-29  Seongbae Park  <seongbae.park@gmail.com>
15
16         * tree-profile.c (tree_init_ic_make_global_vars): Make static
17         variables TLS.
18
19 2008-12-29  Jakub Jelinek  <jakub@redhat.com>
20
21         PR c++/36191
22         * tree-complex.c (expand_complex_libcall): Call
23         maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges
24         instead of passing true as 3rd argument to gsi_replace.
25
26 2008-12-28  Uros Bizjak  <ubizjak@gmail.com>
27
28         PR middle-end/38652
29         * dse.c: Include target.h.
30         * Makefile.in (dse.o): Depend on $(TARGET_H).
31
32 2008-12-29  Jakub Jelinek  <jakub@redhat.com>
33
34         PR driver/38381
35         * gcc.c (process_command): Accept also -b with configuration name
36         in the next argument.
37         * doc/invoke.texi (-b): Document that no hyphen is required if
38         configuration name is in the next argument after -b.
39
40 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
41
42         PR middle-end/38641
43         * gimple-pretty-print.c (dump_binary_rhs): Print
44         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR,
45         VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, VEC_PACK_FIX_TRUNC_EXPR,
46         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR
47         VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR similarly
48         to COMPLEX_EXPR, MIN_EXPR and MAX_EXPR.
49
50         PR middle-end/38633
51         * tree-cfg.c (replace_block_vars_by_duplicates): Only call
52         replace_by_duplicate_decl for VAR_DECLs or CONST_DECLs.
53
54 2008-12-24  Kazu Hirata  <kazu@codesourcery.com>
55
56         * Makefile.in (GTFILES): Add $(srcdir)/expr.h.
57         * expr.h: Fix the declaration of block_clear_fn.
58
59 2008-12-23  Andrew Pinski  <pinski@gmail.com>
60
61         PR middle-end/38590
62         * fold-const.c (fold_binary): Call fold_convert on arguments to
63         fold_build2 for negative divide optimization.
64
65 2008-12-23  Jakub Jelinek  <jakub@redhat.com>
66
67         PR middle-end/31150
68         * dse.c (struct store_info): Add const_rhs field.
69         (clear_rhs_from_active_local_stores): Clear also const_rhs.
70         (record_store): Try also cselib_expand_value_rtx to get a constant.
71         (find_shift_sequence, get_stored_val): Use const_rhs instead of
72         rhs if worthwhile.
73         * cselib.c (cselib_record_sets): If !cselib_record_memory and
74         there is just one set from read-only MEM, look at REG_EQUAL or
75         REG_EQUIV note.
76
77         * dse.c (struct store_info): Add redundant_reason field.
78         (record_store): When storing the same constant as has been stored by
79         an earlier store, set redundant_reason field to the earlier store's
80         insn_info_t.  Don't delete cannot_delete insns.
81         (find_shift_sequence): Remove read_info argument, add read_mode
82         and require_cst arguments.  Return early if require_cst and
83         constant wouldn't be returned.
84         (get_stored_val): New function.
85         (replace_read): Use it.
86         (scan_insn): Put even cannot_delete insns with exactly 1 store
87         into active_local_stores.
88         (dse_step1): Don't delete cannot_delete insns.  Remove redundant
89         constant stores if contains_cselib_groups and earlier store storing
90         the same value hasn't been eliminated.
91         (dse_step6): Renamed to dse_step7.  New function.
92         (dse_step7): Renamed from dse_step6.
93         (rest_of_handle_dse): Call dse_step6 and dse_step7 at the end.
94         * cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs
95         into CONST unless really necessary.  Handle SUBREG, unary,
96         ternary, bitfield and compares specially, to be able to simplify
97         operations on constants.
98         (expand_loc): Try to optimize LO_SUM.
99
100         * dse.c (get_call_args): New function.
101         (scan_insn): Don't handle BUILT_IN_BZERO.  For memset, attempt
102         to get call arguments and if successful and both len and val are
103         constants, handle the call as (mem:BLK) (const_int) store.
104
105         * dse.c (struct store_info): Add is_large bool field, change
106         positions_needed into a union of a bitmask and bitmap + count.
107         (free_store_info): Free bitmap if is_large.
108         (set_usage_bits): Don't look at stores where
109         offset + width >= MAX_OFFSET.
110         (set_position_unneeded, set_all_positions_unneeded,
111         any_positions_needed_p, all_positions_needed_p): New static inline
112         functions.
113         (record_store): Handle BLKmode stores of CONST_INT, if
114         MEM_SIZE is set on the MEM.  Use the new positions_needed
115         accessor inlines.
116         (replace_read): Handle reads from BLKmode CONST_INT stores.
117         (check_mem_read_rtx): Use all_positions_needed_p function.
118         (dse_step1): Free large positions_needed bitmaps and clear is_large.
119
120         * dse.c (struct store_info): Change begin and end types to
121         HOST_WIDE_INT.
122
123         * dse.c (record_store): Fix check for unused store.
124
125         * expr.c (block_clear_fn): No longer static.
126         * expr.h (block_clear_fn): Declare.
127         * dse.c (scan_insn): Memset and bzero can just read their arguments.
128
129         * config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
130         argument.  If ORIG_VALUE is const0_rtx and COUNT is constant,
131         set MEM_SIZE on DESTMEM.
132         (ix86_expand_setmem): Adjust callers.
133
134         PR target/38488
135         * expr.h (get_mem_align_offset): New prototype.
136         * emit-rtl.c (get_mem_align_offset): New function.
137         * config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE
138         correctly.
139         (expand_constant_movmem_prologue, expand_constant_setmem_prologue):
140         New functions.
141         (ix86_expand_movmem): Optimize if COUNT_EXP
142         is constant, desired_align > align and dst & (desired_align - 1)
143         is computable at compile time.
144         (ix86_expand_setmem): Likewise.
145
146         * builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet
147         resolved SAVE_EXPR or POINTER_PLUS_EXPR.
148
149 2008-12-22  Uros Bizjak  <ubizjak@gmail.com>
150
151         * config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro.
152
153         PR target/34571
154         * config/alpha/predicates.md (symbolic_operand): Return 1 for a
155         label_ref with an offset.
156
157 2008-12-21  Andrew Pinski  <pinskia@gmail.com>
158
159         PR target/38300
160         * configure: Regenerate.
161
162 2008-12-21  Richard Sandiford  <rdsandiford@googlemail.com>
163
164         * config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand,
165         changing operand 1 to a pmode_register_operand.
166         (mips_lhx, mips_lwx): Likewise.
167         (mips_lbux_<mode>, mips_lhx_<mode>, mips_lwx_<mode>): New patterns.
168         * config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of
169         the value from the argument expression.
170
171 2008-12-21  Jan Hubicka  <jh@suse.cz>
172             Kai Tietz <kai.tietz@onevision.com>
173
174         * i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant.
175         (call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv,
176         call_value_1_rex64_ms_sysv): New patterns.
177         * i386.c (function_arg_ms_64): Pass magical value of -2 as callarg.
178         (ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls.
179
180 2008-12-21  Uros Bizjak  <ubizjak@gmail.com>
181
182         * config/alpha/alpha.c (alpha_pad_noreturn): New static function.
183         (alpha_reorg): Call alpha_pad_noreturn.
184
185 2008-12-21  Denis Chertykov  <denisc@overta.ru>
186
187         * config/avr/avr.md ("andsi3"): Fix wrong cc attribute.
188
189 2008-12-20  Eric Botcazou  <ebotcazou@adacore.com>
190
191         PR target/37610
192         * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no'
193         if readelf is nowhere to be found.
194         * configure: Regenerate.
195
196 2008-12-19  Andrew Haley  <aph@redhat.com>
197
198         * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c:
199         Fix comments.
200
201 2008-12-19  Richard Earnshaw  <rearnsha@arm.com>
202
203         PR target/38548
204         * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3.
205         * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction.
206
207 2008-12-19  Richard Earnshaw  <rearnsha@arm.com>
208
209         PR bootstrap/38578
210         * arm.c (load_multiple_sequence): Initialize ORDER array.
211         (store_multiple_sequence): Likewise.
212         (output_move_double): Make reg0 unsigned.
213         (arm_output_epilogue): Make amount unsigned.
214         (arm_expand_prologue): Move declaration of dwarf before block
215         statements.
216
217 2008-12-19  Steve Ellcey  <sje@cup.hp.com>
218
219         * df-scan.c (df_hard_reg_init): Move declaration of i.
220
221 2008-12-19  Jakub Jelinek  <jakub@redhat.com>
222
223         PR bootstrap/37739
224         * config.host: For powerpc*-*-linux* host with 32-bit GCC,
225         use rs6000/x-linux-relax snippet if ld is new enough,
226         otherwise use rs6000/x-linux-O1.
227         * config/rs6000/x-linux-relax: New file.
228         * config/x-cflags-O1: New file.
229
230 2008-12-18  Joseph Myers  <joseph@codesourcery.com>
231
232         * config/rs6000/rs6000.c (rs6000_generate_compare): Condition
233         choice of e500 comparison instructions on flag_finite_math_only &&
234         !flag_trapping_math, not flag_unsafe_math_optimizations.
235         * config/rs6000/rs6000.md (abstf2): Condition choice of e500
236         instructions on flag_finite_math_only && !flag_trapping_math, not
237         flag_unsafe_math_optimizations.
238         (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS.
239         * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr,
240         tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr,
241         cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr,
242         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
243         Condition choice of comparison instructions on
244         flag_finite_math_only && !flag_trapping_math, not
245         flag_unsafe_math_optimizations.
246
247 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
248
249         * configure: Regenerate.
250
251 2008-12-18  Jan Hubicka  <jh@suse.cz>
252             Kai Tietz <kai.tietz@onevision.com>
253
254         * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
255         (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
256         df_invalidated_by_call to invalidated_by_call_regset.
257         * df.h (df_invalidated_by_call): Remove.
258         * regclass.c (regs_invalidated_by_call_regset, persistent_obstack):
259         New variables.
260         (init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
261         (globalize_reg): Likewise.
262         * df-problems.c (df_rd_local_compute, df_lr_confluence_n,
263         df_byte_lr_alloc): Rename df_invalidated_by_call to
264         invalidated_by_call_regset.
265         * basic-block.h (regs_invalidated_by_call_regset): Declare.
266
267 2008-12-18  Jan Hubicka  <jh@suse.cz>
268             Kai Tietz <kai.tietz@onevision.com>
269
270         * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed.
271
272 2008-12-18  Jan Hubicka  <jh@suse.cz>
273             Kai Tietz <kai.tietz@onevision.com>
274
275         * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current
276         function ABI.
277         * i386.c (ix86_call_abi_override): Do not trigger target re-init and
278         do not try to modify call used regs.
279         (ix86_maybe_switch_abi): New function.
280         (TARGET_EXPAND_TO_RTL_HOOK): New macro.
281
282 2008-12-18  Kenneth Zadeck <zadeck@naturalbridge.com>
283
284         PR rtl-optimization/37922
285         * dse.c (bb_info): Added regs_live field.
286         (look_for_hardregs): New function.
287         (replace_read): Added regs_live parameter and code to check that
288         shift sequence does not clobber live hardregs.
289         (check_mem_read_rtx): Added parameter to replace_read.
290         (dse_step1): Added regs_live bitmap and initialize it.
291         (rest_of_handle_dse): Added DF_NOTES problem and earlier call to
292         df_analyze.
293         * df-problems.c Renamed to df_simulate_initialize_backwards.
294         (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
295         (df_simulate_artificial_refs_at_top): Renamed to
296         df_simulate_finalize_backwards.
297         (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
298         df_simulate_finalize_backwards): New functions.
299         * df.h (df_simulate_artificial_refs_at_end): Renamed to
300         df_simulate_initialize_backwards.
301         (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
302         (df_simulate_artificial_refs_at_top): Renamed to
303         df_simulate_finalize_backwards.
304         (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
305         df_simulate_finalize_backwards): New functions.
306         * ra-conflict.c (global_conflicts): Renamed
307         df_simulate_artificial_refs_at_end to
308         df_simulate_initialize_backwards.
309         * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
310         df_simulate_one_insn_backwards.
311         * ifcvt.c (dead_or_predicable): Renamed
312         df_simulate_artificial_refs_at_end to
313         df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
314         df_simulate_one_insn_backwards.
315         * recog.c (peephole2_optimize): Ditto.
316         * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.
317
318 2008-12-18  Jakub Jelinek  <jakub@redhat.com>
319
320         PR middle-end/38533
321         * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
322         (rewrite_expr_tree): Add moved argument, move stmts together if
323         needed.  Call remove_visited_stmt_chain.
324         (linearize_expr_tree): Don't move stmts here.
325         (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
326         Adjust rewrite_expr_tree caller.
327
328         PR middle-end/38505
329         * tree-ssa.c (useless_type_conversion_p_1): Return
330         false if inner_type is incomplete and outer_type is complete.
331
332 2008-12-17  Sebastian Pop  <sebastian.pop@amd.com>
333
334         * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL
335         dependences and the configure options.
336         (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib,
337         --with-ppl-lib, --with-cloog-incude, --with-ppl-include.
338
339 2008-12-17  H.J. Lu  <hongjiu.lu@intel.com>
340
341         PR middle-end/38556
342         * calls.c (expand_call): Check outgoing_reg_parm_stack_space
343         only if REG_PARM_STACK_SPACE is defined.
344
345 2008-12-17  Jan Hubicka  <jh@suse.cz>
346             Kai Tietz <kai.tietz@onevision.com>
347
348         * calls.c (expand_call): Do not sibcall if
349         outgoing_reg_parm_stack_space does not match.
350
351 2008-12-16  Anatoly Sokolov  <aesok@post.ru>
352
353         * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
354         atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
355         devices.
356         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
357         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
358
359 2008-12-16  Hariharan Sandanagobalane <hariharan@picochip.com>
360
361         PR target/38842
362         * config/picochip/picochip.opt (mae): Squeezed the comments onto one
363         line.
364
365 2008-12-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
366
367         * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
368         supports hidden.
369         * configure: Regenerate.
370
371 2008-12-16  Richard Earnshaw  <rearnsha@arm.com>
372
373         PR target/37436
374         * arm.c (arm_legitimate_index): Only accept addresses that are in
375         canonical form.
376         * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
377         * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
378         for operand1.
379         (extendqisi2): Likewise.
380         (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
381         predicate for operand1.
382         
383 2008-12-15  Adam Nemet  <anemet@caviumnetworks.com>
384
385         * config/mips/mips.c (mips_output_conditional_branch): Assert that
386         openrands[1] is a CODE_LABEL.
387
388 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
389
390         * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
391         the result of mips_prepare_builtin_target.
392
393 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
394
395         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
396         if TARGET_ABICALLS is true.
397
398 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
399
400         * config/mips/mips.md (move_doubleword_fpr<mode>): Use
401         TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
402
403 2008-12-15  Hariharan Sandanagobalane <hariharan@picochip.com>
404
405         * config/picochip/picochip.c (picochip_override_options): Disable CFI
406         asm and change the signature of brev and byteSwap functions to use
407         unsigned values.
408         * config/picochip/picochip.md (commsTestPort): This is a complex
409         instruction and should not be vliwed. Don't set insn type.
410
411 2008-12-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
412         * config/s390/s390.c (s390_swap_cmp): New function.
413         (s390_non_addr_reg_read_p): New function.
414         (s390_z10_optimize_cmp): New function.
415         (s390_reorg): Added call to s390_optimize_cmp.
416         * config/s390/s390.md (nop1): New insn.
417
418 2008-12-12  Rainer Emrich  <r.emrich@de.tecosim.com>
419
420         PR bootstrap/38383
421         * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
422         for the milli.a library.
423
424 2008-12-12  Andrew Pinski  <andrew_pinskia@playstation.sony.com>
425             Peter Bergner <bergner@vnet.ibm.com>
426
427         PR target/24779
428         * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
429         TOC into the call pattern.
430         (call_indirect_aix64): Likewise.
431         (call_value_indirect_aix32): Likewise.
432         (call_value_indirect_aix64): Likewise.
433         (call_indirect_nonlocal_aix32_internal): New insn and split patterns
434         to split off the load of the TOC.
435         (call_indirect_nonlocal_aix32): Enable only after reload.
436         (call_indirect_nonlocal_aix64_internal): New insn and split patterns
437         to split off the load of the TOC.
438         (call_indirect_nonlocal_aix64): Enable only after reload.
439         (call_value_indirect_nonlocal_aix32_internal): New insn and split
440         patterns to split off the load of the TOC.
441         (call_value_indirect_nonlocal_aix32): Enable only after reload.
442         (call_value_indirect_nonlocal_aix64_internal): New insn and split
443         patterns to split off the load of the TOC.
444         (call_value_indirect_nonlocal_aix64): Enable only after reload.
445
446 2008-12-12  Andreas Schwab  <schwab@suse.de>
447
448         Revert:
449         2008-12-12  Andreas Schwab  <schwab@suse.de>
450         * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
451         a BARRIER insn.
452
453 2008-12-12  Zdenek Dvorak  <ook@ucw.cz>
454
455         PR tree-optimization/32044
456         * tree-scalar-evolution.h (expression_expensive_p): Declare.
457         * tree-scalar-evolution.c (expression_expensive_p): New function.
458         (scev_const_prop): Avoid introducing expensive expressions.
459         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
460
461 2008-12-12  Sebastian Pop  <sebastian.pop@amd.com>
462
463         PR middle-end/38409
464         * graphite.c (nb_reductions_in_loop): Use simple_iv.
465
466 2008-12-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
467
468         * config/i386/x86intrin.h: New header file to support all x86
469         intrinsics
470         * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
471
472 2008-12-12  H.J. Lu  <hongjiu.lu@intel.com>
473
474         PR target/38402
475         * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
476         constraints for x86.
477
478 2008-12-12  Andreas Schwab  <schwab@suse.de>
479
480         * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
481         a BARRIER insn.
482
483 2008-12-12  Uros Bizjak  <ubizjak@gmail.com>
484
485         * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
486         Use Pmode for scratch reg.
487         (*mb_internal): Use (match_dup 0) for unspec operand.
488
489 2008-12-12  Alexandre Oliva  <aoliva@redhat.com>
490
491         * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
492         floor_log2 of zero.  Negate widened zero.
493
494 2008-12-12  Ben Elliston  <bje@au.ibm.com>
495
496         * config/fp-bit.c (nan): Rename from this ...
497         (makenan): ... to this.
498
499 2008-12-11  Adam Nemet  <anemet@caviumnetworks.com>
500
501         * config/mips/mips.md (*branch_bit<bbv><mode>,
502         *branch_bit<bbv><mode>_inverted): Renumber operands so that the
503         label becomes operands[1].
504
505 2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>
506
507         PR tree-optimization/38446
508         * graphite.c (register_bb_in_sese): New.
509         (bb_in_sese_p): Check if bb belongs to sese region by explicitly
510         looking at the bbs in the region.
511         * graphite.h (sese): Add region_basic_blocks pointer set to
512         structure and initialize at the time of defining new scop.
513
514 2008-12-11  Tobias Grosser  <grosser@fim.uni-passau.de>
515
516         * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
517         (find_params_in_bb): Do not free data refs.
518         (free_graphite_bb): Add FIXME on disabled free_data_refs.
519
520 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
521
522         * graphite.c (struct ivtype_map_elt): New.
523         (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
524         new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
525         gcc_type_for_cloog_iv): New.
526         (loop_iv_stack_patch_for_consts): Use the type of the induction
527         variable from the original loop, except for the automatically
528         generated loops, i.e., in the case of a strip-mined loop, in
529         which case there is no original loop: in that case just use
530         integer_type_node.
531         (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
532         (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
533         (clast_name_to_gcc): Accept params to be NULL.
534         (clast_to_gcc_expression): Take an extra parameter for the type.
535         Convert to that type all the expressions built by this function.
536         (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
537         (graphite_translate_clast_equation): Compute the type of the
538         clast_equation before translating its LHS and RHS.
539         (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
540         (graphite_create_new_loop): Compute the type of the induction
541         variable before translating the lower and upper bounds and before
542         creating the induction variable.
543         (rename_variables_from_edge, rename_phis_end_scop): New.
544         (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
545         (sese_add_exit_phis_edge): Do not use integer_zero_node.
546         (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
547         compute_cloog_iv_types): New.
548         (gloog): Call compute_cloog_iv_types before starting the
549         translation of the clast.
550
551         * graphite.h (struct graphite_bb): New field cloog_iv_types.
552         (GBB_CLOOG_IV_TYPES): New.
553         (debug_ivtype_map): Declared.
554         (oldiv_for_loop): New.
555
556 2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>
557
558         PR middle-end/38459
559         * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
560         (param_index): Assert if parameter is not know after parameter
561         detection.
562         (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
563         (find_scop_parameters): Mark, that we have finished parameter
564         detection.
565         (graphite_transform_loops): Move condition detection before parameter
566         detection.
567         * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
568
569 2008-12-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
570
571         PR testsuite/35677
572         * emutls.c (__emutls_get_address): Make sure offset is really zero
573         before initializing the object's offset.
574
575 2008-12-11  Jakub Jelinek  <jakub@redhat.com>
576
577         PR c++/38253
578         * gimplify.c (gimplify_init_constructor): Don't force constructor
579         into memory if there is just one nonzero element.
580
581 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
582
583         Fix testsuite/gfortran.dg/graphite/id-4.f90.
584         * graphite.c (scan_tree_for_params): Do not compute the multiplicand
585         when not needed.
586
587 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
588
589         * graphite.c (build_scops_1): Initialize open_scop.exit
590         and sinfo.last.
591
592 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
593             Jan Sjodin  <jan.sjodin@amd.com>
594             Harsha Jagasia  <harsha.jagasia@amd.com>
595
596         PR middle-end/37852
597         PR middle-end/37883
598         PR middle-end/37928
599         PR middle-end/37980
600         PR middle-end/38038
601         PR middle-end/38039
602         PR middle-end/38073
603         PR middle-end/38083
604         PR middle-end/38125
605
606         * tree-phinodes.c (remove_phi_nodes): New, extracted from...
607         * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
608         ... here.
609         * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
610         * Makefile.in (graphite.o): Depend on value-prof.h.
611         (graphite.o-warn): Removed -Wno-error.
612         * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
613         to be a NULL pointer.  Call update_stmt.  Return the newly created
614         cannonical induction variable.
615
616         * graphite.h (debug_rename_map): Declared.  Fix some comments.
617
618         * graphite.c: Reimplement the code generation from graphite to gimple.
619         Include value-prof.h.
620         (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
621         (get_old_iv_from_ssa_name): Removed.
622         (graphite_stmt_p): New.
623         (new_graphite_bb): Test for useful statements before building a
624         graphite statement for the basic block.
625         (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
626         in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
627         (recompute_all_dominators, graphite_verify,
628         nb_reductions_in_loop, graphite_loop_normal_form): New.
629         (scop_record_loop): Call graphite_loop_normal_form.
630         (build_scop_loop_nests): Iterate over all the blocks of the
631         function instead of relying on the incomplete information from
632         SCOP_BBS.  Return the success of the operation.
633         (find_params_in_bb): Use the data from GBB_DATA_REFS.
634         (add_bb_domains): Removed.
635         (build_loop_iteration_domains): Don't call add_bb_domains.
636         Add the iteration domain only to the basic blocks that have been
637         translated to graphite.
638         (build_scop_conditions_1): Add constraints only if the basic
639         block have been translated to graphite.
640         (build_scop_data_accesses): Completely disabled until data
641         dependence is correctly implemented.
642         (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
643         (remove_all_edges_1, remove_all_edges): Removed.
644         (get_new_name_from_old_name): New.
645         (graphite_rename_variables_in_stmt): Renamed.
646         rename_variables_in_stmt.  Call get_new_name_from_old_name.
647         Use replace_exp and update_stmt.
648         (is_old_iv): Renamed is_iv.
649         (expand_scalar_variables_stmt): Extra parameter for renaming map.
650         Use replace_exp and update_stmt.
651         (expand_scalar_variables_expr): Same.  Use the map to get the
652         new names for the renaming of induction variables and for the
653         renaming of variables after a basic block has been copied.
654         (expand_scalar_variables): Same.
655         (graphite_rename_variables): Renamed rename_variables.
656         (move_phi_nodes): Removed.
657         (get_false_edge_from_guard_bb): New.
658         (build_iv_mapping): Do not insert the induction variable of a
659         loop in the renaming iv map if the basic block does not belong
660         to that loop.
661         (register_old_new_names, graphite_copy_stmts_from_block,
662         copy_bb_and_scalar_dependences): New.
663         (translate_clast): Heavily reimplemented: copy basic blocks,
664         do not move them.  Finally, in call cleanup_tree_cfg in gloog.
665         At each translation step call graphite_verify ensuring the
666         consistency of the SSA, loops and dominators information.
667         (collect_virtual_phis, find_vdef_for_var_in_bb,
668         find_vdef_for_var_1, find_vdef_for_var,
669         patch_phis_for_virtual_defs): Removed huge hack.
670         (mark_old_loops, remove_dead_loops, skip_phi_defs,
671         collect_scop_exit_phi_args, patch_scop_exit_phi_args,
672         gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
673         (remove_sese_region, ifsese, if_region_entry, if_region_exit,
674         if_region_get_condition_block, if_region_set_false_region,
675         create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
676         sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
677         sese_add_exit_phis_edge, sese_add_exit_phis_var,
678         rewrite_into_sese_closed_ssa): New.
679         (gloog): Remove dead code.  Early return if code cannot be
680         generated.  Call cleanup_tree_cfg once the scop has been code
681         generated.
682         (graphite_trans_scop_block, graphite_trans_loop_block): Do not
683         block loops with less than two loops.
684         (graphite_apply_transformations): Remove the call to
685         scop_remove_ignoreable_gbbs.
686         (limit_scops): When build_scop_loop_nests fails, continue on next
687         scop.  Fix open_scop.entry.
688         (graphite_transform_loops): Call recompute_all_dominators: force the
689         recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
690         Call initialize_original_copy_tables and free_original_copy_tables
691         to be able to copy basic blocks during code generation.
692         When build_scop_loop_nests fails, continue on next scop.
693         (value_clast): New union.
694         (clast_to_gcc_expression): Fix type cast warning.
695
696 2008-12-10  Richard Guenther  <rguenther@suse.de>
697
698         PR tree-optimization/36792
699         * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
700         tcc_binary.
701
702 2008-12-10  Daniel Berlin  <dberlin@dberlin.org>
703
704         PR tree-optimization/36792
705         * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
706
707 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
708
709         PR target/37033
710         * dwarf2out.c (saved_do_cfi_asm): New.
711         (dwarf2out_do_frame): Take it into account.
712         (dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
713
714 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
715
716         PR middle-end/38271
717         * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
718         variables initialized from SRAed bit fields.
719
720 2008-12-10  Martin Guy <martinwguy@yahoo.it>
721
722         PR target/37668
723         * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
724         result will be in an FPU register.
725
726 2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>
727
728         PR target/37170
729         PR target/38448
730         * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
731         on the associated SYMBOL_REF_DECL node, if any.
732
733 2008-12-09 David Daney <ddaney@caviumnetworks.com>
734
735         * config/mips/sync.md (sync_<optab>_12): Replace
736         MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
737         (sync_old_<optab>_12): Remove third paramater to
738         MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
739         with MIPS_SYNC_OLD_OP_12_AND.
740         (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
741         with MIPS_SYNC_NEW_OP_12_AND.
742         (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
743         MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
744         (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
745         macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
746         MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
747         (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
748         MIPS_SYNC_NEW_OP_12_XOR.
749         * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
750         MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
751         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
752         MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
753         MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
754         to implement new __sync_nand semantics.
755         (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
756         remove third parameter.
757         (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
758         MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
759         (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
760         (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
761         (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
762         (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
763         (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
764         (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
765
766 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
767
768         * graphite.c (graphite_transform_loops): Always call find_transform ()
769         in ENABLE_CHECKING.  So we test these code paths, even if we do not
770         generate code.
771
772 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
773
774         * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
775
776 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
777
778         PR middle-end/38454
779         * function.h (struct function): Add always_inline_functions_inlined.
780         * ipa-inline.c (cgraph_early_inlining): Set it to true.
781         * tree-optimize.c (execute_fixup_cfg): Likewise.
782         * builtins.c (avoid_folding_inline_builtin): New function.
783         (fold_call_expr): Don't optimize always_inline builtins before
784         inlining.
785         (fold_call_stmt): Likewise.
786         (fold_builtin_call_array): Likewise.  Don't call
787         fold_builtin_varargs for BUILT_IN_MD builtins.
788
789         PR tree-optimization/37416
790         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
791
792 2008-12-09  Janis Johnson  <janis187@us.ibm.com>
793
794         * doc/sourcebuild.texi (Test Directives): Fix formatting.
795
796 2008-12-09  Vladimir Makarov  <vmakarov@redhat.com>
797
798         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
799
800         * doc/invoke.texi (-fira-region): Describe new option.
801         (-fira-algorithm): Change the values.
802
803         * ira-conflicts.c (build_conflict_bit_table,
804         build_allocno_conflicts): Use ira_reg_classes_intersect_p.
805         (ira_build_conflicts): Use flag flag_ira_region instead of
806         flag_ira_algorithm.  Prohibit usage of callee-saved likely spilled
807         base registers for allocnos crossing calls.
808
809         * flags.h (enum ira_algorithm): Redefine.
810         (enum ira_region): New.
811         (flag_ira_region): New.
812
813         * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
814         instead of flag_ira_algorithm.
815
816         * toplev.c (flag_ira_algorithm): Change the initial value.
817         (flag_ira_region): New.
818
819         * ira-int.h (ira_reg_classes_intersect_p,
820         ira_reg_class_super_classes): New.
821
822         * ira-color.c (update_copy_costs): Use
823         ira_reg_classes_intersect_p.  Use right class to find hard reg index.
824         (update_conflict_hard_regno_costs): Ditto.  Add a new parameter.
825         (assign_hard_reg): Ditto.  Pass additional argument to
826         update_conflict_hard_regno_costs.  Do not uncoalesce for priority
827         coloring.
828         (allocno_priorities, setup_allocno_priorities,
829         allocno_priority_compare_func): Move before color_allocnos.
830         (color_allocnos): Add priority coloring.  Use flag flag_ira_region
831         instead of flag_ira_algorithm.
832         (move_spill_restore): Check classes of the same reg allocno from
833         different regions.
834         (update_curr_costs): Use ira_reg_classes_intersect_p.
835         (ira_reassign_conflict_allocnos): Ditto.
836
837         * opts.c (decode_options): Always set up flag_ira.  Set up
838         flag_ira_algorithm.  Warn CB can not be used for architecture.
839         (common_handle_option): Modify code for -fira-algorithm.  Add code
840         to process -fira-region.
841
842         * ira-lives.c (update_allocno_pressure_excess_length): Process
843         superclasses too.
844         (set_allocno_live, clear_allocno_live, mark_reg_live,
845         mark_reg_dead, process_bb_node_lives): Ditto.
846
847         * ira-emit.c (ira_emit): Fix insn codes.
848
849         * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
850         instead of flag_ira_algorithm.
851         (allocno_range_compare_func): Ignore classes for priority coloring.
852         (setup_min_max_conflict_allocno_ids): Ditto.
853         (ira_flattening): Use ira_reg_classes_intersect_p.
854
855         * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
856
857         * common.opt (fira-algorithm): Modify.
858         (fira-region): New.
859
860         * ira.c (setup_class_hard_regs): Initialize.
861         (setup_cover_and_important_classes): Modify code setting class
862         related info for priority coloring.
863         (setup_class_translate): Ditto.
864         (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
865         (setup_reg_class_intersect_union): Rename to
866         setup_reg_class_relations.  Add code for setting up new variables.
867         (find_reg_class_closure): Do not check targetm.ira_cover_classes.
868         (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
869
870         * ira-costs.c (common_classes): New.
871         (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
872         (find_allocno_class_costs): Ditto.  Use common_classes.  Translate
873         alt_class.
874         (ira_costs): Allocate/deallocate common_classes.
875
876         * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
877         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
878         R02A_REGS.
879
880         * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
881         smallest_mode_for_size.
882
883 2008-12-10  Ben Elliston  <bje@au.ibm.com>
884
885         * config/rs6000/linux-unwind.h (get_regs): Constify casts.
886
887 2008-12-09  Jan Hubicka  <jh@suse.cz>
888
889         * predict.c (estimate_bb_frequencies): Fix test if profile is present.
890
891 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
892
893         PR tree-optimization/35468
894         * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
895         string on LHS.
896
897 2008-12-09  Richard Guenther  <rguenther@suse.de>
898
899         PR tree-optimization/38445
900         * tree-ssa-structalias.c (emit_pointer_definition): Only visit
901         names once.
902         (emit_alias_warning): Adjust.
903
904 2008-12-09  Andrew Haley  <aph@redhat.com>
905
906         * fixed-value.c (do_fixed_add): Add comment.
907         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
908         * builtins.c (fold_builtin_sqrt): Likewise.
909
910 2008-12-09  Kai Tietz  <kai.tietz@onevision.com>
911
912         PR/38366
913         * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
914         case.
915         * calls.c (nitialize_argument_information): Add fntype argument
916         and use it for calls.promote_function_args.
917         (expand_call): Pass fntype to aggregate_value_p if no fndecl
918         available and pass additional fntype to
919         initialize_argument_information.
920         * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
921         to get function abi type.
922         (init_cumulative_args): Use for abi kind detection fntype, when no
923         fndecl is available.
924
925 2008-12-09  Andreas Krebbel  <krebbel1@de.ibm.com>
926
927         * config/s390/s390.md (movti, movdi_64, movdi_31,
928         *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
929         *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
930         Q->Q alternative.
931         (Integer->BLKmode splitter): Removed.
932
933 2008-12-08  Uros Bizjak  <ubizjak@gmail.com>
934
935         * config/alpha/alpha.c (alpha_set_memflags): Process memory
936         references in full insn sequence.
937
938 2008-12-09  Jason Merrill  <jason@redhat.com>
939
940         * gimplify.c (gimplify_init_constructor): Revert to using < rather
941         than <= for sparseness test.
942
943         PR c++/38410
944         * gimplify.c (gimplify_init_constructor): Don't write out a static
945         copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
946         initializers.
947
948 2008-12-09 Tobias Grosser  <grosser@fim.uni-passau.de>
949
950         PR middle-end/38084
951         Fix testsuite/gfortran.dg/graphite/id-3.f90.
952         * graphite.c (scopdet_basic_block_info): Fix bug that found some
953         regions more than once.
954
955 2008-12-09  Ben Elliston  <bje@au.ibm.com>
956
957         * emutls.c (__emutls_get_address): Prototype.
958         (__emutls_register_common): Likewise.
959
960         * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
961
962 2008-12-09  Ben Elliston  <bje@au.ibm.com>
963
964         * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
965
966 2008-12-08  Steve Ellcey  <sje@cup.hp.com>
967
968         * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
969         (nonlocal_goto_receiver): New instruction.
970
971 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
972
973         PR c/35443
974         * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
975
976         PR c/35442
977         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
978         VIEW_CONVERT_EXPR the same as CASE_CONVERT.
979
980 2008-12-08  Richard Henderson  <rth@redhat.com>
981
982         PR 38240
983         * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
984         (SET_TYPE_MODE): New.
985         * c-decl.c (parser_xref_tag): Use it.
986         (finish_enum): Likewise.
987         * tree.c (build_pointer_type_for_mode): Likewise.
988         (build_reference_type_for_mode, build_index_type): Likewise.
989         (build_range_type, make_vector_type): Likewise.
990         (build_common_tree_nodes_2): Likewise.
991         * stor-layout.c (compute_record_mode): Likewise.
992         (finalize_type_size, layout_type, make_fract_type): Likewise.
993         (make_accum_type, initialize_sizetypes): Likewise.
994         (vector_type_mode): New.
995         * function.c (allocate_struct_function): Call
996         invoke_set_current_function_hook before querying anything else.
997
998         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
999
1000 2008-12-08  Luis Machado  <luisgpm@br.ibm.com>
1001
1002         * alias.c (find_base_term): Synch LO_SUM handling with what
1003         find_base_value does.
1004
1005 2008-12-08  Andrew Haley  <aph@redhat.com>
1006             Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
1007
1008         * gimple.h (gimple_build_try): Fix declaration.
1009
1010         * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
1011         * fixed-value.c (do_fixed_add): Likewise.
1012         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
1013
1014 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
1015
1016         PR middle-end/36802
1017         * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
1018         on parallel and task contexts.
1019
1020 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1021
1022         * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
1023
1024 2008-12-07  Richard Guenther  <rguenther@suse.de>
1025
1026         PR tree-optimization/38405
1027         * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
1028         not sign-extend truth values.
1029
1030 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1031
1032         * tree-sra.c (scalarize_use): Create another temporary with the proper
1033         type for signed types in the use_all && !is_output bitfield case.
1034
1035 2008-12-06  Steven Bosscher  <steven@gcc.gnu.org>
1036
1037         PR rtl-optimization/36365
1038         * df-core.c (df_worklist_dataflow_overeager): Remove.
1039         (df_worklist_dataflow): Don't call it, use double-queue only.
1040         * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
1041
1042 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
1043
1044         PR middle-end/38428
1045         * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
1046         gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
1047
1048 2008-12-07  Ben Elliston  <bje@au.ibm.com>
1049
1050         * gthr-single.h (__gthread_once): Adjust prototype to match all
1051         other gthreads models.
1052
1053 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
1054
1055         * config/i386/i386.c (override_options): Use CPU_AMDFAM10
1056         instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
1057
1058         PR middle-end/38422
1059         * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
1060         operands to mult_type if it isn't narrower than op0's type.
1061
1062 2008-12-06  Jan Hubicka  <jh@suse.cz>
1063             Jakub Jelinek <jakub@redhat.com>
1064
1065         PR tree-optimization/38074
1066         * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
1067         entry frequency.
1068         * predict.c (combine_predictions_for_bb): Ignore predictor predicting
1069         in both dirrection for first match heuristics.
1070         (tree_bb_level_predictions): Disable noreturn heuristic when there
1071         is no returning path.
1072
1073 2008-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1074
1075         PR rtl-optimization/38272
1076         * reload1.c (choose_reload_regs): Keep reload_spill_index correct
1077         in all cases.
1078
1079 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1080
1081         PR c++/35336
1082         * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
1083         (pp_c_expression): Likewise.
1084
1085 2008-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
1086
1087         PR c/38416
1088         * c-parser.c (struct c_token): Make pragma_kind 8 bits.
1089
1090 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1091
1092         PR middle-end/37248
1093         * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
1094         arguments to HOST_WIDE_INT.  If type has different signedness
1095         than unsignedp or different precision from bitsize, create
1096         the right type for BIT_FIELD_REF and cast to type.
1097         (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
1098
1099         Revert:
1100         2008-03-05  Richard Guenther  <rguenther@suse.de>
1101         PR c++/35336
1102         * fold-const.c (fold_truthop): Remove code generating
1103         BIT_FIELD_REFs of structure bases.
1104         (fold_binary): Likewise.
1105         (make_bit_field_ref): Remove.
1106         (optimize_bit_field_compare): Remove.
1107         (all_ones_mask_p): Remove.
1108
1109 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1110
1111         * tree-sra.c (sra_explode_bitfield_assignment): Always
1112         call unsigned_type_for, if the precision is higher than
1113         needed, call build_nonstandard_integer_type.
1114
1115         PR debug/38367
1116         * function.c (assign_parm_find_stack_rtl): If promoted_mode
1117         is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
1118         big endian.
1119
1120         PR middle-end/38338
1121         * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
1122         only if internal_arg_pointer is a non-virtual pseudo.
1123
1124 2008-12-05  Joseph Myers  <joseph@codesourcery.com>
1125
1126         * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
1127         TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
1128         * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
1129
1130 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1131
1132         PR tree-optimization/37716
1133         * gimplify.c (gimplify_expr): Allow COND_EXPR if
1134         gimplify_ctxp->allow_rhs_cond_expr.
1135
1136 2008-12-05  Uros Bizjak  <ubizjak@gmail.com>
1137
1138         * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
1139         VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
1140
1141         (alpha_emit_conditional_branch): Do not generate direct branch
1142         for UNORDERED comparisons.
1143
1144 2008-12-05  Andreas Schwab  <schwab@suse.de>
1145
1146         * config/rs6000/linux-unwind.h (frob_update_context): Check for
1147         NULL lr.
1148
1149 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1150
1151         PR c/38408
1152         * fold-const.c (fold_checksum_tree): Change buf type to union
1153         tree_node.
1154
1155 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
1156
1157         PR bootstrap/38262
1158         * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
1159         (BACKENDLIBS): New.
1160         (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
1161
1162 2008-12-05  Ben Elliston  <bje@au.ibm.com>
1163
1164         * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
1165         comma_loc.
1166         (c_parser_initelt): Initialise des_loc and ellipsis_loc.
1167
1168 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
1169             Gary Funck  <gary@intrepid.com>
1170
1171         * cse.c (lookup_as_function): Delete mode frobbing code.
1172         (equiv_constant): Re-implement it there for SUBREGs.
1173
1174 2008-12-04  Richard Guenther  <rguenther@suse.de>
1175
1176         PR middle-end/36509
1177         * Makefile.in (tree-ssa-alias-warnings.o): Remove.
1178         (tree-ssa-structalias.o): Remove errors.h dependency.
1179         (tree-ssa-reassoc.o): Likewise.
1180         * tree-ssa-reassoc.c: Do not include errors.h.
1181         * tree-ssa-alias-warnings.c: Remove.
1182         * tree-ssa-alias.c (compute_may_aliases): Remove call to
1183         strict_aliasing_warning_backend.
1184         * tree-ssa-structalias.c (emit_pointer_definition): New function.
1185         (emit_alias_warning): Likewise.
1186         (set_uids_in_ptset): Warn for clear cases of type-punning.
1187         * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
1188         on INDIRECT_REFs.
1189
1190 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
1191
1192         * cse.c (equiv_constant): Fix pasto.
1193
1194 2008-12-04  Nick Clifton  <nickc@redhat.com>
1195
1196         * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
1197         * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
1198         formatting of quotes.
1199
1200 2008-12-04  Jakub Jelinek  <jakub@redhat.com>
1201
1202         PR middle-end/38371
1203         * fold-const.c (fold_checksum_tree): Allow modification of
1204         TYPE_NEXT_VARIANT.
1205
1206 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR middle-end/38360
1209         * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
1210         have the right number of arguments.
1211
1212 2008-12-03  Richard Guenther  <rguenther@suse.de>
1213
1214         PR middle-end/36326
1215         * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
1216         non-BLKmode types.
1217
1218 2008-12-03  Tomas Bily  <tbily@suse.cz>
1219
1220         PR middle-end/38250
1221         * tree-loop-distribution.c (build_size_arg): New function.
1222         (generate_memset_zero): Checks if dr_analyze_innermost succeed.
1223         Reorganized generating of stmts.
1224         * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
1225         * tree-data-ref.c (dr_analyze_innermost): Returns bool.
1226         Indicate if analysis succeed.
1227         * tree-data-ref.h (dr_analyze_innermost): Returns bool.
1228         * tree-predcom.c (valid_initializer_p, find_looparound_phi):
1229         Uses new definition of dr_analyze_innermost.
1230
1231 2008-12-03  Ben Elliston  <bje@au.ibm.com>
1232
1233         * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
1234
1235 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
1236
1237         PR tree-optimization/37716
1238         * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
1239         all the needed operations as trees and gimplify_assign it to dst.
1240
1241         PR target/37610
1242         * configure.ac (gcc_cv_readelf): Look for readelf.
1243         (gcc_cv_as_cfi_advance_working): Check for working
1244         cfi advances with code alignment factor > 1.
1245         (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
1246         don't work properly.
1247         * configure: Regenerated.
1248
1249 2008-12-03  Eric Botcazou  <ebotcazou@adacore.com>
1250             Jakub Jelinek  <jakub@redhat.com>
1251             Andrew Pinski  <andrew_pinski@playstation.sony.com>
1252
1253         PR rtl-optimization/38281
1254         * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
1255         set it to NULL_RTX afterwards.
1256
1257         * emit-rtl.c (set_insn_deleted): Fix formatting.
1258
1259 2008-12-02  Richard Sandiford  <rdsandiford@googlemail.com>
1260
1261         * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
1262         error return value.
1263         * config/mips/mips.md (IMOVE32): New mode iterator.
1264         (movsi): Generalize with IMOVE32.
1265         (*movsi_internal): Likewise.
1266         (*mov<mode>_mips16): Likewise.
1267         (*lwxs): Likewise.
1268
1269 2008-12-02  Nathan Sidwell  <nathan@codesourcery.com>
1270             Maxim Kuvyrkov  <maxim@codesourcery.com>
1271
1272         * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
1273         PC-relative addressing when compiling for uclinux PIC.
1274         (__cmpdf_internal, __cmpsf_internal): Hide.
1275         (__cmpdf, __cmpsf): Use PIC call sequence.
1276
1277 2008-12-02  Andreas Tobler  <a.tobler@schweiz.org>
1278             Jack Howarth <howarth@bromo.med.uc.edu>
1279
1280         * config/i386/t-darwin64: Add m32 multilib support.
1281
1282 2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>
1283
1284         * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
1285
1286 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
1287
1288         PR middle-end/38343
1289         * builtins.c (fold_builtin_memory_op): Convert len to sizetype
1290         before using it in POINTER_PLUS_EXPR.
1291
1292 2008-12-02  Richard Guenther  <rguenther@suse.de>
1293
1294         PR tree-optimization/38359
1295         * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
1296         non-negative x.
1297
1298 2008-12-02  Martin Jambor  <mjambor@suse.cz>
1299
1300         PR middle-end/37861
1301         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
1302         for INDIRECT_REFs.
1303         (forward_propagate_addr_into_variable_array_index): Check that the
1304         offset is not computed from a MULT_EXPR, use is_gimple_assign rather
1305         than the gimple code directly.
1306
1307 2008-12-02  Ben Elliston  <bje@au.ibm.com>
1308
1309         * config/spu/float_disf.c (__floatdisf): Prototype.
1310         * config/spu/float_unsdisf.c (__float_undisf): Likewise.
1311         * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
1312         * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
1313
1314 2008-12-02  DJ Delorie  <dj@redhat.com>
1315
1316         * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
1317         (DWARF_CIE_DATA_ALIGNMENT): Define.
1318
1319         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
1320         Invert add/sub for INCOMING_FRAME_SP_OFFSET.
1321         (xstormy16_expand_prologue): Likewise.
1322         (xstormy16_expand_builtin_va_start): Likewise.
1323         (xstormy16_gimplify_va_arg_expr): Likewise.
1324
1325 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
1326
1327         PR middle-end/38343
1328         * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
1329         potentially returned from folding memcpy.
1330         (expand_builtin_stpcpy_args): Similarly for folding strcpy.
1331         (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
1332
1333 2008-12-02  Danny Smith  <dannysmith@users.sourceforge.net>
1334
1335         PR target/38054
1336         * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
1337         decoration of function RTL names here on Ada language.
1338
1339 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
1340
1341         PR rtl-optimization/38280
1342         * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
1343         ira_rebuild_regno_allocno_list): New functions.
1344         (regno_allocnos): New static variable.
1345         (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
1346         Call ira_rebuild_regno_allocno_list.
1347
1348 2008-12-01  David Daney  <ddaney@caviumnetworks.com>
1349             Adam Nemet  <anemet@caviumnetworks.com>
1350
1351         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
1352         LINUX_DRIVER_SELF_SPECS.
1353
1354 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
1355
1356         PR rtl-optimization/37514
1357         * reload1.c (reload_as_needed): Invalidate reg_last_reload
1358         from previous insns.
1359
1360 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
1361
1362         PR c++/38348
1363         * c-omp.c (c_finish_omp_for): Only transform pointer
1364         ++ or -- into MODIFY_EXPR if second argument is non-NULL.
1365
1366         PR rtl-optimization/38245
1367         * tree-vrp.c (abs_extent_range): New function.
1368         (extract_range_from_binary_expr): Compute range
1369         for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
1370         or includes zero or if vr1 is VR_RANGE and op0 has some
1371         other range.
1372
1373 2008-12-01  Uros Bizjak  <ubizjak@gmail.com>
1374
1375         PR middle-end/37908
1376         * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
1377         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1378         * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
1379         to (not:I48MODE (and:I48MODE (...))).
1380         (sync_old_nand<mode>): Ditto.
1381         (sync_new_nand<mode>): Ditto.
1382
1383 2008-12-01  Nick Clifton  <nickc@redhat.com>
1384
1385         * config/stormy16/stormy16.md (CARRY_REG): New constant.
1386         Replace uses of the "y" register class with direct references to
1387         the CARRY_REG register.
1388         * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
1389         register with clobbers of the carry register.
1390         (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
1391         (xstormy16_split_cbranch): Remove redundant carry parameter.
1392         (xstormy16_expand_arith): Likewise.
1393         * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
1394         (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1395         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1396         (CARRY_REGNUM): Define.
1397         * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
1398         Update prototype.
1399         (xstormy16_expand_arith): Likewise.
1400
1401 2008-12-01  Chen Liqin  <liqin.chen@sunplusct.com>
1402
1403         * config/score/score.h (IRA_COVER_CLASSES): Define.
1404
1405 2008-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1406
1407         PR target/38287
1408         * config/sparc/sparc.md (divsi3 expander): Remove constraints.
1409         (divsi3_sp32): Add new alternative with 'K' for operand #2.
1410         (cmp_sdiv_cc_set): Factor common string.
1411         (udivsi3_sp32): Add new alternative with 'K' for operand #2.
1412         Add TARGET_V9 case.
1413         (cmp_udiv_cc_set): Factor common string.
1414
1415 2008-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1416
1417         PR middle-end/38283
1418         * varasm.c (emutls_finish): Fix common registration.
1419
1420 2008-11-29  Jakub Jelinek  <jakub@redhat.com>
1421
1422         PR target/29987
1423         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1424
1425 2008-11-29  David Edelsohn  <edelsohn@gnu.org>
1426
1427         * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1428         operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
1429         (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1430         * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
1431         Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1432         Ignore sub-word case for now.
1433         (sync_nand<mode>_internal): Represent NAND in RTL.
1434         (sync_old_nand<mode): Same.
1435         (sync_old_name<mode>_internal): Same.
1436         (sync_new_nand<mode>): Same.
1437         (sync_new_nand<mode>_internal): Same.
1438         (sync_boolcshort_internal): Expect NAND.
1439
1440 2008-11-28  Richard Guenther  <rguenther@suse.de>
1441
1442         PR tree-optimization/37955
1443         PR tree-optimization/37742
1444         * tree-vect-transform.c (vectorizable_store): Remove assert for
1445         compatible aliases.
1446         (vectorizable_load): Likewise.
1447
1448 2008-11-27  Richard Guenther  <rguenther@suse.de>
1449
1450         * tree-ssa-structalias.c (intra_create_variable_infos): Make
1451         a constraint for the static chain parameter.
1452
1453 2008-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1454
1455         * config/bfin/bfin.opt (micplb): New option.
1456         * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1457         * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1458         ENABLE_WA_INDIRECT_CALLS): New macros.
1459         * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1460         all 54x CPUs.
1461         (indirect_call_p): New function.
1462         (workaround_speculation): Handle anomaly 05-00-0426 when
1463         ENABLE_WA_INDIRECT_CALLS is true.
1464         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1465         __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1466         * doc/invoke.texi (Blackfin Options): Document -micplb.
1467
1468 2008-11-26  DJ Delorie  <dj@redhat.com>
1469
1470         * config/m32c/mov.md ("extendhipsi2"): New.
1471
1472         * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1473
1474         * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1475         * config/m32c/mov.md (zero_extendqihi2): Likewise.
1476
1477 2008-11-26  Adam Nemet  <anemet@caviumnetworks.com>
1478
1479         * config/mips/mips.md (clear_hazard): Rename to
1480         clear_hazard_<mode>.  Use mode-specific addition.
1481         (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1482         or gen_clear_hazard_di depending on the size of Pmode.
1483
1484 2008-11-26  DJ Delorie  <dj@redhat.com>
1485
1486         * configure.ac: Test m32c-elf-gas for .loc.
1487         * configure: Likewise.
1488
1489 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1490
1491         PR testsuite/28870
1492         * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1493         dg-timeout-factor.
1494
1495 2008-11-26  Uros Bizjak  <ubizjak@gmail.com>
1496
1497         * config/i386/sync.md (memory_barrier_nosse): Disable also for
1498         TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
1499         (memory_barrier): Do not generate memory_barrier_nosse instruction
1500         for TARGET_64BIT.
1501         * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1502
1503 2008-11-26  Fredrik Unger  <fred@tree.se>
1504
1505         * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1506         function name from __floatundisf.
1507         * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1508         DFtype.
1509
1510 2008-11-25  Daniel Berlin  <dberlin@dberlin.org>
1511             Richard Guenther  <rguenther@suse.de>
1512
1513         PR tree-optimization/37869
1514         * tree-ssa-structalias.c (struct constraint_graph): Remove
1515         pt_used and number_incoming members.
1516         (build_pred_graph): Do not allocate them.
1517         (condense_visit): Do not use them.
1518         (label_visit): Likewise.
1519         (free_var_substitution_info): Do not free them.
1520
1521 2008-11-25  Vladimir Makarov  <vmakarov@redhat.com>
1522
1523         * doc/invoke.texi (ira-max-loops-num): Change semantics.
1524
1525         * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1526
1527         * ira-color.c (allocno_spill_priority): New function.
1528         (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1529         Print more info about the spilled allocno.
1530         (push_allocnos_to_stack): Use allocno_spill_priority.  Add more
1531         checks on bad spill.
1532
1533         * ira-build.c (loop_node_to_be_removed_p): Remove.
1534         (loop_compare_func, mark_loops_for_removal): New functions.
1535         (remove_uneccesary_loop_nodes_from_loop_t): Use member
1536         to_remove_p.
1537         (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1538
1539         * ira.c (ira): Don't change flag_ira_algorithm.
1540
1541         * params.def (ira-max-loops-num): Change the value.
1542
1543 2008-11-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
1544
1545         * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1546         Disable unsupported alternative for ColdFire,
1547         add new alternative that ColdFire can handle.
1548
1549 2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1550
1551         * regrename.c (merge_overlapping_regs): Add registers artificially
1552         defined at the top of the basic block to the set of live ones just
1553         before the first insn.
1554
1555 2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1556             Joey Ye  <joey.ye@intel.com>
1557
1558         PR middle-end/37843
1559         * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1560         false if we need to align the outgoing stack.
1561         (ix86_update_stack_boundary): Check parm_stack_boundary.
1562
1563 2008-11-25  Richard Guenther  <rguenther@suse.de>
1564
1565         PR middle-end/38151
1566         PR middle-end/38236
1567         * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1568         Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1569         in favor of dereferenced_ptrs.
1570         (init_alias_info): Adjust.
1571         (delete_alias_info): Likewise.
1572         (compute_flow_insensitive_aliasing): Properly
1573         include all aliased variables.
1574         (update_alias_info_1): Use dereferenced_ptrs.
1575         (setup_pointers_and_addressables): Likewise.
1576         (get_smt_for): Honor ref-all pointers and pointers with known alias
1577         set properly.
1578         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1579
1580 2008-11-25  Uros Bizjak  <ubizjak@gmail.com>
1581
1582         PR target/38254
1583         * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1584         (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1585
1586 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1587
1588         * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1589
1590 2008-11-24  Richard Sandiford  <rdsandiford@googlemail.com>
1591
1592         * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1593
1594 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1595
1596         PR target/35018
1597         * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1598         (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1599
1600 2008-11-24  Uros Bizjak  <ubizjak@gmail.com>
1601
1602         * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1603         UNSPECV_CMPXCHG_[12].
1604         * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1605         UNSPECV_CMPXCHG_[12].
1606
1607         PR target/36793
1608         * config/i386/sync.md (memory_barrier): New expander.
1609
1610 2008-11-24  Jakub Jelinek  <jakub@redhat.com>
1611
1612         PR middle-end/37135
1613         * dse.c (find_shift_sequence): Optimize extraction from a constant.
1614
1615 2008-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1616
1617         * pa.c (function_arg): Revert 2008-10-26 change.
1618
1619 2008-11-23  Helge Deller  <deller@gmx.de>
1620
1621         * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1622         (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1623         succeeded and lws_ret is not equal to oldval.
1624
1625 2008-11-23  Kaz Kojima  <kkojima@gcc.gnu.org>
1626
1627         * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1628
1629 2008-11-22  Andreas Schwab  <schwab@suse.de>
1630
1631         * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1632         -dA and -dP.
1633
1634 2008-11-22  Adam Nemet  <anemet@caviumnetworks.com>
1635
1636         * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1637         Use constant 1 as the operand.
1638         * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1639         Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1640         gen_rdhwr_synci_step_di depending on the size of Pmode.
1641
1642 2008-11-22  Uros Bizjak  <ubizjak@gmail.com>
1643
1644         PR target/38222
1645         * config/i386/i386.md (SWI248): New mode iterator.
1646         (SWI32): Remove mode iterator.
1647         (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1648         popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1649         iterator.  Generate popcnt mnemonic without mode extensions
1650         for Darwin x86 targets.
1651         (*popcount<mode>2_cmp): Ditto.
1652         (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1653         extensions for Darwin x86 targets.
1654
1655 2008-11-22  Eric Botcazou  <ebotcazou@adacore.com>
1656
1657         * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1658         only if HAVE_AS_SPARC_UA_PCREL is defined.
1659
1660 2008-11-22  Richard Sandiford  <rdsandiford@googlemail.com>
1661
1662         * ira-costs.c (find_allocno_class_costs): Work out the maximum
1663         allocno_costs value of the classees with the lowest total_costs
1664         value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
1665         (setup_allocno_cover_class_and_costs): ...rather than here.
1666         Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1667         preferred class.
1668
1669 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
1670
1671         PR middle-end/37323
1672         * builtins.c (expand_builtin_apply_args): Emit sequence before
1673         parm_birth_insn instead of after entry_of_function's first insn.
1674
1675         PR middle-end/37316
1676         * function.c (assign_parm_remove_parallels): Pass
1677         data->passed_type as third argument to emit_group_store.
1678
1679         PR target/37170
1680         * final.c (mark_symbol_refs_as_used): New function.
1681         * output.h (mark_symbol_refs_as_used): New prototype.
1682         * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1683         (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1684         * config/arm/arm.md (consttable_4): Likewise.
1685
1686         PR target/37880
1687         * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1688
1689 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1690
1691         PR middle-end/38200
1692         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1693         propagate x = &a into *x = b if conversion from b to a's type is
1694         useless.
1695
1696 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1697
1698         * caller-save.c (insert_one_insn): Take into account REG_INC notes
1699         for the liveness computation of the new insn.
1700
1701 2008-11-21  DJ Delorie  <dj@redhat.com>
1702
1703         * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1704         Moves to/from below100 space (W) can only use r0-r7.
1705
1706 2008-11-21  Paolo Carlini  <paolo.carlini@oracle.com>
1707
1708         PR other/38214
1709         * doc/invoke.texi (Optimization Options): Fix typo.
1710
1711 2008-11-21  H.J. Lu  <hongjiu.lu@intel.com>
1712             Xuepeng Guo  <xuepeng.guo@intel.com>
1713
1714         * config.gcc (extra_headers): For x86 and x86-64, remove
1715         gmmintrin.h, add immintrin.h and avxintrin.h.
1716
1717         * config/i386/gmmintrin.h: Renamed to ...
1718         * config/i386/avxintrin.h: This.  Issue an error if
1719         _IMMINTRIN_H_INCLUDED is undedined.
1720
1721         * config/i386/immintrin.h: New.
1722
1723 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1724
1725         PR target/38208
1726         * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1727         mode of PLUS, not mode of the eliminated register.
1728
1729 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1730
1731         * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1732         * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1733         (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1734         (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1735         (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1736         (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1737         (*nand<mode>3): Rename to *andnot<mode>3.
1738         (*nandtf3): rename to *andnottf3.
1739         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1740         Use CODE_FOR_mmx_andnotv2si3.
1741         [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1742         [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1743         [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1744         [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1745         [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1746
1747 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1748
1749         PR middle-end/37908
1750         * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1751         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1752         * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1753         to (not:IMODE (and:IMODE (...))).
1754         (sync_old_nand<mode>): Ditto.
1755         (sync_new_nand<mode>): Ditto.
1756
1757 2008-11-20  Joseph Myers  <joseph@codesourcery.com>
1758
1759         * config/arm/thumb2.md (thumb2_casesi_internal,
1760         thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1761
1762 2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>
1763
1764         * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1765         nand to the changed 4.4 semantic.
1766
1767 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1768
1769         PR middle-end/29215
1770         * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1771         (fold_builtin_memory_op): Handle even the case where just one
1772         of src and dest is an address of a var decl component, using
1773         TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
1774         and readonly_data_expr src check.
1775         * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1776         up warnings.
1777
1778         PR rtl-optimization/36998
1779         * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1780         arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1781         (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1782         stack_adjust_offset callers.
1783         (dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
1784         branches properly.
1785         (compute_barrier_args_size): Handle insns in annulled branches
1786         properly.
1787
1788 2008-11-20  Uros Bizjak  <ubizjak@gmail.com>
1789
1790         PR target/38151
1791         * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1792         Handle cases when integer argument crosses argument register boundary.
1793
1794 2008-11-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1795
1796         PR bootstrap/33100
1797         * config.gcc (i[34567]86-*-solaris2*): Don't include
1798         i386/t-crtstuff here.
1799         Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1800         * config/i386/t-sol2: Move to libgcc/config/i386.
1801
1802 2008-11-20  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1803
1804         PR driver/21706
1805         * tlink.c: Include "libiberty.h".
1806         (initial_cwd): Change type into char *.
1807         (tlink_init): Call getpwd instead of getcwd.
1808
1809 2008-11-19  Zdenek Dvorak  <ook@ucw.cz>
1810
1811         PR rtl-optimization/32283
1812         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1813         of the induction variable to decide whether it may wrap.
1814         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1815         initialization of the bound before the loop.
1816         * simplify-rtx.c (simplify_binary_operation_1): Add two
1817         simplifications regarding AND.
1818         (simplify_plus_minus): Only fail if no simplification is possible.
1819         * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1820
1821 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1822
1823         PR c++/36631
1824         * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1825         checking until GIMPLE lowering.
1826         * gimple-low.c (check_call_args): New function.
1827         (lower_stmt) <case GIMPLE_CALL>: Call it.
1828
1829 2008-11-19  Adam Nemet  <anemet@caviumnetworks.com>
1830
1831         * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1832         with the same type as the first operand of the AND expression.
1833
1834 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1835
1836         PR bootstrap/37859
1837         * ira-int.h (struct ira_loop_tree_node): New member
1838         entered_from_non_parent_p.
1839
1840         * ira-color.c (print_loop_title): Print loop bbs.
1841
1842         * ira-emit.c (entered_from_non_parent_p,
1843         setup_entered_from_non_parent_p): New functions.
1844         (not_modified_p): Rename to store_can_be_removed_p.  Check there
1845         is no side entries.
1846         (generate_edge_moves): Use store_can_be_removed_p instead of
1847         not_modified_p.
1848         (ira_emit): Call setup_entered_from_non_parent_p.
1849
1850         * ira-build.c (copy_info_to_removed_store_destinations):
1851         Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1852         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1853         (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1854         update all accumulated attributes.
1855
1856 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1857
1858         PR bootstrap/37790
1859         * ira-int.h (ira_copy_allocno_live_range_list,
1860         ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1861         ira_finish_allocno_live_range_list): New prototypes.
1862         (ira_allocno_live_ranges_intersect_p,
1863         ira_pseudo_live_ranges_intersect_p): Remove.
1864
1865         * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1866         ira_pseudo_live_ranges_intersect_p): Rename to
1867         allocnos_have_intersected_live_ranges_p and
1868         pseudos_have_intersected_live_ranges_p.  Move them from here to ...
1869
1870         * ira-color.c: ... here
1871         (coalesced_allocno_conflict_p): Use
1872         allocnos_have_intersected_live_ranges_p.
1873         (coalesced_allocnos_living_at_program_points,
1874         coalesced_allocnos_live_at_points_p,
1875         set_coalesced_allocnos_live_points): Remove.
1876         (slot_coalesced_allocnos_live_ranges,
1877         slot_coalesced_allocno_live_ranges_intersect_p,
1878         setup_slot_coalesced_allocno_live_ranges): New.
1879         (coalesce_spill_slots): Use ranges of coalesced allocnos.
1880         (ira_sort_regnos_for_alter_reg): Use
1881         allocnos_have_intersected_live_ranges_p.
1882         (ira_reuse_stack_slot): Use
1883         pseudos_have_intersected_live_ranges_p.
1884
1885         * global.c (pseudo_for_reload_consideration_p): Check
1886         flag_ira_share_spill_slots too.
1887
1888         * ira-build.c (copy_allocno_live_range_list): Rename to
1889         ira_copy_allocno_live_range_list.  Make it external.
1890         (merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
1891         external.
1892         (ira_allocno_live_ranges_intersect_p): New.
1893         (ira_finish_allocno_live_range_list): New.
1894         (finish_allocno): Use it.
1895         (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1896         (copy_info_to_removed_store_destinations): Ditto.  Use
1897         ira_copy_allocno_live_range_list.
1898         (ira_flattening): Use ira_merge_allocno_live_ranges.
1899
1900         * ira.c (too_high_register_pressure_p): New function.
1901         (ira): Switch off sharing spill slots if the pressure is too high.
1902
1903 2008-11-19  Richard Guenther  <rguenther@suse.de>
1904
1905         * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1906         non-sizetype offsets if their precision matches that of the pointer.
1907         * expr.c (expand_expr_real_1): Always sign-extend the offset
1908         operand of a POINTER_PLUS_EXPR.
1909
1910 2008-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1911
1912         * config.gcc: Unobsolete mips-sgi-irix[56]*.
1913         (mips-sgi-irix[56]*): No need to use fixproto.
1914
1915 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1916             Paul Brook  <paul@codesourcery.com>
1917
1918         * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1919         executable stack.
1920
1921 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1922
1923         * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1924
1925 2008-11-19  Razya Ladelsky  <razya@il.ibm.com>
1926
1927         PR target/38156
1928         * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1929         (separate_decls_in_region): Create shared struct even when there
1930         are only reductions.
1931
1932 2008-11-19  Hariharan Sandanagobalane <hariharan@picochip.com>
1933
1934         * config/picochip/picochip.c (headers): Remove an unnecessary
1935         header file.
1936
1937 2008-11-19  Andrew Stubbs  <ams@codesourcery.com>
1938
1939         PR target/36133
1940         * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1941         * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1942         shift instructions.
1943         * config/m68k/m68k.md: Adjust all conditional branches that use the
1944         carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1945
1946 2008-11-18  Uros Bizjak  <ubizjak@gmail.com>
1947
1948         PR target/37362
1949         * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1950         is a register or zero operand in the correct mode before generating
1951         mtch1 insn or a register operand in the correct mode before generating
1952         mfch1 insn.
1953         (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1954
1955 2008-11-18  Adam Nemet  <anemet@caviumnetworks.com>
1956
1957         * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1958         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1959         mipsisa*-*-elf*.  Handle mipsisa64r2*.
1960         * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1961         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1962         mips64r2.
1963         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1964         * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1965         mips64r2.
1966         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
1967         Fix mips16 if mips64 or mips64r2 are multilib defaults.
1968         * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1969         mips64r2.
1970
1971 2008-11-18  Jakub Jelinek  <jakub@redhat.com>
1972
1973         PR target/38130
1974         * config/i386/i386.md (allocate_stack_worker_32,
1975         allocate_stack_worker_64): Don't use match_dup between input and
1976         output operand.
1977         (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1978         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1979
1980 2008-11-18  Kai Tietz  <kai.tietz@onevision.com>
1981
1982         * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1983         is forced when trying to do a symbol link for it.
1984
1985 2008-11-17  Adam Nemet  <anemet@caviumnetworks.com>
1986
1987         * expmed.c (extract_bit_field_1): Also use a temporary and
1988         convert_extracted_bit_field when the conversion from ext_mode to
1989         the target mode requires explicit truncation.
1990
1991 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1992
1993         * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1994         Tweak formatting.
1995         * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1996         registers when not optimizing.
1997
1998 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1999
2000         * config/mips/mips.md (*mul_acc_si): Remove middle alternative
2001         and its associated define_split.  Expose the all-d alternative
2002         to the register allocator, but mark it with "?".  Mark the first
2003         alternative with "*?*?".
2004         (*mul_sub_si): Likewise.
2005         (*mul_acc_si_r3900): New pattern.
2006
2007 2008-11-17  Jakub Jelinek  <jakub@redhat.com>
2008
2009         PR middle-end/38140
2010         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
2011         propagating x = &a into *x = b, add a cast if not useless
2012         type conversion or don't optimize if another stmt would be
2013         needed.
2014
2015 2008-11-17  Uros Bizjak  <ubizjak@gmail.com>
2016
2017         PR middle-end/37908
2018         * optabs.c (expand_sync_operation): Properly handle NAND case
2019         by calculating ~(t1 & val) instead of (~t1 & val).
2020         * builtins.c (expand_builtin_sync_operation): Warn for changed
2021         semantics in NAND builtins.
2022         * c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.
2023
2024         * doc/invoke.texi (Warning options): Add Wsync-nand.
2025         * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
2026         __sync_fetch_and_nand builtin operation in the example.  Add a note
2027         about changed semantics in GCC 4.4.
2028         [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
2029         operation in the example.  Add a note about changed semantics in
2030         GCC 4.4.
2031
2032 2008-11-16  Jan Hubicka  <jh@suse.cz>
2033
2034         * cgraph.c (cgraph_function_body_availability): Fix test of externally
2035         visible.
2036
2037 2008-11-16  Joshua Kinard  <kumba@gentoo.org>
2038
2039         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
2040         to -mips4.
2041
2042 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
2043
2044         PR target/38052
2045         * config/mips/mips.c (mips_cfun_call_saved_reg_p)
2046         (mips_cfun_might_clobber_call_saved_reg_p): New functions,
2047         split out from...
2048         (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
2049         rather than call_really_used_regs when handling $gp.
2050
2051 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
2052
2053         PR target/38052
2054         * config/mips/mips.c (machine_function): Update the comment
2055         above global_pointer.
2056         (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
2057         that a function doesn't need a global pointer.
2058         (mips_current_loadgp_style): Update accordingly.
2059         (mips_restore_gp): Likewise.
2060         (mips_output_cplocal): Likewise.
2061         (mips_expand_prologue): Likewise.
2062
2063 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2064
2065         * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
2066         parameter.  Use DImode for computing the number of registers.
2067         (function_arg): Adjust for above change.
2068         (function_value): Likewise.
2069
2070 2008-11-15  Zdenek Dvorak  <ook@ucw.cz>
2071
2072         PR tree-optimization/37950
2073         * tree-flow-inline.h (memory_partition): Return NULL when aliases were
2074         not computed for the current function.
2075
2076 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
2077
2078         PR target/38123
2079         * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
2080         gpr and other COMPONENT_REFs.
2081
2082 2008-11-15  Richard Guenther  <rguenther@suse.de>
2083
2084         PR tree-optimization/38051
2085         * tree-ssa-alias.c (update_alias_info_1): Manually find
2086         written variables.
2087
2088 2008-11-15  Joshua Kinard  <kumba@gentoo.org>
2089
2090         * doc/invoke.texi (-mfix-r10000): Document.
2091         * config/mips/mips.opt (mfix-r10000): New option.
2092         * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
2093         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
2094         (MIPS_COMPARE_AND_SWAP_12): Likewise.
2095         (MIPS_SYNC_OP): Likewise.
2096         (MIPS_SYNC_OP_12): Likewise.
2097         (MIPS_SYNC_OLD_OP_12): Likewise.
2098         (MIPS_SYNC_NEW_OP_12): Likewise.
2099         (MIPS_SYNC_OLD_OP): Likewise.
2100         (MIPS_SYNC_NAND): Likewise.
2101         (MIPS_SYNC_OLD_NAND): Likewise.
2102         (MIPS_SYNC_EXCHANGE): Likewise.
2103         (MIPS_SYNC_EXCHANGE_12): Likewise.
2104         (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
2105         delay slots.
2106         (MIPS_SYNC_NEW_NAND): Likewise.
2107         * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
2108         (mips_init_print_operand_punct): Treat '~' as a punctuation character.
2109         (mips_output_sync_loop): New function.
2110         (mips_override_options): Make -march=r10000 imply -mfix-r10000.
2111         Make -mfix-r10000 require branch-likely instructions.
2112         * config/mips/sync.md (sync_compare_and_swap<mode>): Use
2113         mips_output_sync_loop.
2114         (compare_and_swap_12): Likewise.
2115         (sync_add<mode>): Likewise.
2116         (sync_<optab>_12): Likewise.
2117         (sync_old_<optab>_12): Likewise.
2118         (sync_new_<optab>_12): Likewise.
2119         (sync_nand_12): Likewise.
2120         (sync_old_nand_12): Likewise.
2121         (sync_new_nand_12): Likewise.
2122         (sync_sub<mode>): Likewise.
2123         (sync_old_add<mode>): Likewise.
2124         (sync_old_sub<mode>): Likewise.
2125         (sync_new_add<mode>): Likewise.
2126         (sync_new_sub<mode>): Likewise.
2127         (sync_<optab><mode>): Likewise.
2128         (sync_old_<optab><mode>): Likewise.
2129         (sync_new_<optab><mode>): Likewise.
2130         (sync_nand<mode>): Likewise.
2131         (sync_old_nand<mode>): Likewise.
2132         (sync_new_nand<mode>): Likewise.
2133         (sync_lock_test_and_set<mode>): Likewise.
2134         (test_and_set_12): Likewise.
2135
2136 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
2137
2138         * gcc.c (cc1_options): Fix comment.
2139
2140 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
2141
2142         PR c++/37561
2143         * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
2144         argtype instead of result_type.
2145
2146 2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>
2147
2148         * ira-int.h (struct ira_loop_tree_node): Improve comments for
2149         subloop_next/next and subloops/childen fields.
2150
2151 2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2152
2153         * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
2154         (STANDARD_INCLUDE_DIR): Redefine to "/include".
2155         (LOCAL_INCLUDE_DIR): Undefine.
2156         * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
2157
2158 2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>
2159
2160         PR rtl-optimization/37397
2161         * ira-int.h (struct ira_allocno): New member bad_spill_p.
2162         (ALLOCNO_BAD_SPILL_P): New macro.
2163
2164         * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
2165
2166         * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
2167         (create_cap_allocno, propagate_allocno_info,
2168         remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
2169         (update_bad_spill_attribute): New function.
2170         (ira_build): Call it.
2171
2172         * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
2173
2174 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
2175
2176         PR tree-optimization/38104
2177         * gimplify.c (gimple_regimplify_operands): Add referenced vars
2178         before calling mark_symbols_for_renaming, not after it.
2179
2180 2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2181
2182         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
2183         (OVERRIDE_OPTIONS): Likewise.
2184
2185 2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
2186             Andrew Stubbs  <ams@codesourcery.com>
2187             Gunnar Von Boehn  <gunnar@genesi-usa.com>
2188
2189         PR target/36134
2190         * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
2191         the shorter LEA insn over ADD.L where possible.
2192
2193 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
2194
2195         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
2196         systems, which are assumend to always provide SSP-support in glibc.
2197         Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
2198         case.
2199         * configure: Regenerate.
2200
2201 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
2202
2203         PR middle-end/36125
2204         * function.c (gimplify_parameters): For callee copies parameters,
2205         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
2206
2207 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
2208
2209         PR target/28102
2210         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
2211         x86 parts into the `i[34567]86-*-linux*' and parts that are
2212         independent of the processor architecture into the `*-*-linux*' cases.
2213         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
2214         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
2215         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
2216         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
2217         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
2218         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
2219         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
2220
2221 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
2222
2223         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
2224         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
2225         (ls2_idiv): Likewise idiv3.
2226         (ls2_prefetch): New reservation.
2227         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
2228         * config/mips/mips.md (type): Add imul3nc and idiv3.
2229         (length): Handle idiv3.
2230         (any_mod): New code_iterator.
2231         (u): Handle MOD and UMOD.
2232         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
2233         (prefetch): Handle TARGET_LOONGSON_2EF.
2234
2235 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
2236
2237         PR c++/27017
2238         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
2239         (prune_unused_types_walk): Call it for non-perennial local classes.
2240         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
2241         entry, just set it to 2 and recurse on children, don't walk attributes
2242         again.
2243
2244 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
2245
2246         * c-common.c (warn_about_parentheses): Add missing whitespace
2247         in warning.
2248
2249 2008-11-13  Paul Brook  <paul@codesourcery.com>
2250
2251         * doc/invoke.texi: Document --fix-cortex-m3.
2252         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
2253         Cortex-M3 cpu is selected.
2254         (output_move_double): Avoid overlapping base register and first
2255         destination register when fix_cm3_ldrd.
2256         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
2257
2258 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
2259
2260         PR bootstrap/38100
2261         * gimple.h (gimple_range_check_failed): Remove prototype.
2262         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
2263         in guarding #if.
2264         (gimple_range_check_failed): Removed.
2265
2266 2008-11-13  Andrew Haley  <aph@redhat.com>
2267
2268         PR bootstrap/38088
2269         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
2270         __LONG_LONG_MAX__.
2271
2272 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2273
2274         PR c++/36478
2275         Revert:
2276         2007-05-07  Mike Stump  <mrs@apple.com>
2277         * doc/invoke.texi (Warning Options): Document that -Wempty-body
2278         also checks for and while statements in C++.
2279
2280 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
2281
2282         PR debug/27574
2283         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
2284         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
2285         - which clones are reachable - as "abstract and needed".
2286         * cgraph.c (cgraph_release_function_body):  If a node is
2287         "abstract and needed", do not release its DECL_INITIAL() content
2288         that will be needed to emit debug info.
2289
2290 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
2291
2292         PR target/27880
2293         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
2294         to set HAVE_GETIPINFO.
2295         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
2296         * configure: Regenerate.
2297         * config.in: Regenerate.
2298
2299 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
2300
2301         PR bootstrap/38010
2302         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
2303
2304 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2305
2306         Revert:
2307         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
2308         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2309
2310 2008-11-12  Jason Merrill  <jason@redhat.com>
2311
2312         PR c++/38007
2313         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
2314         special casing.
2315
2316 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
2317
2318         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
2319         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
2320         atmega32u6 devices.
2321         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2322         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2323
2324 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2325
2326         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
2327         packed-stack special handling.
2328         (FRAME_ADDR_RTX): Add definition.
2329
2330 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2331
2332         PR target/35366
2333         * fold-const.c (native_encode_string): New function.
2334         (native_encode_expr): Use it for STRING_CST.
2335
2336 2008-11-12  DJ Delorie  <dj@redhat.com>
2337
2338         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
2339         insns if the intermediate value will be used later.
2340
2341 2008-11-12  Andreas Schwab  <schwab@suse.de>
2342
2343         * config/m68k/m68k.c (print_operand): Mask off extra extension
2344         bits when writing out the representation of real values.
2345
2346 2008-11-12  Ira Rosen  <irar@il.ibm.com>
2347
2348         PR tree-optimization/38079
2349         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
2350         with vect_dump.
2351
2352 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2353
2354         PR c++/35334
2355         * c-pretty-print.c (pp_c_complex_expr): New function.
2356         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
2357
2358         PR target/35366
2359         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
2360         than INNER and INNER is a constant, forcibly align INNER as much
2361         as needed.
2362
2363 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
2364
2365         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
2366
2367 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
2368
2369         PR rtl-optimization/37363
2370         * simplify-rtx.c (simplify_plus_minus): Don't create
2371         (const (minus ...)) expresisons.
2372
2373 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2374
2375         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
2376         handling.
2377
2378 2008-11-10  Catherine Moore  <clm@codesourcery.com>
2379
2380         * config.gcc (mips64vrel-*-elf*): Include the tm_file
2381         prior to vr.h.
2382         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
2383         (BASE_DRIVER_SELF_SPECS): Remove.
2384         (DRIVER_SELF_SPECS): New definition.
2385         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include
2386         BASE_DRIVER_SELF_SPECS.
2387         * config/mips/sde.h: Likewise.
2388         * config/mips/iris6.h: Likewise.
2389         * config/mips/vr.h: Likewise.
2390         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
2391
2392 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
2393
2394         PR rtl-optimizations/37948
2395         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
2396         (ira_create_copy, ira_add_allocno_copy): New parameter.
2397
2398         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
2399         to ira_add_allocno_copy.
2400         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
2401         parameter to process_regs_for_copy.
2402         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
2403         Fix typo in passing second allocno to ira_add_allocno_copy.
2404
2405         * ira-color.c (update_conflict_hard_regno_costs): Use head of
2406         coalesced allocnos list.
2407         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
2408         the graph.
2409         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
2410         (add_ira_allocno_to_ordered_bucket): Rename to
2411         add_allocno_to_ordered_bucket.
2412         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
2413         head of coalesced allocnos list.
2414         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
2415         Check that it is aready calculated.
2416         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2417         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2418         list.
2419         (coalesce_allocnos): Do extended coalescing too.
2420
2421         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2422         parameter to ira_add_allocno_copy.
2423
2424         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2425         parameter.
2426         (print_copy): Print copy origination too.
2427
2428         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2429         equivalent memory.
2430
2431 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2432
2433         PR rtl-optimization/37514
2434         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2435         flag_ira_share_spill_slots to 2 if it's already non-zero.
2436         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2437         flag_ira_share_spill_slots is 2.
2438
2439 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
2440
2441         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2442         (prologue_enter_32): Set FB to SP - 4.
2443
2444 2008-11-10  DJ Delorie  <dj@redhat.com>
2445
2446         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2447         constraint for single-bit-clear in lower byte of HI constant, vs
2448         Imb which just ignores the upper byte.
2449         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2450         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2451         (iorhi3_16): Check for single bit set, not single bit clear.
2452
2453 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
2454
2455         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2456
2457         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2458
2459 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2460
2461         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2462         values living in memory and use more precise alignment information.
2463
2464 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
2465
2466         PR middle-end/35314
2467         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2468         after __mf_check call if the call must end a bb.
2469
2470 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
2471
2472         PR middle-end/37807
2473         PR middle-end/37809
2474         * combine.c (force_to_mode): Do not process vector types.
2475
2476         * rtlanal.c (nonzero_bits1): Do not process vector types.
2477         (num_sign_bit_copies1): Likewise.
2478
2479 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
2480
2481         * config/i386/gnu.h: Add copyright and licensing header.
2482         * config/gnu.h: Likewise.
2483
2484 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2485
2486         * fwprop.c (fwprop_done): Call df_remove_problem.
2487
2488 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
2489
2490         PR middle-end/37379
2491         * tree-scalar-evolution.c (instantiate_scev_1): Return
2492         chrec_dont_know for VL_EXP_CLASS_P.
2493
2494 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2495
2496         * reg-stack.c (reg_to_stack): Add missing braces in memset
2497         size calculation.
2498
2499 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
2500
2501         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2502         (NO_PROFILE_COUNTERS): New define.
2503
2504 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
2505
2506         PR target/26397
2507         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2508
2509 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
2510
2511         PR target/35574
2512         * config/sparc/constraints.md (D): New.
2513         * config/sparc/predicates.md (const_double_or_vector_operand): New.
2514         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2515         'D' constraint.
2516         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2517         Use the 'D' constraint in addition to 'F' in some alternatives.
2518         (DF splitter): Generalize for V64mode.
2519         * doc/md.texi (SPARC): Document the 'D' constraint.
2520
2521 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2522
2523         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2524
2525 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2526
2527         * gcc.c: Remove ancient comment about a bug in Sun cc.
2528
2529 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
2530
2531         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2532
2533 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2534
2535         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2536
2537 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2538
2539         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2540         description.
2541
2542 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
2543
2544         PR target/38016
2545         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2546         just MEM_P.
2547
2548 2008-11-05  Martin Jambor  <mjambor@suse.cz>
2549
2550         PR middle-end/37861
2551         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2552         pointer arithmetics into array_ref if the array is accessed
2553         through an indirect_ref.
2554
2555 2008-11-05  Richard Guenther  <rguenther@suse.de>
2556
2557         PR middle-end/37742
2558         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2559         qualified pointer conversion before stripping qualifiers.
2560         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2561         * tree-flow.h (may_propagate_address_into_dereference): Declare.
2562         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2563         function.
2564         (ccp_fold): Use it.
2565         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2566         properly canonicalize binary ops.
2567         (forward_propagate_addr_expr_1): Use
2568         may_propagate_address_into_dereference.
2569
2570 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
2571
2572         PR middle-end/37286
2573         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2574         Initialize uninitialized input registers with a NaN.
2575
2576 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2577
2578         PR middle-end/37833
2579
2580         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2581
2582 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2583
2584         PR middle-end/37943
2585
2586         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2587         exits and conditions.
2588         * testsuite/gcc.dg/graphite/pr37943.c: New.
2589
2590 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
2591             Andrew Pinski  <andrew_pinski@playstation.sony.com>
2592
2593         PR c/35430
2594         * c-common.c (warn_for_sign_compare): For complex result_type
2595         use component's type.
2596
2597 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
2598
2599         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2600
2601         * print-tree.c (print_node): Don't print DECL_INITIAL
2602         for PARM_DECL.
2603
2604         PR c/37106
2605         * c-common.c (parse_optimize_options): Save and restore
2606         flag_strict_aliasing around decode_options call.
2607
2608 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
2609
2610         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2611         (host_detect_local_cpu): Use it instead of casted strings to
2612         compare vendor signatures.
2613
2614 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
2615
2616         PR target/37989
2617         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2618         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2619
2620 2008-11-03  Catherine Moore  <clm@codesourcery.com>
2621
2622         * config/mips.c (mips_conditional_register_usage):  Handle the
2623         DSP control register.
2624         * doc/extend.texi: Document the DSP control register.
2625
2626 2008-11-03  Steve Ellcey <sje@cup.hp.com>
2627             Jakub Jelinek  <jakub@redhat.com>
2628
2629         * omp-low.c (expand_omp_for_generic): If iter_type has different
2630         precision than type and type is a pointer type, cast n1 and n2
2631         first to an integer type with the same precision as pointers
2632         and only afterwards to iter_type.
2633
2634 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2635
2636         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2637         (UNSPEC_GOTSYM_OFF): New unspec.
2638         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2639         (pic_add_dot_plus_eight): Likewise.
2640         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
2641         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2642         UNSPEC_PIC_BASE operands.
2643         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2644         (arm_output_addr_const_extra): Handle it.
2645
2646 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2647
2648         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2649         integer class to full integer class if the offset is not word-aligned.
2650
2651 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2652
2653         PR rtl-opt/37782
2654         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2655         mode count is in.
2656         (doloop_optimize): Update call to doloop_modify.
2657
2658 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2659
2660         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2661
2662 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2663
2664         PR other/37463
2665         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2666         gcc_cv_as_cfi_directive.
2667         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2668         merging read-only and read-write sections or assembler emits
2669         read-write .eh_frame sections.
2670         * configure: Regenerate.
2671
2672 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
2673
2674         Revert:
2675         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2676
2677         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2678         problem.
2679         (rs6000_emit_prologue): Invert logic.
2680         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2681         (reg:P 11) instead of match_operand.
2682         (*save_fpregs_<mode>): Likewise.
2683         (*restore_gpregs_<mode>): Likewise.
2684         (*return_and_restore_gpregs_<mode>): Likewise.
2685         (*return_and_restore_fpregs_<mode>): Likewise.
2686         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2687         (reg:P 11) insted of match_operand.
2688         (*restore_gpregs_spe): Likewise.
2689         (*return_and_restore_gpregs_spe): Likewise.
2690
2691 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
2692
2693         PR tree-optimization/37684
2694         * gcc.dg/graphite/pr37684.c: New.
2695         * graphite.c (exclude_component_ref): New.
2696         (is_simple_operand): Call exclude_component_ref.
2697
2698 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2699
2700         PR tree-optimization/36908
2701         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2702         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2703         (number_of_rw_in_partition): New.
2704         (partition_contains_all_rw): New.
2705         (ldist_gen): Do not distribute when one of the partitions
2706         contains all the memory operations.
2707
2708 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2709
2710         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2711         EDGE_IRREDUCIBLE_LOOP.
2712
2713 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
2714
2715         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2716         where we have one entry point in the loop which isn't the head.
2717
2718 2008-11-03  Richard Guenther  <rguenther@suse.de>
2719
2720         PR middle-end/37573
2721         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2722
2723 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
2724
2725         PR middle-end/37858
2726         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2727         for ipa and simple ipa passes.
2728
2729 2008-11-02  Richard Guenther  <rguenther@suse.de>
2730
2731         PR tree-optimization/37542
2732         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2733         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2734         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2735         (vn_nary_op_insert_stmt): Likewise.
2736         (visit_use): Likewise.
2737
2738 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
2739
2740         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2741         (*swap): Remove.
2742         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2743         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2744         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2745         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2746         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2747         peephole2's): Replace unspec with rotate.
2748         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2749
2750 2008-11-02  Richard Guenther  <rguenther@suse.de>
2751
2752         PR tree-optimization/37991
2753         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2754         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2755         (set_ssa_val_to): Print if the value changed.
2756         (simplify_binary_expression): Strip useless conversions.
2757
2758 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
2759
2760         PR target/37939
2761         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2762         operand.
2763
2764 2008-11-01  Richard Guenther  <rguenther@suse.de>
2765
2766         PR middle-end/37976
2767         * builtins.c (fold_builtin_strspn): Return a size_t.
2768         (fold_builtin_strcspn): Likewise.
2769
2770 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2771
2772         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2773         attribute for struct return convention.
2774
2775 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2776
2777         * config/rs6000/crtsavres.asm: Really, really delete.
2778
2779 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2780
2781         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2782         problem.
2783         (rs6000_emit_prologue): Invert logic.
2784         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2785         (reg:P 11) instead of match_operand.
2786         (*save_fpregs_<mode>): Likewise.
2787         (*restore_gpregs_<mode>): Likewise.
2788         (*return_and_restore_gpregs_<mode>): Likewise.
2789         (*return_and_restore_fpregs_<mode>): Likewise.
2790         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2791         (reg:P 11) insted of match_operand.
2792         (*restore_gpregs_spe): Likewise.
2793         (*return_and_restore_gpregs_spe): Likewise.
2794
2795 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
2796
2797         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2798         list of word switches that take args.
2799
2800 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
2801
2802         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2803         (s390_output_pool_entry): Call it through for_each_rtx.
2804
2805         PR middle-end/37730
2806         * expr.c (store_constructor): For vectors, if target is a MEM, use
2807         target's MEM_ALIAS_SET instead of elttype alias set.
2808
2809 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2810
2811         PR target/37909
2812         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2813         no address.
2814
2815 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
2816
2817         PR target/37878
2818         * config/rs6000/predicates.md (word_offset_memref_operand):
2819         Restructure code and look inside auto-inc/dec addresses.
2820
2821 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
2822
2823         PR target/32277
2824         * libgcov.c (__gcov_indirect_call_profiler): Check
2825         TARGET_VTABLE_USES_DESCRIPTORS.
2826
2827 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
2828
2829         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2830         (INITIAL_FRAME_POINTER_OFFSET): Remove.
2831         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2832         offset if eliminating soft frame pointer.
2833         * config/spu/spu.md (stack_protect_set, stack_protect_test)
2834         (stack_protect_test_si): Add initial machine description
2835         for Stack Smashing Protector
2836
2837 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2838
2839         PR 11492
2840         * c-common.c (min_precision): Move to...
2841         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2842         * tree.h (tree_int_cst_min_precision): Declare.
2843         * c-common.h (min_precision): Delete declaration.
2844         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2845         multiplication of non-negative integer constants.
2846         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2847         tree_int_cst_min_precision.
2848         (finish_enum): Likewise.
2849
2850 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
2851
2852         PR middle-end/36578
2853         * convert.c (convert_to_real): Do not optimize conversions of
2854         binary arithmetic operations between binary and decimal
2855         floating-point types.  Consider mode of target type in determining
2856         decimal type for arithmetic.  Unless
2857         flag_unsafe_math_optimizations, do not optimize binary conversions
2858         where this may change rounding behavior.
2859         * real.c (real_can_shorten_arithmetic): New.
2860         * real.h (real_can_shorten_arithmetic): Declare.
2861
2862 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2863
2864         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2865         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2866         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2867         appropriate.
2868         (must_save_p): For some workarounds, interrupts need to clobber a
2869         P register.
2870         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2871         and LC1 for WA_05000257.
2872         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2873         WA_05000283 and WA_05000315.
2874         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2875         (movbi): Add alternative to set CC to 1; improve code for setting
2876         CC to 0.
2877         (dummy_load): New pattern.
2878
2879 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
2880
2881         PR middle-end/37870
2882         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2883         BLKmode for non-memory, convert using a wider MODE_INT mode
2884         or through memory.
2885
2886         PR middle-end/37913
2887         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2888         that haven't been removed yet.
2889
2890 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2891
2892         * config/bfin/bfin.c (struct machine_function): New member
2893         has_loopreg_clobber.
2894         (bfin_expand_movmem): Set it when generating memcpy insns.
2895         (n_regs_saved_by_prologue, expand_prologue_reg_save,
2896         expand_epilogue_reg_restore): If we have hardware loops,
2897         memcpy insns (indicated by has_loopreg_clobber) or function
2898         calls, we need to save the loop registers.
2899
2900 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
2901
2902         * config/i386/i386.c (core2_cost): Fix typos in comments.
2903
2904 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2905
2906         PR c/37924
2907         * combine.c (make_compound_operation): Don't call make_extraction with
2908         non-positive length.
2909         (simplify_shift_const_1): Canonicalize count even if complement_p.
2910
2911 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
2912
2913         * convert.c (strip_float_extensions): Do not remove or introduce
2914         conversions between binary and decimal floating-point types.
2915
2916 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2917
2918         PR middle-end/37931
2919         * fold-const.c (distribute_bit_expr): Convert common, left and
2920         right arguments to type.
2921
2922 2008-10-28  Nick Clifton  <nickc@redhat.com>
2923
2924         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2925         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2926         call_really_used_regs array rather than the call_used_regs array.
2927         (mn10300_get_live_callee_saved_regs, expand_prologue,
2928         expand_epilogue, output_tst): Likewise.
2929
2930 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
2931
2932         PR target/37378
2933         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2934         (df_get_entry_block_def_set): Neither here.
2935         (df_get_regular_block_artificial_uses): Add EH_USES registers.
2936
2937         PR tree-optimization/37879
2938         * predict.c (tree_estimate_probability): Check if last_stmt is
2939         non-NULL before dereferencing it.
2940
2941 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2942
2943         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2944         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2945         (ira_fast_allocation): Remove the prototype.
2946
2947         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2948         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2949         (color_pass): Modify the updated costs.
2950         (ira_color): Rename to color.  Make it static.
2951         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
2952         (ira_color): New function.
2953
2954         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2955         change.
2956
2957         * ira-lives.c (last_call_num, allocno_saved_at_call): New
2958         variables.
2959         (set_allocno_live, clear_allocno_live, mark_ref_live,
2960         mark_ref_dead): Invalidate corresponding element of
2961         allocno_saved_at_call.
2962         (process_bb_node_lives): Increment last_call_num.  Setup
2963         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
2964         allocno was already saved.
2965         (ira_create_allocno_live_ranges): Initiate last_call_num and
2966         allocno_saved_at_call.
2967
2968         * ira-build.c (ira_create_allocno): Initiate
2969         ALLOCNO_UPDATED_COVER_CLASS_COST.
2970         (create_cap_allocno, propagate_allocno_info,
2971         remove_unnecessary_allocnos): Remove setting updated costs.
2972         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2973
2974         * ira.c (ira):  Don't call ira_fast_allocation.
2975
2976         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2977         updated costs.
2978
2979 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2980
2981         PR middle-end/37813
2982         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2983
2984         * ira-int.h (ira_hard_regno_cover_class): New.
2985
2986         * ira-lives.c (mark_reg_live, mark_reg_dead,
2987         process_bb_node_lives): Use ira_hard_regno_cover_class.
2988
2989         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2990         (setup_hard_regno_cover_class): New function.
2991         (ira_init): Call setup_hard_regno_cover_class.
2992
2993         * ira-costs.c (cost_class_nums): Add comment.
2994         (find_allocno_class_costs): Initiate cost_class_nums.
2995         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2996
2997 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2998
2999         PR middle-end/37884
3000         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
3001         Rename to copy_info_to_removed_store_destinations.  Propagate
3002         conflict hard regs and register stack attribute.
3003
3004 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3005
3006         PR middle-end/37316
3007         * pa.c (function_arg_padding):  Pad complex and vector types
3008         upward in 64-bit runtime.
3009         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
3010
3011 2008-10-26  Matthias Klose  <doko@ubuntu.com>
3012
3013         * doc/install.texi: Document requirements on antlr.
3014
3015 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
3016
3017         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
3018         first.
3019
3020 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3021
3022         PR target/37841
3023         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
3024         is defined, use it to modify the constant offset.
3025
3026         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
3027
3028         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
3029         and short arguments to the correct location as mandated by the ABI.
3030
3031 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3032
3033         PR rtl-optimization/37769
3034         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
3035
3036 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3037
3038         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
3039         unwind-dw2-Os-4-200.o.
3040
3041 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
3042
3043         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
3044         (convert_for_assignment): Remove ic_argpass_nonproto cases.
3045
3046 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
3047
3048         PR tree-optimization/36038
3049         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
3050         add sizetype IV with initial value zero instead of pointer type.
3051
3052 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3053
3054         PR c/7543
3055         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
3056         around bit operation.
3057         * profile.c (is_edge_inconsistent): Likewise.
3058         * fold-const.c (truth_value_p): Move from here...
3059         * tree.h (truth_value_p): ... to here.
3060         * c-tree.h (c_expr): Update description of original_code.
3061         * c-typeck.c (parser_build_unary_op): Set original_code.
3062         (parser_build_binary_op): Update call to warn_about_parentheses.
3063         * c-common.c (warn_about_parentheses): Take two additional
3064         arguments of the operands. Use a switch. Quote operators
3065         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
3066         Add warning about !x | y and !x & y.
3067         * c-common.h (warn_about_parentheses): Update declaration.
3068
3069 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
3070
3071         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
3072         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
3073         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
3074         New variables.
3075         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
3076         (check-%): For test targets listed in lang_checks_parallelized
3077         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
3078         run the testing in multiple make goals, possibly parallel, and
3079         afterwards run dg-extract-results.sh to merge the sum and log files.
3080
3081 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
3082
3083         * config/mips/mips.c (mips_canonicalize_move_class): New function.
3084         (mips_move_to_gpr_cost): Likewise.
3085         (mips_move_from_gpr_cost): Likewise.
3086         (mips_register_move_cost): Make more fine-grained.
3087
3088 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
3089
3090         * graphite.c (graphite_apply_transformations): Check for
3091         -fgraphite-identity.
3092         * toplev.c (process_options): Add graphite_identity.
3093         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
3094
3095 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
3096
3097         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
3098         mulhisihl and mulhisihh builtins.
3099
3100         From Jie Zhang  <jie.zhang@analog.com>
3101         * config/bfin/bfin.md (composev2hi): Put operands into vector
3102         with correct order.
3103
3104 2008-10-22  Chao-ying Fu  <fu@mips.com>
3105
3106         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
3107
3108 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
3109
3110         From Mike Frysinger  <michael.frysinger@analog.com>
3111         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
3112         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
3113         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
3114         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
3115         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
3116         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
3117         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
3118         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
3119         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
3120         __ADSPBF51x__ for all of them.
3121         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
3122         -mcpu bf512, bf514, bf516, and bf518.
3123         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
3124         bf512-none, bf514-none, bf516-none, and bf518-none.
3125         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
3126         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
3127         * doc/invoke.texi (Blackfin Options): Document that
3128         -mcpu now accepts bf512, bf514, bf516, and bf518.
3129
3130 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
3131
3132         PR middle-end/37882
3133         * fold-const.c (build_range_type): For 1 .. signed_max
3134         range call build_nonstandard_inter_type if signed_type_for
3135         returned a type with bigger precision.
3136
3137 2008-10-22  Richard Guenther  <rguenther@suse.de>
3138
3139         * tree.def (COMPLEX_TYPE): Constrain element type.
3140         * tree.c (build_complex_type): Assert that.
3141         * tree-ssa-structalias.c (could_have_pointers): Complex types
3142         cannot have pointers.
3143
3144 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3145
3146         PR c/30949
3147         * c-typeck.c (convert_for_assignment): Do not give declaration's
3148         location for builtins. Spell out which type was expected and which
3149         was given.
3150
3151 2008-10-22  Nick Clifton  <nickc@redhat.com>
3152
3153         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
3154         the fdpic register to be a target when running in fdpic mode.
3155
3156 2008-10-22 Rafael Espindola  <espindola@google.com>
3157
3158         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
3159         newly created statements.
3160
3161 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3162
3163         PR target/37633
3164         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
3165         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
3166         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
3167
3168 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
3169
3170         PR target/37880
3171         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
3172         Adjust -mcmodel=medium description for 2005-07-31 changes.
3173
3174 2008-10-22  Jan Hubicka  <jh@suse.cz>
3175             Jakub Jelinek  <jakub@redhat.com>
3176
3177         PR middle-end/35853
3178         * doc/invoke.texi: Remove references to obsoleted -d dumps.
3179
3180 2008-10-21  Richard Henderson  <rth@redhat.com>
3181
3182         PR 37815
3183         * emit-rtl.c (get_spill_slot_decl): Export.
3184         * emit-rtl.h (get_spill_slot_decl): Declare.
3185         * var-tracking.c (vt_add_function_parameters): Relax assertion
3186         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
3187
3188 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
3189
3190         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
3191         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
3192         of from insn.
3193
3194 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
3195
3196         PR middle-end/37669
3197         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
3198         processed by get_maxval_strlen.
3199
3200 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
3201
3202         PR target/35485
3203         * tree.c (get_file_function_name): Copy first_global_object_name.
3204         Centralize call to clean_symbol_name.
3205
3206 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
3207
3208         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
3209         * config/svr4.h (SVR4_ASM_SPEC): New.
3210         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3211         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3212
3213         * doc/invoke.texi (Option Summary): Add -T to linker options.
3214         (Link Options): Document -T.
3215
3216 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
3217
3218         * tree-inline.c (tree_inlinable_function_p): Remove tuples
3219         debugging hack.
3220
3221         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
3222
3223         PR debug/37020
3224         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
3225
3226 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
3227
3228         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
3229         part of expression.
3230
3231 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
3232
3233         * doc/install.texi: Fix typos in previous patch.
3234
3235 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
3236
3237         * doc/install.texi: Document in-tree building of gcc and mpfr.
3238
3239 2008-10-19  Richard Guenther  <rguenther@suse.de>
3240
3241         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
3242
3243 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3244
3245         PR c/30260
3246         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
3247         (build_enumerator): Convert enumerators that fit in integer to
3248         integer type.
3249
3250 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
3251
3252         * config/i386/i386.md (unnamed peephole2): Do not force memory
3253         operands of arith or logical instructions into registers for
3254         non-TARGET_READ_MODIFY targets.
3255
3256         (ffs_cmove): Change operand 0 predicate to register_operand.
3257         Change operand 1 predicate to nonimmediate_operand.
3258         (ffsdi2): Ditto.
3259         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
3260
3261 2008-10-18  Richard Guenther  <rguenther@suse.de>
3262
3263         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
3264         VIEW_CONVERT_EXPR case against invalid gimple.
3265
3266 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3267
3268         * c-parser.c (c_parser_binary_expression): Silence the
3269         uninitialized variable warning emitted for binary_loc.
3270
3271 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
3272
3273         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
3274         translation cache.
3275
3276 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
3277
3278         PR c/33192
3279         * c-typeck.c (build_unary_op): Use omit_one_operand for
3280         IMAGPART_EXPR of real argument.
3281
3282 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
3283
3284         PR tree-optimization/37664
3285         * fold-const.c (fold_binary): When optimizing comparison with
3286         highest or lowest type's value, don't consider TREE_OVERFLOW.
3287
3288 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
3289
3290         PR target/35483
3291         * Makefile.in (coverage.o): Depend on $(TM_P_H).
3292         * coverage.c: Include tm_p.h.
3293         * config/rs6000/x-aix (jc1): Override LDFLAGS.
3294         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
3295         dollar signs from PREFIX.
3296         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
3297         instead of manual strip_name_encoding.
3298
3299 2008-10-16  Richard Guenther  <rguenther@suse.de>
3300
3301         PR middle-end/37418
3302         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
3303         volatile qualified functions or methods as relevant.
3304
3305 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
3306
3307         PR tree-optimization/37525
3308         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
3309         sizetype unsigned constants, both in the case of C and bounds.
3310
3311 2008-10-15  Jan Hubicka  <jh@suse.cz>
3312
3313         * ira-emit.c (change_regs): Return false when replacing reg by itself.
3314
3315 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
3316
3317         PR target/37633
3318         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
3319         HARD_REGNO_CALL_PART_CLOBBERED.
3320
3321 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
3322
3323         PR middle-end/37535
3324         * ira-lives.c (mark_early_clobbers): Remove.
3325         (make_pseudo_conflict, check_and_make_def_use_conflicts,
3326         check_and_make_def_conflicts,
3327         make_early_clobber_and_input_conflicts,
3328         mark_hard_reg_early_clobbers): New functions.
3329         (process_bb_node_lives): Call
3330         make_early_clobber_and_input_conflicts and
3331         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
3332
3333         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
3334         early clobbers of pseudo-registers.
3335
3336 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
3337
3338         PR middle-end/37674
3339         * ira-build.c (ira_flattening): Recalculate
3340         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
3341         from the scratch instead of the propagation.
3342
3343 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
3344
3345         * doc/rtl.texi (const_double): Remove the "addr" operand.
3346         Describe CONST_DOUBLE_* macros under const_double rather
3347         than const_vector.
3348         (const_fixed): Fix the operand description.
3349         (const): Add an @findex directive.
3350         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
3351         after the constant rtl table.
3352         (fix): Combine floating-point and fixed-point descriptions.
3353         Fix hyphenation.
3354         * sched-deps.c (sched_analyze_2): Remove reference to
3355         CONST_DOUBLE_CHAIN.
3356
3357 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
3358
3359         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
3360         UNSPEC_GOTSYM_OFFs.
3361         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
3362         for UNSPEC_GOTSYM_OFFs.
3363         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
3364         (add_GOT_to_pic_reg): Use it.
3365         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
3366
3367 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
3368             Harsha Jagasia  <harsha.jagasia@amd.com>
3369
3370         PR tree-optimization/37485
3371         * graphite.c (gmp_cst_to_tree): Moved.
3372         (iv_stack_entry_is_constant): New.
3373         (iv_stack_entry_is_iv): New.
3374         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
3375         (loop_iv_stack_insert_constant): New.
3376         (loop_iv_stack_pop): Use new datatpype.
3377         (loop_iv_stack_get_iv): Same.
3378         (loop_iv_stack_get_iv_from_name): Same.
3379         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
3380         (loop_iv_stack_patch_for_consts): New.
3381         (loop_iv_stack_remove_constants): New.
3382         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
3383         (translate_clast): Call loop_iv_stack_patch_for_consts and
3384         loop_iv_stack_remove_constants.
3385         (gloog): Use new datatype.  Redirect construction edge to end
3386         block to avoid accidental deletion.
3387         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
3388         iv stack entry.
3389         (union iv_stack_entry_data): New.  Data in iv stack entry.
3390         (struct iv_stack_entry): New.  Datatype for iv stack entries.
3391
3392 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3393
3394         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
3395         * graphite.c (free_scop): Same.
3396         (build_scops): Same.
3397         (free_scattering): New.
3398         (build_cloog_prog): Call free_scattering.
3399         (patch_phis_for_virtual_defs): Fix memleak.
3400         (graphite_trans_bb_strip_mine): Same.
3401         (limit_scops): Same.
3402
3403 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3404             Harsha Jagasia  <harsha.jagasia@amd.com>
3405
3406         PR tree-optimization/37828
3407         * graphite.c (graphite_trans_loop_block): Do not loop block
3408         single nested loops.
3409
3410 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3411
3412         PR tree-optimization/37686
3413         * tree-loop-linear.c (linear_transform_loops): Build a
3414         loop nest vector.  Pass it to lambda_compute_access_matrices.
3415         * tree-data-ref.h (struct access_matrix): Store the loop nest
3416         relative to which it encodes the information.
3417         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3418         (am_vector_index_for_loop): Reimplemented: iterate over the
3419         loop nest for finding the loop index in the access matrix.
3420         (lambda_compute_access_matrices): Update declaration.
3421         * lambda-code.c (build_access_matrix): Pass the loop nest and
3422         record it.
3423         (lambda_compute_access_matrices): Same.
3424
3425 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
3426
3427         * config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3428         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3429         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3430         already implies hard float.  Also fix several insn condition
3431         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3432
3433 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
3434
3435         PR target/35483
3436         Based on patches by Laurent Vivier.
3437         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3438         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3439         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3440         dollar sign to underscore.
3441         (ASM_OUTPUT_EXTERNAL): Same.
3442         (ASM_OUTPUT_LABELREF): New.
3443         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3444
3445         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3446         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3447         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3448         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3449
3450 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
3451
3452         PR tree-optimization/36881
3453         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3454         that each value doesn't need runtime relocations, for !flag_pic
3455         check that each value is just a valid initializer constant.
3456
3457 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
3458
3459         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3460         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3461         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3462         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3463         GR_AND_ACC_REGS.
3464         (REG_CLASS_NAMES): Update accordingly.
3465         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
3466         rather than an unpredictable descriptive string.
3467         * config/mips/mips.c (mips_register_move_cost): Remove comment.
3468         (mips_register_move_cost): Check for specific COP*_REGS classes,
3469         instead of ALL_COP_AND_GR_REGS.
3470         (mips_ira_cover_classes): New function.
3471         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3472         (TARGET_IRA_COVER_CLASSES): Define.
3473
3474 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
3475
3476         PR c++/37553
3477         * tree.c (build_type_attribute_qual_variant): Hash on the
3478         unqualified type, and don't overwrite an existing
3479         (type_hash_eq): Make the TYPE_NAME of the types significant, to
3480         allow distinguishing between wchar_t and its underlying type. This
3481         also means that we'll retain a little more typedef information.
3482
3483 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
3484             Dmitry Melnik  <dm@ispras.ru>
3485             Dmitry Zhurikhin  <zhur@ispras.ru>
3486             Alexander Monakov  <amonakov@ispras.ru>
3487             Maxim Kuvyrkov  <maxim@codesourcery.com>
3488
3489         * target.h (struct gcc_target): Update prototypes of needs_block_p
3490         and gen_spec_check.
3491         * haifa-sched.c (create_check_block_twin): Update calls to the above.
3492         * sel-sched.c (create_speculation_check): Likewise.
3493         * doc/tm.texi: Provide documentation for new target hooks.
3494
3495         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
3496         (ia64_gen_spec_insn): Removed.
3497         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3498         ia64_gen_spec_check): New static functions.
3499         (ia64_alloc_sched_context, ia64_init_sched_context,
3500         ia64_set_sched_context, ia64_clear_sched_context,
3501         ia64_free_sched_context, ia64_get_insn_spec_ds,
3502         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3503         (ia64_needs_block_p): Change prototype.
3504         (ia64_gen_check): Rename to ia64_gen_spec_check.
3505         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
3506         into declaration, add special memory dependencies handling.
3507         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3508         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3509         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3510         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3511         Define new target hooks.
3512         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3513         (ia64_optimization_options): Turn on selective scheduling with -O3,
3514         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3515         default with selective scheduling.
3516         (ia64_override_options): Initialize align_loops and align_functions
3517         to 32 and 64, respectively.  Set global selective scheduling flags
3518         according to target-dependent flags.
3519         (rtx_needs_barrier): Support UNSPEC_LDS_A.
3520         (group_barrier_needed): Use new mstop-bit-before-check flag.
3521         Add heuristic.
3522         (dfa_state_size): Make global.
3523         (spec_check_no, max_uid): Remove.
3524         (mem_ops_in_group, current_cycle): New variables.
3525         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3526         Initialize new variables.
3527         (is_load_p, record_memory_reference): New functions.
3528         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3529         reached.
3530         (ia64_variable_issue): Change use of current_sched_info to
3531         sched_deps_info.  Update comment.  Note if a load or a store is issued.
3532         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3533         advance if maximal number of loads or stores was issued on current
3534         cycle.
3535         (scheduled_good_insn): New static helper function.
3536         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3537         a group barrier is needed.  Fix vertical spacing.  Guard the code
3538         doing state transition with last_scheduled_insn check.
3539         Mark that a stop bit should be before current insn if there was a
3540         cycle advance.  Update current_cycle and mem_ops_in_group.
3541         (ia64_h_i_d_extended): Change use of current_sched_info to
3542         sched_deps_info. Reallocate stops_p by larger chunks.
3543         (struct _ia64_sched_context): New structure.
3544         (ia64_sched_context_t): New typedef.
3545         (ia64_alloc_sched_context, ia64_init_sched_context,
3546         ia64_set_sched_context, ia64_clear_sched_context,
3547         ia64_free_sched_context): New static functions.
3548         (gen_func_t): New typedef.
3549         (get_spec_load_gen_function): New function.
3550         (SPEC_GEN_EXTEND_OFFSET): Declare.
3551         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3552         (get_mode_no_for_insn): Change the condition that prevents use of
3553         special hardware registers so it can now handle pseudos.
3554         (get_spec_unspec_code): New function.
3555         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3556         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3557         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3558         during selective scheduling.
3559         (ia64_speculate_insn): Use ds_get_speculation_types when
3560         determining whether we need to change the pattern.
3561         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3562         (ia64_spec_check_src_p): Support new speculation/check codes.
3563         (struct bundle_state): New field.
3564         (issue_nops_and_insn): Initialize it.
3565         (insert_bundle_state): Minimize mid-bundle stop bits.
3566         (important_for_bundling_p): New function.
3567         (get_next_important_insn): Use important_for_bundling_p.
3568         (bundling): When shifting TImode from unimportant insns, ignore
3569         also group barriers.  Assert that best state is found before
3570         the backward bundling pass.  Print number of mid-bundle stop bits.
3571         Minimize mid-bundle stop bits.  Check correct calculation of
3572         mid-bundle stop bits.
3573         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3574         (final_emit_insn_group_barriers): Emit stop bits before insns starting
3575         a new cycle.
3576         (sel2_run): New variable.
3577         (ia64_reorg): When flag_selective_scheduling2 is set, run the
3578         selective scheduling pass instead of schedule_ebbs.
3579
3580         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3581         (UNSPEC_LDS_A): New UNSPEC.
3582         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3583         movti_internal, movsf_internal, movdf_internal,
3584         movxf_internal): Make visible.  Add speculable* attributes.
3585         (output_c_nc): New mode attribute.
3586         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3587         mov<mode>_nc, zero_extend<mode>di2_nc,
3588         advanced_load_check_nc_<mode>): New insns.
3589         (zero_extend*): Add speculable* attributes.
3590
3591         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3592         (msched-stop-bits-after-every-cycle): Likewise.
3593         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3594         Likewise.
3595         (msched-spec-verbose): Remove.
3596         (msched-prefer-non-data-spec-insns,
3597         msched-prefer-non-control-spec-insns,
3598         msched-count-spec-in-critical-path,
3599         msel-sched-dont-check-control-spec): Use Target  Report Var
3600         instead of Common Report Var.
3601
3602         * config/ia64/itanium2.md: Remove incorrect bypass.
3603
3604         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3605
3606 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3607
3608         PR middle-end/37805
3609         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3610         and -fhelp=separate.
3611
3612 2008-10-14  Ben Elliston  <bje@au.ibm.com>
3613
3614         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3615
3616 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
3617
3618         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3619         non-integer modes.
3620
3621 2008-10-13  Matthias Klose  <doko@ubuntu.com>
3622
3623         * config/pa/linux-atomic.c: Work around missing header file
3624         for hppa64-linux-gnu targets.
3625
3626 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3627             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3628             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
3629             Grace Cao  <grace_cao@playstation.sony.com>
3630
3631         * doc/invoke.texi (-mgen-cell-microcode): Document.
3632         (-mwarn-cell-microcode): Document.
3633         * cfglayout.c (locator_location): Export.
3634         * rtl.h (locator_location): Define prototype.
3635         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3636         New predicate.
3637         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3638         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3639         (mwarn-cell-microcode): New option.
3640         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3641         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3642         cell and not already set.
3643         Turn off string instructions if not generating cell microcode.
3644         (rs6000_final_prescan_insn): New function that warns about microcoded
3645         instructions.
3646         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3647         * config/rs6000/rs6000.md
3648         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3649         the instruction would have been microcoded on the Cell.  Set
3650         cell_micro to always on unnamed patterns for the string instructions.
3651         (cell_micro): Update definition, remove load/store conditional
3652         microcoded.
3653         (sign_extend:DI): Define new pattern for non microcoded version.
3654         (sign_extend:SI): Likewise.
3655         (compare (div:P)): Set cell_micro to not.
3656         (andsi3): Define as an expand.
3657         (andsi3_mc): New pattern.
3658         (andsi3_nomc): New pattern.
3659         (andsi3_internal0_nomc): New pattern.
3660         (andsi3_internal2): Rename to ...
3661         (andsi3_internal2_mc): this and enable iff generating microcode.
3662         (andsi3_internal3): Rename to ...
3663         (andsi3_internal3_mc): this and enable iff generating microcode.
3664         (andsi3_internal4): Enable iif generating microcode.
3665         (andsi3_internal5): Rename to ..
3666         (andsi3_internal5_mc): this and enable iff generating microcode.
3667         (andsi3_internal5_nomc): New pattern.
3668         (extzvdi_internal1): Enable iff generating microcode.
3669         (extzvdi_internal2): Likewise.
3670         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3671         (anddi3): Change to expand.
3672         (anddi3_mc): Rename from anddi3.
3673         (anddi3_no_mc): New pattern.
3674         (anddi3_internal2): Rename to ..
3675         (anddi3_internal2_mc): this and enable iff generating microcode.
3676         (anddi3_internal2_nomc): New pattern.
3677         (anddi3_internal3): Rename to ..
3678         (anddi3_internal3_mc): this and enable iff generating microcode.
3679         (anddi3_internal3_nomc): New pattern.
3680         (movti_string): Set cell_micro to always if TARGET_STRING.
3681         (stmsi8): Set cell_micro to always.
3682         (stmsi7): Likewise.
3683         (stmsi6): Likewise.
3684         (stmsi5): Likewise.
3685         (stmsi4): Likewise.
3686         (stmsi3): Likewise.
3687         (stmsi8_power): Likewise.
3688         (stmsi7_power): Likewise.
3689         (stmsi6_power): Likewise.
3690         (stmsi5_power): Likewise.
3691         (stmsi4_power): Likewise.
3692         (stmsi3_power): Likewise.
3693         (movsi_update2): Enable iff generating microcode.
3694         (movhi_update3): Likewise.
3695         (lmw): Set cell_micro to always.
3696
3697 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
3698
3699         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3700         * config/s390/s390.c (machine_function): Remove
3701         decomposed_literal_pool_addresses_ok_p.
3702         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3703         the difference of two labels.
3704         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3705         (s390_pool_offset): New function.
3706         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3707         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3708
3709 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
3710
3711         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3712         (powerpc*-*-linux-gnu*): Describe.
3713         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3714         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3715         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3716         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3717         config/rs6000/e500crtres32gpr.asm,
3718         config/rs6000/e500crtres64gpr.asm,
3719         config/rs6000/e500crtres64gprctr.asm,
3720         config/rs6000/e500crtrest32gpr.asm,
3721         config/rs6000/e500crtrest64gpr.asm,
3722         config/rs6000/e500crtresx32gpr.asm,
3723         config/rs6000/e500crtresx64gpr.asm,
3724         config/rs6000/e500crtsav32gpr.asm,
3725         config/rs6000/e500crtsav64gpr.asm,
3726         config/rs6000/e500crtsav64gprctr.asm,
3727         config/rs6000/e500crtsavg32gpr.asm,
3728         config/rs6000/e500crtsavg64gpr.asm,
3729         config/rs6000/e500crtsavg64gprctr.asm: Use it.
3730         * config/rs6000/crtsavres.asm: Really remove.
3731
3732 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
3733
3734         Fix PR/25502
3735         * c-format.c (convert_format_name_to_system_name): Use
3736         TARGET_OVERRIDES_FORMAT_INIT.
3737         * config.gcc (extra_options): Add for mingw targets mingw.opt.
3738         * config/i386/mingw.opt: New.
3739         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3740         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3741         (ms_printf_length_specs): Removed const specifier.
3742         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3743         * doc/invoke.texi (Wno-pedantic-ms-format): New.
3744
3745 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3746
3747         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3748         * doc/install.texi: Bump recommended MPFR to 2.3.2.
3749
3750 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
3751
3752         PR middle-end/37808
3753         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3754         sure that ref has valid bb.
3755
3756 2008-10-12  Richard Henderson  <rth@redhat.com>
3757
3758         PR middle-end/37447
3759         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3760         * alias.c (value_addr_p, stack_addr_p): Remove.
3761         (nonoverlapping_memrefs_p): Remove IRA special case.
3762         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3763         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3764         * reload1.c (alter_reg): Use it.
3765
3766 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
3767
3768         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3769         of registers instead of eax, ebx, ecx and edx.  Use for loop
3770         and check register for non-zero value before the call
3771         to decode_caches_intel.
3772
3773 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3774
3775         PR rtl-optimization/37448
3776         * df.h (df_ref_class): New enum.
3777         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3778         (struct df_ref): Replaced with union df_ref_d.
3779         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3780         New members of df_ref_d union.
3781         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3782         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3783         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3784         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3785         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3786         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3787         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3788         (df_scan_bb_info, df_bb_regno_first_def_find,
3789         df_bb_regno_last_def_find, df_find_def, df_find_use,
3790         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3791         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3792         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3793         df_get_artificial_defs, df_get_artificial_uses, union_defs)
3794         Replaced struct df_ref * with df_ref.
3795         * df-scan.c (df_collection_rec, df_null_ref_rec,
3796         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3797         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3798         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3799         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3800         df_reorganize_refs_by_reg_by_reg,
3801         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3802         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3803         df_sort_and_compress_refs, df_install_ref, df_install_refs,
3804         df_ref_record, df_get_conditional_uses, df_get_call_refs,
3805         df_bb_refs_record, df_exit_block_uses_collect,
3806         df_record_exit_block_uses, df_reg_chain_mark,
3807         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3808         df_ref * with df_ref.
3809         (df_ref_record, df_uses_record, df_ref_create_structure): Added
3810         df_ref_class parameter.
3811         (df_scan_problem_data): Added new pools for different types of refs.
3812         (df_scan_free_internal, df_scan_alloc, df_free_ref,
3813         df_ref_create_structure): Processed new ref pools.
3814         (df_scan_start_dump): Added counts of refs and insns.
3815         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3816         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3817         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3818         code to pass df_ref_class down to ref creation functions.
3819         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3820         df_reg_chain_mark): Use macros to hide references to df_refs.
3821         (df_ref_chain_change_bb): Removed.
3822         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3823         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3824         Enhanced to understand df_ref union structure.
3825         * fwprop.c (local_ref_killed_between_p, use_killed_between,
3826         all_uses_available_at, update_df, try_fwprop_subst,
3827         forward_propagate_subreg, forward_propagate_and_simplify,
3828         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3829         df_ref * with df_ref.
3830         (use_killed_between, all_uses_available_at): Use macros to hide
3831         references to df_refs.
3832         * regstat.c (regstat_bb_compute_ri,
3833         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3834         df_ref.
3835         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3836         see_handle_relevant_refs, see_analyze_one_def,
3837         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3838         struct df_ref * with df_ref.
3839         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3840         global_conflicts): Replaced struct df_ref * with df_ref.
3841         * ddg.c (create_ddg_dep_from_intra_loop_link,
3842         add_cross_iteration_register_deps, build_inter_loop_deps):
3843         Replaced struct df_ref * with df_ref.
3844         (create_ddg_dep_from_intra_loop_link,
3845         add_cross_iteration_register_deps): Use macros to hide references
3846         to df_refs.
3847         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3848         df_ref * with df_ref.
3849         * df-core.c (df_bb_regno_first_def_find,
3850         df_bb_regno_last_def_find, df_find_def, df_find_use,
3851         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3852         debug_df_ref): Replaced struct df_ref * with df_ref.
3853         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3854         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3855         df_ref.
3856         * web.c (union_defs, entry_register, replace_ref, web_main):
3857         Replaced struct df_ref * with df_ref.
3858         (union_defs, replace_ref): Use macros to hide references to df_refs.
3859         * global.c (compute_regs_asm_clobbered, build_insn_chain):
3860         Replaced struct df_ref * with df_ref.
3861         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3862         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
3863         Replaced struct df_ref * with df_ref.
3864         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3865         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3866         with df_ref.
3867         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3868         * df-byte-scan.c (df_compute_accessed_bytes_extract,
3869         df_compute_accessed_bytes_strict_low_part,
3870         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3871         Replaced struct df_ref * with df_ref.
3872         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3873         * init-regs.c (initialize_uninitialized_regs): Replaced struct
3874         df_ref * with df_ref.
3875         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3876         check_dependency, check_dependencies, record_uses): Replaced
3877         struct df_ref * with df_ref.
3878         (invariant_for_use, check_dependency): Use macros to hide
3879         references to df_refs.
3880         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3881         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3882         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3883         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3884         references to df_refs.
3885         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3886         with df_ref.
3887         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3888         * df-problems.c (df_rd_bb_local_compute_process_def,
3889         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3890         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3891         df_chain_remove_problem, df_chain_create_bb_process_use,
3892         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3893         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3894         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3895         df_byte_lr_simulate_artificial_refs_at_top,
3896         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3897         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3898         df_simulate_uses, df_simulate_artificial_refs_at_end,
3899         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3900         df_ref.
3901         (df_chain_dump): Use macros to hide references to df_refs.
3902         * config/mips/mips.c (r10k_simplify_address): Replaced struct
3903         df_ref * with df_ref.
3904         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3905         mark_artificial_uses, mark_reg_dependencies,
3906         byte_dce_process_block): Replaced struct df_ref * with df_ref.
3907
3908 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
3909
3910         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3911         head comment.
3912         (array_ref_element_size): Likewise.
3913         (array_ref_low_bound): Likewise.
3914         (array_ref_up_bound): Likewise.
3915         * expr.c (contains_packed_reference): Likewise.
3916         (array_ref_element_size): Likewise.
3917         (array_ref_low_bound): Likewise.
3918         (array_ref_up_bound): Likewise.
3919         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3920         with ARRAY_RANGE_REF.
3921         (idx_find_step): Likewise.
3922         (idx_record_use): Likewise.
3923         (strip_offset_1): Likewise.
3924         (idx_remove_ssa_names): Likewise.
3925
3926 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
3927             Andi Kleen  <ak@linux.intel.com>
3928
3929         * config/i386/cpuid.h (__cpuid_count): New defines.
3930         * config/i386/driver-i386.c (struct cache_desc): New structure.
3931         (describe_cache): Use struct cache_desc to pass cache descriptions.
3932         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3933         (detect_caches_amd): Use struct cache_desc to describe caches.
3934         (decode_caches_intel): Use struct cache_desc to pass cache
3935         descriptions.  Update descriptions to match latest (rev -032,
3936         December 2007) CPUID documentation.  Do not check valid bit here.
3937         Check for Xeon MP value 0x49 problems.
3938         (detect_caches_cpuid2): New function, split from detect_caches_intel.
3939         Check valid bit before calling decode_caches_intel.  Detect number
3940         of times to repeat CPUID instruction.
3941         (detect_caches_cpuid4): New function.
3942         (detect_caches_intel): Depending on max_level, call
3943         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
3944         only when other methods fail to provide valid L2 cache description.
3945
3946 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3947
3948         PR middle-end/37608
3949         * pa.md (call, call_value): Generate an rtx for register r4 and pass
3950         it to PIC call patterns.
3951         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
3952         code generation and attributes from pattern.  Change peephole2 to
3953         split for noreturn case.  Revise split pattern for non noreturn case.
3954         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3955         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3956         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
3957         asserts.
3958
3959 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
3960
3961         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
3962         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
3963         and fp_type.
3964         (divdf3): Reformat long line.
3965
3966 2008-10-11  Michael J. Eager  <eager@eagercon.com>
3967
3968         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
3969         -mfpu options.
3970         (rs6000_handle_option): Process -mfpu options.
3971         * config/rs6000/rs6000.h (TARGET_XILINX_FPU): New.
3972         (enum fpu_type_t): New.
3973         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
3974         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
3975         fp_type.
3976         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
3977         (floatdidf2): Add TARGET_SINGLE_FPU condition.
3978         * config/rs6000/rs6000.opt (-mfpu): New.
3979         (-mxilinx-fpu): New.
3980         * config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New.
3981         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
3982         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
3983         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
3984         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
3985
3986 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
3987
3988         PR target/35760
3989         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
3990         LO_SUM on Darwin if mode has just one unit.
3991
3992 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
3993
3994         PR debug/37002
3995         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
3996         has been optimized out.
3997
3998 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
3999
4000         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
4001         instead of PIC_DIRECT_ADDR_P.
4002         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
4003         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
4004         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
4005         (PIC_OFFSET_P): Rename to...
4006         (PCREL_SYMOFF_P): ...this.
4007         (PIC_DIRECT_ADDR_P): Delete.
4008         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
4009         PIC_OFFSET_P.
4010         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
4011         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
4012         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
4013         * config/sh/sh.c (print_operand): Remove CONST handling.
4014         (unspec_caller_rtx_p): Rewrite to use split_const and check
4015         the operands of UNSPEC bases.
4016         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
4017         with (unspec [A B] UNSPEC_SYMOFF).
4018         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
4019         UNSPEC_PCREL_SYMOFF.
4020         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
4021         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
4022         (UNSPEC_EXTRACT_U16): Likewise.
4023         (UNSPEC_SYMOFF): Likewise.
4024         (UNSPEC_PCREL_SYMOFF): Likewise.
4025         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
4026         of constants.
4027         (movsi_const_16bit): Likewise.
4028         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
4029         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
4030         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
4031         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
4032         with (unspec [A B] UNSPEC_SYMOFF).
4033         (symPLT_label2reg): Replace (minus A (minus B pc)) with
4034          (unspec [A B] PCREL_UNSPEC_SYMOFF).
4035         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
4036         (Csu): Likewise UNSPEC_EXTRACT_U16.
4037         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
4038         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
4039
4040 2008-10-10  Stepan Kasal  <skasal@redhat.com>
4041
4042         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
4043         for loop strip mining and loop blocking.
4044
4045 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
4046
4047         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
4048         vary types depending on debug info.
4049
4050 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
4051
4052         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
4053         before ensuring it's already computed.
4054
4055 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
4056
4057         * rtl.h (locator_eq): New decl.
4058         * cfglayout.c (locator_scope): New function.
4059         (insn_scope): Use it.
4060         (locator_eq): New function.
4061         (fixup_reorder_chain): Search for last insn in src bb
4062         that has locator set or first insn in dest bb.  Use
4063         locator_eq instead of == to compare locators.
4064         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
4065         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
4066         == to compare locators.
4067
4068         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
4069         as used.
4070         * gimple-low.c (lower_function_body, lower_gimple_return,
4071         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
4072         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
4073         goto_block on edges if goto_locus is known.
4074
4075         PR middle-end/37774
4076         * tree.h (get_object_alignment): Declare.
4077         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
4078         get_object_alignment if needed.
4079         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
4080         handling to ...
4081         (get_object_alignment): ... here.  New function.  Try harder to
4082         determine alignment from get_inner_reference returned offset.
4083
4084 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
4085
4086         * graphite.c (gloog): Don't call find_unreachable_blocks
4087         before delte_unreachable_blocks.
4088
4089         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
4090         goto_locus of true_edge into RTL locator.
4091
4092 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
4093
4094         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
4095         (*jcc_btdi_mask_rex64): Ditto.
4096         (*jcc_btsi): Ditto.
4097         (*jcc_btsi_mask): Ditto.
4098         (*jcc_btsi_1): Ditto.
4099         (*jcc_btsi_mask_1): Ditto.
4100
4101 2008-10-08  Paul Brook  <paul@codesourcery.com>
4102
4103         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
4104         compatible profiler (__gnu_mcount_nc).
4105         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
4106
4107 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
4108
4109         * config/i386/i386.c (initial_ix86_tune_features): Add
4110         X86_TUNE_USE_VECTOR_FP_CONVERTS.
4111         * config/i386/i386.h (ix86_tune_indices): Likewise.
4112         (TARGET_USE_VECTOR_FP_CONVERTS): New.
4113
4114         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
4115         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
4116         for FP to FP splitters.
4117
4118 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
4119
4120         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
4121         splitter.
4122
4123 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
4124
4125         PR target/36635
4126         PR target/37290
4127         PR rtl-optimization/37341
4128         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
4129         to ORIG_BB, pass through ORIG_BB recursively.
4130         (cse_condition_code_reg): Adjust caller.
4131
4132 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
4133
4134         * sdbout.c (sdbout_one_type): Treat the value type
4135         CONST_DECL for enumerals.
4136
4137 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4138
4139         * config/i386/i386.md: Remove trailing white spaces.
4140
4141 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
4142
4143         PR rtl-optimization/37448
4144         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
4145         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
4146         Make unsigned long.
4147         (struct output_info) [count]: Renamed total_created and made
4148         unsigned long.
4149         (struct output_info) [size]: Renamed total_allocated and made
4150         unsigned long.
4151         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
4152         Properly keep track of desc->size.
4153         (print_statistics, dump_alloc_pool_statistics): Enhance the
4154         printing of statistics to print the number of elements and to use
4155         unsigned longs.
4156
4157 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
4158
4159         PR middle-end/37576
4160         * opts.h (CL_SAVE): Move up to flags range.
4161         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
4162         CL_COMMON): Renumber.
4163         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
4164         * opts.c (common_handle_option): Revert last change.
4165
4166 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4167
4168         * config/i386/i386-protos.h (ix86_schedule): New.
4169
4170         * config/i386/i386.c (ix86_schedule): New.
4171         (override_options): Add schedule to processor_alias_table.  Set
4172         ix86_schedule from the schedule field in processor_alias_table.
4173         (ix86_function_specific_save): Save ix86_schedule.
4174         (ix86_function_specific_restore): Restore ix86_schedule.
4175
4176         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
4177         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
4178         and generic32.
4179
4180         * config/i386/i386.opt: Add schedule.
4181
4182         * config/i386/ppro.md: Remove generic32.
4183
4184 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
4185
4186         PR c/35437
4187         * expr.c (count_type_elements): Handle ERROR_MARK.
4188
4189 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
4190
4191         PR debug/29609
4192         PR debug/36690
4193         PR debug/37616
4194         * basic-block.h (struct edge_def): Add goto_block field.
4195         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
4196         one insn with locus corresponding to edge's goto_locus if !optimize.
4197         * profile.c (branch_prob): Copy edge's goto_block.
4198         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
4199         emitted jumps.
4200         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
4201         locator in between the merged basic blocks if !optimize and needed.
4202         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
4203         goto_locus into RTL locator.  For unconditional jump use that
4204         locator for the jump insn.
4205         (expand_gimple_cond): Convert goto_block and goto_locus into
4206         RTL locator for all remaining edges.  For unconditional jump
4207         use that locator for the jump insn.
4208         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
4209         there is more than one edge or insn locator along the forwarding
4210         edges and !optimize.  If there is just one, set e->goto_locus.
4211         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
4212         edge's goto_block.
4213         (move_block_to_fn): Adjust edge's goto_block.
4214
4215 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4216
4217         PR middle-end/37731
4218         * expmed.c (expand_mult): Properly check DImode constant in
4219         CONST_DOUBLE.
4220
4221 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
4222
4223         PR debug/37738
4224         * dwarf2out.c (common_block_die_table): New variable.
4225         (common_block_die_table_hash, common_block_die_table_eq): New
4226         functions.
4227         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
4228         COMMON block in the current scope rather than globally.  Optimize
4229         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
4230         DW_OP_addr SYMBOL_REF+off.
4231
4232 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
4233
4234         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
4235         Return true for non-addressable GIMPLE operands.
4236
4237 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4238
4239         PR target/24765
4240         * config/i386/i386.c (initial_ix86_tune_features): Remove
4241         X86_TUNE_USE_BIT_TEST.
4242         * config/i386/i386.h (ix86_tune_indices): Likewise.
4243         (TARGET_USE_BIT_TEST): Removed.
4244
4245 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4246
4247         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
4248
4249 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
4250
4251         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
4252         (mul<mode>3_mul3): ... into this new template.
4253
4254 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
4255
4256         * gimplify.c (gimplify_arg): Add location argument.  Use it.
4257         (gimplify_call_expr): Pass location to gimplify_arg.
4258         (gimplify_modify_expr_to_memcpy): Same.
4259         (gimplify_modify_expr_to_memset): Same.
4260
4261 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4262
4263         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4264         Update calls to build_unary_op and build_indirect_ref for location
4265         changes.
4266
4267 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
4268
4269         build_modify_expr.
4270         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
4271         * c-typeck.c (array_to_pointer_conversion): Pass location to
4272         build_unary_op.
4273         (function_to_pointer_conversion): Use error_at and warning_at.
4274         (build_indirect_ref): Same.
4275         (build_array_ref): Pass location to build_binary_op.
4276         (parser_build_unary_op): Do not set location after calling
4277         build_unary_op.
4278         (build_unary_op): Add location argument.  Use it throughout.  Set
4279         EXPR_LOCATION before returning new tree.
4280         (build_modify_expr): Same.
4281         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
4282         returning node.
4283         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
4284         build_indirect_ref, build_modify_expr.
4285         (c_finish_omp_for): Same.  Use error_at instead of error.
4286         * c-common.c (c_common_truthvalue_conversion): Pass location to
4287         build_unary_op.
4288         (warn_for_div_by_zero): Add location argument.
4289         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
4290         build_unary_op, warn_for_div_by_zero.
4291         * c-parser.c (c_parser_typeof_specifier): Use
4292         protected_set_expr_location.
4293         (c_parser_statement_after_labels): Same.
4294         (c_parser_condition): Same.
4295         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
4296         (c_parser_conditional_expression): Use protected_set_expr_location.
4297         (c_parser_unary_expression): Pass location to build_indirect_ref.
4298         (c_parser_postfix_expression_after_primary): Pass location to
4299         build_indirect_ref, build_unary_op.
4300         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
4301
4302 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
4303
4304         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
4305         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
4306         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
4307         r14000 and r16000.
4308         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
4309         (mips_issue_rate): Handle PROCESSOR_R10000.
4310         * config/mips/mips.md (cpu): Add r10000.
4311         Include r10000.md.
4312         * config/mips/10000.md: New file.
4313
4314 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
4315
4316         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
4317         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
4318         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
4319
4320 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
4321
4322         * config/darwin-protos.h (machopic_function_base_name): Delete.
4323         (machopic_function_base_sym): Likewise.
4324         (machopic_gen_offset): Declare.
4325         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
4326         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
4327         * config/darwin.c (machopic_function_base_name): Delete.
4328         (machopic_function_base_sym): Likewise.
4329         (gen_pic_offset): Rename to...
4330         (machopic_gen_offset): ...this and remove the pic_base argument.
4331         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
4332         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
4333         crtl->uses_pic_offset_table.
4334         (machopic_indirect_data_reference): Use new machopic_gen_offset
4335         interface.
4336         (machopic_legitimize_pic_address): Likewise.
4337         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
4338
4339         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
4340         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
4341         * config/i386/i386.c (output_set_got): Likewise.
4342         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
4343         instead of a MINUS.
4344         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
4345         (legitimate_address_p): Likewise.
4346         (output_pic_addr_const): Likewise.
4347         (output_addr_const_extra): Likewise.
4348         (ix86_delegitimize_address): Expect darwin_local_data_pic to
4349         match an UNSPEC rather than a MINUS.
4350         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
4351         (builtin_setjmp_receiver): Use machopic_gen_offset.
4352         * config/i386/predicates.md (pic_symbolic_operand): Handle
4353         UNSPEC_MACHOPIC_OFFSET.
4354
4355         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4356         Use machopic_gen_offset and machopic_operand_p.
4357         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
4358         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
4359         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
4360         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
4361         Set crtl->uses_pic_offset_table.
4362
4363 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
4364
4365         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
4366         Declare.
4367         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
4368         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
4369         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
4370         (constant_pool_expr_p): Use split_const and check the base.
4371         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
4372         instead of a MINUS.
4373         (legitimate_constant_pool_address_p): Check toc_relative_p
4374         instead of constant_pool_expr_p.
4375         (print_operand_address): Always use output_addr_const for
4376         constant pool addresses.
4377         (rs6000_output_addr_const_extra): New function.
4378         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
4379
4380 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
4381
4382         PR middle-end/37535
4383
4384         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4385         (mark_ref_live, mark_ref_dead): Use them.
4386         (def_conflicts_with_inputs_p): Remove.
4387         (mark_early_clobbers): New function.
4388         (process_bb_node_lives): Call preprocess_constraints and
4389         mark_early_clobbers.
4390
4391         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
4392
4393 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
4394
4395         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
4396         lib with -mthread switch.
4397
4398 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
4399
4400         PR c++/37410
4401         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
4402         function in two, making it call a new and reusable
4403         dwarf2out_imported_module_or_decl() that takes the containing
4404         BLOCK of the declaration in argument.
4405         (dwarf2out_imported_module_or_decl_real): New function.
4406         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
4407         IMPORTED_DECL in account.
4408         * tree.def: Added IMPORTED_DECL node type.
4409         * tree.h: Added accessors for IMPORTED_DECL nodes.
4410         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
4411
4412 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4413
4414         * doc/gimple.texi: Fix some typos, wrap some long lines,
4415         fix some broken wraps with continuations.
4416         * tree-ssa-reassoc.c: Fix comment typos.
4417
4418 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4419
4420         PR target/37603
4421         * pa.c (legitimize_pic_address): Force function labels to memory in
4422         word mode.
4423
4424 2008-10-04  Anton Blanchard  <anton@samba.org>
4425
4426         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
4427         (rs6000_split_atomic_op): Same.
4428         (rs6000_split_compare_and_swap): Same.
4429         (rs6000_split_compare_and_swapqhi): Same.
4430
4431 2008-10-04  Richard Guenther  <rguenther@suse.de>
4432
4433         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
4434         instead of pointer equality.
4435         (vn_nary_op_eq): Likewise.
4436
4437 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4438
4439         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
4440         condition.
4441         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
4442         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
4443
4444 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
4445
4446         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4447         Revert previous change.
4448
4449 2008-10-03  Tom Tromey  <tromey@redhat.com>
4450
4451         * stringpool.c (ggc_alloc_string): Terminate string.
4452
4453 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
4454
4455         * gimplify.c (gimplify_function_tree): For -finstrument-functions
4456         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
4457         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
4458
4459         PR debug/37726
4460         * gimplify.c (declare_vars): Use gimple_bind_block instead of
4461         gimple_block.
4462
4463 2008-10-03  Pascal Obry  <obry@adacore.com>
4464
4465         * gcov.c (create_file_names): Properly handle UNIX and DOS
4466         directory separators.
4467         (make_gcov_file_name): Likewise + convert the ':' DOS drive
4468         separator to '~' to ensure clean filenames on Windows.
4469
4470 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
4471
4472         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4473         Add a null terminator to the stripped name.
4474
4475 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
4476
4477         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
4478         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4479         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
4480         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
4481         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4482         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
4483         TARGET_SINGLE_FLOAT.
4484
4485 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
4486
4487         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
4488
4489 2008-10-02  Richard Guenther  <rguenther@suse.de>
4490
4491         PR middle-end/37713
4492         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
4493         and VECTOR_TYPE recurse with useless_type_conversion_p which
4494         properly handles void pointer conversion.
4495
4496 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
4497
4498         PR target/37528
4499         * config/i386/mingw32.h (LIBGCC_SPEC): Replace with ..
4500         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
4501
4502 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4503
4504         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4505         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
4506         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
4507         they translate to non builtins.
4508         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
4509         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
4510         __builtin_vec_promote, __builtin_vec_extract, and
4511         __builtin_vec_insert.
4512         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
4513         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
4514         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
4515         * config/rs6000/altivec.h (vec_extract): Define
4516         (vec_insert): Define.
4517         (vec_splats): Define.
4518         (vec_promote): Define.
4519
4520 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4521             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
4522             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
4523
4524         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
4525         Altivec intrinsics.
4526         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
4527         prototype.  Add new parameter, blk.
4528         Use BLKmode for the MEM if blk is true.
4529         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
4530         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
4531         ALTIVEC_BUILTIN_STVRXL.
4532         Update usage of altivec_expand_lv_builtin.
4533         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
4534         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
4535         (altivec_init_builtins): If compiling for the Cell, also define the
4536         cell VMX builtins.
4537         * config/rs6000/rs6000.h (rs6000_builtins): Define
4538         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
4539         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
4540         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
4541         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
4542         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
4543         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
4544         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
4545         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
4546         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
4547         UNSPEC_STVRX, and UNSPEC_STVRXL.
4548         (altivec_lvlx): New pattern.
4549         (altivec_lvlxl): New pattern.
4550         (altivec_lvrx): New pattern.
4551         (altivec_lvrxl): New pattern.
4552         (altivec_stvlx): New pattern.
4553         (altivec_stvlxl): New pattern.
4554         (altivec_stvrx): New pattern.
4555         (altivec_stvrxl): New pattern.
4556         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
4557         (vec_lvlxl): Likewise.
4558         (vec_lvrx): Define if PPU is defined.
4559         (vec_lvrxl): Likewise.
4560         (vec_stvlx): Define if PPU is defined.
4561         (vec_stvlxl): Likewise.
4562         (vec_stvrx): Define if PPU is defined.
4563         (vec_stvrxl): Likewise.
4564
4565 2008-10-01  Geert Bosch  <bosch@adacore.com>
4566
4567         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
4568
4569 2008-10-01  Richard Guenther  <rguenther@suse.de>
4570
4571         PR tree-optimization/37617
4572         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
4573         do not add to the NEW_SETS.
4574
4575 2008-10-01  Richard Guenther  <rguenther@suse.de>
4576
4577         PR middle-end/37285
4578         * tree-vrp.c (execute_vrp): If we optimized away the default
4579         case make sure to promote the label that got in place of it
4580         to a default case label.
4581
4582 2008-10-01  Richard Henderson  <rth@redhat.com>
4583
4584         PR tree-opt/35737
4585         * tree-complex.c (set_component_ssa_name): Don't optimize
4586         is_gimple_min_invariant values with ssa_names in abnormal phis.
4587
4588 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
4589
4590         PR tree-optimization/37662
4591         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
4592         commutative binary operation if they are in the wrong order and
4593         fold_build2 produces non-GIMPLE.
4594
4595 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
4596
4597         PR tree-optimization/37662
4598         PR tree-optimization/37663
4599         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
4600         get_value_range with non-SSA_NAME.  Don't assert operands have been
4601         folded, instead just bail out.
4602
4603 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4604
4605         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
4606
4607 2008-09-30  Richard Guenther  <rguenther@suse.de>
4608
4609         PR middle-end/37491
4610         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
4611         build restrict-qualified pointers.
4612         (vectorizable_store): Move alias check later.
4613         (vectorizable_load): Likewise.
4614
4615 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
4616
4617         * c-common.c (empty_if_body_warning): Remove.
4618         * c-common.h (empty_if_body_warning): Remove.
4619         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
4620         here the -Wempty-body warning for `if' and `else' statements.
4621         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
4622
4623 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
4624
4625         * config/i386/i386.opt: Add msse2avx.
4626
4627         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
4628         * config/i386/linux64.h (ASM_SPEC): Likewise.
4629
4630         * doc/invoke.texi: Document -msse2avx.
4631
4632 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
4633
4634         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
4635
4636 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
4637
4638         * ifcvt.c (noce_emit_store_flag): If using condition from original
4639         jump, reverse it if if_info->cond was reversed.
4640
4641 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
4642
4643         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4644         non-constant memory if it cannot be forced to constant memory.
4645         Overhaul surrounding code and factor out common condition.
4646
4647 2008-09-29  Jeff Law <law@redhat.com>
4648
4649         * reload1.c (alter_reg): Add missing curly braces.
4650
4651 2008-09-29  Michael J. Eager  <eager@eagercon.com>
4652
4653         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4654         are easy.
4655         * config/rs6000/rs6000.c (rs6000_override_options): Move
4656         rs6000_init_hard_regno_mode_ok after all options changed.
4657         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4658         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4659         -msimple-fpu flags.  Add warning messages if single FP not configured.
4660         (rs6000_file_start): Output gnu_attribute for single-float.
4661         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4662         (rs6000_legitimize_address): Likewise.
4663         (rs6000_legitimize_reload_address): Likewise.
4664         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4665         TARGET_SINGLE_FLOAT.
4666         (function_arg_advance): Likewise (partial conversion).
4667         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4668         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4669         TARGET_SINGLE_FLOAT.
4670         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4671         (rs6000_emit_prologue): Likewise.
4672         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4673         TARGET_SINGLE_FLOAT.
4674         (rs6000_libcall_value): Likewise.
4675         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4676         (TARGET_DOUBLE_FLOAT): New default to 1
4677         (TARGET_SIMPLE_FPU): New default to 0
4678         (TARGET_SINGLE_FPU): New default to 0
4679         (TARGET_SINGLE_FLOAT_MODE): New.
4680         (TARGET_DOUBLE_FLOAT_MODE): New.
4681         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4682         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4683         UNITS_PER_FP_WORD
4684         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4685         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4686         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4687         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4688         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4689         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4690         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4691         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4692         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4693         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4694         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4695         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4696         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4697         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4698         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4699         cmptf_internal1, *cmptf_internal2): Condition on
4700         TARGET_DOUBLE_FLOAT.
4701         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4702         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4703         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4704         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4705         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4706         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4707         TARGET_SINGLE_FLOAT.
4708         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4709         * config/rs6000/rs6000.opt (-msingle-float): New.
4710         (-mdouble-float): New.
4711         (-msimple-fpu): New.
4712         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4713         -msingle-float, -mdouble-float, -msimple-fpu options.
4714         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4715         _SOFT_DOUBLE for -msingle-float.
4716         * config.gcc: New config for target=powerpc-xilinx-eabi.
4717
4718 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
4719
4720         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
4721         have exit and entry.
4722         (new_scop): Take entry and exit edge to define new SCoP.
4723         (sd_region_p): New structure used during SCoP detection.
4724         (move_scops): Delete.
4725         (move_sd_regions): New.
4726         (scopdet_info): Change the definition from edges back to basic_blocks.
4727         (scopdet_edge_info):  Work on basic_blocks and rename to
4728         scopdet_basic_block_info.
4729         (split_difficult_bb): At the moment removed. We should later
4730         add it at another place.
4731         (build_scops_1): Work on basic_blocks.
4732         (bb_in_sd_region): New.
4733         (find_single_entry_edge): New.
4734         (find_single_exit_edge): New.
4735         (create_single_entry_edge): New.
4736         (sd_region_without_exit): New.
4737         (create_single_exit_edge): New.
4738         (unmark_exit_edges): New.
4739         (mark_exit_edges): New.
4740         (create_sese_edges): New.
4741         (build_graphite_scops): New.
4742         (build_scops): Make SCoPs SESE.
4743         (limit_scops): Use the new functions.
4744
4745 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
4746
4747         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
4748
4749 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4750
4751         PR target/37640
4752         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
4753         address to a register before taking the lower part.
4754
4755 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4756
4757         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
4758         for SHmedia.
4759
4760 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4761             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
4762
4763         PR tree-opt/36891
4764         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
4765         the newly created variable.
4766         Create a VECTOR_CST of all 1s for vector types.
4767
4768 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
4769
4770         PR middle-end/36575
4771         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
4772
4773 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
4774
4775         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
4776         order to convert between modes.
4777         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
4778
4779 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4780
4781         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
4782         if needed.
4783
4784 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
4785
4786         Revert:
4787         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4788         * ira-lives.c:...
4789         * doc/rtl.texi:...
4790
4791 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
4792
4793         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
4794         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
4795         them to yield false with MIPS16.
4796
4797 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
4798
4799         PR middle-end/37275
4800         * dwarf2out.c (tls_mem_loc_descriptor): New function.
4801         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
4802         mem_loc_descriptor failed.  Accept UNSPEC.
4803         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
4804         fail if one of the loc_descriptor calls for pieces failed.
4805         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
4806         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
4807         if loc_descriptor_from_tree_1 on offset failed.
4808
4809         PR middle-end/37576
4810         * opts.c (common_handle_option): Don't call print_specific_help with
4811         CL_SAVE as first argument.
4812
4813 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
4814             Steve Ellcey  <sje@cup.hp.com>
4815
4816         * configure: Regenerate for new libtool.
4817         * aclocal.m4: Ditto.
4818
4819 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
4820
4821         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
4822         alias set on MEM when saving stack pointer.
4823         * config/rs6000/rs6000.md (allocate_stack): Likewise
4824
4825 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
4826
4827         PR tree-optimization/37574
4828         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
4829         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
4830         instead of vector_type for constants. Take computation out of loop.
4831         (vect_get_vec_def_for_operand): Use only vectype for constant case,
4832         and use only vector_type for invariant case.
4833         (get_initial_def_for_reduction): Use vectype instead of vector_type.
4834
4835 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
4836
4837         PR c/37645
4838         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
4839         the decl is a VAR_DECL or FUNCTION_DECL.
4840
4841 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4842
4843         PR middle-end/37535
4844         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4845         (mark_ref_live, mark_ref_dead): Use them.
4846         (def_conflicts_with_inputs_p): Remove.
4847         (mark_early_clobbers): New function.
4848         (process_bb_node_lives): Call preprocess_constraints and
4849         mark_early_clobbers.
4850
4851         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
4852
4853 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4854
4855         PR middle-end/37448
4856         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
4857         (ira_compress_allocno_live_ranges): New prototype.
4858
4859         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
4860         (coalesced_allocnos_living_at_program_points): New.
4861         (coalesced_allocnos_live_at_points_p,
4862         set_coalesced_allocnos_live_points): New functions.
4863         (coalesce_spill_slots): Rewrite.
4864
4865         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
4866         ira_compress_allocno_live_ranges): New functions.
4867
4868         * ira-build.c (ira_flattening): Call
4869         ira_compress_allocno_live_ranges.
4870         (ira_build): Ditto.
4871
4872 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4873
4874         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
4875         optimization.
4876
4877 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
4878
4879         * combine.c (make_compound_operation): Handle the 'E' format.
4880         (count_rtxs): Likewise.
4881         (update_table_tick): Likewise.
4882         (get_last_value_validate): Likewise.
4883
4884 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
4885
4886         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
4887
4888 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
4889
4890         * matrix-reorg.c (transform_allocation_sites): Initializers
4891         added to avoid the warning.
4892
4893 2008-09-25  Martin Jambor  <mjambor@suse.cz>
4894
4895         * cgraph.c (free_nodes): New variable.
4896         (NEXT_FREE_NODE): New macro.
4897         (cgraph_create_node): Reuse nodes from the free list.  Do not
4898         update uid if doing so.
4899         (cgraph_remove_node): Add the node to the free list.
4900
4901 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
4902
4903         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4904
4905 2008-09-24  Richard Henderson  <rth@redhat.com>
4906
4907         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
4908         * unwind-dw2.c (execute_stack_op): Handle it.
4909
4910 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
4911
4912         Revert:
4913         2008-09-24  Michael J. Eager  <eager@eagercon.com>
4914
4915 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
4916
4917         * c-common.c (fname_decl): New location argument.
4918         * c-common.h (fname_decl): Same.
4919         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
4920         {warning,error}.
4921         (c_parser_typeof_specifier): Same.
4922         (c_parser_parms_list_declarator): Same.
4923         (c_parser_asm_string_literal): Same.
4924         (c_parser_compound_statement_nostart): Same.
4925         (c_parser_label): Same.
4926         (c_parser_do_statement): Same.
4927         (c_parser_asm_statement): Same.
4928         (c_parser_unary_expression): Same.
4929         (c_parser_sizeof_expression): Same.
4930         (c_parser_postfix_expression): Same.
4931         (c_parser_pragma): Same.
4932         (c_parser_omp_clause_collapse): Same.
4933         (c_parser_omp_clause_num_threads): Same.
4934         (c_parser_omp_clause_schedule): Same.
4935         (c_parser_omp_all_clauses): Same.
4936         (c_parser_omp_sections_scope): Same.
4937         (c_parser_omp_for_loop): Same.  Pass condition's location to
4938         c_objc_common_truthvalue_conversion.
4939         (c_parser_enum_specifier): Remove comment.
4940
4941 2008-09-24  Michael J. Eager  <eager@eagercon.com>
4942
4943         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4944         are easy.
4945         * config/rs6000/rs6000.c (rs6000_override_options): Move
4946         rs6000_init_hard_regno_mode_ok after all options changed.
4947         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4948         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4949         -msimple-fpu flags.  Add warning messages if single FP not configured.
4950         (rs6000_file_start): Output gnu_attribute for single-float.
4951         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4952         (rs6000_legitimize_address): Likewise.
4953         (rs6000_legitimize_reload_address): Likewise.
4954         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4955         TARGET_SINGLE_FLOAT.
4956         (function_arg_advance): Likewise.
4957         (function_arg): Likewise.
4958         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4959         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4960         TARGET_SINGLE_FLOAT.
4961         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4962         (rs6000_emit_prologue): Likewise.
4963         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4964         TARGET_SINGLE_FLOAT.
4965         (rs6000_libcall_value): Likewise.
4966         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4967         (TARGET_DOUBLE_FLOAT): New default to 1
4968         (TARGET_SIMPLE_FPU): New default to 0
4969         (TARGET_SINGLE_FPU): New default to 0
4970         (TARGET_SINGLE_FLOAT_MODE): New.
4971         (TARGET_DOUBLE_FLOAT_MODE): New.
4972         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4973         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4974         UNITS_PER_FP_WORD
4975         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4976         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4977         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4978         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4979         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4980         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4981         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4982         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4983         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4984         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4985         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4986         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4987         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4988         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4989         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4990         cmptf_internal1, *cmptf_internal2): Condition on
4991         TARGET_DOUBLE_FLOAT.
4992         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4993         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4994         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4995         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4996         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4997         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4998         TARGET_SINGLE_FLOAT.
4999         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
5000         * config/rs6000/rs6000.opt (-msingle-float): New.
5001         (-mdouble-float): New.
5002         (-msimple-fpu): New.
5003         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
5004         -msingle-float, -mdouble-float, -msimple-fpu options.
5005         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
5006         _SOFT_DOUBLE for -msingle-float.
5007         * config.gcc: New config for target=powerpc-xilinx-eabi.
5008
5009 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
5010
5011         * config/sparc/constraints.md: New file.
5012         * config/sparc/sparc.md: Include it.
5013         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
5014         (sparc_extra_constraint_check): Delete.
5015         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
5016         (memory_ok_for_ldd): New predicate.
5017         (sparc_extra_constraint_check): Delete.
5018         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
5019         (CONST_OK_FOR_LETTER_P): Likewise.
5020         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
5021         (EXTRA_CONSTRAINT): Likewise.
5022
5023 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
5024
5025         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
5026
5027 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
5028
5029         * alias.c (find_base_value): Use FIND_BASE_TERM.
5030         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
5031
5032 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
5033
5034         * config/i386/i386.c: Include cselib.h.
5035         (ix86_pic_register_p): New function.
5036         (ix86_delegitimize_address): Use it to check for the PIC register.
5037
5038 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
5039
5040         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
5041         * config/i386/i386.c (ix86_find_base_term): Don't check for
5042         SYMBOL_REF and LABEL_REF.
5043
5044 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
5045
5046         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
5047         constant PLUS in a CONST.
5048
5049 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
5050
5051         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
5052         check for sibcall support for w64.
5053
5054 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
5055
5056         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
5057
5058 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
5059
5060         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
5061         parser_build_binary_op.
5062         * c-decl.c (build_enumerator): Pass location to build_binary_op.
5063         * c-typeck.c (build_array_ref): Same.
5064         (parser_build_unary_op): New location argument.
5065         (pointer_diff): Pass location to build_binary_op,
5066         c_objc_common_truthvalue_conversion.
5067         (build_modify_expr): Same.
5068         (build_unary_op): New location argument.
5069         (build_binary_op): New location argument.
5070         (c_objc_common_truthvalue_conversion): Pass location to
5071         c_*common_truthvalue_conversion.
5072         * c-convert.c (convert): Same.
5073         * c-common.c (binary_op_error): New location argument.
5074         (pointer_int_sum): Pass location to build_binary_op.
5075         (c_common_truthvalue_conversion): New location argument.
5076         (warn_for_sign_compare): Same.
5077         * c-common.h: Add location argument to c_common_truthvalue_conversion,
5078         binary_op_error, build_binary_op, warn_for_sign_compare.
5079         * c-parser.c (c_parser_condition): Pass location to
5080         c_*common_truthvalue_conversion.
5081         (c_parser_conditional_expression): Save condition's location and pass
5082         it on down.
5083         (c_parser_binary_expression): Same, but for the binary operator's
5084         location.
5085         (c_parser_omp_for_loop): Pass location to
5086         c_objc_common_truthvalue_conversion.
5087
5088 2008-09-23  Martin Jambor  <mjambor@suse.cz>
5089
5090         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
5091         (cgraph_node_remove_callees): New temporary f.  Hold the next item
5092         in f when looping.
5093         (cgraph_node_remove_callers): Likewise.
5094
5095         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
5096         (ipa_node_removal_hook): Likewise.
5097
5098         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
5099         gimple_call_copy_skip_args and moved to the gimple_call section.
5100         * gimple.c (gimple_copy_call_skip_args): Renamed to
5101         gimple_call_copy_skip_args.  Changed al users.
5102
5103 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
5104
5105         * ira-color.c (start_allocno_priorities): Rename to
5106         setup_allocno_priorities.  Use costs and
5107         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
5108         range lengths.  Get rid off doubles.
5109         (ira_fast_allocations): Call start_allocno_priorities.
5110
5111 2008-09-22  David Daney  <ddaney@avtrex.com>
5112
5113         PR target/37593
5114         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
5115         register if TARGET_LONG_CALLS.
5116
5117 2008-09-22  Richard Guenther  <rguenther@suse.de>
5118
5119         PR tree-optimization/37145
5120         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
5121         value-numbering union accesses with their offset and size only.
5122         (visit_reference_op_load): Fix simplification of inserted conversions.
5123         * tree-ssa-pre.c (find_or_generate_expression): Do not
5124         recursively generate expressions if running FRE.
5125
5126 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
5127
5128         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
5129         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
5130         New patterns.
5131
5132 2008-09-22  Richard Guenther  <rguenther@suse.de>
5133
5134         PR tree-optimization/37145
5135         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
5136         (phi_translate_1): Constant fold references.
5137
5138 2008-09-22  Ira Rosen  <irar@il.ibm.com>
5139
5140         PR tree-optimization/37482
5141         * tree-vectorizer.h (struct _slp_instance): Add new field.
5142         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
5143         (get_earlier_stmt): New function.
5144         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
5145         function.
5146         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
5147         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
5148         asserts that GSI points to the scalar statement being vectorized.
5149         Set new statement location according to GSI.
5150         (vect_schedule_slp_instance): Use GSI of
5151         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
5152
5153 2008-09-21  Jan Hubicka  <jh@suse.cz>
5154
5155         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
5156         (ipcp_insert_stage): Update dead_nodes bitmap.
5157
5158 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
5159
5160         PR target/37528
5161         * config/i386/t-cygming (SHLIB_LC): Remove.
5162         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
5163         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
5164
5165 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
5166
5167         PR middle-end/37170
5168         PR middle-end/37280
5169         * final.c (mark_symbol_ref_as_used): New helper function.
5170         (output_operand): Instead of just looking inside MEMs for
5171         SYMBOL_REFs, use new helper function and for_each_rtx.
5172         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
5173         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
5174         Make head comment more general.
5175         * config/darwin.c (machopic_output_indirection): Handle weak
5176         references here, like in assemble_external.
5177
5178 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
5179
5180         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
5181         (sparc_emit_float_lib_cmp): Change return type.
5182         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
5183         (gen_compare_operator): New function.
5184         (sparc_emit_float_lib_cmp): Return the new operator to be used in
5185         the comparison sequence.  Minor tweaks.
5186         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
5187         that the final operator and the result of sparc_emit_float_lib_cmp
5188         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
5189         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
5190         buneq, bunge, bunle, bltgt): Assert that the final operator and the
5191         result of sparc_emit_float_lib_cmp match for software TFmode.
5192         (movqicc, movhicc, movsicc, movdicc): Merge into...
5193         (mov<I:mode>cc): ...this.
5194         (movsfcc, movdfcc, movtfcc): Merge into...
5195         (mov<F:mode>cc): ...this.
5196         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
5197         into...
5198         (mov<I:mode>_cc_v9): ...this.
5199         (movdi_cc_sp64_trunc): Delete.
5200         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
5201         movdi_cc_reg_sp64): Merge into...
5202         (mov<I:mode>_cc_reg_sp64): ...this.
5203         (movsf_cc_sp64): Rename into...
5204         (movsf_cc_v9): ...this.
5205         (movdf_cc_sp64): Rename into...
5206         (movdf_cc_v9): ...this.
5207         (movtf_cc_hq_sp64): Rename into...
5208         (movtf_cc_hq_v9): ...this.
5209         (movtf_cc_sp64): Rename into...
5210         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
5211
5212 2008-09-21  Diego Novillo  <dnovillo@google.com>
5213
5214         * doc/gccint.texi: Include generic.texi and gimple.texi.
5215         Re-order index.
5216         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
5217         (GIMPLE): Move to gimple.texi.
5218         (Annotations): Remove references to to stmt_ann_t and
5219         ssa_name_ann_t.
5220         (SSA Operands): Rename from 'Statement Operands'.
5221         * doc/generic.texi: New.
5222         * doc/gimple.texi: New.
5223         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
5224         * Makefile.in (TEXI_GCCINT_FILES):
5225         * gimple.c (gimple_copy_call_skip_args): Rename from
5226         giple_copy_call_skip_args.  Update all users.
5227         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
5228
5229 2008-09-21  Ira Rosen  <irar@il.ibm.com>
5230
5231         PR tree-optimization/37539
5232         * tree-vect-transform.c (vect_transform_strided_load): Save vector
5233         statement in related statement field only for the first load of the
5234         group of loads with the same data reference.
5235
5236 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
5237
5238         * config/mips/mips.h (TUNE_OCTEON): New macro.
5239         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
5240         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
5241         * config/mips/octeon.md: New file.
5242         * config/mips/mips.md: Include octeon.md.  Restore
5243         semi-alphabetical order of include files.
5244
5245 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
5246
5247         PR target/37571
5248         * config/i386/i386.md (*jcc_fused_1): Removed.
5249         (*jcc_fused_2): Likewise.
5250         (*jcc_fused_3): Likewise.
5251         (*jcc_fused_4): Likewise.
5252
5253 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
5254
5255         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
5256         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
5257         * target.h (gcc_target): Add ira_cover_classes.
5258         * ira.c: Remove IRA_COVER_CLASSES guards.
5259         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
5260         instead of IRA_COVER_CLASSES.
5261         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
5262         (setup_class_translate): Likewise.
5263         (setup_reg_class_intersect_union): Likewise.
5264         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
5265         test of targetm.ira_cover_classes.
5266         * opts.c (decode_options): Use targetm.ira_cover_classes instead
5267         of IRA_COVER_CLASSES.
5268         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
5269         (TARGET_INITIALIZER): Include it.
5270         * targhooks.h (default_ira_cover_classes): Declare.
5271         * targhooks.c (default_ira_cover_classes): New function.
5272
5273 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
5274
5275         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
5276
5277 2008-09-19  Ian Lance Taylor  <iant@google.com>
5278
5279         * varasm.c (narrowing_initializer_constant_valid_p): Return
5280         NULL_TREE if ENDTYPE is not an integer.
5281
5282 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5283
5284         PR tree-opt/30930
5285         * tree-ssa.c (execute_update_addresses_taken): Also update
5286         DECL_GIMPLE_REG_P for vector and complex types.
5287
5288 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
5289             Jan Hubicka  <jh@suse.cz>
5290
5291         PR middle-end/37567
5292         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
5293         empty before freeing them.
5294         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
5295
5296 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
5297
5298         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
5299         * config/xtensa/predicates.md (tls_symbol_operand): New.
5300         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
5301         (TARGET_CANNOT_FORCE_MEM): Define.
5302         (xtensa_tls_symbol_p): New.
5303         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
5304         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
5305         (xtensa_tls_module_base): New.
5306         (xtensa_call_tls_desc): New.
5307         (xtensa_legitimize_tls_address): New.
5308         (xtensa_legitimize_address): Handle TLS symbols.
5309         (xtensa_tls_referenced_p_1): New.
5310         (xtensa_tls_referenced_p): New.
5311         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
5312         UNSPEC_DTPOFF.
5313         (XTENSA_BUILTIN_THREAD_POINTER): New.
5314         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
5315         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
5316         builtin.  Add declarations for __builtin_thread_pointer and
5317         __builtin_set_thread_pointer.
5318         (xtensa_fold_builtin): Recognize new builtins.
5319         (xtensa_expand_builtin): Expand new builtins.
5320         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
5321         (TARGET_THREADPTR): Define.
5322         (HAVE_AS_TLS): Define default value.
5323         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
5324         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
5325         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
5326         (UNSPECV_SET_TP): New.
5327         (sym_TPOFF, sym_DTPOFF): New.
5328         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
5329         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
5330         * configure: Regenerated.
5331
5332 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
5333
5334         PR target/37394
5335         * config/ia64/ia64.c (ia64_optimization_options): Move
5336         checking and setting flag_schedule_insns_after_reload and
5337         ia64_flag_schedule_insns2 back to ...
5338         (ia64_override_options): Here.
5339
5340 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5341
5342         PR rtl-opt/37451
5343         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
5344         zero extend count after the correction to it is done.
5345         (doloop_optimize): Update call to doloop_modify, don't zero extend
5346         count before call.
5347
5348 2008-09-18  Martin Jambor  <mjambor@suse.cz>
5349
5350         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
5351
5352         * ipa-prop.c: Correct comments.
5353         * ipa-prop.h: Likewise.
5354
5355 2008-09-18  Jan Hubicka  <jh@suse.cz>
5356
5357         PR middle-end/37448
5358         * ipa-reference.c (ipa_reference_local_vars_info_d,
5359         ipa_reference_global_vars_info_d,
5360         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
5361         ipa_reference_vars_info_t): Move here from ipa-reference.h
5362         (node_duplication_hook_holder, node_removal_hook_holder): New.
5363         (get_reference_vars_info_from_cgraph): Rename to ...
5364         (get_reference_vars_info): ... this one, use cgraph uids.
5365         (get_local_reference_vars_info, get_global_reference_vars_info):
5366         Use cgraph instead of decl.
5367         (ipa_reference_get_read_local, ipa_reference_get_written_local):
5368         Remove.
5369         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
5370         ipa_reference_get_written_global,
5371         ipa_reference_get_not_written_global): Use cgraph argument.
5372         (check_call): Simplify avail check.
5373         (scan_stmt_for_static_refs): Update.
5374         (propagate_bits): Update.
5375         (merge_callee_local_info): Remove.
5376         (init_function_info): Use cgraph nodes.
5377         (clean_function_local_data): Break out from ...
5378         (clean_function): ... here.
5379         (copy_local_bitmap, copy_global_bitmap): New functions.
5380         (duplicate_node_data, remove_node_data): New functions.
5381         (generate_summary): Register hooks; use visibility instead of
5382         master clones.
5383         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
5384         * ipa-reference.h (ipa_reference_local_vars_info_d,
5385         ipa_reference_global_vars_info_d,
5386         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
5387         ipa_reference_vars_info_t): Move to ipa-reference.c
5388         (ipa_reference_get_read_local, ipa_reference_get_written_local):
5389         Remove.
5390         (ipa_reference_get_read_global, ipa_reference_get_written_global,
5391         ipa_reference_get_not_read_global,
5392         ipa_reference_get_not_written_global): Update prototype.
5393         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
5394         (init_state): Remove.
5395         (node_duplication_hook_holder, node_removal_hook_holder): New.
5396         (get_function_state, set_function_state): Use VECtor.
5397         (analyze_function): Check body availability.
5398         (add_new_function): Likewise.
5399         (duplicate_node_data, remove_node_data): New.
5400         (generate_summary): Register hooks; do not care about clones.
5401         (propafate): Do not care about clones; recursive functions are
5402         not looping.
5403         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
5404         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
5405         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
5406         static.
5407         * tree-flow.h (function_ann_d): Remove reference_vars_info.
5408         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
5409         Update call of ipa-reference accesors.
5410
5411 2008-09-18  Simon Baldwin  <simonb@google.com>
5412
5413         * c-opts.c (c_common_handle_option): Add handling for
5414         -Wbuiltin-macro-redefined command line option.
5415         * c.opt: Added builtin-macro-redefined option.
5416         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
5417         documentation.
5418
5419 2008-09-18  Richard Guenther  <rguenther@suse.de>
5420
5421         PR tree-optimization/37258
5422         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
5423         and signedness for integral types.
5424         (vn_phi_eq): Require compatible types.
5425
5426 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
5427
5428         PR debug/34037
5429         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
5430         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
5431         VAR_DECL.
5432         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
5433         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
5434         ggc_free other TREE_LIST nodes from that chain.
5435         * function.c (instantiate_decls): Instantiate also DECL_RTL
5436         of vars in cfun->local_decls, free that list afterwards.
5437
5438 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
5439
5440         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
5441         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
5442
5443 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
5444
5445         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
5446         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
5447
5448 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
5449
5450         PR tree-optimization/37102
5451         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
5452         from a node. Check to see if another PHI is dead.
5453         (eliminate_useless_phis): Rename from eliminate_virtual_phis and
5454         remove real PHIs which have no uses.
5455         (rewrite_out_of_ssa): Call eliminate_useless_phis.
5456
5457 2008-09-18  Richard Guenther  <rguenther@suse.de>
5458
5459         PR middle-end/37284
5460         * tree-cfg.c (remove_useless_stmts_1): Remove
5461         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
5462
5463 2008-09-18  Nick Clifton  <nickc@redhat.com>
5464
5465         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
5466         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
5467         to frv_secondary_reload_class.
5468         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5469         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
5470         (frv_secondary_reload_class): Omit unused parameter.
5471         (frv_secondary_reload): New function.  Handle the case when
5472         secondary_reload_class() is called before the reload_(in|out)
5473         _optabs have been initialised.
5474         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
5475         unused parameter.
5476         * config/frv/frv.md: Define an exclusion set between fr550_m0
5477         and fr550_f0.
5478
5479 2008-09-18  Richard Guenther  <rguenther@suse.de>
5480
5481         PR tree-optimization/37456
5482         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
5483         want to insert after ends a BB insert on the single fallthru
5484         outgoing edge.
5485
5486 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5487
5488         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
5489         Mention -march=z9-109, z9-ec and z10.
5490
5491 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
5492
5493         PR rtl-optimization/37544
5494         * regrename.c (maybe_mode_change): Exit early when copy_mode
5495         is narrower than orig_mode and narrower than new_mode.
5496
5497 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
5498
5499         PR middle-end/37499
5500         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
5501
5502         * sched-rgn.c (ref_counts): Remove.
5503         (insn_referenced): New static variable.
5504         (INSN_REF_COUNT): Remove.
5505         (sched_run_compute_dependencies): Use insn_referenced instead of
5506         INSN_REF_COUNT.
5507         (add_branch_dependences): Likewise.  Delete dead assignment.
5508
5509 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
5510
5511         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
5512         consumer is an asm.  Add comment why this is important.
5513         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
5514         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
5515
5516 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
5517
5518         * expr.c (emit_group_store): Do not shift before moving via a
5519         stack slot.
5520
5521 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5522
5523         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
5524         from aggregate to non-aggregate type if the bit pattern is not fully
5525         preserved afterwards.
5526
5527 2008-09-17  Richard Guenther  <rguenther@suse.de>
5528
5529         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
5530         (verify_gimple_assign): ... this.  Split into ...
5531         (verify_gimple_assign_unary): ... this,
5532         (verify_gimple_assign_binary): ... that,
5533         (verify_gimple_assign_single): ... and this.
5534         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
5535         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
5536         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
5537         (verify_types_in_gimple_reference): Be forgiving with
5538         VIEW_CONVERT_EXPRs.
5539         (verify_gimple_phi): Deal with virtual operands.
5540
5541         * tree.def (PREDICT_EXPR): Change to tcc_expression.
5542
5543 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5544
5545         * tree.c (get_callee_fndecl): Don't call the language hook.
5546         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
5547         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
5548         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
5549
5550 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
5551
5552         * tree.c (protected_set_expr_location): Don't unnecessarily
5553         check for error_mark_node.
5554
5555 2008-09-17  Art Haas  <ahaas@impactweather.com>
5556
5557         * ipa-reference.c (analyze_function): Declare step only if
5558         ENABLE_CHECKING is defined.
5559
5560 2008-09-17  Jan Hubicka  <jh@suse.cz>
5561
5562         PR c++/18071
5563         * tree.h (DECL_INLINE): remove.
5564         (DECL_DECLARED_INLINE_P): Update docs.
5565         (DECL_NO_INLINE_WARNING_P): new.
5566         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
5567         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
5568
5569 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
5570             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5571
5572         PR bootstrap/37441
5573         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
5574         false.
5575
5576 2008-09-17  Jan Hubicka  <jh@suse.cz>
5577
5578         * ipa-reference.c (ipa_obstack): Remove.
5579         (local_info_obstack, global_info_obstack): New.
5580         (add_static_var): We now handle variables only.
5581         (mark_address_taken, mark_load, mark_store): New functions based on ...
5582         (check_operand): ... remove.
5583         (get_asm_stmt_operands): Rename to ...
5584         (check_asm_memory_clobber): ... this. Look only for memory clobber.
5585         (scan_stmt_for_static_refs): Rewrite.
5586         (scan_op_for_static_refs): Rename to ...
5587         (scan_initializer_for_static_refs): do not look for VAR_DECL
5588         initializers; stop recursion on types and decls.
5589         (ipa_init): Use proper obstacks.
5590         (analyze_variable): Use scan_initializer_for_static_refs.
5591         (init_function_info): Use local obstack.
5592         (analyze_function): Simplify.
5593         (add_new_function): We don't need visited_nodes obstack.
5594         (generate_summary): Use proper obstacks; cleanup after propagation.
5595
5596 2008-09-17  Richard Guenther  <rguenther@suse.de>
5597
5598         PR middle-end/37385
5599         PR tree-optimization/37491
5600         * alias.c (get_alias_set): Use the canonical type.
5601         * tree-vect-transform.c (vectorizable_store): Use the type of
5602         the lhs for the vector type.  Adjust checking.
5603         (vectorizable_load): Adjust checking.
5604
5605 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
5606             Adam Nemet  <anemet@caviumnetworks.com>
5607
5608         PR rtl-optimization/37483
5609         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
5610         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
5611         Rearrange code to better match the original comment.  Check
5612         t_unconditional first.  Improve comment.
5613
5614 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
5615
5616         PR c/37529
5617         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
5618         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
5619
5620         PR c++/37530
5621         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
5622         GIMPLE_TRY if cleanup sequence is empty.
5623
5624 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5625
5626         PR middle-end/37263
5627         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
5628         eliminate IV if the cost are the same.
5629
5630 2008-09-16  Richard Guenther  <rguenther@suse.de>
5631
5632         PR middle-end/37380
5633         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
5634         if not necessary.
5635
5636 2008-09-16  Richard Guenther  <rguenther@suse.de>
5637
5638         PR tree-optimization/37508
5639         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
5640
5641 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5642
5643         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
5644
5645 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5646
5647         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
5648         use gen_floatdidf2 directly.
5649         (floatunssidf2): Likewise.
5650         (floatsidf_ppc64_mfpgpr): Remove.
5651         (floatsidf_ppc64): Remove.
5652         (floatunssidf_ppc64): Remove.
5653
5654 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
5655
5656         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
5657         rather than update_cost_queue.
5658
5659         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
5660         in every call starting with the second one, instead of only when
5661         alias_bitmap_obstack.elements != NULL.
5662
5663         * tree-predcom.c (filter_suitable_components): Free all refs in
5664         act->refs vector before calling release_component.
5665         (add_ref_to_chain): Free ref if not adding it to chain->refs.
5666
5667         * tree-data-ref.c (free_subscripts): Free all subscript objects.
5668
5669         * tree-loop-linear.c (linear_transform_loops): Initialize
5670         lambda_obstack only after calling perfect_loop_nest_depth.
5671         Goto free_and_continue instead of just continue for later failures.
5672
5673         PR middle-end/37479
5674         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
5675
5676         PR libmudflap/36397
5677         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
5678
5679 2008-09-14  Andreas Schwab  <schwab@suse.de>
5680
5681         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
5682
5683 2008-09-14  Jan Hubicka  <jh@suse.cz>
5684
5685         * invoke.texi (-fconserve-stack): Document.
5686         * opts.c (decode_options): Handle conserve_stack.
5687         * common.opt (fconvserve_stack): New.
5688
5689 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
5690
5691         * config.host: Add x-aix to host_xmake_file.
5692         * config/rs6000/t-aix52: Do not override LDFLAGS.
5693         * config/rs6000/x-aix: New file.
5694
5695 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
5696
5697         PR target/19636
5698         PR target/24894
5699         PR target/31644
5700         PR target/31786
5701         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
5702         is not recognized as a valid register usage. Allow REG_X to be used
5703         as a base pointer.
5704         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
5705         forces a reload when using a base register.
5706
5707 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
5708
5709         * config/i386/cygming-crtend.c (register_frame_ctor): If
5710         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
5711         directly with atexit.
5712         (deregister_frame_ctor): Rename to ...
5713         (deregister_frame_dtor): Use to call __gcc_deregister_frame
5714         if !DEFAULT_USE_CXA_ATEXIT.
5715
5716 2008-09-13  Jan Hubicka  <jh@suse.cz>
5717
5718         * cgraph.c: Include value-prof.h
5719         * Makefile.in (cgraph.o): Add value-prof.h dependency.
5720
5721 2008-09-13  Jan Hubicka  <jh@suse.cz>
5722
5723         PR middle-end/32581
5724         * tree-profile.c (add_abnormal_goto_call_edges): New function.
5725         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
5726         tree_gen_one_value_profiler, tree_gen_average_profiler,
5727         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
5728
5729 2008-09-13  Jan Hubicka  <jh@suse.cz>
5730
5731         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
5732         too many bytes on misalligned blocks.
5733
5734 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5735
5736         * doc/cfg.texi: Fix some typos.
5737         * doc/extend.texi: Likewise.
5738         * doc/install.texi: Likewise.
5739         * doc/invoke.texi: Likewise.
5740         * doc/rtl.texi: Likewise.
5741         * doc/tree-ssa.texi: Likewise.
5742
5743 2008-09-13  Richard Guenther  <rguenther@suse.de>
5744
5745         PR middle-end/30141
5746         * tree-nested.c (finalize_nesting_tree_1): Generate valid
5747         gimple stores for memory rhs.
5748
5749 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
5750
5751         PR rtl-optimization/37489
5752         * cse.c (fold_rtx): Don't return const_true_rtx for float
5753         compare if FLOAT_STORE_FLAG_VALUE is undefined.
5754
5755 2008-09-13  Jan Hubicka  <jh@suse.cz>
5756
5757         PR tree-optimization/37392
5758         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
5759
5760 2008-09-13  Martin Jambor  <mjambor@suse.cz>
5761             Jan Hubicka  <jh@suse.cz>
5762
5763         * cgraph.c (free_edges): New variable.
5764         (NEXT_FREE_EDGE): New macro.
5765         (cgraph_free_edge): New function.
5766         (cgraph_remove_edge): Call cgraph_remove_edge_1.
5767         (cgraph_node_remove_callees): Likewise.
5768         (cgraph_node_remove_callers): Likewise.
5769         (cgraph_create_edge): Reuse edges from the free list.  Do not
5770         update uid if doing so.
5771         (cgraph_remove_*_hook): Add free call.
5772
5773 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
5774
5775         * ira-color.c (conflict_allocno_vec): Delete.
5776         (update_cost_queue_elem): New structure.
5777         (update_cost_queue): New variable.
5778         (update_cost_queue_tail): Likewise.
5779         (update_cost_queue_elems): Likewise.
5780         (allocno_update_cost_check): Delete.
5781         (initiate_cost_update): Allocate update_cost_queue_elems
5782         instead of allocno_update_cost_check.
5783         (finish_cost_update): Update the free()s accordingly.
5784         (start_update_cost): New function.
5785         (queue_update_cost): Likewise.
5786         (get_next_update_cost): Likewise.
5787         (update_copy_costs_1): Inline into...
5788         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
5789         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
5790         once we've established they are equal.  Don't allocate update
5791         costs if there is nothing to add to them.
5792         (update_conflict_hard_regno_costs): Remove ALLOCNO and
5793         DIVISOR arguments.  Use a queue instead of recursive calls;
5794         process all the allocnos in the initial queue, rather than
5795         a single allocno.
5796         (assign_hard_reg): Use queue_update_cost instead of
5797         conflict_allocno_vec.  Queue coalesced allocnos instead
5798         of calling update_conflict_hard_regno_costs for each one.
5799         Just call update_conflict_hard_regno_costs once for the
5800         entire queue.
5801         (ira_color): Remove conflict_allocno_vec handling.
5802
5803 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
5804
5805         PR tree-optimization/37484
5806         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
5807         (save_var_name): Same.
5808         (initialize_cloog_names): Same.
5809         (initialize_cloog_names): Same.
5810
5811 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
5812
5813         * tree-scalar-evolution.c (set_instantiated_value): Set
5814         instantiated_below.
5815
5816 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
5817
5818         PR rtl-opt/37377
5819
5820         * ira-build.c (common_loop_tree_node_dominator): Remove.
5821         (copy_live_ranges_to_removed_store_destinations): New function.
5822         (regno_top_level_allocno_map): Move to top level from ...
5823         (ira_flattening): ... here.  Use
5824         copy_live_ranges_to_removed_store_destinations.
5825
5826         * ira-emit.c (generate_edge_moves): Fix a comment.
5827
5828 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
5829
5830         PR target/37466
5831         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
5832         scratch register after 'set' pattern.
5833
5834 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5835
5836         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
5837         information passed to mark_reg_pointer.
5838         * explow.c (force_reg): Likewise.
5839
5840 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5841
5842         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
5843         when building for the celledp architecture.
5844
5845 2008-09-12  Richard Guenther  <rguenther@suse.de>
5846
5847         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
5848
5849 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5850
5851         PR rtl-optimization/37424
5852         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
5853         the regnos instead of the addresses.
5854
5855 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
5856
5857         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
5858
5859 2008-09-11  Richard Guenther  <rguenther@suse.de>
5860
5861         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
5862         entering the weaker equivalence recording.
5863
5864         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
5865
5866 2008-09-11  Jeff Law <law@redhat.com>
5867
5868         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
5869         by assign_stack_local on the IRA path for stack slot sharing
5870         as well as the non-IRA path.
5871
5872 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
5873
5874         * config/i386/i386.h: Fix whitespace issues.
5875
5876 2008-09-11  Martin Jambor  <mjambor@suse.cz>
5877
5878         * ipa-prop.h (struct ipa_param_flags): Removed.
5879         (struct ipa_param_descriptor): New structure.
5880         (struct ipa_node_params): ipcp_lattices, param_decls and
5881         param_flags moved to ipa_param_description.
5882         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
5883         descriptors.  Renamed all users.
5884         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
5885         changed to access descriptors.  Renamed all users.
5886         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
5887         to access descriptors. Renamed all users.
5888         * ipa-cp.c (ipcp_init_cloned_node): Call
5889         ipa_initialize_node_params instead of ipa_count_formal_params and
5890         ipa_create_param_decls_array.
5891         (ipcp_analyze_node): Likewise.
5892         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
5893         descriptors.  Renamed all users.
5894         (ipcp_initialize_node_lattices): Remove allocation.
5895         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5896         ipa_initialize_node_params instead of ipa_count_formal_params and
5897         ipa_create_param_decls_array.
5898         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
5899         ipa_populate_param_decls, made static, added parameter info,
5900         renamed mt to node, removed allocation, changed to use
5901         descriptors.
5902         (ipa_count_formal_params): Made static, added parameter info,
5903         renamed mt to node.
5904         (ipa_initialize_node_params): New function.
5905         (ipa_check_stmt_modifications): Changed to use descriptors.
5906         (ipa_detect_param_modifications): Removed allocation, changed to
5907         use descriptors.
5908         (ipa_note_param_call): Changed to use descriptors.
5909         (ipa_analyze_params_uses): Removed allocation.
5910         (ipa_free_node_params_substructures): Changed to use descriptors.
5911         (ipa_edge_duplication_hook): Use the unused attribute.
5912         (ipa_node_duplication_hook): Use the unused attribute, changed to
5913         use descriptors, changed to duplicate descriptors.
5914
5915         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
5916         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
5917         indirect inlining.  Made static.
5918         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
5919         functions called only once.
5920         (cgraph_decide_recursive_inlining): Don't call
5921         ipa_propagate_indirect_call_infos, pass new_edges to
5922         cgraph_mark_inline_edge instead.
5923         (cgraph_decide_inlining_of_small_functions): Don't call
5924         ipa_propagate_indirect_call_infos, pass new_edges to
5925         cgraph_mark_inline_edge instead.
5926         (cgraph_decide_inlining): Don't call
5927         ipa_propagate_indirect_call_infos.
5928         * ipa-prop.c: Check that vectors are allocated.
5929
5930         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
5931         iff a new cgraph edges have been created.
5932         (cgraph_decide_inlining): New variable redo_always_inline.
5933         Flattening and always_inlining loop until callgraph stabilizes.
5934         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
5935         true iff new cgraph edges have been created.
5936         (propagate_info_to_inlined_callees): Likewise.
5937         (ipa_propagate_indirect_call_infos): Likewise.
5938
5939 2008-09-11  Richard Guenther  <rguenther@suse.de>
5940
5941         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
5942         (set_prologue_iterations): Likewise.
5943         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
5944         Likewise.
5945         (vect_update_init_of_dr): Likewise.
5946         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
5947         type verification.
5948         * fold-const.c (fold_unary): Do not generate calculations
5949         in sub-types.
5950
5951 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
5952
5953         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
5954         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
5955         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
5956
5957         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
5958         a bool.
5959         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
5960         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
5961         before finalizing the changes.
5962         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
5963         for BIT_IOR_EXPR.
5964         (simplify_truth_ops_using_ranges): New.
5965         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
5966         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
5967         whether a simplification was made.
5968         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
5969         use a switch statement and also call simplify_truth_ops_using_ranges.
5970
5971 2008-09-11  Jan Hubicka  <jh@suse.cz>
5972
5973         * ggc-common.c (loc_array): Make static.
5974         * dce.c (rest_of_handle_ud_dce): Free worklist.
5975
5976 2008-09-11  Jan Hubicka  <jh@suse.cz>
5977
5978         * cgraph.c (cgraph_release_function_body): Plug memory leak on
5979         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
5980         function so we are sure we do not dangle it forever.
5981         * function.c (outer_function_chain, find_function_data): Remove.
5982         (function_context_stack): New.
5983         (push_function_context, pop_function_context): Update.
5984         * function.h (struct function): Remove pointer outer.
5985         (outer_function_chain, find_function_data): Remove.
5986         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
5987
5988 2008-09-11  Jan Hubicka  <jh@suse.cz>
5989
5990         PR middle-end/37448
5991         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
5992
5993 2008-09-11  Jan Hubicka  <jh@suse.cz>
5994
5995         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
5996
5997 2008-09-11  Jan Hubicka  <jh@suse.cz>
5998
5999         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
6000         (free_var_map_entry): New function.
6001         (redirect_edge_var_map_destroy): Use it.
6002
6003 2008-09-11  Jan Hubicka  <jh@suse.cz>
6004
6005         PR middle-end/37448
6006         * tree-inline.c (add_lexical_block): Replace with ...
6007         (prepend_lexical_block): ... prepend at begginig.
6008         (remap_blocks): Use it and reverse later.
6009         (expand_call_inline): Use prepend_lexical_block.
6010
6011 2008-09-11  Jan Hubicka  <jh@suse.cz>
6012
6013         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
6014
6015 2008-09-11  Jan Hubicka  <jh@suse.cz>
6016
6017         * function.c (free_after_compilation): Call insn_locators_free.
6018         * cfglayout.c (insn_locators_free): New function.
6019         * rtl.h (insn_locators_free): Declare.
6020
6021 2008-09-11  Jan Hubicka  <jh@suse.cz>
6022
6023         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
6024         vector pointer.
6025         (cond_move_process_if_block): Update call.
6026
6027 2008-09-11  Jan Hubicka  <jh@suse.cz>
6028
6029         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
6030         * vec.c: Include hashtab.h
6031         (vec_descriptor, ptr_hash_entry): New structures.
6032         (vec_desc_hash, vec_ptr_map): New static variables.
6033         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
6034         register_overhead, free_overhead, vec_heap_free): New functions.
6035         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
6036         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
6037         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
6038         New functions.
6039
6040 2008-09-11  Ira Rosen  <irar@il.ibm.com>
6041
6042         PR tree-optimization/37474
6043         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
6044         length of load permutation.
6045
6046 2008-09-11  Andreas Schwab  <schwab@suse.de>
6047
6048         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
6049
6050 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
6051
6052         PR target/37382
6053         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
6054         * dse.c (find_shift_sequence): Use extract_low_bits instead of
6055         simplify_gen_subreg.
6056
6057 2008-09-11  Ira Rosen  <irar@il.ibm.com>
6058
6059         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
6060         for alias check.
6061
6062 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
6063
6064         PR middle-end/37338
6065         * gimplify.c (gimplify_body): Call default_rtl_profile.
6066
6067         PR target/36904
6068         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
6069         instead of tok->val.node if not expanding to something else.  Handle
6070         intervening CPP_PADDING tokens.
6071         (altivec_categorize_keyword): Remove unneeded comparisons.
6072
6073 2008-09-10  Richard Guenther  <rguenther@suse.de>
6074
6075         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
6076
6077 2008-09-10  Richard Guenther  <rguenther@suse.de>
6078
6079         PR middle-end/37432
6080         * tree-inline.c (insert_init_stmt): Make sure to not
6081         insert invalid gimple stores.
6082
6083 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
6084
6085         PR tree-optimization/37388
6086         * toplev.c (process_options): Fail and warn when graphite
6087         flags are used, but the compiler has not been configured
6088         with graphite libraries.
6089         * graphite.c (graphite_transform_loops): Remove printfs
6090         to dump_file for the case when graphite is not available.
6091
6092 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6093
6094         PR target/37434:
6095         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
6096         the even element into register.
6097         (ix86_expand_vector_init_general): Don't use
6098         ix86_expand_vector_init_interleave on V16QImode and V8HImode
6099         if we can't move from GPR to SSE register directly.
6100
6101 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
6102
6103         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
6104         not lose track of the number of NOPs needed.  Number of NOPs needed
6105         for sync vs. loads workaround was switched; corrected.  Run second
6106         pass for all workarounds.  No NOPs needed after call insns.  Change
6107         second pass to use find_next_insn_start and find_load helpers in order
6108         to properly detect parallel insns.
6109         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
6110
6111 2008-09-10  Jan Hubicka  <jh@suse.cz>
6112
6113         * value-prof.c (gimple_ic): Fix tuplification bug.
6114         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
6115         var warning.
6116
6117 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
6118
6119         PR tree-optimization/37353
6120         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
6121         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
6122         calls instead of cond_dead_built_in_calls.
6123         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
6124         initalize the vector only before adding first entry.  Use VEC_safe_push
6125         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
6126         shrink_wrap_conditional_dead_built_in_calls call.
6127
6128 2008-09-10  Ira Rosen  <irar@il.ibm.com>
6129
6130         PR tree-optimization/37385
6131         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
6132         argument, and use it as a vector type if not NULL.
6133         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
6134         vectorized rhs.
6135         (vect_setup_realignment): Call vect_create_data_ref_ptr with
6136         additional argument.
6137         (vectorizable_load): Likewise.
6138
6139 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
6140
6141         * config/i386/i386.md (SWI32): New mode iterator.
6142         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
6143         of SWI.
6144
6145 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6146
6147         PR rtl-optimization/37435
6148         * caller-save.c (insert_restore, insert_save): Check the mode by
6149         reg_save_code.
6150
6151 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6152
6153         PR other/37265
6154         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
6155         splay tree lookup.
6156         (dw2_output_indirect_constant_1): Use unstripped name in symbol
6157         reference.
6158
6159 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
6160
6161         * doc/invoke.texi (ARM Options): Correct errors in discussion
6162         of -mfloat-abi, -mhard-float, and -msoft-float.
6163
6164 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
6165             Jan Hubicka  <jh@suse.cz>
6166
6167         PR middle-end/37356
6168         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
6169         calling gimple_regimplify_operands on it.  Iterate over all newly
6170         added statements, not just the last one.
6171         (insert_init_stmt): Insert stmt into seq first, then call
6172         gimple_regimplify_operands on it.  Don't create new gimplification
6173         context, nor find referenced vars.
6174
6175 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
6176
6177         PR other/37419
6178         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
6179         to pointer to vector pointer.
6180         * ipa-prop.c (ipa_propagate_indirect_call_infos,
6181         propagate_info_to_inlined_callees): Likewise.
6182         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
6183         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
6184         ipa_check_create_edge_args.
6185         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
6186         argument to pointer to vector pointer.
6187         (cgraph_decide_inlining_of_small_function): Adjust
6188         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
6189         calls.
6190
6191         PR target/37438
6192         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
6193         optimizing for size, not speed.
6194
6195         PR rtl-optimization/37408
6196         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
6197         if parm is promoted.
6198
6199 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
6200
6201         PR tree-optimization/37375
6202         * tree-scalar-evolution.c (scev_info_str): Add field
6203         instantiated_below.
6204         (new_scev_info_str, eq_scev_info, find_var_scev_info,
6205         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
6206         set_instantiated_value): Pass instantiated_below.
6207         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
6208         to above functions.
6209         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
6210         the definitions are not instantiated.
6211
6212         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
6213         (block_before_loop): New.
6214         * tree-data-ref.c (dr_analyze_indices): Update uses of
6215         instantiate_scev.
6216         * graphite.c (block_before_scop): New.
6217         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
6218         basic block, not a loop for determining the parameters.
6219         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
6220         scop.
6221         (idx_record_params, find_params_in_bb, find_scop_parameters,
6222         build_loop_iteration_domains, add_conditions_to_domain): Update calls
6223         to instantiate_scev.
6224
6225         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
6226
6227 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6228
6229         PR rtl-opt/37333
6230
6231         * ira-build.c (ira_create_allocno): Setup frequency to 0.
6232
6233         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
6234         Check zero freq and increase if necessary.
6235
6236 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6237
6238         * ira-conflicts.c (process_regs_for_copy): Check that the hard
6239         regno is in the right range.  Add comments.
6240
6241 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6242
6243         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
6244         warnings.
6245         * mips-tfile.c (copy_object): Cast alloca result to int *.
6246         * mips-tdump.c (print_symbol): Cast xmalloc return values to
6247         proper types.
6248         Rename class to sclass.
6249         (read_tfile): Cast read_seek return values to proper types.
6250         Cast xcalloc return value to proper type.
6251
6252 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6253
6254         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
6255         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
6256         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
6257
6258 2008-09-09  Jan Hubicka  <jh@suse.cz>
6259
6260         * profile.c (is_edge_inconsistent): Add debug output; ignore
6261         negative count on fake edges.
6262         (is_inconsistent): Add debug output.
6263
6264 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6265
6266         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
6267         dump message.
6268         (choose_ready): When first insn is chosen from the ready list, also
6269         dump it.
6270
6271 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6272
6273         PR rtl-optimization/37360
6274         * haifa-sched.c (max_issue): Do not assert that we never issue more
6275         insns than issue_rate.  Add comment.
6276
6277 2008-09-09  Richard Guenther  <rguenther@suse.de>
6278
6279         * tree-cfg.c (verify_types_in_gimple_op): Remove.
6280         (verify_types_in_gimple_call): Rename to ...
6281         (verify_gimple_call): ... this.  Enhance.
6282         (verify_types_in_gimple_cond): Remove.
6283         (verify_gimple_comparison): New function ...
6284         (verify_types_in_gimple_assign): ... split out from here.
6285         (verify_types_in_gimple_return): Rename to ...
6286         (verify_gimple_return): ... this.  Enhance.
6287         (verify_types_in_gimple_switch): Rename to ...
6288         (verify_gimple_switch): ... this.  Enhance.
6289         (verify_gimple_goto): New function.
6290         (verify_types_in_gimple_phi): Rename to ...
6291         (verify_gimple_phi): ... this.  Enhance.
6292         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
6293         Fold in single-statement cases from verify_types_in_gimple_seq_2.
6294         (verify_types_in_gimple_seq_2): Remove cases handled in
6295         verify_types_in_gimple_stmt.
6296
6297 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
6298
6299         * config/bfin/bfin.c (n_regs_to_save): New static variable.
6300         (push_multiple_operation, pop_multiple_operation): Set it.
6301         (workaround_rts_anomaly): New function.
6302         (workaround_speculation): New function, broken out of bfin_reorg.
6303         (bfin_reorg): Call the new functions.
6304
6305 2008-09-09  Richard Guenther  <rguenther@suse.de>
6306
6307         PR middle-end/37354
6308         PR middle-end/30165
6309         * gimplify.c (gimplify_conversion): Change conversions of
6310         non-register type to VIEW_CONVERT_EXPRs.
6311         (gimplify_addr_expr): If we need to make the operand
6312         addressable make sure to use a properly initialized
6313         temporary for that so it gets a valid gimple store.
6314
6315 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
6316
6317         * function.h (struct function): Add function_start_locus.
6318         * cfgexpand.c (gimple_expand_cfg): Use it.
6319         * c-parser.c (c_parser_declaration_or_fndef): Set it.
6320
6321 2008-09-09  Richard Guenther  <rguenther@suse.de>
6322
6323         PR tree-optimization/37433
6324         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
6325         function calls.
6326
6327 2008-09-09  Richard Guenther  <rguenther@suse.de>
6328
6329         PR tree-optimization/37387
6330         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
6331         and bits to a common type.
6332
6333 2008-09-09  Nick Clifton  <nickc@redhat.com>
6334
6335         * config/v850/v850.md (return): Restore frame size restriction.
6336
6337 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
6338
6339         * c-common.c (c_expand_decl): Remove.
6340         * c-common.h (anon_aggr_type_p): Remove prototype.
6341         (DECL_ANON_UNION_ELEMS): Remove.
6342         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
6343         * c-decl.c (anon_aggr_type_p): Remove.
6344         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
6345         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
6346         * langhooks.h (struct lang_hooks): Remove expand_decl.
6347         * langhooks.c (lhd_expand_decl): Remove.
6348         * stmt.c (expand_anon_union_decl): Remove.
6349         * tree.h (expand_anon_union_decl): Remove prototype.
6350
6351 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
6352
6353         PR target/36609
6354         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
6355         zero.
6356         * config/avr/avr.md  (QISI): Define mode iterator.
6357         (negated_tst<mode>): Redefine as split using mode macro.
6358         (reversed_tstqi): Define insn as reversed compare with zero.
6359         (reversed_tsthi): Ditto.
6360         (reversed_tstsi): Ditto.
6361
6362 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
6363
6364         PR middle-end/37393
6365         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
6366         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
6367
6368         PR middle-end/37414
6369         * predict.c (optimize_function_for_size_p): Don't segfault if
6370         FUN is NULL.
6371         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
6372         tree_swap_operands_p): Don't test cfun != NULL before calling
6373         optimize_function_for_s*_p.
6374
6375 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
6376
6377         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
6378         end of the search.
6379
6380 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
6381
6382         * crx/crx.h (IRA_COVER_CLASSES): Define.
6383
6384 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
6385
6386         PR middle-end/37337
6387         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
6388         even when a stmt has been gimple_modified_p, but after fold_stmt is
6389         not any longer.  Remove unneeded may_have_exposed_new_symbols
6390         initializations.
6391
6392 2008-09-08  Richard Guenther  <rguenther@suse.de>
6393
6394         PR tree-optimization/37421
6395         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
6396         valueize the RHS.
6397
6398 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
6399
6400         PR middle-end/37415
6401         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
6402
6403 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6404
6405         PR driver/37409
6406         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
6407         * pa-hpux10.h (LINK_SPEC): Likewise.
6408         * pa-hpux11.h (LINK_SPEC): Likewise.
6409
6410 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6411
6412         * pa32-regs.h (IRA_COVER_CLASSES): Define.
6413         * pa64-regs.h (IRA_COVER_CLASSES): Define.
6414
6415 2008-09-07  Helge Deller  <deller@gmx.de>
6416
6417         * pa/linux-atomic.c: New file.
6418         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
6419         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
6420
6421 2008-09-07  Richard Guenther  <rguenther@suse.de>
6422             Ira Rosen  <irar@il.ibm.com>
6423
6424         PR tree-optimization/36630
6425         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
6426         Call STRIP_NOPS before calling evolution_part_in_loop_num.
6427
6428 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
6429             Ira Rosen  <irar@il.ibm.com>
6430
6431         PR tree-optimization/35642
6432         * config/rs6000/altivec.md (mulv8hi3): Implement.
6433
6434 2008-09-06  Jeff Law <law@redhat.com>
6435
6436         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
6437
6438 2008-09-06  Jan Hubicka  <jh@suse.cz>
6439
6440         PR tree-optimization/14703
6441         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
6442         declarations.
6443         * passes.c (init_optimization_passes): Recompute inline parameters.
6444
6445 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
6446
6447         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
6448         DECL being null.
6449
6450 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
6451             Peter Fuerst  <post@pfrst.de>
6452
6453         * doc/invoke.texi: Document -mr10k-cache-barrier=.
6454         * doc/extend.texi: Document __builtin_mips_cache.
6455         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
6456         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
6457         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
6458         __GCC_HAVE_BUILTIN_MIPS_CACHE.
6459         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
6460         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
6461         (set_push_mips_isas): New variable.
6462         (mips_r10k_cache_barrier): New variable.
6463         (cache): New availability predicate.
6464         (mips_builtins): Add an entry for __builtin_mips_cache.
6465         (mips_build_cvpointer_type): New function.
6466         (MIPS_ATYPE_CVPOINTER): New macro.
6467         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
6468         mode is VOIDmode.
6469         (r10k_simplified_address_p, r10k_simplify_address)
6470         (r10k_uncached_address_p, r10k_safe_address_p)
6471         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
6472         (r10k_needs_protection_p_call, r10k_needs_protection_p)
6473         (r10k_insert_cache_barriers): New functions.
6474         (mips_reorg_process_insns): Delete cache barriers after a
6475         branch-likely instruction.
6476         (mips_reorg): Call r10k_insert_cache_barriers.
6477         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
6478         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
6479         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
6480         (mips_cache, r10k_cache_barrier): New define_insns.
6481
6482 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
6483
6484         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6485         * ira-color.c (setup_allocno_left_conflicts_num): Use
6486         hard_reg_set_equal_p instead of a comparison with
6487         ira_zero_hard_reg_set.
6488         * ira.c (setup_reg_subclasses): Likewise.
6489         (setup_cover_and_important_classes): Likewise.
6490         (setup_class_translate): Likewise.
6491         (setup_reg_class_intersect_union): Likewise.
6492         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6493         (ira_init_once): Don't initialize them.
6494
6495 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
6496
6497         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
6498
6499 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
6500
6501         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
6502
6503 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
6504
6505         Improved branch hints, safe hints, and scheduling.
6506
6507         * haifa-sched.c (sched_emit_insn): Define.
6508         * sched-int.h (sched_emit_insn): Add prototype.
6509         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
6510         -mhint-max-distance -msafe-hints): Document.
6511         * config/spu/spu.c (spu_flag_var_tracking): New.
6512         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
6513         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
6514         TARGET_ASM_FILE_START): Define.
6515         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
6516         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
6517         (spu_emit_branch_hint): Add blocks argument.
6518         (insert_branch_hints, insert_nops): Remove.
6519         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
6520         uses_ls_unit, spu_sched_init_global, spu_sched_init,
6521         spu_sched_reorder, asm_file_start): New functions.
6522         (clock_var, spu_sched_length, pipe0_clock,
6523         pipe1_clock, prev_clock_var, prev_priority,
6524         spu_ls_first, prev_ls_clock): New static variables.
6525         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
6526         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
6527         (nopn_nv): Add a non-volatile version of nop.
6528         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
6529         -mhint-max-distance, -msafe-hints): New options.
6530
6531 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
6532             Samuel Tardieu  <sam@rfc1149.net>
6533
6534         * opts.c (decode_options): Combine nested if statements.
6535
6536         PR target/37283
6537         * opts.c (decode_options): Handle more relationships among
6538         unit-at-a-time, toplevel-reorder, and section-anchors.
6539
6540 2008-09-05  David Daney  <ddaney@avtrex.com>
6541
6542         * doc/install.texi (--enable-reduced-reflection): Document new option.
6543
6544 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
6545
6546         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
6547         constantpool_mem_p.
6548         (constantpool_operand): New.
6549         (move_operand): Disallow sub-word modes for the constant pool.
6550         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
6551         (xtensa_secondary_reload_class): Replace with....
6552         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
6553         Set icode for sub-word reloads from the constant pool.
6554         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
6555         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
6556         * config/xtensa/xtensa.md (reload<mode>_literal): New.
6557         * config/xtensa/xtensa-protos.h: Update prototypes.
6558
6559 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
6560
6561         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
6562         (REG_CLASS_NAMES): Update.
6563         (REG_CLASS_CONTENTS): Update.
6564         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
6565         of ALL_REGS for regs 77 and 78.
6566         * function.c (instantiate_virtual_regs_in_insn): Assert that
6567         return value of simplify_gen_subreg is not NULL.
6568
6569 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
6570
6571         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
6572         (gen_rtvec_v): Fix coding standards.
6573
6574 2008-09-04  Jan Hubicka  <jh@suse.cz>
6575
6576         * i386.c (decide_alg): Be more conservative about optimizing for size.
6577
6578 2008-09-04  Ian Lance Taylor  <iant@google.com>
6579
6580         * varasm.c (narrowing_initializer_constant_valid_p): New
6581         static function.
6582         (initializer_constant_valid_p): Call it.
6583
6584 2008-09-04  Jeff Law  <law@redhat.com>
6585
6586         * fold-const.c (native_encode_real): Fix computation of WORDS.
6587         (native_interpret_real): Likewise.
6588
6589 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
6590
6591         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
6592
6593 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
6594
6595         * ira-conflicts.c (process_regs_for_copy): Check insn to check
6596         that the cost is already taken into account in ira-costs.c
6597
6598         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
6599
6600         * ira-build.c (print_copy, print_copies, ira_debug_copy,
6601         ira_debug_copies): New.
6602         (ira_bulid): Call print_copies.
6603
6604         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
6605
6606 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
6607
6608         PR target/32783
6609         * config/rs6000/rs6000.c (optimization_options): Remove check of
6610         flag_toplevel_order.
6611
6612 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6613
6614         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
6615         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
6616         second operand is a reg_imm10_operand.
6617         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
6618         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
6619         (*seq_<GPR:mode><GPR2:mode>): Rename to
6620         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
6621         ISA_HAS_SEQ_SNE.
6622         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
6623         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
6624         ISA_HAS_SEQ_SNE.
6625         (*sne_<GPR:mode><GPR2:mode>): Rename to
6626         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
6627         ISA_HAS_SEQ_SNE.
6628
6629 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6630
6631         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
6632         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
6633         combining an arithmetic right shift by more than 31 and a
6634         trunction.  Don't match for out-of-range shift amounts.  Set
6635         attribute mode to <MODE>.
6636         (*lshr32_trunc<mode>): Name the pattern combining a logical right
6637         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
6638         (*<optab>_trunc<mode>_exts): New pattern for truncated right
6639         shifts by less than 32.
6640         (extv): Change predicate on first operand to accept registers.
6641         Change predicate of the other operands from immediate_operand to
6642         const_int_operand.  Expand exts when source is a register.
6643         (extzv): Change predicate of the constant operands from
6644         immediate_operand to const_int_operand.
6645         (extzv<mode>): Change predicate of the constant operands from
6646         immediate_operand to const_int_operand and no constraint. Also
6647         remove mode.
6648         (*extzv_trunc<mode>_exts): New pattern.
6649
6650 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6651
6652         * config/mips/mips.h (ISA_HAS_CINS): New macro.
6653         * config/mips/mips-protos.h (mask_low_and_shift_p,
6654         mask_low_and_shift_len): Declare.
6655         * config/mips/mips.c (mask_low_and_shift_p,
6656         mask_low_and_shift_len): New functions.
6657         (mips_print_operand): Handle new operand prefix "m".
6658         * config/mips/mips.md (*cins<mode>): New pattern.
6659
6660 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
6661
6662         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
6663         optimizing for size.
6664
6665 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
6666
6667         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
6668         regardless of epilogue_completed.
6669
6670 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
6671
6672         PR middle-end/37359
6673         * ira-lives.c (process_bb_node_lives): Check setjmp.
6674
6675 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
6676
6677         PR middle-end/37243
6678         * ira-build.c (form_loop_tree): Reverse BB walk.
6679         (create_bb_allocnos): Likewise.
6680         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
6681         (mark_reg_store): Rename to...
6682         (mark_ref_live): ...this and take a df_ref argument instead of
6683         note_stores arguments.  Assert that we have a register.
6684         (mark_reg_clobber): Delete.
6685         (def_conflicts_with_inputs_p): New function.
6686         (mark_reg_conflicts): Delete.
6687         (mark_reg_death): Rename to...
6688         (mark_ref_dead): ...this and take a df_ref argument instead of
6689         a register.  Assert that we have a register.
6690         (process_bb_node_lives): Hoist frequency calculation out of
6691         instruction walk.  Convert from a forwards scan to a backwards scan.
6692         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
6693         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
6694         (create_allocno_live_ranges): Don't create regs_set.
6695
6696 2008-09-04  Ian Lance Taylor  <iant@google.com>
6697
6698         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
6699         or REG_LABEL_TARGET.
6700         * calls.c (emit_library_call_value_1): Use MEM_P rather than
6701         comparing MODE with MEM.
6702         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
6703         comparing with GF_PREDICT_TAKEN.
6704         (gimple_get_lhs): Change code to enum gimple_code.
6705         (gimple_set_lhs): Likewise.
6706         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
6707         * omp-low.c (find_omp_clause): Change kind parameter to enum
6708         omp_clause_code.
6709         * tree-flow.h (find_omp_clause): Update declaration.
6710         * regrename.c (clear_dead_regs): Change kind parameter to enum
6711         reg_note.
6712         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
6713         GET_MODE.
6714         * see.c (see_get_extension_data): Change return type to enum
6715         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
6716         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
6717         (see_gen_normalized_extension): Change extension_code parameter to
6718         enum entry_type.
6719         (see_seek_pre_extension_expr): Change extension_code to enum
6720         entry_type.
6721         (see_merge_one_def_extension): Likewise.
6722         (see_handle_relevant_defs): Likewise.
6723         (see_handle_relevant_uses): Likewise.
6724         (see_analyze_one_def): Likewise.
6725         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
6726         GIMPLE_ASM rather than ASM_EXPR.
6727         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
6728         GIMPLE_RETURN rather than RETURN_EXPR.
6729         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
6730         (evaluate_stmt): Likewise.
6731         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
6732         to enum vect_relevant.
6733         (vect_mark_stmts_to_be_vectorized): Change assertion to not
6734         compare gimple codes with tree codes.
6735
6736 2008-09-04  Paul Brook  <paul@codesourcery.com>
6737
6738         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
6739
6740 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
6741
6742         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
6743         pointer check lost in the recent no-unit-at-a-time patch.
6744
6745 2008-09-04  Jan Hubicka  <jh@suse.cz>
6746
6747         PR middle-end/37343
6748         * tree-switch-conversion.c (check_final_bb): Accept only IP
6749         invariants.
6750
6751 2008-09-04  Jan Hubicka  <jh@suse.cz>
6752
6753         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
6754         Break out from ...
6755         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
6756         using_ranges argument.
6757         (vrp_evaluate_conditional): Avoid bogus warning for type range.
6758         (vrp_visit_cond_stmt): Update call of
6759         vrp_evaluate_conditional_warnv_with_ops
6760
6761 2008-09-04  Jan Hubicka  <jh@suse.cz>
6762
6763         PR tree-optimization/37345
6764         PR tree-optimization/37358
6765         PR tree-optimization/37357
6766         * tree.c (build_function_type_skip_args): Build distinct type copy;
6767         set TYPE_CONTEXT.
6768         (build_function_decl_skip_args): Set type of new decl not orig decl;
6769         clear DECL_VINDEX for methods turned into functions.
6770
6771 2008-09-04  Nick Clifton  <nickc@redhat.com>
6772
6773         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
6774         * configure: Regenerate.
6775         * config.in: Regenerate.
6776         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
6777         alignment field, if it is supported.
6778
6779 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
6780
6781         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
6782         libraries.
6783
6784 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
6785
6786         * config/rs6000/rs6000.c (processor_target_table): Do not
6787         enable VMX for POWER6.
6788
6789 2008-09-03  Anton Blanchard  <anton@samba.org>
6790
6791         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
6792         emit memory barrier before operation.
6793
6794 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
6795
6796         PR testsuite/37325
6797         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
6798         default_elf_asm_output_external.
6799
6800 2008-09-03  Jeff Law  <law@redhat.com>
6801
6802         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
6803
6804 2008-09-03  Richard Henderson  <rth@redhat.com>
6805
6806         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
6807         memory barrier to below the test-and-set.
6808         (alpha_split_lock_test_and_set_12): Likewise.
6809
6810 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6811
6812         PR rtl-opt/37243
6813
6814         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
6815         all_allocnos.
6816
6817         * ira-color.c (print_loop_title): Use all_allocnos.
6818         (color_pass): Ditto.  Don't add border_allocnos.  Check that
6819         subloop allocno in the correspdoning bitmap all_allocnos.
6820
6821         * ira-emit.c (change_loop): Use all_allocnos.
6822
6823         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
6824         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
6825         (create_cap_allocno): Remove setting mentioned_allocnos.
6826         (create_insn_allocnos): Ditto.
6827         (remove_unnecessary_allocnos): Use all_allocnos.
6828         (check_allocno_creation): Check that allocnos are in the
6829         corresponding bitmap all_allocnos.
6830
6831 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6832
6833         PR rtl-opt/37243
6834
6835         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
6836         (process_regs_for_copy): Process subregs.  Refine check when cost
6837         is taken into account in ira-costs.c.
6838         (process_reg_shuffles): Use REG_SUBREG_P.
6839         (add_insn_allocno_copies): Ditto.  Ignore modes.
6840
6841         * ira-color.c (conflict_allocno_vec): New.
6842         (COST_HOP_DIVISOR): New macro.
6843         (update_copy_costs_1): Use it.
6844         (update_conflict_hard_regno_costs): New function.
6845         (assign_hard_reg): Use it.
6846         (ira_color): Allocate and free conflict_allocno_vec.
6847
6848 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6849
6850         PR rtl-opt/37296
6851
6852         * ira-int.h (ira_sort_insn_chain): Remove.
6853
6854         * ira.c (basic_block_order_nums, chain_insn_order,
6855         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
6856         (ira): Don't call ira_sort_insn_chain.
6857
6858         * reload1.c (reload): Don't call ira_sort_insn_chain.
6859
6860 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6861
6862         PR middle-end/37293
6863         * cgraphunit.c (update_call_expr): Remove eh regions from statements
6864         which become non throw.
6865         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
6866         update_call_expr after updating the flags on the decl.
6867
6868 2008-09-03  Jan Hubicka  <jh@suse.cz>
6869
6870         PR tree-optimization/37315
6871         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
6872         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
6873         (cgraph_analyze_functions): Use node->analyzed
6874         (cgraph_mark_functions_to_output): Likewise.
6875         (cgraph_expand_function): All functions can be released after
6876         expanding.
6877         (cgraph_optimize): Use gimple_has_body_p.
6878         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
6879         (cgraph_decide_inlining_incrementally): Likewise.
6880         (inline_transform): Inline transform.
6881         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
6882         copy fields needed.
6883         (inlinable_function_p): Drop gimple_body check.
6884         (expand_call_inline): Use gimple_has_body_p.
6885         * gimple.c (gimple_has_body_p): New.
6886         * gimple.h (gimple_has_body_p): Add prototype.
6887         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
6888         (dump_function_to_file): Use gimple_has_body_p check.
6889
6890 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
6891
6892         PR c++/37346
6893         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
6894         substatements.
6895         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
6896
6897 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
6898
6899         From Michael Frysinger  <michael.frysinger@analog.com>
6900         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
6901         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
6902         for bf538.
6903
6904 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
6905
6906         Add picoChip port.
6907         * doc/extend.texi: Document picoChip builtin functions.
6908         * doc/invoke.texi: Document picoChip options.
6909         * doc/contrib.texi: Add picoChip contribution.
6910         * doc/md.texi: Document picoChip constraints.
6911         * config.gcc: Add picochip-*-*.
6912         * config/picochip/: Add new port.
6913
6914 2008-09-03  Richard Guenther  <rguenther@suse.de>
6915
6916         PR tree-optimization/37328
6917         * tree-sra.c (sra_build_assignment): Gimplify properly.
6918         (generate_copy_inout): Take the correct stmt as definition,
6919         remove bogus assert.
6920
6921 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
6922
6923         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
6924         attributes.
6925
6926         From Michael Frysinger  <michael.frysinger@analog.com>
6927         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
6928
6929 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
6930
6931         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
6932         (__gthread_setspecific): Revert 2008-08-31 change to
6933         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
6934
6935 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
6936
6937         * diagnostic.c (error_at): New.
6938         * toplev.h (error_at): New prototype.
6939         * c-typeck.c (build_array_ref): Call error_at instead of error.
6940         Pass location to pedwarn.
6941
6942 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
6943
6944         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
6945
6946 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
6947
6948         * dwarf2out.c (tree_add_const_value_attribute): Only handle
6949         VAR_DECL and CONST_DECL.
6950
6951 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
6952             Jakub Jelinek  <jakub@redhat.com>
6953
6954         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
6955         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
6956         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
6957         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
6958         Don't set ix86_save_varrargs_registers.
6959         (ix86_setup_incoming_varargs): Assume cum != NULL.
6960         (ix86_va_start): Check ix86_varargs_gpr_size and
6961         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
6962         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
6963         from frame pointer if ix86_varargs_gpr_size == 0.
6964         (ix86_compute_frame_layout): Updated.
6965         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
6966         (ix86_varargs_gpr_size): Define.
6967         (ix86_varargs_fpr_size): Likewise.
6968         (machine_function): Remove save_varrargs_registers.
6969         Add varargs_gpr_size and varargs_fpr_size.
6970
6971 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
6972
6973         * config/alpha/alpha.c (va_list_skip_additions,
6974         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
6975         (alpha_gimplify_va_arg): Call unshare_expr on second use of
6976         offset_field.
6977
6978         PR tree-optimization/36766
6979         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
6980         for already removed basic blocks.
6981
6982         PR target/36332
6983         * real.c (real_maxval): Clear a lower bit to make real_maxval
6984         match get_max_float for IBM long double format.
6985
6986 2008-09-02  Andreas Schwab  <schwab@suse.de>
6987
6988         * configure.ac: Use m4_quote to quote the expansion of m4_do.
6989         * configure: Regenerate.
6990
6991 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
6992
6993         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
6994         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
6995         checking for a non-VOID CONSTANT_P.
6996
6997 2008-09-02  Jan Hubicka  <jh@suse.cz>
6998
6999         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
7000         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
7001         sdiv_pow2_cheap
7002
7003 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
7004
7005         * expr.c (emit_group_store): Don't assert stack temp mode size.
7006
7007 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
7008             Tobias Grosser  <grosser@fim.uni-passau.de>
7009             Jan Sjodin  <jan.sjodin@amd.com>
7010             Harsha Jagasia  <harsha.jagasia@amd.com>
7011             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
7012             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
7013             Adrien Eliche  <aeliche@isty.uvsq.fr>
7014
7015         Merge from graphite branch.
7016         * graphite.c: New.
7017         * graphite.h: New.
7018         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
7019         * doc/invoke.texi (-floop-block, -floop-interchange,
7020         -floop-strip-mine): Document new flags.
7021         * tree-into-ssa.c (gimple_vec): Moved...
7022         * tree-loop-distribution.c (rdg_component): Moved...
7023         * cfgloopmanip.c: Include tree-flow.h.
7024         (update_dominators_in_loop): New.
7025         (create_empty_if_region_on_edge): New.
7026         (create_empty_loop_on_edge): New.
7027         (loopify): Use update_dominators_in_loop.
7028         * tree-pass.h (pass_graphite_transforms): Declared.
7029         * configure: Regenerate.
7030         * tree-phinodes.c (make_phi_node): Export.
7031         (add_phi_node_to_bb): New, split from create_phi_node.
7032         * tree-chrec.c (for_each_scev_op): New.
7033         * tree-chrec.h (for_each_scev_op): Declared.
7034         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
7035         (remove_statement): Call get_phi_with_result.
7036         * config.in (HAVE_cloog): Undef.
7037         * gdbinit.in (pgg): New.
7038         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
7039         * tree-ssa-loop.c (graphite_transforms): New.
7040         (gate_graphite_transforms): New.
7041         (pass_graphite_transforms): New.
7042         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
7043         HAVE_cloog): Defined.
7044         * tree-vectorizer.c (rename_variables_in_bb): Export.
7045         * tree-data-ref.c (dr_may_alias_p): Export.
7046         (stmt_simple_memref_p): New.
7047         (find_data_references_in_stmt): Export.
7048         (find_data_references_in_loop): Export.
7049         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
7050         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
7051         (create_rdg_vertices): Export.
7052         (build_empty_rdg): New.
7053         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
7054         * tree-data-ref.h (rdg_component): ... here.
7055         (scop_p): New.
7056         (struct data_reference): Add a field scop.
7057         (DR_SCOP): New.
7058         (find_data_references_in_loop): Declared.
7059         (find_data_references_in_stmt): Declared.
7060         (create_rdg_vertices): Declared.
7061         (dr_may_alias_p): Declared.
7062         (stmt_simple_memref_p): Declared.
7063         (struct rdg_edge): Add a field ddr_p relation.
7064         (build_empty_rdg): Declared.
7065         * lambda.h (lambda_matrix): Declare a VEC of.
7066         (find_induction_var_from_exit_cond): Declared.
7067         (lambda_vector_compare): New.
7068         * common.opt (fgraphite, floop-strip-mine,
7069         floop-interchange, floop-block): New flags.
7070         * lambda-code.c (find_induction_var_from_exit_cond): Export.
7071         * cfgloop.c (is_loop_exit): New.
7072         * cfgloop.h (is_loop_exit): Declared.
7073         (create_empty_if_region_on_edge): Declared.
7074         (create_empty_loop_on_edge): Declared.
7075         * tree-flow.h (add_phi_node_to_bb): Declared.
7076         (make_phi_node): Declared.
7077         (rename_variables_in_bb): Declared.
7078         (perfect_loop_nest_depth): Declared.
7079         (graphite_transform_loops): Declared.
7080         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
7081         (graphite.o-warn): Add -Wno-error.
7082         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
7083         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
7084         (INCLUDES): Add PPLINC, CLOOGINC.
7085         (OBJS-common): Add graphite.o.
7086         (graphite.o): Add rule.
7087         * gimple.h (gimple_vec): ... here.
7088         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
7089         * passes.c (init_optimization_passes): Schedule
7090         pass_graphite_transforms.
7091
7092 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
7093
7094         PR target/37283
7095         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
7096         and -fno-toplevel-reorder after handle_options.
7097
7098 2008-09-02  Paul Brook  <paul@codesourcery.com>
7099
7100         * config/arm/arm.c (arm_tune_cortex_a9): Define.
7101         (arm_override_options): Set arm_tune_cortex_a9.
7102         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
7103         (arm_issue_rate): Handle cortexa9.
7104         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
7105         * config/arm/arm-cores.def: Add cortex-a9.
7106         * config/arm/arm-tune.md: Regenerate.
7107         * config/arm/arm.md: Include cortex-a9.md.
7108         (generic_sched, generic_vfp): Add cortexa9.
7109         * config/arm/cortex-a9.md: New file.
7110
7111 2008-09-02  Richard Guenther  <rguenther@suse.de>
7112
7113         PR tree-optimization/37327
7114         * tree-vrp.c (register_new_assert_for): Make sure to not have
7115         TREE_OVERFLOW set on the bound.
7116
7117 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
7118
7119         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
7120
7121         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
7122         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
7123         spec_info->mask.
7124
7125 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
7126
7127         * gcc/config/spu/spu.md (divdf3): Removed.
7128
7129 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
7130
7131         PR tree-optimization/37095
7132         * cgraph.c (cgraph_node): When creating new cgraph node after
7133         assembler_name_hash has been populated, record it in the hash
7134         table.
7135
7136 2008-09-01  Paul Brook  <paul@codesourcery.com>
7137
7138         * doc/invoke.texi: Document -mword-relocations.
7139         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7140         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7141         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7142         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
7143         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
7144         (arm_emit_movpair): New function.
7145         (arm_print_operand <c>): Handle sybolic addresses.
7146         * config/arm/arm.h (TARGET_USE_MOVT): Define.
7147         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7148         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
7149         * config/arm/arm.opt: Add -mword-relocations.
7150         * config/arm/arm.md (movsi): Use arm_emit_movpair.
7151         (arm_movt, arm_movw): New.
7152
7153 2008-09-01  Paul Brook  <paul@codesourcery.com>
7154
7155         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
7156         Allow Interworking on ARMv4 EABI based targets.
7157         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
7158         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
7159
7160 2008-09-01  Paul Brook  <paul@codesourcery.com>
7161
7162         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
7163         optimized LT0 test.  Remove optimization for GT.
7164
7165 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7166
7167         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
7168         openmp applications.
7169         * pa-hpux11.h (LIB_SPEC): Likewise.
7170
7171         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
7172         is defined.
7173
7174 2008-09-01  Jan Hubicka  <jh@suse.cz>
7175
7176         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
7177         present, use only counts; when guessed use only frequencies.
7178         (estimate_bb_frequencies): Use function_frequency.
7179         * profile.c (compute_branch_probabilities): Exit early when
7180         profile reading failed. Set profile_status.
7181         (branch_prob): Do not set profile_status.
7182
7183 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
7184
7185         * tree.c (protected_set_expr_location): New.
7186         * tree.h (protected_set_expr_location): New prototype.
7187         * c-tree.h (build_array_ref): Add argument.
7188         (parser_build_unary_op): Same.
7189         * c-typeck.c (build_indirect_ref): Handle new location argument.
7190         (build_array_ref): Same.
7191         (parser_build_unary_op): Same.
7192         * gimplify.c (gimplify_asm_expr): Set input_location before calling
7193         error.
7194         * c-omp.c (c_finish_omp_atomic): Pass location when calling
7195         build_indirect_ref.
7196         * c-common.c (finish_label_address_expr): Handle new location argument.
7197         * c-common.h (build_indirect_ref): Add argument.
7198         (finish_label_address_expr): Same.
7199         * c-parser.c (c_parser_unary_expression): Pass location to build
7200         functions.
7201         (c_parser_postfix_expression): Same.
7202
7203 2008-09-01  Paul Brook  <paul@codesourcery.com>
7204
7205         * config/arm/arm.md: Include cortex-r4f.md.
7206         (attr fpu): Update type list.
7207         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
7208         fconstd, fcmps and fcmpd.
7209         (attr tune_cortexr4): Define.
7210         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
7211         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
7212         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
7213         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
7214         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
7215         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
7216         cortex_a8_vfp_farith: Ditto.
7217         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
7218         * config/arm/cortex-r4.md: Use tune_cortexr4.
7219         * config/arm/cortex-r4f.md: New file.
7220
7221 2008-09-01  Richard Guenther  <rguenther@suse.de>
7222
7223         PR tree-optimization/37305
7224         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
7225         the result of constant conversions.
7226         (fold_gimple_assign): Likewise.
7227
7228 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
7229
7230         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
7231         #ifdef ENABLE_CHECKING.
7232
7233 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
7234
7235         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
7236         * sched-int.h (print_insn, print_pattern, print_value): Declare also
7237         when !INSN_SCHEDULING.
7238
7239 2008-09-01  Andreas Schwab  <schwab@suse.de>
7240
7241         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
7242
7243 2008-09-01  Paul Brook  <paul@codesourcery.com>
7244
7245         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
7246
7247 2008-09-01  Jan Hubicka  <jh@suse.cz>
7248
7249         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
7250
7251         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
7252         Pass speed operand.
7253         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
7254         * gimplify.c (gimplify_init_constructor): Add speed operand.
7255         * tree-sra.c (decide_block_copy): Likewise.
7256         * tree-inline.c (estimate_move_cost): Likewise.
7257         * config/alpha/alpha.h (MOVE_RATIO): Update.
7258         * config/frv/frv.c (MOVE_RATIO): Update.
7259         * config/spu/spu.h (MOVE_RATIO): Update.
7260         * config/sparc/sparc.h (MOVE_RATIO): Update.
7261         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
7262         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
7263         * config/cris/cris.h (MOVE_RATIO): Update.
7264         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
7265         * config/arm/arm.h (MOVE_RATIO): Update.
7266         * config/pa/pa.md: Update uses of MOVE_RATIO
7267         * config/pa/pa.h (MOVE_RATIO): Update.
7268         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
7269         CLEAR_RATIO, SET_RATIO): Update.
7270         * config/h8300/h8300.h (MOVE_RATIO): Update.
7271         * config/v850/v850.h (MOVE_RATIO): Update.
7272         * config/bfin/bfin.h (MOVE_RATIO): Update.
7273
7274 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
7275             Dmitry Melnik  <dm@ispras.ru>
7276             Dmitry Zhurikhin  <zhur@ispras.ru>
7277             Alexander Monakov  <amonakov@ispras.ru>
7278             Maxim Kuvyrkov  <maxim@codesourcery.com>
7279
7280         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
7281         sel-sched-dump.c, sel-sched-ir.c: New files.
7282         * Makefile.in (OBJS-common): Add selective scheduling object files.
7283         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
7284         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
7285         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
7286         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
7287         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
7288         (make_forwarder_block): Update loop latch if we have redirected
7289         the loop latch edge.
7290         * cfgloop.c (get_loop_body_in_custom_order): New function.
7291         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
7292         (CP_FALLTHRU_PREHEADERS): Likewise.
7293         (get_loop_body_in_custom_order): Declare.
7294         * cfgloopmanip.c (has_preds_from_loop): New.
7295         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
7296         Assert that the preheader edge will be fall thru when it is set.
7297         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
7298         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
7299         fsel-sched-substitution, fselective-scheduling): New flags.
7300         * cse.c (hash_rtx_cb): New.
7301         (hash_rtx): Use it.
7302         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
7303         sel_sched_insn_cnt): New counters.
7304         * final.c (compute_alignments): Export.  Free dominance
7305         info after loop_optimizer_finalize.
7306         * genattr.c (main): Output maximal_insn_latency prototype.
7307         * genautomata.c (output_default_latencies): New.
7308         Factor its code from ...
7309         (output_internal_insn_latency_func): ... here.
7310         (output_internal_maximal_insn_latency_func): New.
7311         (output_maximal_insn_latency_func): New.
7312         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
7313         (struct hard_reg_set_iterator): New.
7314         (hard_reg_set_iter_init, hard_reg_set_iter_set,
7315         hard_reg_set_iter_next): New functions.
7316         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
7317         * lists.c (remove_free_INSN_LIST_node,
7318         remove_free_EXPR_LIST_node): New functions.
7319         * loop-init.c (loop_optimizer_init): When
7320         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
7321         calling create_preheaders.
7322         (loop_optimizer_finalize): Do not verify flow info after reload.
7323         * recog.c (validate_replace_rtx_1): New parameter simplify.
7324         Default it to true.  Update all uses.  Factor out simplifying
7325         code to ...
7326         (simplify_while_replacing): ... this new function.
7327         (validate_replace_rtx_part,
7328         validate_replace_rtx_part_nosimplify): New.
7329         * recog.h (validate_replace_rtx_part,
7330         validate_replace_rtx_part_nosimplify): Declare.
7331         * rtl.c (rtx_equal_p_cb): New.
7332         (rtx_equal_p): Use it.
7333         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
7334         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
7335         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
7336         * vecprim.h: Add a vector type for unsigned int.
7337         * haifa-sched.c: Include vecprim.h and cfgloop.h.
7338         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
7339         ready_try, cycle_issued_insns, spec_info): Make global.
7340         (readyp): Initialize.
7341         (dfa_lookahead): New global variable.
7342         (old_max_uid, old_last_basic_block): Remove.
7343         (h_i_d): Make it a vector.
7344         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
7345         through HID macro.
7346         (after_recovery, adding_bb_to_current_region_p):
7347         New variables to handle correct insertion of the recovery code.
7348         (struct ready_list): Move declaration to sched-int.h.
7349         (rgn_n_insns): Removed.
7350         (rtx_vec_t): Move to sched-int.h.
7351         (find_insn_reg_weight): Remove.
7352         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
7353         (haifa_init_h_i_d, haifa_finish_h_i_d):
7354         New functions to initialize / finalize haifa instruction data.
7355         (extend_h_i_d, init_h_i_d): Rewrite.
7356         (unlink_other_notes): Move logic to add_to_note_list.  Handle
7357         selective scheduler.
7358         (ready_lastpos, ready_element, ready_sort, reemit_notes,
7359         find_fallthru_edge): Make global, remove static prototypes.
7360         (max_issue): Make global.  Add privileged_n and state parameters.  Use
7361         them.
7362         (extend_global, extend_all): Removed.
7363         (init_before_recovery): Add new param.  Fix the handling of the case
7364         when we insert a recovery code before the EXIT which has a predecessor
7365         with a fallthrough edge to it.
7366         (create_recovery_block): Make global.  Rename to
7367         sched_create_recovery_block.  Update.
7368         (change_pattern): Rename to sched_change_pattern.  Make global.
7369         (speculate_insn): Rename to sched_speculate_insn.  Make global.
7370         Split haifa-specific functionality into ...
7371         (haifa_change_pattern): New static function.
7372         (sched_extend_bb): New static function.
7373         (sched_init_bbs): New function.
7374         (current_sched_info): Change type to struct haifa_sched_info.
7375         (insn_cost): Adjust for selective scheduling.
7376         (dep_cost_1): New function.  Move logic from ...
7377         (dep_cost): ... here.
7378         (dep_cost): Use dep_cost_1.
7379         (contributes_to_priority_p): Use sched_deps_info instead of
7380         current_sched_info.
7381         (priority): Adjust to work with selective scheduling.  Process the
7382         corner case when all dependencies don't contribute to priority.
7383         (rank_for_schedule): Use ds_weak instead of dep_weak.
7384         (advance_state): New function.  Move logic from ...
7385         (advance_one_cycle): ... here.
7386         (add_to_note_list, concat_note_lists): New functions.
7387         (rm_other_notes): Make static.  Adjust for selective scheduling.
7388         (remove_notes, restore_other_notes): New functions.
7389         (move_insn): Add two arguments.  Update assert.  Don't call
7390         reemit_notes.
7391         (choose_ready): Remove lookahead variable, use dfa_lookahead.
7392         Remove more_issue, max_points.  Move the code to initialize
7393         max_lookahead_tries to max_issue.
7394         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
7395         ready.  Adjust use of move_insn.  Call restore_other_notes.
7396         (luid): Remove.
7397         (sched_init, sched_finish): Move Haifa-specific initialization/
7398         finalization to ...
7399         (haifa_sched_init, haifa_sched_finish): ... respectively.
7400         New functions.
7401         (setup_sched_dump): New function.
7402         (haifa_init_only_bb): New static function.
7403         (haifa_speculate_insn): New static function.
7404         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
7405         (extend_ready, extend_all): Remove.
7406         (sched_extend_ready_list, sched_finish_ready_list): New functions.
7407         (create_check_block_twin, add_to_speculative_block): Use
7408         haifa_insns_init instead of extend_global.  Update to use new
7409         initialization functions.  Change parameter.  Factor out code from
7410         create_check_block_twin to ...
7411         (sched_create_recovery_edges) ... this new function.
7412         (add_block): Remove.
7413         (sched_scan_info): New.
7414         (extend_bb): Use sched_scan_info.
7415         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
7416         static functions for walking through scheduling region.
7417         (sched_luids): New vector variable to replace uid_to_luid.
7418         (luids_extend_insn): New function.
7419         (sched_max_luid): New variable.
7420         (luids_init_insn): New function.
7421         (sched_init_luids, sched_finish_luids): New functions.
7422         (insn_luid): New debug function.
7423         (sched_extend_target): New function.
7424         (haifa_init_insn): New static function.
7425         (sched_init_only_bb): New hook.
7426         (sched_split_block): New hook.
7427         (sched_split_block_1): New function.
7428         (sched_create_empty_bb): New hook.
7429         (sched_create_empty_bb_1): New function.
7430         (common_sched_info, ready): New global variables.
7431         (current_sched_info_var): Remove.
7432         (move_block_after_check): Use common_sched_info.
7433         (haifa_luid_for_non_insn): New static function.
7434         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
7435         (increase_insn_priority): New.
7436         * modulo-sched.c (issue_rate): Remove static declaration.
7437         (sms_sched_info): Change type to haifa_sched_info.
7438         (sms_sched_deps_info, sms_common_sched_info): New variables.
7439         (setup_sched_infos): New.
7440         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
7441         Do not call regstat_free_calls_crossed.
7442         (sms_print_insn): Use const_rtx.
7443         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
7444         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
7445         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
7446         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
7447         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
7448         current_sched_info to use it.
7449         (enum reg_pending_barrier_mode): Move to sched-int.h.
7450         (h_d_i_d): New variable. Initialize to NULL.
7451         ({true, output, anti, spec, forward}_dependency_cache): Initialize
7452         to NULL.
7453         (estimate_dep_weak): Remove static declaration.
7454         (sched_has_condition_p): New function.  Adjust users of
7455         sched_get_condition to use it instead.
7456         (conditions_mutex_p): Add arguments indicating which conditions are
7457         reversed.  Use them.
7458         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
7459         argument to indicate whether returned condition is reversed.  Do not
7460         generate new rtx when condition should be reversed; indicate it by
7461         setting new argument instead.
7462         (add_dependence_list_and_free): Add deps parameter.
7463         Update all users.  Do not free dependence list when
7464         deps context is readonly.
7465         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
7466         contexts.
7467         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
7468         (remove_from_deps): New. Use the above functions.
7469         (cur_insn, can_start_lhs_rhs_p): New static variables.
7470         (add_or_update_back_dep_1): Initialize present_dep_type.
7471         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
7472         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
7473         haifa_note_dep): New functions implementing dependence hooks for
7474         the Haifa scheduler.
7475         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
7476         note_dep): New functions.
7477         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
7478         functions.
7479         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
7480         (free_deps): Initialize deps->reg_last.
7481         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
7482         sched_analyze_insn): Update to use dependency hooks infrastructure
7483         and readonly contexts.
7484         (deps_analyze_insn): New function.  Move part of logic from ...
7485         (sched_analyze): ... here.  Also move some logic to ...
7486         (deps_start_bb): ... here.  New function.
7487         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
7488         sel_sched_p.
7489         (sched_deps_init): New function.  Move code from ...
7490         (init_dependency_caches): ... here.  Remove.
7491         (init_deps_data_vector): New.
7492         (sched_deps_finish): New function.  Move code from ...
7493         (free_dependency_caches): ... here.  Remove.
7494         (init_deps_global, finish_deps_global): Adjust for use with
7495         selective scheduling.
7496         (get_dep_weak): Move logic to ...
7497         (get_dep_weak_1): New function.
7498         (ds_merge): Move logic to ...
7499         (ds_merge_1): New static function.
7500         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
7501         (ds_get_max_dep_weak): New function.
7502         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
7503         (n_insns): Rename to rgn_n_insns.
7504         (debug_ebb_dependencies): New function.
7505         (init_ready_list): Use it.
7506         (begin_schedule_ready): Use sched_init_only_bb.
7507         (ebb_print_insn): Indicate when an insn starts a new cycle.
7508         (contributes_to_priority, compute_jump_reg_dependencies,
7509         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
7510         (add_block1): Remove to ebb_add_block.
7511         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
7512         (schedule_ebb): Initialize them.  Use remove_notes instead of
7513         rm_other_notes.  Use haifa_local_init/finish.
7514         (schedule_ebbs): Use haifa_sched_init/finish.
7515         * sched-int.h: Include vecprim.h, remove rtl.h.
7516         (struct ready_list): Delete declaration.
7517         (sched_verbose_param, enum sched_pass_id_t,
7518         bb_vec_t, insn_vec_t, rtx_vec_t): New.
7519         (struct sched_scan_info_def): New structure.
7520         (sched_scan_info, sched_scan, sched_init_bbs,
7521         sched_init_luids, sched_finish_luids, sched_extend_target,
7522         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
7523         (struct common_sched_info_def): New.
7524         (common_sched_info, haifa_common_sched_info,
7525         sched_emulate_haifa_p): Declare.
7526         (sel_sched_p): New.
7527         (sched_luids): Declare.
7528         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
7529         (sched_max_luid, insn_luid): Declare.
7530         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
7531         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
7532         print_insn, print_pattern, print_value, haifa_classify_insn,
7533         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
7534         setup_sched_dump, sched_init, sched_finish,
7535         sel_insn_is_speculation_check): Export.
7536         (struct ready_list): Move from haifa-sched.c.
7537         (ready_try, ready, max_issue): Export.
7538         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
7539         sched_init_only_bb, sched_split_block, sched_split_block_1,
7540         sched_create_empty_bb, sched_create_empty_bb_1,
7541         sched_create_recovery_block, sched_create_recovery_edges): Export.
7542         (enum reg_pending_barrier_mode): Export.
7543         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
7544         (deps_t): New.
7545         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
7546         print_insn field.  Move add_block and fix_recovery_cfg to
7547         common_sched_info_def.  Move compute_jump_reg_dependencies,
7548         use_cselib  ...
7549         (struct sched_deps_info_def): ... this new structure.
7550         (sched_deps_info): Declare.
7551         (struct spec_info_def): Remove weakness_cutoff, add
7552         data_weakness_cutoff and control_weakness_cutoff.
7553         (spec_info): Declare.
7554         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
7555         dep_count field.
7556         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
7557         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
7558         (current_sched_info): Change type to struct haifa_sched_info.
7559         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
7560         (h_d_i_d): New variable.
7561         (HDID): New accessor macro.
7562         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
7563         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
7564         and HDID.
7565         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
7566         (enum SCHED_FLAGS): Update for selective scheduler.
7567         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
7568         (init_dependency_caches, free_dependency_caches): Delete declarations.
7569         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
7570         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
7571         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
7572         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
7573         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
7574         ds_to_dt): Export.
7575         (rm_other_notes): Delete declaration.
7576         (schedule_block): Remove one argument.
7577         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
7578         ready_element, ready_lastpos, sched_extend_ready_list,
7579         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
7580         concat_note_lists): Export.
7581         (struct region): Move from sched-rgn.h.
7582         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7583         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7584         BLOCK_TO_BB, CONTAINING_RGN): Export.
7585         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
7586         (current_nr_blocks, current_blocks, target_bb): Likewise.
7587         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
7588         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
7589         sched_rgn_local_init, extend_regions,
7590         rgn_make_new_region_out_of_new_block, compute_priorities,
7591         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
7592         extend_rgns, deps_join rgn_setup_common_sched_info,
7593         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
7594         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
7595         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
7596         increase_insn_priority): Likewise.
7597         * sched-rgn.c: Include sel-sched.h.
7598         (ref_counts): New static variable.  Use it ...
7599         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
7600         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
7601         (sched_is_disabled_for_current_region_p): Delete static declaration.
7602         (struct region): Move to sched-int.h.
7603         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7604         ebb_head): Define and initialize.
7605         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7606         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
7607         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
7608         sched-int.h.
7609         (find_single_block_region): Add new argument to indicate that EBB
7610         regions should be constructed.
7611         (debug_live): Delete declaration.
7612         (current_nr_blocks, current_blocks, target_bb):
7613         Remove static qualifiers.
7614         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
7615         declaration.
7616         (init_regions): Delete declaration.
7617         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
7618         rgn_estimate_number_of_insns): New.
7619         (too_large): Use estimate_number_of_insns.
7620         (haifa_find_rgns): New. Move the code from ...
7621         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
7622         (free_trg_info): New.
7623         (compute_trg_info): Allocate candidate tables here instead of ...
7624         (init_ready_list): ... here.
7625         (rgn_print_insn): Use const_rtx.
7626         (contributes_to_priority, extend_regions): Delete static declaration.
7627         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
7628         (add_block1): Rename to rgn_add_block.
7629         (debug_rgn_dependencies): Delete static qualifier.
7630         (new_ready): Use sched_deps_info.  Simplify.
7631         (rgn_common_sched_info, rgn_const_sched_deps_info,
7632         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
7633         New.
7634         (region_sched_info): Rename to rgn_const_sched_info.
7635         (deps_join): New, extracted from ...
7636         (propagate_deps): ... here.
7637         (compute_block_dependences, debug_dependencies): Update for selective
7638         scheduling.
7639         (free_rgn_deps, compute_priorities): New functions.
7640         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
7641         sched_rgn_compute_dependencies): New functions.
7642         (schedule_region): Use them.
7643         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
7644         rgn_setup_common_sched_info, rgn_setup_sched_infos):
7645         New functions.
7646         (schedule_insns): Call new functions that were split out.
7647         (rgn_make_new_region_out_of_new_block): New.
7648         (get_rgn_sched_max_insns_priority): New.
7649         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
7650         scheduling when appropriate.
7651         * sched-vis.c: Include insn-attr.h.
7652         (print_value, print_pattern): Make global.
7653         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
7654         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7655         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
7656         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
7657         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
7658         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
7659         hooks.  Initialize them to 0.
7660         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
7661         * target.h (struct gcc_target): Add them.  Rename gen_check field to
7662         gen_spec_check.
7663         * flags.h (sel_sched_switch_set): Declare.
7664         * opts.c (sel_sched_switch_set): New variable.
7665         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
7666         pipelining is disabled from command line.
7667         (common_handle_option): Record whether selective scheduling is
7668         requested from command line.
7669         * doc/invoke.texi: Document new flags and parameters.
7670         * doc/tm.texi: Document new target hooks.
7671         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
7672         ia64_gen_check.
7673         (dfa_state_size): Do not declare locally.
7674         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
7675         * config/rs6000/rs6000.c (rs6000_init_sched_context,
7676         rs6000_alloc_sched_context, rs6000_set_sched_context,
7677         rs6000_free_sched_context): New functions.
7678         (struct _rs6000_sched_context): New.
7679         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
7680         scheduling.
7681         (rs6000_sched_finish): Do not run for selective scheduling.
7682
7683 2008-08-31  Jan Hubicka  <jh@suse.cz>
7684
7685         * frv.c (frv_rtx_costs): Update forward declaration.
7686         * spu.c (spu_rtx_costs): Likewise.
7687         * pdp11.c: Include df.h
7688         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
7689         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
7690         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
7691         * iq2000.c (iq2000_address_cost): Add speed argument.
7692         (iq2000_rtx_costs): Likewise.
7693         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
7694         update call of mn10300_address_cost.
7695         * mcore.c: Include df.h
7696         (mcore_rtx_costs): Update prototype.
7697         * score3.c: Include df.h
7698         (score3_rtx_costs): Remove speed argument.
7699         * score7.c: Include df.h
7700         (score7_address_cost): Remove speed argument.
7701         * score-protos.h (score_address_cost): Update prototype.
7702         * score.c: Include df.h
7703         (score_rtx_costs): Update call of costs functions.
7704         * v850.c (v850_rtx_costs): Add bool argument.
7705
7706 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
7707
7708         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
7709
7710 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7711
7712         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
7713         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
7714
7715 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7716
7717         * mkmap-flat.awk: Add option pe_dll.
7718         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
7719         * config/i386/t-cygwin (SHLIB_LC): Add.
7720         * config/i386/t-mingw32 (SHLIB_LC): Add.
7721         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
7722         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
7723         (LINK_SPEC): Support libgcc_s.
7724         (LIBGCC_SPEC): Support libgcc_s.
7725         (LIBGCC_SONAME): New.
7726
7727 2008-08-31  Jan Hubicka  <jh@suse.cz>
7728
7729         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
7730         mistakely had old version of patch.
7731
7732         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
7733         (ipcp_estimate_growth): New.
7734         (ipcp_insert_stage): Use ipcp_estimate_growth.
7735         * profile.c (branch_prob): When reading failed, do not consider
7736         profile as read.
7737
7738 2008-08-31  Jan Hubicka  <jh@suse.cz>
7739
7740         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
7741         loop is optimized for speed.
7742
7743 2008-08-31  Richard Guenther  <rguenther@suse.de>
7744
7745         PR middle-end/37289
7746         * fold-const.c (fold_binary): Retain conversions in folding
7747         ~A + 1 to -A.
7748
7749 2008-08-31  Jan Hubicka  <jh@suse.cz>
7750
7751         * postreload-gcse.c (eliminate_partially_redundant_loads):
7752         Use optimize_bb_for_size_p.
7753         * predict.c (maybe_hot_frequency_p): Make inline.
7754         (maybe_hot_count_p): Break out from ...
7755         (maybe_hot_bb_p): ... this one.
7756         (maybe_hot_edge_p): Simplify.
7757         * basic-block.h (probably_cold_bb_p): Remove.
7758
7759 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
7760
7761         PR target/37168
7762         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
7763         prototype.
7764         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
7765         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
7766         Also split V4SFmode.
7767         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
7768         vector float modes.
7769
7770 2008-08-31  Jan Hubicka  <jh@suse.cz>
7771
7772         * predict.c (PROB_VERY_LIKELY): Make small enough so things
7773         become cold.
7774         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
7775
7776 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
7777
7778         PR debug/37287
7779         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
7780         add source coords.
7781
7782         * dwarf2out.c (native_encode_initializer): Subtract min_index for
7783         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
7784
7785 2008-08-31  Jan Hubicka  <jh@suse.cz>
7786
7787         * sparc.h (BRANCH_COST): Fix macro definition.
7788         * avr.c (avr_operand_rtx_cost): Add speed argument.
7789         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
7790
7791 2008-08-31  Richard Guenther  <rguenther@suse.de>
7792
7793         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
7794         types instead of operands.  Re-instantiate verifying of
7795         binary expression operands.
7796
7797 2008-08-30  Jan Hubicka  <jh@suse.cz>
7798
7799         * fwprop.c (should_replace_address): Add speed attribute.
7800         (PR_OPTIMIZE_FOR_SPEED): New flag.
7801         (propagate_rtx_1): Use it.
7802         (propagate_rtx): Set it.
7803         (try_fwprop_subst): Update call of rtx_costs.
7804         (forward_propagate_and_simplify): LIkewise.
7805         * hooks.c (hook_int_rtx_bool_0): New
7806         (hook_bool_rtx_int_int_intp_false): Replace by ...
7807         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7808         * hooks.h (hook_int_rtx_bool_0): New
7809         (hook_bool_rtx_int_int_intp_false): Replace by ...
7810         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7811         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
7812         (prepare_cmp_insn): UPdate call of rtx_cost.
7813         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
7814         (reload_cse_simplify_operands): Update call of rtx_cost.
7815         (reload_cse_move2add): call of rtx_cost.
7816         * target.h (struct gcc_target): Update rtx_costs and address_costs.
7817         * rtlanal.c (rtx_cost): Add speed argument.
7818         (address_cost): Add speed argument
7819         (default_address_cost): Likewise.
7820         (insn_rtx_cost): Likewise.
7821         * cfgloopanal.c (seq_cost): Add speed argument.
7822         (target_reg_cost, target_spill_cost): Turn to array.
7823         (init_set_costs): Update for speed.
7824         (estimate_reg_pressure_cost): Add speed argument.
7825         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
7826         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
7827         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
7828         (seq_cost): Add speed argument.
7829         (computation_cost): Add speed arugment.
7830         (add_cost, multiply_by_const, get_address_cost): add speed argument.
7831         (force_expr_to_var_cost): Update for profile info.
7832         (force_var_cost): Likewise.
7833         (split_address_cost): Likewise.
7834         (ptr_difference_cost): Likewise.
7835         (difference_cost): Likewise.
7836         (get_computation_cost_at): Likewise.
7837         (determine_iv_cost): Likewise.
7838         (ivopts_global_cost_for_size): Likewise.
7839         (rewrite_use_address): Likewise.
7840         (tree_ssa_iv_optimize_loop): Initialize speed field.
7841         * cse.c (optimize_this_for_speed_p): New static var.
7842         (notreg_cost): Update call of rtx_cost.
7843         (cse_extended_basic_block): set optimize_this_for_speed_p.
7844         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
7845         (noce_try_cmove_arith): Likewise.
7846         (noce_try_sign_mask): LIkewise.
7847         * expr.c (compress_float_constant): Update rtx_cost calls.
7848         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
7849         argument.
7850         (addr_to_parts): Likewise.
7851         (create_mem_ref): Likewise.
7852         * dse.c (find_shift_sequence): Add speed argument.
7853         (replace_read): Update call.
7854         * calls.c (precompute_register_parameters): Update call of rtx_cost.
7855         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
7856         * neg_cost, shift_cost, shiftadd_cost,
7857         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
7858         mul_highpart_cost): Increase dimension.
7859         (init_expmed): Initialize for both size and speed.
7860         (expand_shift): Use profile.
7861         (synth_mult): Use profile.
7862         (choose_mult_variant): Use profile.
7863         (expand_mult): Use profile.
7864         (expand_mult_highpart_optab): Use profile.
7865         (expand_mult_highpart): Use profile.
7866         (expand_smod_pow2): Use profile.
7867         (expand_divmod): Use profile.
7868         * simplify-rtx.c (simplify_binary_operation_1): Update call of
7869         rtx_cost.
7870         * loop-invariant.c (create_new_invariant): Use profile.
7871         (gain_for_invariant): Add speed parameter.
7872         (best_gain_for_invariant): Likewise.
7873         (find_invariants_to_move): Likewise.
7874         (move_single_loop_invariants): Set it.
7875         * target-def.h (TARGET_RTX_COSTS): Use hook.
7876         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
7877         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
7878         * output.h (default_address_cost): Update prototype.
7879         * combine.c (optimize_this_for_speed_p): New static var.
7880         (combine_validate_cost): Update call of rtx_cost.
7881         (combine_instructions): Set optimize_this_for_speed_p.
7882         (expand_compound_operation): Update call of rtx_cost.
7883         (make_extraction):Update call of rtx_cost.
7884         (force_to_mode):Update call of rtx_cost.
7885         (distribute_and_simplify_rtx):Update call of rtx_cost.
7886         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
7887         (estimate_reg_pressure_cost): Update prototype.
7888         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
7889         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
7890         Remove.
7891         * config/alpha/alpha.c (alpha_rtx_costs): Update.
7892         (alpha_rtx_costs): Update.
7893         * config/frv/frv.c (frv_rtx_costs): Update.
7894         * config/s390/s390.c (s390_rtx_costs): Update.
7895         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
7896         (m32c_rtx_costs): Update.
7897         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
7898         (spu_rtx_costs): Update.
7899         * config/sparc/sparc.c (sparc_rtx_costs): Update.
7900         * config/m32r/m32r.c (m32r_rtx_costs): Update.
7901         * config/i386/i386.c (:ix86_address_cost): Update.
7902         (ix86_rtx_costs): Update.
7903         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
7904         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
7905         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
7906         * config/crx/crx.c (crx_address_cost): Update.
7907         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
7908         * config/stormy16/stormy16.c
7909         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
7910         * config/m68hc11/m68hc11.c
7911         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
7912         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
7913         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
7914         Update.
7915         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
7916         Update
7917         * config/ia64/ia64.c (ia64_rtx_costs): Update.
7918         * config/m68k/m68k.c (m68k_rtx_costs): Update.
7919         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
7920         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
7921         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
7922         (mcore_rtx_costs): update.
7923         * config/score/score3.c (score3_rtx_costs): Update.
7924         * config/score/score7.c (score7_rtx_costs): Update.
7925         * config/score/score3.h (score3_rtx_costs):Update.
7926         * config/score/score7.h (score7_rtx_costs): Update.
7927         * config/score/score.c (score_rtx_costs): Update.
7928         * config/arm/arm.c (arm_address_cost): Update.
7929         (arm_rtx_costs_1): Update.
7930         (arm_rtx_costs_1): Update.
7931         (arm_size_rtx_costs): Update.
7932         (arm_size_rtx_costs): Update.
7933         (arm_size_rtx_costs): Update.
7934         (arm_xscale_rtx_costs): Update.
7935         (arm_thumb_address_cost): Update.
7936         * config/pa/pa.c (hppa_address_cost): Update.
7937         * config/mips/mips.c (mips_rtx_costs): Update.
7938         * config/vax/vax.c (vax_address_cost): Update.
7939         * config/h8300/h8300.c (h8300_shift_costs): Update.
7940         (h8300_rtx_costs): Update.
7941         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
7942         (v850_rtx_costs): Update.
7943         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
7944         * config/bfin/bfin.c
7945         (bfin_address_cost): Update.
7946         (bfin_rtx_costs): Update.
7947         * stmt.c (lshift_cheap_p): Update.
7948
7949 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7950
7951         PR middle-end/36444
7952         * expmed.c (extract_bit_field_1): Check the mode size to make
7953         sure the vector modes have the same size.
7954
7955 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
7956
7957         * dojump.c (top level): Include basic-block.h to declare
7958         optimize_insn_for_speed_p
7959
7960         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
7961
7962         * opts.h (CL_SAVE): New option class for marking options that are
7963         target specific options usable in the target attribute.
7964         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
7965
7966         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
7967         can easily find the target specific options that are safe to use
7968         in the attribute or pragma.
7969
7970         * attribs.c (decl_attributes): Change #pragma GCC option to
7971         #pragma GCC target, and attribute((option(...))) to
7972         attribute((target(...))).
7973
7974         * doc/extend.texi (target attribute): Change from option
7975         attribute.  Delete push/pop/reset.
7976         (#pragma GCC target): Change from #pragma GCC option.  Delete
7977         push/pop/reset.
7978         (#pragma GCC push_options): Document new pragma.
7979         (#pragma GCC pop_options): Document new pragma.
7980         (#pragma GCC reset_options): Document new pragma.
7981
7982         * targhooks.c (default_target_option_valid_attribute_p): Add
7983         warning about port not supporting target attributes.
7984         (default_target_option_pragma_parse): New function, warn about
7985         #pragma GCC target not being supported.
7986
7987         * targhooks.h (default_target_option_pragma_parse): Add
7988         declaration.
7989
7990         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
7991         TI_CURRENT_OPTION_PRAGMA.
7992         (current_target_pragma): Rename from current_option_pragma.
7993
7994         * target.h (struct target_option): Delete booleans for changing
7995         the optimization level on hot/cold functions.  Change signature of
7996         pragma_parse hook to take a second tree.
7997
7998         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
7999
8000         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
8001         that the declaration is done at global scope.
8002
8003         * langhooks.c (add_builtin_function_common): Move most of the code
8004         from add_builtin_function here, calling the hook passed in.
8005         (add_builtin_function): Call add_builtin_function_common with
8006         standard builtin hook.
8007         (add_builtin_function_ext_scope): New function to add builtins to
8008         global scope.
8009
8010         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
8011         hook.
8012         (add_builtin_function_ext_scope): Add declaration.
8013
8014         * c-pragma.c (handle_pragma_target): Rename from
8015         handle_pragma_option, #pragma GCC option is now #pragma GCC
8016         target.  Move warning about port not supporting target options to
8017         default pragma parse hook.  Remove push/pop/reset from this
8018         pragma.
8019         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
8020         (option_stack): Delete static variable.
8021         (optimize_stack): Ditto.
8022         (optons_stack): New stack of saved target and optimization
8023         options.
8024         (handle_pragma_push_options): New function to handle pushing both
8025         target and optimization options.
8026         (handle_pragma_pop_options): New function to handle popping both
8027         target and optimization options.
8028         (handle_pragma_reset_options): New function to handle resetting
8029         both target and optimization options to their initial state.
8030         (init_pragma): Rename handle_pragma_option to
8031         handle_pragma_target.  Add support for push_options, pop_options,
8032         and reset_options pragmas.
8033
8034         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
8035         default_target_option_pragma_parse.
8036         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
8037         default_target_option_valid_attribute_p.
8038         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8039         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8040         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
8041         optimization level on hot/cold functions.
8042
8043         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
8044         if the caller and callee have different optimization levels.
8045
8046         * c-common.c (handle_target_attribute): Rename from
8047         handle_option_attribute, attribute((option(...))) is now
8048         attribute((target(...))).  Move warning if the port does not
8049         support target attributes to the default hook.
8050         (handle_hot_attribute): Delete code to change the optimization
8051         level of hot functions.
8052         (handle_cold_attribute): Ditto.
8053
8054         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
8055         argument that is the binary tree options to use if there are no
8056         arguments.  Call ix86_valid_target_attribute_tree instead of
8057         ix86_valid_option_attribute_tree.
8058         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
8059         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
8060         ix86_pragma_option_parse.
8061
8062         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
8063         Rename from ix86_valid_option_attribute_tree.
8064
8065         * config/i386/i386.c (ix86_add_new_builtins): New function to add
8066         new builtins when the ISA changes.
8067         (ix86_valid_target_attribute_tree): Rename from
8068         ix86_valid_option_attribute_tree.  Change callers.  If the
8069         function specified optimization options, use those as the starting
8070         point before setting up the target attributes.  If the
8071         optimization options were changed in the course of setting the
8072         target attributes, record the new optimization options.
8073         (ix86_valid_target_attribute_tree_inner_p): Rename from
8074         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
8075         ix86_add_new_builtins if the ISA changed.
8076         (ix86_valid_target_attribute_p): Rename from
8077         ix86_valid_option_attribute_p.  Change callers.
8078         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
8079         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
8080         as delayed builtin functions.
8081         (struct builtin_isa): New structure to record builtin functions
8082         that should be delayed until the ISA for that function is used.
8083         (ix86_builtins_isa): Change from int to struct to track builtin
8084         functions we want to declare at some point.
8085         (def_builtin): If the front end can delay defining the builtin
8086         functions, don't create builtins for ISAs not part of the default
8087         options.
8088         (def_builtin_const): Ditto.
8089         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
8090         __builtin_ia32_pcmov_v2di to be different builtin functions.
8091         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
8092         a structure instead of an int.
8093         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
8094         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
8095         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8096         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8097
8098         * config/ia64/ia64.h
8099         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8100         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8101
8102         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
8103         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
8104         (LANG_HOOKS_INITIALIZER): Add
8105         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
8106
8107 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8108
8109         PR target/37270
8110         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
8111         the reload address with the index register for SFmode
8112         access with a displacement.
8113
8114 2008-08-30  Jan Hubicka  <jh@suse.cz>
8115
8116         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
8117         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
8118         * dojump.c (do_jump): Likewise.
8119         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
8120         (note-if_info): Add BRANCH_COST.
8121         (noce_try_store_flag_constants, noce_try_addcc,
8122         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
8123         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
8124         find_if_case_2): Use computed branch cost.
8125         * expr.h (BRANCH_COST): Update default.
8126         * predict.c (predictable_edge_p): New function.
8127         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
8128         Update BRANCH_COST call.
8129         * basic-block.h (predictable_edge_p): Declare.
8130         * config/alpha/alpha.h (BRANCH_COST): Update.
8131         * config/frv/frv.h (BRANCH_COST): Update.
8132         * config/s390/s390.h (BRANCH_COST): Update.
8133         * config/spu/spu.h (BRANCH_COST): Update.
8134         * config/sparc/sparc.h (BRANCH_COST): Update.
8135         * config/m32r/m32r.h (BRANCH_COST): Update.
8136         * config/i386/i386.h (BRANCH_COST): Update.
8137         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
8138         BRANCH_COST.
8139         * config/sh/sh.h (BRANCH_COST): Update.
8140         * config/pdp11/pdp11.h (BRANCH_COST): Update.
8141         * config/avr/avr.h (BRANCH_COST): Update.
8142         * config/crx/crx.h (BRANCH_COST): Update.
8143         * config/xtensa/xtensa.h (BRANCH_COST): Update.
8144         * config/stormy16/stormy16.h (BRANCH_COST): Update.
8145         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
8146         * config/iq2000/iq2000.h (BRANCH_COST): Update.
8147         * config/ia64/ia64.h (BRANCH_COST): Update.
8148         * config/rs6000/rs6000.h (BRANCH_COST): Update.
8149         * config/arc/arc.h (BRANCH_COST): Update.
8150         * config/score/score.h (BRANCH_COST): Update.
8151         * config/arm/arm.h (BRANCH_COST): Update.
8152         * config/pa/pa.h (BRANCH_COST): Update.
8153         * config/mips/mips.h (BRANCH_COST): Update.
8154         * config/vax/vax.h (BRANCH_COST): Update.
8155         * config/h8300/h8300.h (BRANCH_COST): Update.
8156         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
8157         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
8158         * doc/tm.texi (BRANCH_COST): Update.
8159
8160 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
8161
8162         PR target/37283
8163         * config/arm/arm.c (arm_optimization_options): Set
8164         flag_section_anchors to 2 instead of 1 to distinguish it from
8165         -fsection-anchors given explicitely on the command line.
8166
8167 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
8168
8169         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
8170         final insn of a split.
8171
8172 2008-08-30  Jan Hubicka  <jh@suse.cz>
8173
8174         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
8175         optimized for speed.
8176         * final.c (compute_alignments): Use optimize_bb_for_size_p.
8177         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
8178         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
8179         flag_gcse_after_reload_set): New static vars.
8180         (common_handle_option): Enable those flags for profile-use.
8181         (decode_options): Remove optimize_size flags that are handled
8182         on higher granuality.
8183         * tree-vectorizer.c (vectorize_loops): Use
8184         optimize_loop_nest_for_speed_p.
8185         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
8186         * tree-predcom.c (tree_predictive_commoning): Use
8187         optimize_loop_for_speed_p.
8188         * varasm.c (assemble_start_function): Use
8189         optimize_function_for_speed_p.
8190         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
8191         * predict.c (optimize_loop_for_speed_p): Fix walk.
8192
8193 2008-08-30  Jan Hubicka  <jh@suse.cz>
8194
8195         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
8196         functions.
8197         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
8198         profile presence locally.
8199
8200 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
8201
8202         PR bootstrap/37086
8203         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
8204         versions before 4.0.
8205
8206 2008-08-29  Jan Hubicka  <jh@suse.cz>
8207
8208         * tree-inline.c (insert_init_stmt): Insert sequence even when
8209         not in SSA form.
8210
8211 2008-08-29  Jeff Law  <law@redhat.com>
8212
8213         * mn10300.c (mn10300_secondary_reload_class): We need secondary
8214         reloads for AM33-2 if IN is a pseudo with an equivalent memory
8215         location and class is an FP register.
8216
8217 2008-08-29  Jan Hubicka  <jh@suse.cz>
8218
8219         * see.c (see_merge_one_def_extension): Silence used uninitialized
8220         warning.
8221         * matrix-reorg.c (check_allocation_function): Likewise.
8222         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
8223
8224 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
8225
8226         PR c/37261
8227         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
8228         compute new & and | in type rather than TREE_TYPE (arg0).
8229
8230         * dwarf2out.c (fortran_common): Update comment.
8231         (gen_variable_die): Swap com_die and var_die variables in Fortran
8232         COMMON block handling code.
8233
8234         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
8235
8236         * dwarf2out.c (gen_const_die): New function.
8237         (size_of_die, value_format, output_die): Output larger
8238         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
8239         (native_encode_initializer): New function.
8240         (tree_add_const_value_attribute): Call it.
8241         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
8242
8243         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
8244         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
8245         TREE_THIS_VOLATILE to add_type_attribute.
8246
8247         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
8248         types.
8249         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
8250         types.
8251
8252         * dwarf2out.c (loc_by_reference): New function.
8253         (add_location_or_const_value_attribute): Use it.
8254
8255         PR fortran/23057
8256         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
8257         as DW_TAG_variable children of DW_TAG_common_block rather than
8258         DW_TAG_member children.  Put DW_AT_external to individual
8259         DW_TAG_variable DIEs, not to DW_TAG_common_block.
8260
8261         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
8262         loc_descriptor_from_tree_1.
8263
8264         PR fortran/29635
8265         PR fortran/23057
8266         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
8267         arguments to imported_module_or_decl.
8268         (debug_nothing_tree_tree): Removed.
8269         (debug_nothing_tree_tree_tree_bool): New prototype.
8270         * debug.c (do_nothing_debug_hooks): Adjust.
8271         (debug_nothing_tree_tree): Removed.
8272         (debug_nothing_tree_tree_tree_bool): New function.
8273         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
8274         (gen_variable_die): Put all common vars for the
8275         same COMMON block under one DW_TAG_common_block.
8276         (declare_in_namespace): Return new context_die, for Fortran
8277         return the module DIE instead of adding extra declarations into
8278         the namespace.
8279         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
8280         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
8281         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
8282         DW_AT_declaration.
8283         (dwarf2out_global_decl): Don't skip Fortran global vars.
8284         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
8285         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
8286         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
8287         DW_TAG_imported_declaration as child of previous
8288         DW_TAG_imported_module.
8289         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
8290         * sdbout.c (sdb_debug_hooks): Likewise.
8291         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8292
8293 2008-08-29  Jan Hubicka  <jh@suse.cz>
8294
8295         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
8296
8297         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
8298         * ipa-cp.c (n_cloning_candidates): New static variable.
8299         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
8300         (ipcp_print_all_lattices): Improve debug output.
8301         (ipcp_cloning_candidate_p): New function.
8302         (ipcp_initialize_node_lattices): Use it.
8303         (ipcp_init_stage): Do only analyzis here; prettier debug output.
8304         (ipcp_propagate_stage): Prettier debug output.
8305         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
8306         (ipcp_print_all_structures): Remove.
8307         (ipcp_need_redirect_p): Test !n_cloning_candidates.
8308         (ipcp_insert_stage): Prettier debug output; call
8309         cgraph_remove_unreachable_nodes before propagating.
8310         (pass_ipa_cp): Schedule function removal pass.
8311         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
8312         debug output.
8313         (cgraph_maybe_hot_edge_p): Move to ...
8314         * predict.c (cgraph_maybe_hot_edge_p) ... here.
8315         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
8316         (common_handle_option): Set them; enable ipa-cp when profiling.
8317         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
8318         (ipa_print_all_jump_functions): Likewise.
8319         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
8320         (ipa_print_node_params, ipa_print_all_params): New.
8321         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
8322         ipa_print_all_param_flags): Remove.
8323         (ipa_print_node_params, ipa_print_all_params): New.
8324
8325 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
8326
8327         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
8328         change from 2008-04-03.
8329         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
8330
8331 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
8332
8333         PR rtl-opt/37251
8334         * ira-color.c (push_allocnos_to_stack): Truncate
8335         removed_splay_allocno_vec.
8336
8337 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
8338
8339         PR rtl-opt/37243
8340         * ira-color (ira_fast_allocation): Don't assign hard registers to
8341         global allocnos.
8342
8343 2008-08-29  Jan Hubicka  <jh@suse.cz>
8344
8345         PR middle-end/37278
8346         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
8347         for cold internal loops.
8348
8349 2008-08-29  Richard Guenther  <rguenther@suse.de>
8350
8351         * tree-ssa-structalias.c (create_variable_info_for): Do not
8352         create fields for heap vars or vars with a noalias state.
8353         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
8354         from ESCAPED.
8355
8356 2008-08-29  Richard Guenther  <rguenther@suse.de>
8357
8358         * common.opt (ftree-store-ccp): Mark as preserved for
8359         backward compatibility.
8360         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
8361         * tree-pass.h (pass_store_ccp): Remove.
8362         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
8363         (first_vdef): Remove declaration.
8364         (get_value_loaded_by): Likewise.
8365         * tree-ssa-ccp.c (do_store_ccp): Remove.
8366         (get_default_value): Simplify as do_store_ccp is always false
8367         now.  Do not initialize mem_ref.
8368         (set_value_varying): Likewise.
8369         (canonicalize_float_value): Likewise.
8370         (set_lattice_value): Likewise.
8371         (likely_value): Likewise.
8372         (surely_varying_stmt_p): Likewise.
8373         (ccp_initialize): Likewise.
8374         (ccp_lattice_meet): Likewise.
8375         (ccp_visit_phi_node): Likewise.
8376         (ccp_fold): Likewise.
8377         (evaluate_stmt): Likewise.
8378         (visit_assignment): Likewise.
8379         (ccp_visit_stmt): Likewise.
8380         (execute_ssa_ccp): Fold into ...
8381         (do_ssa_ccp): ... this.
8382         (do_ssa_store_ccp): Remove.
8383         (gate_store_ccp): Likewise.
8384         (pass_store_ccp): Likewise.
8385         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
8386         initialize mem_ref.
8387         * tree-ssa-propagate.c (first_vdef): Remove.
8388         (get_value_loaded_by): Likewise.
8389         (replace_vuses_in): Likewise.
8390         (substitute_and_fold): Do not call replace_vuses_in.
8391         * opts.c (decode_options): Do not set flag_tree_store_ccp.
8392
8393 2008-08-29  Richard Guenther  <rguenther@suse.de>
8394
8395         PR middle-end/37236
8396         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
8397         PARAM_NOALIAS tags with is_heapvar.
8398         * tree-ssa-operands.c (access_can_touch_variable): Offset
8399         based tests do not apply for heapvars.  Fix offset test.
8400
8401 2008-08-29  Jan Hubicka  <jh@suse.cz>
8402
8403         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
8404         (-fipa-cp-clone): Enabled by default at -O3.
8405         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
8406         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
8407
8408 2008-08-29  Jan Hubicka  <jh@suse.cz>
8409
8410         * tree.c (build_function_type_skip_args,
8411         build_function_decl_skip_args): New functions.
8412         * tree.h (build_function_type_skip_args,
8413         build_function_decl_skip_args): Declare.
8414         * gimple.c (giple_copy_call_skip_args): New function.
8415         (giple_copy_call_skip_args): Declare.
8416
8417         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
8418         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
8419         (ipcp_node_modifiable_p): ... this one; use
8420         tree_versionable_function_p.
8421         (ipcp_create_replace_map): Improve debug output.
8422         (ipcp_need_redirect_p): Return false when not clonning.
8423         (ipcp_update_callgraph): Skip args.
8424         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
8425         skip args.
8426         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
8427         (save_inline_function_body): Update call of tree_function_versioning.
8428         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
8429         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
8430         argument.
8431         (tree_function_versioning): Likewise.
8432         * tree-inline.h (tree_function_versioning): Update prototype.
8433
8434 2008-08-29  Jan Hubicka  <jh@suse.cz>
8435
8436         * loop-unswitch.c (unswitch_single_loop): Use
8437         optimize_loop_for_speed_p.
8438         * tree-ssa-threadupdate.c (mark_threaded_blocks):
8439         Use optimize_function_for_size_p.
8440         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
8441         * postreload-gcse.c (eliminate_partially_redundant_load):
8442         Use optimize_bb_for_size_p.
8443         * value-prof.c (gimple_divmod_fixed_value_transform,
8444         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
8445         gimple_stringops_transform): Use optimize_bb_for_size_p.
8446         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
8447         * final.c (compute_alignments): Use optimize_function_for_size_p.
8448         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
8449         (fold_builtin_strcpy, fold_builtin_fputs): Use
8450         optimize_function_for_size_p.
8451         * fold-const.c (tree_swap_operands_p): Use
8452         optimize_function_for_size_p.
8453         * recog.c (relax_delay_slots): Likewise.
8454         * tree-ssa-math-opts.c (replace_reciprocal):
8455         Use optimize_bb_for_speed_p.
8456         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
8457         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
8458         optimize_function_for_size_p.
8459         (cgraph_decide_inlining_of_small_function): Use
8460         optimize_function_for_size_p.
8461         * global.c (find_reg): Use optimize_function_for_size_p.
8462         * opts.c (decode_options): Do not clear flag_tree_ch,
8463         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
8464         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
8465         work it out from profile.
8466         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
8467         optimize_loop_for_speed_p.
8468         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8469         Constify argument.
8470         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
8471         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
8472         * tree-eh.c (decide_copy_try_finally): Use
8473         optimize_function_for_size_p.
8474         * local-alloc.c (block_alloc): Pass BB pointer.
8475         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
8476         * gcse.c (gcse_main): Use optimize_function_for_size_p.
8477         * loop-unroll.c (decide_unrolling_and_peeling):
8478         Use optimize_loop_for_size_p.
8479         (decide_peel_completely): Likewise.
8480         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
8481         optimize_loop_for_size_p.
8482         (vect_enhance_data_refs_alignment): Likewise.
8483         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
8484         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
8485         Update call.
8486         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
8487         (try_crossjump_bb): Use optimize_bb_for_size_p.
8488         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
8489         optimize_loop_for_speed_p.
8490         * bb-reorder.c (find_traces_1_round): Likewise.
8491         (copy_bb): Use optimize_bb_for_speed_p.
8492         (duplicate_computed_gotos): Likewise.
8493         * basic-block.h (optimize_loop_nest_for_size_p,
8494         optimize_loop_nest_for_speed_p): New.
8495         * stmt.c (expand_case): Use optimize_insn_for_size_p.
8496
8497 2008-08-29  Tristan Gingold  <gingold@adacore.com>
8498
8499         * gcov.c (main): Call expandargv.
8500
8501 2008-08-29  Jan Hubicka  <jh@suse.cz>
8502
8503         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
8504         is not cold.
8505         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8506         Constify arguments.
8507         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
8508         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8509         Constify.
8510         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
8511
8512 2008-08-29  Jan Hubicka  <jh@suse.cz>
8513
8514         * tree-pass.h (pass_strip_predict_hints): Declare.
8515         * predict.c (strip_builtin_expect): Rename to ...
8516         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
8517         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
8518         (tree_estimate_probability): Do not strip builtin_expect.
8519         (pass_strip_predict_hints): New pass.
8520         * tree-inline.c (expand_call_inline): When inlining cold function,
8521         predict it as unlikely.
8522         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
8523
8524 2008-08-29  Richard Guenther  <rguenther@suse.de>
8525
8526         PR tree-optimization/37207
8527         * tree-vrp.c (extract_range_from_binary_expr): Also try
8528         to constant fold if only one of the operands is a constant.
8529
8530 2008-08-29  Nick Clifton  <nickc@redhat.com>
8531
8532         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
8533         the same way as SYMBOL_REFs.
8534
8535 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
8536
8537         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
8538
8539 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
8540
8541         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
8542         * config/mips/mips.md (branch_likely): Remove const.  Fix
8543         comment formatting.
8544         (define_delay for type "branch"): Change to only apply for branch
8545         with likely variant.
8546         (define_delay for type "branch" and "branch_likely" no).  New delay
8547         definition.
8548         (equality_op): New code iterator.
8549         (bbv, bbinv): New code attributes.
8550         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
8551         patterns.
8552
8553 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8554             Andrew Pinski  <pinskia@gcc.gnu.org>
8555
8556         PR 18050
8557         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
8558
8559 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
8560
8561         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
8562         rule that a symbolic constant must be defined and >= 0 for the
8563         corresponding facility to be present at compile-time.
8564         * gthr-posix.c: Likewise.
8565
8566 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
8567
8568         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
8569         * config/mips/mips.md (D): New mode attribute.
8570         (mulsi3, muldi3): Merge it into ...
8571         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
8572         (muldi3_mul3): New pattern.
8573         (mulsi3_mult3): Rename to mulsi3_mul3.
8574
8575 2008-08-28  Jan Hubicka  <jh@suse.cz>
8576
8577         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
8578         to fail.
8579         * predict.c (always_optimize_for_size_p): Rename to ...
8580         (optimize_function_for_size): ... this one; make extern.
8581         (optimize_function_for_speed_p): New.
8582         (optimize_bb_for_size_p, optimize_bb_for_size_p,
8583         optimize_edge_for_size_p,optimize_edge_for_size_p,
8584         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
8585         * basic-block.h (optimize_function_for_size_p,
8586         optimize_function_for_speed_p): Declare.
8587         * i386.md (optimize_size checks): Replace them by appropriate
8588         predicate.
8589         (standard_80387_constant_p, ix86_compute_frame_layout,
8590         ix86_expand_epilogue, ix86_decompose_address,
8591         print_operand, emit_i387_cw_initialization,
8592         inline_memory_move_cost, ix86_pad_returns,
8593         ix86_reorg): Replace optimize_size checks.
8594
8595 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8596
8597         * rtl.h (simplify_subreg_regno): Declare.
8598         * rtlanal.c (simplify_subreg_regno): New function, split out from...
8599         * simplify-rtx.c (simplify_subreg): ...here.
8600         * reload.c (find_reloads): Use simplify_subreg_regno instead of
8601         subreg_offset_representable_p.
8602
8603 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8604
8605         PR c/30949
8606         * c-typeck.c (convert_for_assignment): Give a note describing what
8607         was passed and what was expected.
8608
8609 2008-08-28  Joey Ye  <joey.ye@intel.com>
8610
8611         * doc/extend.texi: Document AVX built-in functions.
8612         * doc/invoke.texi: Document -mavx.
8613
8614 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
8615             Joey Ye  <joey.ye@intel.com>
8616             Xuepeng Guo  <xuepeng.guo@intel.com>
8617
8618         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
8619
8620         * config/i386/cpuid.h (bit_FMA): New.
8621         (bit_XSAVE): Likewise.
8622         (bit_OSXSAVE): Likewise.
8623         (bit_AVX): Likewise.
8624
8625         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
8626         define.  Use ASM_OUTPUT_AVX_PREFIX.
8627
8628         * config/i386/gmmintrin.h: New.
8629
8630         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
8631         (OPTION_MASK_ISA_AVX_SET): New.
8632         (OPTION_MASK_ISA_FMA_SET): Likewise.
8633         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
8634         (OPTION_MASK_ISA_FMA_SET): Likewise.
8635         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
8636         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
8637         (pta_flags): Add PTA_AVX and PTA_FMA.
8638         (override_options): Handle PTA_AVX and PTA_FMA.
8639         (init_cumulative_args): Handle warn_avx.
8640         (classify_argument): Return 0 for COImode and OImode.  Return
8641         1 and X86_64_AVX_CLASS for 256bit vector types.
8642         (examine_argument): Handle X86_64_AVX_CLASS.
8643         (construct_container): Likewise.
8644         (function_arg_advance_32): Pass OImode and 256bit vector types
8645         in AVX register.
8646         (function_arg_advance_64): Take a new argument to indicate if a
8647         parameter is named.  Handle 256bit vector types.  Return
8648         immediately for unnamed 256bit vector mode parameters.
8649         (function_arg_advance): Updated.
8650         (function_arg_32): Add comments for TImode.  Handle OImode
8651         and 256bit vector types.
8652         (function_arg_64): Take a new argument to indicate if a
8653         parameter is named.  Handle 256bit vector types.  Return NULL
8654         for unnamed 256bit vector mode parameters.
8655         (function_arg): Updated.
8656         (setup_incoming_varargs_64): Support
8657         AVX encoding for *sse_prologue_save_insn.
8658         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
8659         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
8660         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
8661         enabled, otherwise return -3.
8662         (standard_sse_constant_opcode): Handle AVX and 256bit vector
8663         modes.
8664         (print_reg): Support AVX registers.  Handle 'x' and 't'.
8665         Handle 'd' to duplicate the operand.
8666         (print_operand): Likewise.  Also support AVX vector compare
8667         instructions.
8668         (output_387_binary_op): Support AVX.
8669         (output_fp_compare): Likewise.
8670         (ix86_expand_vector_move_misalign): Likewise.
8671         (ix86_attr_length_vex_default): New.
8672         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8673         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8674         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8675         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8676         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
8677         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8678         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
8679         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
8680         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
8681         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
8682         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
8683         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
8684         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
8685         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
8686         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8687         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
8688         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
8689         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8690         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
8691         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
8692         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8693         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8694         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8695         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
8696         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
8697         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
8698         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
8699         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8700         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
8701         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
8702         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
8703         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
8704         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
8705         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8706         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8707         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8708         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
8709         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
8710         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
8711         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
8712         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
8713         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
8714         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
8715         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
8716         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
8717         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
8718         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8719         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8720         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8721         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8722         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8723         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8724         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8725         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8726         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8727         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8728         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8729         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8730         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8731         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8732         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8733         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8734         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8735         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
8736         and IX86_BUILTIN_MOVMSKPS256,
8737         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
8738         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
8739         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
8740         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
8741         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
8742         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
8743         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
8744         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
8745         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
8746         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
8747         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
8748         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
8749         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
8750         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
8751         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
8752         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
8753         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
8754         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
8755         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
8756         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
8757         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
8758         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
8759         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
8760         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
8761         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
8762         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8763         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
8764         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
8765         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8766         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8767         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
8768         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
8769         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
8770         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
8771         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
8772         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
8773         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
8774         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
8775         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8776         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8777         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8778         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8779         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
8780         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
8781         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
8782         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
8783         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
8784         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
8785         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
8786         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
8787         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
8788         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
8789         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8790         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
8791         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8792         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
8793         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8794         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8795         IX86_BUILTIN_CMPPS,
8796         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
8797         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
8798         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
8799         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8800         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8801         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8802         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
8803         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8804         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
8805         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8806         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
8807         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8808         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8809         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
8810         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
8811         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
8812         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8813         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8814         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8815         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8816         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8817         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8818         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8819         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8820         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8821         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8822         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8823         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8824         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8825         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8826         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8827         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8828         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8829         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
8830         IX86_BUILTIN_MOVMSKPS256.
8831         (ix86_init_mmx_sse_builtins): Support AVX builtins.
8832         (ix86_expand_args_builtin): Likewise.
8833         (ix86_expand_special_args_builtin): Likewise.
8834         (ix86_hard_regno_mode_ok): Handle AVX modes.
8835         (ix86_expand_vector_init_duplicate): Likewise.
8836         (ix86_expand_vector_init_one_nonzero): Likewise.
8837         (ix86_expand_vector_init_one_var): Likewise.
8838         (ix86_expand_vector_init_concat): Likewise.
8839         (ix86_expand_vector_init_general): Likewise.
8840         (ix86_expand_vector_set): Likewise.
8841         (ix86_vector_mode_supported_p): Likewise.
8842         (x86_extended_reg_mentioned_p): Check INSN_P before using
8843         PATTERN.
8844
8845         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8846         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
8847
8848         * config/i386/i386.h (TARGET_AVX): New.
8849         (TARGET_FMA): Likewise.
8850         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
8851         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
8852         (VALID_AVX256_REG_MODE): New.
8853         (AVX256_VEC_FLOAT_MODE_P): Likewise.
8854         (AVX_FLOAT_MODE_P): Likewise.
8855         (AVX128_VEC_FLOAT_MODE_P): Likewise.
8856         (AVX256_VEC_FLOAT_MODE_P): Likewise.
8857         (AVX_VEC_FLOAT_MODE_P): Likewise.
8858         (ASM_OUTPUT_AVX_PREFIX): Likewise.
8859         (ASM_OUTPUT_OPCODE): Likewise.
8860         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
8861         support.
8862         (SSE_REG_MODE_P): Allow 256bit vector modes.
8863         (ix86_args): Add a warn_avx field.
8864
8865         * config/i386/i386.md (UNSPEC_PCMP): New.
8866         (UNSPEC_VPERMIL): Likewise.
8867         (UNSPEC_VPERMIL2): Likewise.
8868         (UNSPEC_VPERMIL2F128): Likewise.
8869         (UNSPEC_MASKLOAD): Likewise.
8870         (UNSPEC_MASKSTORE): Likewise.
8871         (UNSPEC_CAST): Likewise.
8872         (UNSPEC_VTESTP): Likewise.
8873         (UNSPECV_VZEROALL): Likewise.
8874         (UNSPECV_VZEROUPPER): Likewise.
8875         (XMM0_REG): Likewise.
8876         (XMM1_REG): Likewise.
8877         (XMM2_REG): Likewise.
8878         (XMM3_REG): Likewise.
8879         (XMM4_REG): Likewise.
8880         (XMM5_REG): Likewise.
8881         (XMM6_REG): Likewise.
8882         (XMM8_REG): Likewise.
8883         (XMM9_REG): Likewise.
8884         (XMM10_REG): Likewise.
8885         (XMM11_REG): Likewise.
8886         (XMM12_REG): Likewise.
8887         (XMM13_REG): Likewise.
8888         (XMM14_REG): Likewise.
8889         (XMM15_REG): Likewise.
8890         (prefix): Likewise.
8891         (prefix_vex_imm8): Likewise.
8892         (prefix_vex_w): Likewise.
8893         (length_vex): Likewise.
8894         (maxmin): Likewise.
8895         (movoi): Likewise.
8896         (*avx_ashlti3): Likewise.
8897         (*avx_lshrti3): Likewise.
8898         (*avx_setcc<mode>): Likewise.
8899         (*fop_<mode>_comm_mixed_avx): Likewise.
8900         (*fop_<mode>_comm_avx): Likewise.
8901         (*fop_<mode>_1_mixed_avx): Likewise.
8902         (*fop_<mode>_1_avx): Likewise.
8903         (*avx_<code><mode>3): Likewise.
8904         (*avx_ieee_smin<mode>3): Likewise.
8905         (*avx_ieee_smax<mode>3): Likewise.
8906         (mode): Add OI, V8SF and V4DF.
8907         (length): Support VEX prefix.
8908         (*cmpfp_i_mixed): Set prefix attribute.
8909         (*cmpfp_i_sse): Likewise.
8910         (*cmpfp_iu_mixed): Likewise.
8911         (*cmpfp_iu_sse): Likewise.
8912         (*movsi_1): Support AVX.
8913         (*movdi_2): Likewise.
8914         (*movdi_1_rex64): Likewise.
8915         (*movti_internal): Likewise.
8916         (*movti_rex64): Likewise.
8917         (*movsf_1): Likewise.
8918         (*movdf_nointeger): Likewise.
8919         (*movdf_integer_rex64): Likewise.
8920         (*movtf_internal): Likewise.
8921         (zero_extendsidi2_32): Likewise.
8922         (zero_extendsidi2_rex64): Likewise.
8923         (*extendsfdf2_mixed): Likewise.
8924         (*extendsfdf2_sse): Likewise.
8925         (*truncdfsf_fast_mixed): Likewise.
8926         (*truncdfsf_fast_sse): Likewise.
8927         (*truncdfsf_mixed): Likewise.
8928         (fix_trunc<mode>di_sse): Likewise.
8929         (fix_trunc<mode>si_sse): Likewise.
8930         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8931         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8932         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8933         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8934         (*rcpsf2_sse): Likewise.
8935         (*rsqrtsf2_sse): Likewise.
8936         (*sqrt<mode>2_sse): Likewise.
8937         (sse4_1_round<mode>2): Likewise.
8938         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
8939         Support AVX.  Set length attribute properly for AVX.
8940
8941         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
8942         (VECTOR_MODES (FLOAT, 32)): Likewise.
8943         (VECTOR_MODE (INT, DI, 8)): Likewise.
8944         (VECTOR_MODE (INT, HI, 32)): Likewise.
8945         (VECTOR_MODE (INT, QI, 64)): Likewise.
8946         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
8947         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
8948         (VECTOR_MODE (INT, DI, 4)): Removed.
8949         (VECTOR_MODE (INT, SI, 8)): Likewise.
8950         (VECTOR_MODE (INT, HI, 16)): Likewise.
8951         (VECTOR_MODE (INT, QI, 32)): Likewise.
8952         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
8953         (INT_MODE (OI, 32)): Likewise.
8954
8955         * config/i386/i386.opt (mavx): New.
8956         (mfma): Likewise.
8957
8958         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
8959
8960         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
8961         (*mov<mode>_internal_avx): New.
8962         (*movv2sf_internal_rex64_avx): Likewise.
8963         (*movv2sf_internal_avx): Likewise.
8964
8965         * config/i386/predicates.md (const_4_to_5_operand): New.
8966         (const_6_to_7_operand): Likewise.
8967         (const_8_to_11_operand): Likewise.
8968         (const_12_to_15_operand): Likewise.
8969         (avx_comparison_float_operator): Likewise.
8970
8971         * config/i386/sse.md (AVX256MODEI): New.
8972         (AVX256MODE): Likewise.
8973         (AVXMODEQI): Likewise.
8974         (AVXMODE): Likewise.
8975         (AVX256MODEF2P): Likewise.
8976         (AVX256MODE2P): Likewise.
8977         (AVX256MODE4P): Likewise.
8978         (AVX256MODE8P): Likewise.
8979         (AVXMODEF2P): Likewise.
8980         (AVXMODEF4P): Likewise.
8981         (AVXMODEDCVTDQ2PS): Likewise.
8982         (AVXMODEDCVTPS2DQ): Likewise.
8983         (avxvecmode): Likewise.
8984         (avxvecpsmode): Likewise.
8985         (avxhalfvecmode): Likewise.
8986         (avxscalarmode): Likewise.
8987         (avxcvtvecmode): Likewise.
8988         (avxpermvecmode): Likewise.
8989         (avxmodesuffixf2c): Likewise.
8990         (avxmodesuffixp): Likewise.
8991         (avxmodesuffixs): Likewise.
8992         (avxmodesuffix): Likewise.
8993         (vpermilbits): Likewise.
8994         (pinsrbits): Likewise.
8995         (mov<mode>): Likewise.
8996         (*mov<mode>_internal): Likewise.
8997         (push<mode>1): Likewise.
8998         (movmisalign<mode>): Likewise.
8999         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9000         (avx_movdqu<avxmodesuffix>): Likewise.
9001         (avx_lddqu<avxmodesuffix>): Likewise.
9002         (<plusminus_insn><mode>3): Likewise.
9003         (*avx_<plusminus_insn><mode>3): Likewise.
9004         (*avx_vm<plusminus_insn><mode>3): Likewise.
9005         (mul<mode>3): Likewise.
9006         (*avx_mul<mode>3): Likewise.
9007         (*avx_vmmul<mode>3): Likewise.
9008         (divv8sf3): Likewise.
9009         (divv4df3): Likewise.
9010         (avx_div<mode>3): Likewise.
9011         (*avx_div<mode>3): Likewise.
9012         (*avx_vmdiv<mode>3): Likewise.
9013         (avx_rcpv8sf2): Likewise.
9014         (*avx_vmrcpv4sf2): Likewise.
9015         (sqrtv8sf2): Likewise.
9016         (avx_sqrtv8sf2): Likewise.
9017         (*avx_vmsqrt<mode>2): Likewise.
9018         (rsqrtv8sf2): Likewise.
9019         (avx_rsqrtv8sf2): Likewise.
9020         (*avx_vmrsqrtv4sf2): Likewise.
9021         (<code><mode>3): Likewise.
9022         (*avx_<code><mode>3_finite): Likewise.
9023         (*avx_<code><mode>3): Likewise.
9024         (*avx_vm<code><mode>3): Likewise.
9025         (*avx_ieee_smin<mode>3): Likewise.
9026         (*avx_ieee_smax<mode>3): Likewise.
9027         (avx_addsubv8sf3): Likewise.
9028         (avx_addsubv4df3): Likewise.
9029         (*avx_addsubv4sf3): Likewise.
9030         (*avx_addsubv2df3): Likewise.
9031         (avx_h<plusminus_insn>v4df3): Likewise.
9032         (avx_h<plusminus_insn>v8sf3): Likewise.
9033         (*avx_h<plusminus_insn>v4sf3): Likewise.
9034         (*avx_h<plusminus_insn>v2df3): Likewise.
9035         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
9036         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
9037         (*avx_maskcmp<mode>3): Likewise.
9038         (avx_nand<mode>3): Likewise.
9039         (*avx_<code><mode>3): Likewise.
9040         (*avx_nand<mode>3): Likewise.
9041         (*avx_<code><mode>3): Likewise.
9042         (*avx_cvtsi2ss): Likewise.
9043         (*avx_cvtsi2ssq): Likewise.
9044         (*avx_cvtsi2sd): Likewise.
9045         (*avx_cvtsi2sdq): Likewise.
9046         (*avx_cvtsd2ss): Likewise.
9047         (avx_cvtss2sd): Likewise.
9048         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
9049         (avx_cvtps2dq<avxmodesuffix>): Likewise.
9050         (avx_cvttps2dq<avxmodesuffix>): Likewise.
9051         (*avx_cvtsi2sd): Likewise.
9052         (*avx_cvtsi2sdq): Likewise.
9053         (avx_cvtdq2pd256): Likewise.
9054         (avx_cvtpd2dq256): Likewise.
9055         (avx_cvttpd2dq256): Likewise.
9056         (*avx_cvtsd2ss): Likewise.
9057         (*avx_cvtss2sd): Likewise.
9058         (avx_cvtpd2ps256): Likewise.
9059         (avx_cvtps2pd256): Likewise.
9060         (*avx_movhlps): Likewise.
9061         (*avx_movlhps): Likewise.
9062         (avx_unpckhps256): Likewise.
9063         (*avx_unpckhps): Likewise.
9064         (avx_unpcklps256): Likewise.
9065         (*avx_unpcklps): Likewise.
9066         (avx_movshdup256): Likewise.
9067         (avx_movsldup256): Likewise.
9068         (avx_shufps256): Likewise.
9069         (avx_shufps256_1): Likewise.
9070         (*avx_shufps_<mode>): Likewise.
9071         (*avx_loadhps): Likewise.
9072         (*avx_storelps): Likewise.
9073         (*avx_loadlps): Likewise.
9074         (*avx_movss): Likewise.
9075         (*vec_dupv4sf_avx): Likewise.
9076         (*vec_concatv2sf_avx): Likewise.
9077         (*vec_concatv4sf_avx): Likewise.
9078         (*vec_setv4sf_0_avx): Likewise.
9079         (*vec_setv4sf_avx): Likewise.
9080         (*avx_insertps): Likewise.
9081         (avx_vextractf128<mode>): Likewise.
9082         (vec_extract_lo_<mode>): Likewise.
9083         (vec_extract_hi_<mode>): Likewise.
9084         (vec_extract_lo_<mode>): Likewise.
9085         (vec_extract_hi_<mode>): Likewise.
9086         (vec_extract_lo_v16hi): Likewise.
9087         (vec_extract_hi_v16hi): Likewise.
9088         (vec_extract_lo_v32qi): Likewise.
9089         (vec_extract_hi_v32qi): Likewise.
9090         (avx_unpckhpd256): Likewise.
9091         (*avx_unpckhpd): Likewise.
9092         (avx_movddup256): Likewise.
9093         (*avx_movddup): Likewise.
9094         (avx_unpcklpd256): Likewise.
9095         (*avx_unpcklpd): Likewise.
9096         (avx_shufpd256): Likewise.
9097         (avx_shufpd256_1): Likewise.
9098         (*avx_punpckhqdq): Likewise.
9099         (*avx_punpcklqdq): Likewise.
9100         (*avx_shufpd_<mode>): Likewise.
9101         (*avx_storehpd): Likewise.
9102         (*avx_loadhpd): Likewise.
9103         (*avx_loadlpd): Likewise.
9104         (*avx_movsd): Likewise.
9105         (*vec_concatv2df_avx): Likewise.
9106         (*avx_<plusminus_insn><mode>3): Likewise.
9107         (*avx_<plusminus_insn><mode>3): Likewise.
9108         (*avx_mulv8hi3): Likewise.
9109         (*avxv8hi3_highpart): Likewise.
9110         (*avx_umulv8hi3_highpart): Likewise.
9111         (*avx_umulv2siv2di3): Likewise.
9112         (*avx_mulv2siv2di3): Likewise.
9113         (*avx_pmaddwd): Likewise.
9114         (*avx_mulv4si3): Likewise.
9115         (*avx_ashr<mode>3): Likewise.
9116         (*avx_lshr<mode>3): Likewise.
9117         (*avx_ashl<mode>3): Likewise.
9118         (*avx_<code><mode>3): Likewise.
9119         (*avx_eq<mode>3): Likewise.
9120         (*avx_gt<mode>3): Likewise.
9121         (*avx_nand<mode>3): Likewise.
9122         (*avx_nand<mode>3): Likewise.
9123         (*avx_<code><mode>3): Likewise.
9124         (*avx_<code><mode>3): Likewise.
9125         (*avx_packsswb): Likewise.
9126         (*avx_packssdw): Likewise.
9127         (*avx_packuswb): Likewise.
9128         (*avx_punpckhbw): Likewise.
9129         (*avx_punpcklbw): Likewise.
9130         (*avx_punpckhwd): Likewise.
9131         (*avx_punpcklwd): Likewise.
9132         (*avx_punpckhdq): Likewise.
9133         (*avx_punpckldq): Likewise.
9134         (*avx_pinsr<avxmodesuffixs>): Likewise.
9135         (*avx_pinsrq): Likewise.
9136         (*avx_loadld): Likewise.
9137         (*vec_extractv2di_1_rex64_avx): Likewise.
9138         (*vec_extractv2di_1_avx): Likewise.
9139         (*vec_dupv2di_avx): Likewise.
9140         (*vec_concatv2si_avx): Likewise.
9141         (*vec_concatv4si_1_avx): Likewise.
9142         (*vec_concatv2di_avx): Likewise.
9143         (*vec_concatv2di_rex64_avx): Likewise.
9144         (*avx_uavgv16qi3): Likewise.
9145         (*avx_uavgv8hi3): Likewise.
9146         (*avx_psadbw): Likewise.
9147         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
9148         (*avx_phaddwv8hi3): Likewise.
9149         (*avx_phadddv4si3): Likewise.
9150         (*avx_phaddswv8hi3): Likewise.
9151         (*avx_phsubwv8hi3): Likewise.
9152         (*avx_phsubdv4si3): Likewise.
9153         (*avx_phsubswv8hi3): Likewise.
9154         (*avx_pmaddubsw128): Likewise.
9155         (*avx_pmulhrswv8hi3): Likewise.
9156         (*avx_pshufbv16qi3): Likewise.
9157         (*avx_psign<mode>3): Likewise.
9158         (*avx_palignrti): Likewise.
9159         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9160         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9161         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9162         (*avx_mpsadbw): Likewise.
9163         (*avx_packusdw): Likewise.
9164         (*avx_pblendvb): Likewise.
9165         (*avx_pblendw): Likewise.
9166         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9167         (avx_ptest256): Likewise.
9168         (avx_roundp<avxmodesuffixf2c>256): Likewise.
9169         (*avx_rounds<ssemodesuffixf2c>): Likewise.
9170         (*avx_aesenc): Likewise.
9171         (*avx_aesenclast): Likewise.
9172         (*avx_aesdec): Likewise.
9173         (*avx_aesdeclast): Likewise.
9174         (avx_vzeroupper): Likewise.
9175         (avx_vzeroupper_rex64): Likewise.
9176         (avx_vpermil<mode>): Likewise.
9177         (avx_vpermilvar<mode>3): Likewise.
9178         (avx_vpermil2<mode>3): Likewise.
9179         (avx_vperm2f128<mode>3): Likewise.
9180         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9181         (avx_vbroadcastss256): Likewise.
9182         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
9183         (avx_vinsertf128<mode>): Likewise.
9184         (vec_set_lo_<mode>): Likewise.
9185         (vec_set_hi_<mode>): Likewise.
9186         (vec_set_lo_<mode>): Likewise.
9187         (vec_set_hi_<mode>): Likewise.
9188         (vec_set_lo_v16hi): Likewise.
9189         (vec_set_hi_v16hi): Likewise.
9190         (vec_set_lo_v32qi): Likewise.
9191         (vec_set_hi_v32qi): Likewise.
9192         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9193         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9194         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
9195         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
9196         (vec_init<mode>): Likewise.
9197         (*vec_concat<mode>_avx): Likewise.
9198         (blendbits): Support V8SF and V4DF.
9199         (sse2_movq128): Support AVX.
9200         (<sse>_movnt<mode>): Likewise.
9201         (sse2_movntv2di): Likewise.
9202         (sse_rcpv4sf2): Likewise.
9203         (sse_sqrtv4sf2): Likewise.
9204         (sse_rsqrtv4sf2): Likewise.
9205         (<sse>_comi): Likewise.
9206         (<sse>_ucomi): Likewise.
9207         (sse_cvtss2si): Likewise.
9208         (sse_cvtss2si_2): Likewise.
9209         (sse_cvtss2siq): Likewise.
9210         (sse_cvtss2siq_2): Likewise.
9211         (sse_cvttss2si): Likewise.
9212         (sse_cvttss2siq): Likewise.
9213         (sse2_cvtsd2si): Likewise.
9214         (sse2_cvtsd2si_2): Likewise.
9215         (sse2_cvtsd2siq): Likewise.
9216         (sse2_cvtsd2siq_2): Likewise.
9217         (sse2_cvttsd2si): Likewise.
9218         (sse2_cvttsd2siq): Likewise.
9219         (sse2_cvtdq2pd): Likewise.
9220         (*sse2_cvtpd2dq): Likewise.
9221         (*sse2_cvttpd2dq): Likewise.
9222         (*sse2_cvtpd2ps): Likewise.
9223         (sse2_cvtps2pd): Likewise.
9224         (sse3_movshdup): Likewise.
9225         (sse3_movsldup): Likewise.
9226         (sse_storehps): Likewise.
9227         (*sse4_1_extractps): Likewise.
9228         (sse2_storelpd): Likewise.
9229         (vec_dupv2df_sse3): Likewise.
9230         (*vec_concatv2df_sse3): Likewise.
9231         (*sse4_1_pextrb): Likewise.
9232         (*sse4_1_pextrb_memory): Likewise.
9233         (*sse2_pextrw): Likewise.
9234         (*sse4_1_pextrw_memory): Likewise.
9235         (*sse4_1_pextrd): Likewise.
9236         (*sse4_1_pextrq): Likewise.
9237         (sse2_pshufd_1): Likewise.
9238         (sse2_pshuflw_1): Likewise.
9239         (sse2_pshufhw_1): Likewise.
9240         (*sse2_storeq_rex64): Likewise.
9241         (*vec_dupv4si): Likewise.
9242         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
9243         (sse2_pmovmskb): Likewise.
9244         (*sse2_maskmovdqu): Likewise.
9245         (*sse2_maskmovdqu_rex64): Likewise.
9246         (sse_ldmxcsr): Likewise.
9247         (sse_stmxcsr): Likewise.
9248         (abs<mode>2): Likewise.
9249         (sse4_1_movntdqa): Likewise.
9250         (sse4_1_phminposuw): Likewise.
9251         (sse4_1_extendv8qiv8hi2): Likewise.
9252         (*sse4_1_extendv8qiv8hi2): Likewise.
9253         (sse4_1_extendv4qiv4si2): Likewise.
9254         (*sse4_1_extendv4qiv4si2): Likewise.
9255         (sse4_1_extendv2qiv2di2): Likewise.
9256         (*sse4_1_extendv2qiv2di2): Likewise.
9257         (sse4_1_extendv4hiv4si2): Likewise.
9258         (*sse4_1_extendv4hiv4si2): Likewise.
9259         (sse4_1_extendv2hiv2di2): Likewise.
9260         (*sse4_1_extendv2hiv2di2): Likewise.
9261         (sse4_1_extendv2siv2di2): Likewise.
9262         (*sse4_1_extendv2siv2di2): Likewise.
9263         (sse4_1_zero_extendv8qiv8hi2): Likewise.
9264         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
9265         (sse4_1_zero_extendv4qiv4si2): Likewise.
9266         (*sse4_1_zero_extendv4qiv4si2): Likewise.
9267         (sse4_1_zero_extendv2qiv2di2): Likewise.
9268         (*sse4_1_zero_extendv2qiv2di2): Likewise.
9269         (sse4_1_zero_extendv4hiv4si2): Likewise.
9270         (*sse4_1_zero_extendv4hiv4si2): Likewise.
9271         (sse4_1_zero_extendv2hiv2di2): Likewise.
9272         (*sse4_1_zero_extendv2hiv2di2): Likewise.
9273         (sse4_1_zero_extendv2siv2di2): Likewise.
9274         (*sse4_1_zero_extendv2siv2di2): Likewise.
9275         (sse4_1_ptest): Likewise.
9276         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
9277         (sse4_2_pcmpestri): Likewise.
9278         (sse4_2_pcmpestrm): Likewise.
9279         (sse4_2_pcmpistri): Likewise.
9280         (sse4_2_pcmpistrm): Likewise.
9281         (aesimc): Likewise.
9282         (aeskeygenassist): Likewise.
9283
9284 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
9285
9286         * config/i386/predicates.md (vzeroall_operation): New.
9287
9288         * config/i386/sse.md (avx_vzeroall): New.
9289         (*avx_vzeroall): Likewise.
9290
9291 2008-08-28  Paul Brook  <paul@codesourcery.com>
9292             Mark Shinwell  <shinwell@codesourcery.com>
9293             Richard Earnshaw  <richard.earnshaw@arm.com>
9294
9295         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
9296         (TARGET_MIN_ANCHOR_OFFSET): New.
9297         (arm_override_options): Set correct anchor ranges for Thumb-1
9298         and Thumb-2 if required.
9299         (legitimize_pic_address): Handle case involving a TLS symbol
9300         reference with an addend.
9301         (arm_optimization_options): Enable section anchors at -O1 and
9302         above.
9303         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
9304         * config/arm/arm-protos.h (arm_optimization_options): New.
9305
9306 2008-08-28  Nick Clifton  <nickc@redhat.com>
9307
9308         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
9309         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
9310         attribute.
9311
9312         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
9313         * config/v850/v850.md (return): Remove frame size restriction.
9314
9315         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
9316
9317         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
9318
9319         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
9320
9321         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
9322
9323 2008-08-28  Paul Brook  <paul@codesourcery.com>
9324
9325         * config/arm/vfp11.md: Update license notice.
9326         * config/arm/cortex-r4.md: Ditto.
9327
9328 2008-08-28  Richard Guenther  <rguenther@suse.de>
9329
9330         PR tree-optimization/37207
9331         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
9332         tuplification bug.
9333
9334 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
9335
9336         PR c++/36741
9337         * tree.c (int_fits_type_p): Don't forget unsigned integers
9338           of type sizetype which higher end word equals -1.
9339
9340 2008-08-28  Ira Rosen  <irar@il.ibm.com>
9341
9342         * target.h (struct vectorize): Add new target builtin.
9343         * tree-vectorizer.c (destroy_loop_vec_info): Call
9344         vect_free_slp_instance instead of vect_free_slp_node.
9345         * tree-vectorizer.h (enum slp_load_perm_type): New.
9346         (struct _slp_instance): Add new fields.
9347         (SLP_INSTANCE_LOAD_PERMUTATION): New.
9348         (SLP_INSTANCE_LOADS): New.
9349         (vect_free_slp_tree): Remove.
9350         (vect_free_slp_instance): Declare.
9351         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
9352         (vectorizable_load): Add argument.
9353         (vect_transform_slp_perm_load): New.
9354         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
9355         vectorizable_load.
9356         (vect_get_place_in_interleaving_chain): New function.
9357         (vect_free_slp_tree): Make static.
9358         (vect_free_slp_instance): New function.
9359         (vect_build_slp_tree): Add new arguments. Allow load permutations and
9360         collect the load location in the interleaving chain.
9361         (vect_supported_slp_permutation_p): New function.
9362         (vect_supported_load_permutation_p): Likewise.
9363         (vect_analyze_slp_instance): In case of loads permutation, call
9364         vect_supported_load_permutation_p to check that the permutation is
9365         supported.
9366         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
9367         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
9368         (vect_create_mask_and_perm): New function.
9369         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
9370         (vectorizable_load): Add an argument. Don't keep the created vectors
9371         statements in the node if permutation is required. Call
9372         vect_transform_slp_perm_load to generate the permutation.
9373         (vect_transform_stmt): Add new argument. Call vectorizable_load with
9374         additional argument.
9375         (vect_schedule_slp_instance): In case of loads permutation, allocate
9376         vectorized statements structure for all the related SLP nodes. Call
9377         vect_transform_stmt with addditional argument.
9378         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
9379         * config/spu/spu.c (spu_builtin_vec_perm): New.
9380         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
9381         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
9382         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
9383         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
9384
9385 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
9386
9387         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
9388         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
9389         __gthread_cond_signal, __gthread_cond_timedwait,
9390         __gthread_cond_timedwait_recursive): New functions.
9391         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
9392         Likewise.
9393         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
9394         thread interfaces.
9395
9396 2008-08-28  Richard Guenther  <rguenther@suse.de>
9397
9398         PR middle-end/37005
9399         * fold-const.c (maybe_canonicalize_comparison_1): Require
9400         undefined overflow only for canonicalizing A +- CST cmp CST.
9401         Make sure to not generate new constants that are not inside
9402         their TYPE_MIN/MAX_VALUE range.
9403         (maybe_canonicalize_comparison): Remove undefined overflow
9404         checking from here.
9405         (fold_binary): Remove now duplicate folding.
9406
9407 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
9408
9409         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
9410         use not updated in the last change.
9411
9412 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9413
9414         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
9415         (IRA_COVER_CLASSES): Add FPUL_REGS.
9416
9417 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9418
9419         PR 37217
9420         * c-common.c (conversion_warning): Check for null operands.
9421
9422 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9423
9424         PR c/31673
9425         * c-decl.c (check_for_loop_decls): Improve error message. Give
9426         hint.
9427
9428 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9429
9430         PR c/37186
9431         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
9432         (convert_for_assignment): Pass corrent OPT_W* parameter to
9433         WARN_FOR_ASSIGNMENT.
9434
9435 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
9436
9437         PR c++/35321
9438         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
9439
9440 2008-08-27  Paul Brook  <paul@codesourcery.com>
9441
9442         * config.gcc: Loosen checks for arm uclinux eabi targets.
9443
9444 2008-08-27  Paul Brook  <paul@codesourcery.com>
9445
9446         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
9447         _clzsi2.
9448         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
9449
9450 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
9451
9452         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
9453         the enumerators of an ENUMERAL_TYPE.
9454         * dbxout.c (dbxout_type): Ditto.
9455
9456 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9457
9458         PR rtl-opt/37219
9459         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
9460         (fwprop_addr): Check that the loop_father is not the outer loop.
9461
9462 2008-08-26  Paul Brook  <paul@codesourcery.com>
9463
9464         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
9465         Remove documentation entry for fmul type.
9466         Use fmuls to annotate single-precision multiplication patterns,
9467         fmuld to annotate double-precision multiplication patterns,
9468         fmacs to annotate single-precision multiply-accumulate patterns
9469         and fmacd to annotate double-precision multiply-accumulate patterns.
9470         * config/arm/vfp11.md: Update reservations accordingly.
9471         * config/arm/arm.md: Note that certain values of the "type"
9472         attribute are documented in vfp.md.
9473         * config/arm/arm1020e.md: Remove out of date duplicate comment.
9474         (v10_cvt): Use new fmul types.
9475
9476 2008-08-26  Paul Brook  <paul@codesourcery.com>
9477
9478         * config/arm/vfp.md: Move pipeline description for VFP11 to...
9479         * config/arm/vfp11.md: ...here.  New.
9480         * config/arm/arm.md: Include vfp11.md.
9481
9482 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
9483
9484         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
9485         parameter to inform call.
9486
9487 2008-08-26  Jeff Law  <law@redhat.com>
9488
9489         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
9490         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
9491         preferred class when copying a constant into a partial word register.
9492
9493 2008-08-26  Ben Elliston  <bje@au.ibm.com>
9494
9495         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
9496         * cp/typeck.c: Likewise.
9497         * cp/tree.c: Likewise.
9498         * gimple-low.c: Likewise.
9499         * jump.c: Likewise.
9500
9501 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
9502
9503         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
9504         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
9505
9506         * doc/passes.texi: Describe IRA.
9507
9508         * doc/tm.texi (IRA_COVER_CLASSES,
9509         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
9510
9511         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
9512         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
9513         -fira-propagate-cost, -fno-ira-share-save-slots,
9514         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
9515
9516         * flags.h (ira_algorithm): New enumeration.
9517         (flag_ira_algorithm, flag_ira_verbose): New external variable
9518         declarations.
9519
9520         * postreload.c (gate_handle_postreload): Don't do post reload
9521         optimizations unless the reload is completed.
9522
9523         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
9524         IRA.
9525
9526         * tree-pass.h (pass_ira): New external variable declaration.
9527
9528         * reload.h: Add 2008 to the Copyright.
9529
9530         * cfgloopanal.c: Include params.h.
9531         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
9532         mode.
9533
9534         * params.h (IRA_MAX_LOOPS_NUM): New macro.
9535
9536         * toplev.c (ira.h): New include.
9537         (flag_ira_algorithm, flag_ira_verbose): New external variables.
9538         (backend_init_target): Call ira_init.
9539         (backend_init): Call ira_init_once.
9540         (finalize): Call finish_ira_once.
9541
9542         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
9543         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
9544         external variables.
9545
9546         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
9547         may_move_out_cost): New external variable declarations.
9548         (move_table): New typedef.
9549
9550         * caller-save.c: Include headers output.h and ira.h.
9551         (no_caller_save_reg_set): New global variable.
9552         (save_slots_num, save_slots): New variables.
9553         (reg_save_code, reg_restore_code, add_stored_regs): Add
9554         prototypes.
9555         (init_caller_save): Set up no_caller_save_reg_set.
9556         (init_save_areas): Reset save_slots_num.
9557         (saved_hard_reg): New structure.
9558         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
9559         (initiate_saved_hard_regs, new_saved_hard_reg,
9560         finish_saved_hard_regs, saved_hard_reg_compare_func): New
9561         functions.
9562         (setup_save_areas): Add code for sharing stack slots.
9563         (all_blocks): New variable.
9564         (save_call_clobbered_regs): Process pseudo-register too.
9565         (mark_set_regs): Process pseudo-register too.
9566         (insert_one_insn): Put the insn after bb note in a empty basic
9567         block.  Add insn check.
9568
9569         * global.c (eliminable_regset): Make it external.
9570         (mark_elimination): Use DF_LR_IN for IRA.
9571         (pseudo_for_reload_consideration_p): New.
9572         (build_insn_chain): Make it external.  Don't ignore spilled
9573         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
9574         (gate_handle_global_alloc): New function.
9575         (pass_global_alloc): Add the gate function.
9576
9577         * opts.c (decode_options): Set up flag_ira.  Print the warning for
9578         -fira.
9579         (common_handle_option): Process -fira-algorithm and -fira-verbose.
9580
9581         * timevar.def (TV_IRA, TV_RELOAD): New passes.
9582
9583         * regmove.c (regmove_optimize): Don't do replacement of output for
9584         IRA.
9585
9586         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
9587         New external variable declarations.
9588
9589         * local-alloc.c (update_equiv_regs): Make it external.  Return
9590         true if jump label rebuilding should be done.  Rescan new_insn for
9591         notes.
9592         (gate_handle_local_alloc): New function.
9593         (pass_local_alloc): Add the gate function.
9594
9595         * alias.c (value_addr_p, stack_addr_p): New functions.
9596         (nonoverlapping_memrefs_p): Use them for IRA.
9597
9598         * common.opt (fira, fira-algorithm, fira-coalesce,
9599         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
9600         fira-verbose): New options.
9601
9602         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
9603         move_cost, may_move_in_cost, may_move_out_cost): Make the
9604         variables external.
9605         (move_table): Remove typedef.
9606         (init_move_cost): Make it external.
9607         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
9608         functions.
9609
9610         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
9611         setup_reg_classes): New function prototypes.
9612         (eliminable_regset): New external variable declaration.
9613         (build_insn_chain, update_equiv_regs): New function prototypes.
9614
9615         * Makefile.in (IRA_INT_H): New definition.
9616         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
9617         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
9618         (reload1.o, toplev.o): Add dependence on ira.h.
9619         (cfgloopanal.o): Add PARAMS_H.
9620         (caller-save.o): Add dependence on output.h and ira.h.
9621         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
9622         ira-emit.o, ira-lives.o): New entries.
9623
9624         * passes.c (pass_ira): New pass.
9625
9626         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
9627
9628         * reload1.c (ira.h): Include the header.
9629         (changed_allocation_pseudos): New bitmap.
9630         (init_reload): Initiate the bitmap.
9631         (compute_use_by_pseudos): Permits spilled registers in FROM.
9632         (temp_pseudo_reg_arr): New variable.
9633         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
9634         IRA.  Call alter_reg with the additional parameter.  Don't clear
9635         spilled_pseudos for IRA.  Restore original insn chain for IRA.
9636         Clear changed_allocation_pseudos at the end of reload.
9637         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
9638         (hard_regno_to_pseudo_regno): New variable.
9639         (count_pseudo): Check spilled pseudos.  Set up
9640         hard_regno_to_pseudo_regno.
9641         (count_spilled_pseudo): Check spilled pseudos. Update
9642         hard_regno_to_pseudo_regno.
9643         (find_reg): Use better_spill_reload_regno_p.  Check
9644         hard_regno_to_pseudo_regno.
9645         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
9646         code for IRA.
9647         (eliminate_regs_1): Use additional parameter for alter_reg.
9648         (finish_spills): Set up pseudo_previous_regs only for spilled
9649         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
9650         more arguments.  Don't clear live_throughout and dead_or_set for
9651         spilled pseudos.  Use additional parameter for alter_reg.  Call
9652         mark_allocation_change.  Set up changed_allocation_pseudos.
9653         Remove sanity check.
9654         (emit_input_reload_insns, delete_output_reload): Use additional
9655         parameter for alter_reg.  Call mark_allocation_change.
9656         (substitute, gen_reload_chain_without_interm_reg_p): New
9657         functions.
9658         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
9659
9660         * testsuite/gcc.dg/20080410-1.c: New file.
9661
9662         * config/s390/s390.h (IRA_COVER_CLASSES,
9663         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
9664
9665         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
9666
9667         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
9668
9669         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9670
9671         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
9672
9673         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9674
9675         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
9676
9677         2008-08-24  Jeff Law  <law@redhat.com>
9678         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
9679         when ignoring unavailable registers.
9680
9681         2008-08-24  Jeff Law  <law@redhat.com>
9682         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
9683         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
9684         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
9685         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
9686
9687         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
9688         * ira-build.c (allocno_range_compare_func): Stabilize sort.
9689
9690         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
9691         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
9692         * reload1.c (find_reg): Process registers in register allocation order.
9693
9694         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9695         * toplev.c (backend_init_target): Move ira_init call from
9696         here...
9697         (lang_dependent_init_target): ...to here.
9698
9699         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9700         * ira.c (setup_class_subset_and_memory_move_costs): Don't
9701         calculate memory move costs for NO_REGS.
9702
9703         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
9704         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
9705         STACK_REGS is defined.
9706
9707         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
9708         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
9709
9710         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
9711         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
9712
9713         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
9714         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
9715         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
9716         barrier.
9717
9718 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
9719             Dorit Nuzman  <dorit@il.ibm.com>
9720
9721         * gcc/config/spu/spu.md (vec_extract_evenv4si,
9722         vec_extract_evenv4sf, vec_extract_evenv8hi,
9723         vec_extract_evenv16qi, vec_extract_oddv4si,
9724         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
9725         vec_interleave_highv4sf, vec_interleave_lowv4sf,
9726         vec_interleave_highv4si, vec_interleave_lowv4si,
9727         vec_interleave_highv8hi, vec_interleave_lowv8hi,
9728         vec_interleave_highv16qi, vec_interleave_lowv16qi,
9729         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
9730
9731 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
9732
9733         PR target/36756
9734         * config/rs6000/rs6000.c (optimization_options): Don't default to
9735         section anchors without toplevel reorder.
9736
9737 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9738
9739         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
9740         (mfc_end_critical_section): Likewise.
9741
9742 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9743
9744         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
9745         all type qualifiers from element type to vector type.
9746
9747 2008-08-25  David Daney  <ddaney@avtrex.com>
9748
9749         * config/mips/mips.md (immediate_insn): Move up in file, fix
9750         comment typo, reformat.
9751         (fetchop_bit, atomic_hiqi_op memory_barrier,
9752         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
9753         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
9754         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
9755         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
9756         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
9757         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
9758         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
9759         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
9760         sync_old_nand<mode>, sync_new_nand<mode>,
9761         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
9762         test_and_set_12): Moved to sync.md.
9763         (sync.md): Include.
9764         * config/mips/sync.md: New file.
9765
9766 2008-08-25  Richard Henderson  <rth@redhat.com>
9767
9768         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
9769         (regsave): Likewise.
9770         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
9771         (output_cfi_directive): Likewise.
9772         (div_data_align): New.
9773         (output_cfi): Use it.
9774
9775 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
9776
9777         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
9778         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
9779         (TARGET_OCTEON): New macro.
9780         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
9781         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
9782         (ISA_HAS_POP): New macro.
9783         * config/mips/driver-native.c (host_detect_local_cpu): Handle
9784         Octeon.
9785         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
9786         Handle Octeon.
9787         * config/mips/mips.md (cpu): Add octeon.
9788         (type): Add pop attribute value.
9789         (popcount<mode>2): New pattern.
9790         * doc/invoke.texi (-march=@var{arch}): Add octeon.
9791
9792 2008-08-24  Jan Hubicka  <jh@suse.cz>
9793
9794         * doc/invoke.texi (-fipa-cp-clone): New option.
9795         (-fipa-cp): Update docs.
9796         (--param ipcp-unit-growth):New.
9797         * ipa-cp.c: Include fibheap.h, params.h
9798         (ipcp_initialize_node_lattices): When not cloning, all externally
9799         visible functions are bottom.
9800         (ipcp_need_redirect_p): Accept clones.
9801         (ipcp_insert_stage): Use cost driven heuristics.
9802         (max_count, dead_nodes): New static vars.
9803         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
9804         ipcp_const_param_count): New functions.
9805         * common.opt (ipa-cp-clone): New command line option.
9806         * params.def (ipcp-unit-growth): New.
9807
9808 2008-08-24  Jan Hubicka  <jh@suse.cz>
9809
9810         * tree-inline.c (tree_function_versioning): Look harder
9811         for referenced vars.
9812
9813 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
9814
9815         PR tree-optimization/37185
9816         * matrix-reorg.c (transform_access_sites): Update changed stmt.
9817
9818 2008-08-23  Jan Hubicka  <jh@suse.cz>
9819
9820         * ipa-cp.c (ipcp_analyze_node): New function.
9821         (ipcp_update_cloned_node): Use it.
9822         (ipcp_init_stage): Likewise.
9823         * ipa-inline.c (function_insertion_hook_holder): New static var.
9824         (analyze_function): Break out from ....
9825         (inline_generate_summary): Here; register insertion hook.
9826         (cgraph_decide_inlining): Remove hook.
9827         (add_new_function): New function.
9828
9829 2008-08-23  Jan Hubicka  <jh@suse.cz>
9830
9831         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
9832
9833 2008-08-23  Jan Hubicka  <jh@suse.cz>
9834
9835         * ipa-cp.c (constant_val_insert): Remove.
9836         (ipcp_propagate_one_const): Remove.
9837         (ipcp_create_replace_map): Always insert replacements to the map.
9838         (ipcp_insert_stage): Do not try to insert statements by hand.
9839         * tree-inline.c (insert_init_stmt): Break out from ...
9840         (setup_one_parameter): ... here; allow NULL BB pointer.
9841         (tree_function_versioning): Use setup_one_parameter to process
9842         replacement map.
9843
9844 2008-08-23  Jan Hubicka  <jh@suse.cz>
9845
9846         * tree.c (decl_address_ip_invariant_p): New function.
9847         * tree.h (decl_address_ip_invariant_p): Declare.
9848         * gimple.c (strip_invariant_refs): Break out from ...
9849         (is_gimple_invariant_address): ... here
9850         (is_gimple_ip_invariant_address): New function.
9851         (is_gimple_ip_invariant): New function.
9852         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
9853         Declare.
9854
9855         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
9856         (ipcp_lat_is_insertable): All constants are insertable.
9857         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
9858         IPA_CONST_VALUE_REF.
9859         (ipcp_initialize_node_lattices): Propagate all types of operands.
9860         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
9861         (ipcp_create_replace_map): Reformat.
9862         (ipcp_need_redirect_p): Simplify.
9863         (ipcp_insert_stage): Check that argument is used before clonning.
9864         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
9865         IPA_CONST_REF.
9866         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
9867         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
9868         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
9869         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
9870         (jump_func_type): Remove IPA_CONST_VALUE_REF.
9871         * tree-inline.c (tree_function_versioning): Add variables referenced
9872         by replacing trees.
9873
9874 2008-08-23  Jan Hubicka  <jh@suse.cz>
9875
9876         PR target/37094
9877         * i386.c (standard_80387_constant_p): Use optimize_size.
9878
9879 2008-08-23  Ira Rosen  <irar@il.ibm.com>
9880
9881         PR tree-optimization/37161
9882         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
9883         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
9884         (vect_determine_vectorization_factor): Move the scalar type
9885         retrieval to vect_get_smallest_scalar_type.
9886         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
9887         scalar type. Remove redundant computation.
9888         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
9889         (vect_get_slp_defs): Take the type of RHS into account if
9890         necessary by calling vect_get_smallest_scalar_type. Call
9891         vect_get_constant_vectors with additional argument.
9892
9893 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9894
9895         PR 35648
9896         * doc/invoke.texi (Wwrite-strings): Clarify description.
9897
9898 2008-08-23  Ira Rosen  <irar@il.ibm.com>
9899
9900         PR tree-optimization/37174
9901         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
9902         def stmt is a part of the loop before accessing its stmt_vec_info.
9903
9904 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
9905
9906         PR target/11259
9907         * config/avr/avr.md (UNSPEC_SWAP): New constants.
9908         (*swap): New insn pattern.
9909         (*ashlqi3): Rename from ashlqi3 insn pattern.
9910         (ashlqi3): New expanders.
9911         (*lshrqi3): Rename from lshrqi3 insn pattern.
9912         (lshrqi3): New expanders.
9913         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
9914         lshrqi3_const5, lshrqi3_const6): New splitters.
9915         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
9916         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
9917         peephole2 patterns.
9918
9919 2008-08-22  Richard Guenther  <rguenther@suse.de>
9920
9921         PR tree-optimization/37078
9922         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
9923         [+INF, +INF] ranges.
9924
9925 2008-08-22  Richard Guenther  <rguenther@suse.de>
9926
9927         PR tree-optimization/37143
9928         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
9929         a conversion statement instead of a copy.
9930
9931 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
9932
9933         PR target/37184
9934         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
9935         CCCmode, CCOmode and CCSmode destination modes.
9936
9937         PR target/37191
9938         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
9939         from different units in a single alternative.
9940         (*vec_extractv2sf_1): Ditto.
9941         (*vec_extractv2si_0): Ditto.
9942         (*vec_extractv2si_1): Ditto.
9943         * config/i386/sse.md (sse2_storehpd): Ditto.
9944         (sse2_storelpd): Ditto.
9945         (sse2_loadhpd): Ditto.
9946         (sse2_loadlpd): Ditto.
9947
9948         PR target/37197
9949         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
9950         (popcountsi2): Ditto.
9951         (clzdi2_abm): Ditto.
9952         (popcountdi2): Ditto.
9953         (clzhi2_abm): Ditto.
9954         (popcounthi2): Ditto.
9955
9956 2008-08-22  Richard Guenther  <rguenther@suse.de>
9957
9958         PR middle-end/36548
9959         PR middle-end/37125
9960         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
9961         if the multiplication does not overflow.
9962
9963 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
9964
9965         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
9966
9967 2008-08-21  Richard Henderson  <rth@redhat.com>
9968
9969         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
9970         spurrious comma from test.
9971         * configure: Rebuild.
9972
9973 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9974
9975         PR 30457
9976         * builtins.c (fold_builtin_next_arg): Add warning about undefined
9977         behaviour.
9978
9979 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
9980
9981         * c-tree.h (grokfield): New argument.
9982         * c-decl.c (grokfield): Handle new location argument.
9983         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
9984
9985 2008-08-21  Richard Guenther  <rguenther@suse.de>
9986
9987         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
9988
9989 2008-08-21  Jan Hubicka  <jh@suse.cz>
9990
9991         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
9992         (cgraph_add_function_insertion_hook,
9993         cgraph_remove_function_insertion_hook,
9994         cgraph_call_function_insertion_hooks): New functions.
9995         * cgraph.h (cgraph_add_function_insertion_hook,
9996         cgraph_remove_function_insertion_hook,
9997         cgraph_call_function_insertion_hooks): Declare.
9998         * ipa-reference.c (function_insertion_hook_holder): New variable.
9999         (check_operand, look_for_address_of): When checking late, do not care
10000         about module bitmaps.
10001         (add_new_function): New function.
10002         (generate_summary): Register hooks; zero module bitmaps.
10003         (propagate): Unregister hooks.
10004         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
10005         (add_new_function): New function.
10006         (generate_summary): Register hook.
10007         (propagate): Remove hook.
10008
10009         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
10010
10011         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
10012         * ipa-cp.c (ipcp_update_cloned_node): New function.
10013         (build_const_val): Handle functions correctly; bring type logic
10014         into sync with tree-inline.c
10015         (ipcp_init_stage):  Take care of computing stuff needed by
10016         indirect inlining; update clones.
10017         (ipcp_generate_summary): Break out of ipcp_driver.
10018         (ipcp_driver): Do only execution and transformation.
10019         (pass_ipa_cp): Make IPA_PASS.
10020         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
10021         offset to address.
10022         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
10023         ipcp, some info is already available.
10024         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
10025         * tree-inline.c (remap_ssa_name): Unshare expression.
10026
10027 2008-08-21  Richard Guenther  <rguenther@suse.de>
10028
10029         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10030         a PHI ask VN if it is already available.
10031         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10032         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10033
10034 2008-08-21  Richard Guenther  <rguenther@suse.de>
10035
10036         PR middle-end/36817
10037         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
10038         makes sure to produce a result of the correct type.
10039
10040 2008-08-21  Jan Hubicka  <jh@suse.cz>
10041         Backport from LTO branch:
10042
10043         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
10044                     Jan Hubicka  <jh@suse.cz>
10045
10046         * ipa-pure-const.c
10047         (init_state, finish_state, set_function_state, generate_summary):
10048         New functions.
10049         (scan_stmt): Renamed from scan_function.  Changed to keep state in
10050         local static vars rather than cgraph aux field.
10051         (propagate): Renamed from static_execute. Changed to keep state in
10052         local static vars rather than cgraph aux field.
10053         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
10054         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
10055
10056         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
10057
10058         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
10059         * ipa-reference.c (init_function_info, generate_summary,
10060         propagate): New functions.
10061         (analyze_function):  Call init_function_info.
10062         (static_execute): Stripped into generate_summary and propagate.
10063         (pass_ipa_reference): Made into ipa_opt_pass.
10064
10065 2008-08-21  Richard Guenther  <rguenther@suse.de>
10066
10067         PR tree-optimization/37181
10068         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
10069         folding result.
10070         (extract_range_from_unary_expr): Likewise.
10071
10072 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10073
10074         * diagnostic.c (pedwarn_at): Rename as pedwarn.
10075         (pedwarn): Delete.
10076         * toplev.h (pedwarn_at): Likewise.
10077         * builtins.c: Update all calls to pedwarn.
10078         * c-lex.c: Likewise.
10079         * toplev.c: Likewise.
10080         * c-tree.h: Likewise.
10081         * c-decl.c: Likewise.
10082         * c-errors.c: Likewise.
10083         * c-typeck.c: Likewise.
10084         * c-common.c: Likewise.
10085         * c-parser.c: Likewise.
10086
10087 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
10088
10089         PR target/31070
10090         * config/sparc/sparc.c (function_arg_slotno): Handle structure
10091         with MODE_VECTOR_INT mode.
10092
10093 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10094
10095         PR middle-end/179
10096         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
10097         initialized outside the current module.
10098         (warn_uninitialized_var): Ignore left-hand side when walking the
10099         trees. Ignore address expressions. Examine VUSE operands in gimple
10100         statements with a variable declaration on the right-hand side.
10101
10102 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
10103
10104         PR bootstrap/37155
10105         * rtlanal.c (subreg_offset_representable_p): Revert last change.
10106
10107 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10108
10109         PR 35701
10110         * c-common.c (conversion_warning): Do not warn if applying bit-and
10111         operator to unsigned constant that fits in the target type.
10112
10113 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10114
10115         PR c++/35602
10116         * c-common.c (conversion_warning): Do not warn for artificial
10117         expressions.
10118
10119 2008-08-20  Richard Guenther  <rguenther@suse.de>
10120
10121         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
10122         (extract_range_from_binary_expr): Fall back to constant propagation.
10123         (extract_range_from_unary_expr): Likewise.
10124
10125 2008-08-20  Richard Guenther  <rguenther@suse.de>
10126
10127         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
10128         with TREE_THIS_VOLATILE on shared nodes.
10129         (fold_stmt_r): Likewise.
10130
10131 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
10132
10133         PR c/37171
10134         * c-parser.c (c_parser_attributes): For keywords use canonical
10135         spelling for attr_name.
10136
10137 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10138
10139         * value-prof.c (check_counter): Revert wrong call to error.
10140
10141 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10142
10143         * profile.c: Update calls to inform.
10144         * value-prof.c: Update calls to inform.
10145
10146 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10147
10148         * diagnostic.c (inform): Add an explicit location_t parameter.
10149         * toplev.h (inform): Update declaration.
10150         * builtins.c: Update all calls to inform.
10151         * c-common.c: Likewise.
10152         * c-decl.c: Likewise.
10153         * c-opts.c: Likewise.
10154         * c-pch.c: Likewise.
10155         * c-pragma.c: Likewise.
10156         * c-typeck.c: Likewise.
10157         * coverage.c: Likewise.
10158         * opts.c: Likewise.
10159         * toplev.c: Likewise.
10160         * tree-cfg.c: Likewise.
10161         * tree-ssa.c: Likewise.
10162
10163 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
10164
10165         PR target/37169
10166         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
10167         V2DI mode, for SSE4.1, use movq instead of vector set if the
10168         second element is zero and inter-unit moves are OK.
10169
10170 2008-08-20  Richard Guenther  <rguenther@suse.de>
10171
10172         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
10173         properly handle conversion/copy chains after tuplification.
10174
10175 2008-08-20  Richard Guenther  <rguenther@suse.de>
10176
10177         * passes.c (init_optimization_passes): Move the second
10178         forwprop pass before alias computation.  Remove the second
10179         DCE pass.  Remove the first dominator and phi copy/const
10180         prop passes.
10181
10182 2008-08-20  Nick Clifton  <nickc@redhat.com>
10183
10184         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
10185         support of this feature.  Do not assume that a sufficiently new
10186         assembler will support the feature regardless of the target type.
10187         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10188         * configure: Regenerate.
10189
10190 2008-08-20  Richard Guenther  <rguenther@suse.de>
10191
10192         * tree-vrp.c (found_in_subgraph): Remove.
10193         (live): New global static.
10194         (live_on_edge): New function.
10195         (blocks_visited): Remove.
10196         (register_edge_assert_for_2): Use live_on_edge.
10197         (find_conditional_asserts): Remove code dealing with
10198         found_in_subgraph.  Do not walk the CFG.
10199         (find_switch_asserts): Likewise.
10200         (find_assert_locations_1): Renamed from find_assert_locations.
10201         Move finding assert locations for conditional and switch
10202         statements first.  Update live bitmap.  Do not walk the CFG.
10203         (find_assert_locations): New function.
10204         (insert_range_assertions): Remove entry of CFG walk.
10205         Adjust call to find_assert_locations.
10206         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
10207         that only can appear because of fake exit edges but assert we
10208         never try to insert on those.
10209         (fini_pre): Do not remove fake exit edges here...
10210         (execute_pre): ...but here, before committing edge inserts.
10211
10212 2008-08-19  Richard Guenther  <rguenther@suse.de>
10213
10214         * passes.c (init_optimization_passes): Exchange store-ccp
10215         with a ccp pass.
10216
10217 2008-08-19  Rafael Espíndola  <espindola@google.com>
10218
10219         * varasm.c (weak_decls): Move earlier in the file.
10220         (assemble_external): Add weak decls to the weak_decls list.
10221         (declare_weak): Don't add decls to the weak_decls list.
10222
10223 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10224
10225         PR target/37157
10226         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
10227         before (sse2_shufpd_<mode>).
10228
10229 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
10230
10231         PR debug/37156
10232         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
10233         * tree.c (block_nonartificial_location): Likewise.
10234
10235 2008-08-19  Richard Guenther  <rguenther@suse.de>
10236
10237         PR tree-optimization/35972
10238         PR tree-optimization/23094
10239         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
10240         parameter.
10241         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
10242         handle MISALIGNED_INDIRECT_REF.
10243         (get_ref_from_reference_ops): New helper.
10244         (vn_reference_lookup_pieces): Walk the use-def chain using the
10245         alias-oracle if requested.
10246         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
10247         walking the use-def chain.
10248         (compute_avail): But not here.
10249         (create_component_ref_by_pieces_1): Properly handle
10250         MISALIGNED_INDIRECT_REF.
10251         (do_regular_insertion): Handle fully redundant
10252         expressions after PHI-translation also for SSA_NAME values, not
10253         only constants.  Correctly use edoubleprime for that.
10254
10255 2008-08-19  Ira Rosen  <irar@il.ibm.com>
10256
10257         * tree-vectorizer.c (supportable_widening_operation): Support
10258         multi-step conversion, return the number of steps in such conversion
10259         and the required intermediate types.
10260         (supportable_narrowing_operation): Likewise.
10261         * tree-vectorizer.h (vect_pow2): New function.
10262         (supportable_widening_operation): Change argument types.
10263         (supportable_narrowing_operation): Likewise.
10264         (vectorizable_type_promotion): Add an argument.
10265         (vectorizable_type_demotion): Likewise.
10266         * tree-vect-analyze.c (vect_analyze_operations): Call
10267         vectorizable_type_promotion and vectorizable_type_demotion with
10268         additional argument.
10269         (vect_get_and_check_slp_defs): Detect patterns.
10270         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
10271         types.
10272         (vect_analyze_slp_instance): Don't fail in case of multiple types.
10273         Call vect_build_slp_tree with correct arguments. Calculate unrolling
10274         factor according to the smallest type in the loop.
10275         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
10276         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
10277         supportable_widening_operation with correct arguments.
10278         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
10279         operands lists according to the number of vector statements in left
10280         or right node, if exists.
10281         (vect_gen_widened_results_half): Remove unused argument.
10282         (vectorizable_conversion): Call supportable_widening_operation,
10283         supportable_narrowing_operation, and vect_gen_widened_results_half
10284         with correct arguments.
10285         (vectorizable_assignment): Change documentation, support multiple
10286         types in SLP.
10287         (vectorizable_operation): Likewise.
10288         (vect_get_loop_based_defs): New function.
10289         (vect_create_vectorized_demotion_stmts): Likewise.
10290         (vectorizable_type_demotion): Support loop-aware SLP and general
10291         multi-step conversion. Call vect_get_loop_based_defs and
10292         vect_create_vectorized_demotion_stmts for transformation.
10293         (vect_create_vectorized_promotion_stmts): New function.
10294         (vectorizable_type_promotion): Support loop-aware SLP and general
10295         multi-step conversion. Call vect_create_vectorized_promotion_stmts
10296         for transformation.
10297         (vectorizable_store): Change documentation, support multiple
10298         types in SLP.
10299         (vectorizable_load): Likewise.
10300         (vect_transform_stmt): Pass SLP_NODE to
10301         vectorizable_type_promotion and vectorizable_type_demotion.
10302         (vect_schedule_slp_instance): Move here the calculation of number
10303         of vectorized statements for each node from...
10304         (vect_schedule_slp): ... here.
10305         (vect_transform_loop): Call vect_schedule_slp without the last
10306         argument.
10307
10308 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
10309
10310         PR bootstrap/37152
10311         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
10312         to == in assert statement.
10313         (vectorizable_reduction): Fix typo.
10314
10315 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10316
10317         PR bootstrap/37153
10318         * value-prof.c (check_counter): Dereference pointer to overall
10319         count when printing it.
10320
10321 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10322
10323         * profile.h: Really add it.
10324
10325 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10326
10327         * mcf.c: Really add it.
10328
10329 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
10330             Vinodha Ramasamy  <vinodha@google.com>
10331
10332         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
10333         count_scale.
10334         * value-prof.c (check_counter): Fix the counter if
10335         flag_profile_correction is true.
10336         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
10337         tree_mod_subtract_transform):
10338         Follow check_counter parameter change.
10339         * common.opt (fprofile-correction): New option.
10340         * mcf.c: New file.
10341         * profile.h: Likewise.
10342         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
10343         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
10344         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
10345         functions.
10346         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
10347         flag_profile_correction is set.
10348
10349 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
10350
10351         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
10352
10353 2008-08-18  Tomas Bily  <tbily@suse.cz>
10354
10355         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
10356         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
10357         CONVERT_EXPR_P.
10358         * tree-data-ref.c (split_constant_offset_1): Likewise.
10359         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
10360         * tree-sra.c (sra_walk_expr): Likewise.
10361         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
10362         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
10363         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
10364         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
10365         Likewise.
10366         * gimple.c (gimple_assign_unary_nop_p): Likewise.
10367         * tree-vect-transform.c (vectorizable_type_demotion)
10368         (vectorizable_type_promotion): Likewise.
10369         * tree-inline.c (expand_call_inline):
10370         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
10371         (forward_propagate_addr_expr_1, forward_propagate_comparison)
10372         (tree_ssa_forward_propagate_single_use_vars): Likewise.
10373         * expr.c (expand_expr_real_1): Likewise.
10374         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
10375         (gimple_assign_unary_useless_conversion_p): Likewise.
10376         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10377         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
10378         * fold-const.c (fold_unary): Likewise.
10379         * tree.h (CONVERT_EXPR_P): Likewise.
10380         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
10381         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
10382         * tree-vrp.c:
10383         (register_edge_assert_for_2, extract_range_from_unary_expr)
10384         (register_edge_assert_for_1): Likewise.
10385
10386 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10387
10388         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
10389         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
10390         (enum real_value_const): Delete.
10391         (get_real_const): Delete.
10392         * real.c (get_real_const): Delete.
10393         (dconst_e_ptr): Define.
10394         (dconst_third_ptr): Define.
10395         (dconst_sqrt2_ptr): Define.
10396         * builtins.c: Update all callers.
10397
10398 2008-08-18  Richard Guenther  <rguenther@suse.de>
10399
10400         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
10401         statement iterator after statement removal.
10402
10403 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
10404
10405         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
10406         (detect_processor_freebsd): Likewise.
10407         (host_detect_local_cpu): Call newly added functions for FreeBSD.
10408
10409 2008-08-18  Richard Guenther  <rguenther@suse.de>
10410
10411         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
10412         and loads have the correct types.
10413
10414 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10415
10416         PR cpp/7263
10417         * c-opts.c (cpp_opts): Remove static.
10418         * c-parser.c (cpp_opts): Declare it extern.
10419         (disable_extension_diagnostics): Handle cpp options.
10420         (enable_extension_diagnostics): Likewise.
10421
10422 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10423
10424         * diagnostics.c (permerror_at): Rename as permerror.
10425         (permerror): Delete.
10426         * toplev.h: Likewise.
10427
10428 2008-08-18  Richard Guenther  <rguenther@suse.de>
10429
10430         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
10431         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
10432         Move call_cdce before build_alias.  Move copyrename2,
10433         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
10434         right after final inlining.
10435         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
10436         (pass_build_cfg): But instead via TODO_dump_func.
10437
10438 2008-08-18  Richard Guenther  <rguenther@suse.de>
10439
10440         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
10441         element index.
10442         (scalarize_init): If we failed to generate some initializers
10443         do not generate zeros for not instantiated members.  Instead
10444         rely on the copy out.
10445         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
10446         about missing flow-sensitive alias info only if we have
10447         aliases computed.
10448
10449 2008-08-17  Nick Clifton  <nickc@redhat.com>
10450
10451         * doc/extend.texi (Function Attributes): Fix typo in description
10452         if hot function attribute.
10453
10454 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
10455             Richard Sandiford  <rdsandiford@googlemail.com>
10456
10457         * doc/install.texi (--with-mips-plt): Document.
10458         * doc/invoke.texi (-mplt, -mno-plt): Document.
10459         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
10460         and handle ${with_mips_plt}.
10461         * config/mips/mips.opt (mplt): New option.
10462         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
10463         (TARGET_ABICALLS_PIC2): Likewise.
10464         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
10465         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
10466         (ASM_SPEC): Use !mabi=* instead of !mabi*.
10467         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
10468         to decide whether to output ".option picX" directives.
10469         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
10470         Pass -call_nonpic rather than -KPIC for -mplt.
10471         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
10472         on the command line.  Also remove it when -mabi=64 is used without
10473         -msym32.
10474         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
10475         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
10476         TARGET_ABICALLS_PIC0.
10477         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
10478         TARGET_ABICALLS.
10479         (mips16_build_function_stub): Only output ".option pic" directives
10480         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
10481         (mips16_build_call_stub): Fix comment and remove redundant
10482         ".set at"/"set .noat" directives.
10483         (mips_function_rodata_section): Use the default behaviour for
10484         TARGET_ABSOLUTE_ABICALLS.
10485         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
10486         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
10487         (mips_restore_gp): Do nothing if the current function doesn't use
10488         a global pointer.
10489         (mips_expand_prologue): Only save $gp if the current function uses it.
10490         Use a normal move for TARGET_ABICALLS_PIC0.
10491         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
10492
10493 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
10494
10495         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
10496         of function when handling GLOBAL_POINTER_REGNUM.
10497
10498 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
10499
10500         PR ada/20548
10501         * common.opt (-fstack-check): Do not declare the variable here.
10502         (-fstack-check=): New option variant.
10503         * doc/invoke.texi (Code Gen Options): Document it.
10504         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
10505         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
10506         (STACK_CHECK_STATIC_BUILTIN): New macro.
10507         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
10508         * opts.c: Include expr.h.
10509         (common_handle_option) <OPT_fold_stack_check_>: New case.
10510         <OPT_fstack_check>: Likewise.
10511         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
10512         consistently in the test for variable-sized types.  Adjust for
10513         new behaviour of flag_stack_check.
10514         * explow.c: Include except.h.
10515         (allocate_dynamic_stack_space): Do not take into account
10516         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
10517         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
10518         for variable-sized parameters.  Treat all parameters whose size is
10519         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
10520         stack checking is enabled.
10521         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
10522         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
10523         if generic stack checking is enabled.
10524         (expand_function_end): Adjust for new behaviour of flag_stack_check.
10525         * reload1.c (reload): Likewise.
10526         * stmt.c (expand_decl): Assert that all automatic variables have
10527         fixed size at this point and remove dead code.
10528         * flags.h (stack_check_type): New enumeration type.
10529         (flag_stack_check): Declare.
10530         * toplev.c (flag_stack_check): New global variable.
10531         * Makefile.in (opts.o): Add dependency on EXPR_H.
10532         (explow.o): Add dependency on except.h.
10533
10534 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
10535
10536         * config/avr/avr.c (avr_override_options): Reduce value of
10537         PARAM_INLINE_CALL_COST.
10538
10539 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
10540
10541         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
10542         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
10543         lieu of TYPE_MODE (type) throughout.
10544
10545 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
10546
10547         * config/arm/arm.c (add_minipool_backward_ref): Check for
10548         8-byte-aligned entries in second case of forcing insertion after a
10549         particular entry.  Change third case to avoid inserting
10550         non-8-byte-aligned entries before 8-byte-aligned ones.
10551
10552 2008-08-15  Richard Guenther  <rguenther@suse.de>
10553
10554         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
10555         strip components for unknown size accesses.
10556
10557 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
10558
10559         * config/s390/2097.md New file.
10560         * config/s390/s390.md ("z10prop" attribute): Define none,
10561         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
10562         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
10563         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
10564         possible values and apply them to insns as appropriate.
10565         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
10566         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
10567         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
10568         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
10569         ("bfp" mode attribute): Removed.  Every occurence replaced
10570         with <mode>.
10571         * config/s390/s390.c (struct "z10_cost"): Updated entries.
10572         * config/s390/2084.md (insn_reservation "x_itof"): Updated
10573         type attribute.
10574
10575 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10576
10577         PR c/28152
10578         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
10579         for keywords.
10580
10581 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
10582
10583         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
10584         additional argument. Support reduction when duplication is needed due
10585         to data-types of different sizes in the loop.
10586         (get_initial_def_for_induction): Fix printout.
10587         (vect_get_vec_def_for_stmt_copy): Support case where the
10588         vec_stmt_for_operand is a phi node.
10589         (vectorizable_reduction): Support reduction when duplication is needed
10590         due to data-types of different sizes in the loop.
10591         (vectorizable_call): Remove restriction to not vectorize in case we
10592         have data-types of different sizes in the loop.
10593         (vectorizable_conversion): Likewise.
10594         (vectorizable_operation): Likewise.
10595         (vectorizable_type_demotion): Likewise.
10596         (vectorizable_type_promotion): Likewise.
10597         (vectorizable_induction): Add restriction to not vectorize in case
10598         we have data-types of different sizes in the loop.
10599
10600 2008-08-14  Christophe Saout  <christophe@saout.de>
10601             Uros Bizjak  <ubizjak@gmail.com>
10602
10603         PR target/37101
10604         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
10605         (*vec_concatv2di_rex64_sse4_1): Ditto.
10606         (*vec_concatv2di_rex64_sse): Ditto.
10607
10608 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
10609
10610         PR middle-end/37103
10611         * fold-const.c (fold_widened_comparison): Do not allow
10612         sign changes that change the result even if shorter type
10613         is wider than arg1_unw's type.
10614
10615 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
10616
10617         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
10618         Skip if the multilib testing specifies -march that does not
10619         agree with the one specified in the testcase.
10620
10621 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
10622
10623         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
10624         zero extend SImode values being converted to TFmode before passing
10625         to libcalls.
10626
10627 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10628
10629         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
10630         __PPU__ when targeting the Cell/B.E. PPU processor.
10631
10632 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
10633
10634         * gimple.h (gimple_call_set_chain): Accept SSA variables.
10635         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
10636         Rematerialize the static chain, if any.
10637         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
10638         static chain.
10639
10640 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10641
10642         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
10643         (new_loc_descr): Likewise.
10644         (add_loc_descr): Likewise.
10645         (size_of_loc_descr): Likewise.
10646         (size_of_locs): Likewise.
10647         (output_loc_operands): Likewise.
10648         (output_loc_sequence): Likewise.
10649         (new_reg_loc_descr): New.
10650         (build_cfa_loc): Use it.
10651         (build_cfa_aligned_loc): Likewise.
10652         (one_reg_loc_descriptor): Likewise.
10653         (based_loc_descr): Likewise.
10654
10655 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10656
10657         PR 30551
10658         * doc/invoke.texi (Wmain): Update.
10659         * c-decl.c (start_decl): warn_main is only 0 or 1.
10660         (start_function): Likewise. Fix formatting.
10661         (finish_function): Delete redundant warning.
10662         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
10663         * c-opts (c_common_handle_option): -Wall only has effect if
10664         warn_main is uninitialized. OPT_Wmain is automatically
10665         handled. -pedantic also enables Wmain.
10666         (c_common_post_options): Handle all logic for Wmain here.
10667         * c-common.c (warn_main): Delete.
10668         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
10669         * c-common.h (warn_main): Delete.
10670
10671 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10672
10673         PR middle-end/36701
10674         * expr.c (emit_group_store): Allocate stack temp with the
10675         largest alignment when copying from register to stack.
10676
10677 2008-08-13  Richard Guenther  <rguenther@suse.de>
10678
10679         * tree.h (maybe_fold_offset_to_address): Declare.
10680         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
10681         (ccp_fold): Handle pointer conversions the same as fold_stmt.
10682         Likewise for POINTER_PLUS_EXPR.
10683         (maybe_fold_offset_to_reference): Enable disabled code.
10684         (maybe_fold_offset_to_address): New function.
10685         (fold_stmt_r): Use it.
10686         (fold_gimple_assign): Likewise.
10687         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
10688         (gimplify_expr): Likewise.
10689
10690 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10691
10692         * toplev.h (pedwarn_at): Fix declaration.
10693
10694 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
10695
10696         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10697         LINK_SPEC): Use %R in -Y P argument.
10698
10699 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10700
10701         PR c/15236
10702         * diagnostic.c (pedwarn_at): New.
10703         * toplev.h (pedwarn_at): Declare.
10704         * c-tree.h (build_enumerator): Update declaration.
10705         * c-decl.c (finish_enum): Update comment.
10706         (build_enumerator): Take a location parameter. Give a pedwarn but do
10707         not perform any conversion.
10708         * c-parser.c (c_parser_enum_specifier): Set correct location for
10709         enumerator.
10710
10711 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10712
10713         PR 35635
10714         * c-common.c (conversion_warning): Use a switch. Ignore boolean
10715         expressions except for conversions to signed:1 bitfields. Handle
10716         COND_EXPR with constant operands.
10717
10718 2008-08-13  Richard Guenther  <rguenther@suse.de>
10719
10720         PR tree-optimization/15255
10721         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
10722         (struct oecount_s): New struct and VEC types.
10723         (cvec): New global.
10724         (oecount_hash): New function.
10725         (oecount_eq): Likewise.
10726         (oecount_cmp): Likewise.
10727         (zero_one_operation): New function.
10728         (build_and_add_sum): Likewise.
10729         (undistribute_ops_list): Perform un-distribution of multiplication
10730         and division on the chain of summands.
10731         (should_break_up_subtract): Also break up subtracts for factors.
10732         (reassociate_bb): Delete dead visited statements.
10733         Call undistribute_ops_list.  Re-sort and optimize if it did something.
10734         * passes.c (init_optimization_passes): Move DSE before
10735         reassociation.
10736         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
10737         PHI nodes.
10738
10739 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
10740
10741         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
10742
10743         * doc/invoke.texi: Revert unintended checkin.
10744
10745 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
10746
10747         PR libgomp/26165
10748         * gcc.c (include_spec_function): Tweak call to find_a_file.
10749
10750 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
10751
10752         PR middle-end/37014
10753         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
10754         and TRUTH_ORIF_EXPR.
10755         * dojump.c (do_jump): Likewise.
10756
10757         PR tree-optimization/37084
10758         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
10759         if id->regimplify, don't assume stmt is a cast assignment.
10760
10761 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
10762
10763         * final.c (final_scan_insn): Use app_enable/app_disable functions.
10764
10765 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10766
10767         PR bootstrap/37097
10768         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
10769         by last change.
10770
10771 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10772
10773         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
10774         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
10775
10776         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
10777         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
10778         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
10779         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
10780         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
10781
10782         * doc/tm.texi (Storage Layout): Remove documentation for
10783         TARGET_FLOAT_FORMAT.
10784
10785         * simplify-rtx.c (simplify_binary_operation_1): Replace
10786         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
10787
10788 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10789
10790         * real.h (struct real_format): New member has_sign_dependent_rounding.
10791         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
10792         spu_single_format, ieee_double_format, mips_double_format,
10793         motorola_double_format, ieee_extended_motorola_format,
10794         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10795         ieee_extended_intel_96_round_53_format, ibm_extended_format,
10796         mips_extended_format, ieee_quad_format, mips_quad_format,
10797         vax_f_format, vax_d_format, vax_g_format): Initialize it.
10798         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10799
10800         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10801         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10802         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10803         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10804         (ROUND_TOWARDS_ZERO): Likewise.
10805
10806         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
10807         (FLOAT_MODE_FORMAT): New macro.
10808         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
10809         (MODE_COMPOSITE_P): ... this new macro.
10810         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10811         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
10812         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
10813
10814         * flags.h: Include "real.h".
10815
10816         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
10817         REAL_MODE_FORMAT_COMPOSITE_P.
10818         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
10819
10820         * doc/tm.texi (Storage Layout): Remove documentation of
10821         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10822         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
10823         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
10824         they only apply to libgcc2.a.
10825
10826 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10827
10828         * config/spu/float_disf.c: New file.
10829         * config/spu/float_unsdisf.c: New file.
10830         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
10831         (LIB2FUNCS_EXCLUDE): Define.
10832
10833 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10834             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10835
10836         * real.h (struct real_format): New member round_towards_zero.
10837         * real.c (round_for_format): Respect fmt->round_towards_zero.
10838         (ieee_single_format, mips_single_format, motorola_single_format,
10839         spu_single_format, ieee_double_format, mips_double_format,
10840         motorola_double_format, ieee_extended_motorola_format,
10841         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10842         ieee_extended_intel_96_round_53_format, ibm_extended_format,
10843         mips_extended_format, ieee_quad_format, mips_quad_format,
10844         vax_f_format, vax_d_format, vax_g_format): Initialize it.
10845         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10846
10847         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
10848         real_format to choose rounding mode when calling MPFR functions.
10849         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
10850         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
10851
10852         * real.h (real_to_decimal_for_mode): Add prototype.
10853         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
10854         Respect target rounding mode when generating decimal representation.
10855         (real_to_decimal): New stub for backwards compatibility.
10856         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
10857         real_to_decimal_for_mode instead of real_to_decimal.
10858
10859         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
10860
10861 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10862             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10863
10864         * real.c (spu_single_format): New variable.
10865         * real.h (spu_single_format): Declare.
10866
10867         * config/spu/spu.c (spu_override_options): Install SFmode format.
10868         (spu_split_immediate): Use integer mode to operate on pieces of
10869         floating-point values in all cases.
10870
10871         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
10872         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
10873         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
10874
10875 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10876
10877         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
10878
10879 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10880
10881         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
10882
10883 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
10884
10885         PR c++/36688
10886         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
10887         on the VAR_DECL instead of TYPE_READONLY on its type.
10888
10889 2008-08-12  Ira Rosen  <irar@il.ibm.com>
10890
10891         * tree-vectorizer.c: Depend on langhooks.h.
10892         (supportable_widening_operation): Add two arguments. Support double
10893         type conversions.
10894         (supportable_narrowing_operation): Likewise.
10895         * tree-vectorizer.h (supportable_widening_operation): Add two
10896         arguments.
10897         (supportable_narrowing_operation): Likewise.
10898         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
10899         supportable_widening_operation with correct arguments.
10900         * tree-vect-transform.c (vectorizable_conversion): Likewise.
10901         (vectorizable_type_demotion): Support double type conversions.
10902         (vectorizable_type_promotion): Likewise.
10903         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
10904
10905 2008-08-11  Michael Matz  <matz@suse.de>
10906
10907         * i386/i386.c (override_options): Move initialisation from
10908         flag_schedule_insns_after_reload to here from ...
10909         (optimization_options): ... here.
10910
10911 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
10912
10913         PR rtl-optimization/36998
10914         * dwarf2out.c (compute_barrier_args_size_1,
10915         compute_barrier_args_size): Temporarily remove assertions.
10916
10917 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10918
10919         PR middle-end/20644
10920         * tree-ssa.c (struct walk_data): Add new flag
10921         warn_possibly_uninitialized.
10922         (warn_uninitialized_var): Use it.
10923         (warn_uninitialized_vars): New.
10924         (execute_early_warn_uninitialized): Call it.
10925         (execute_late_warn_uninitialized): Likewise.
10926
10927 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10928
10929         PR middle-end/36238
10930         * reload1.c (gen_reload): Guard calls to get_secondary_mem
10931         for memory subregs.
10932
10933 2008-08-09  Jan Hubicka  <jh@suse.cz>
10934
10935         PR target/37055
10936         * optabs.c (maybe_emit_unop_insn): Remove produced code if
10937         expansion failed.
10938         (expand_fix): Be prepared for expansion to fail.
10939         (expand_sfix_optab): Remove instructions if expansion failed.
10940
10941 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
10942
10943         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
10944         avr31 architecture.
10945         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
10946         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10947
10948 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
10949
10950         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
10951         mips/t-libgcc-mips16 to tmake_file.
10952         * config/mips/mips-protos.h (mips_call_type): New enum.
10953         (mips_pic_base_register, mips_got_load): Declare.
10954         (mips_restore_gp): Take an rtx argument.
10955         (mips_use_pic_fn_addr_reg_p): Declare.
10956         (mips_expand_call): Replace the sibcall_p argument with
10957         a mips_call_type argument.  Add a lazy_p parameter.
10958         (mips_split_call): Declare.
10959         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
10960         (MIPS16_PIC_TEMP): Likewise.
10961         (reg_class): Delete M16_NA_REGS.
10962         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
10963         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
10964         (mips_split_hi_p): Declare.
10965         * config/mips/mips.c (mips_split_hi_p): New array.
10966         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
10967         (mips_got_symbol_type_p): New function.
10968         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
10969         (mips16_stub_function_p): New function.
10970         (mips16_local_function_p): Likewise.
10971         (mips_use_pic_fn_addr_reg_p): Likewise.
10972         (mips_cannot_force_const_mem): Return false for HIGHs.
10973         Extend CONST_INT and symbolic handling to MIPS16, using
10974         mips_symbol_insns to check that the base symbol type is a
10975         legitimate constant.  Reject GOT-based constants if
10976         TARGET_MIPS16_PCREL_LOADS.
10977         (mips_const_insns): Check targetm.cannot_force_const_mem when
10978         decomposing a symbolic base and a large offset.
10979         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
10980         When calling a function that needs $25 from MIPS16 code,
10981         move the target address into $25 separately and add a USE
10982         to the call insn.
10983         (mips16_gp_pseudo_reg): Insert the initializer immediately
10984         before the first real insn.
10985         (mips_pic_base_register, mips_got_load): New functions.
10986         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
10987         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
10988         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
10989         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
10990         (mips_call_tls_get_addr): Update the call to mips_expand_call,
10991         also passing NULL_RTX rather than const0_rtx as the aux argument.
10992         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
10993         instead of TARGET_EXPLICIT_RELOCS.
10994         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
10995         (mips_load_call_address): Replace the sibcall_p argument with
10996         a mips_call_type argument.  Use mips_got_load.
10997         (mips16_local_alias): New structure.
10998         (mips16_local_aliases): New variable.
10999         (mips16_local_aliases_hash): New function.
11000         (mips16_local_aliases_eq): Likewise.
11001         (mips16_local_alias): Likewise.
11002         (mips16_stub_function): Likewise.
11003         (mips16_build_function_stub): Create a local alias for the target
11004         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
11005         .cpload directive and an R_MIPS_NONE relocation for the target
11006         function, then load the alias rather than the function itself.
11007         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
11008         (mips16_copy_fpr_return_value): Use mips16_stub_function and
11009         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
11010         (mips16_build_call_stub): Replace the FN parameter with an
11011         FN_PTR parameter.  Force the address into a register if it
11012         isn't a call_insn_operand; don't rely on the caller to do this.
11013         If a call to a locally-defined and locally-binding MIPS16
11014         function must be made indirectly, redirect the call to the
11015         function's local alias.  Use mips16_stub_function_p,
11016         mips16_stub_function, mips_expand_call and use_reg.
11017         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
11018         Use explicit %hi and %lo accesses where possible.
11019         Use MIPS_CALL to generate the correct code form of a
11020         jal instruction.  Add clobbers of $18 instead of uses.
11021         Update the call to mips_emit_call_insn.
11022         (mips_expand_call): Replace the SIBCALL_P argument with a
11023         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
11024         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
11025         allowing it to modify the call address.  Update the calls to
11026         mips_load_call_address and mips_emit_call_insn.
11027         (mips_split_call): New function.
11028         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
11029         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
11030         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
11031         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
11032         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
11033         if TARGET_MIPS16.
11034         (mips_cprestore_slot): New function.
11035         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
11036         and use mips_cprestore_slot.
11037         (mips_output_function_prologue): Handle TARGET_MIPS16 for
11038         LOADGP_OLDABI.
11039         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
11040         then use a copygp_mips16 instruction to set up $28.
11041         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
11042         (mips16_lay_out_constants): Call split_all_insns_noflow.
11043         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
11044         false if TARGET_MIPS16.
11045         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
11046         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
11047         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
11048         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
11049         MIPS16 code.  Allow MIPS16 o32 PIC.
11050         (mips_override_options): Allow MIPS16 o32 PIC.
11051         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
11052         after reload if TARGET_USE_GOT.
11053         (UNSPEC_COPYGP): New constant.
11054         (length): Use a default length of 8 for MIPS16 GOT loads.
11055         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
11056         (*got_page<mode>): Check mips_split_hi_p.
11057         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
11058         (unspec_got<mode>, unspec_call<mode>): New expanders.
11059         (load_got<mode>, load_call<mode>): Remove the length attributes.
11060         Use a got attribute instead of a type attribute.
11061         (copygp_mips16): New insn.
11062         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
11063         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
11064         (sibcall, sibcall_value, call, call_value): Update the calls
11065         to mips_expand_call.
11066         (call_internal, call_value_internal): Use mips_split_call.
11067         (call_value_multiple_internal): Likewise.
11068         (call_split): Move after call_internal (the insn it is split from).
11069         (call_internal_direct, call_value_internal_direct): Turn into
11070         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
11071         (call_direct_split, call_value_direct_split): New patterns.
11072         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
11073         and use M16_REGS instead of M16_NA_REGS.
11074         * config/mips/predicates.md (const_call_insn_operand): Replace
11075         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
11076         mips_use_pic_fn_addr_reg_p check.
11077         (move_operand): Reject HIGHs if mips_split_hi_p.
11078         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
11079         (__mips16_floatunsisf): Inline __mips16_floatsisf.
11080         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
11081         * config/mips/libgcc-mips16.ver: New file.
11082         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
11083         $(srcdir)/config/mips/libgcc-mips16.ver.
11084
11085 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11086
11087         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
11088         in file.
11089         (mips_unspec_address, mips_unspec_offset_high): Likewise.
11090         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
11091         (mips16_cfun_returns_in_fpr_p): Likewise.
11092
11093 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11094
11095         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
11096         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
11097         rather than 4 to PC.
11098
11099 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11100
11101         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
11102         (FUNCTION_PROFILER): Save the static chain pointer into $2
11103         beforehand and restore it aftewards.
11104         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
11105         address directly into $25 and call the function through $25;
11106         do not clobber $3.  Pad the DImode version to cover the space
11107         left by the deleted $25 <- $3 move.
11108         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
11109         the removal of the $25 <- $3 move.
11110         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
11111         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
11112
11113 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11114             Daniel Jacobowitz  <dan@codesourcery.com>
11115
11116         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
11117         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
11118         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
11119         * config/mips/mips.c (mips_start_function_definition): New function.
11120         (mips_end_function_definition): Likewise.
11121         (mips_output_function_prologue): Use mips_start_function_definition.
11122         (mips_output_function_epilogue): Use mips_end_function_definition.
11123         (build_mips16_function_stub): Use mips_start_function_definition
11124         and mips_end_function_definition.
11125         (build_mips16_call_stub): Likewise.
11126
11127 2008-08-09  Richard Guenther  <rguenther@suse.de>
11128
11129         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
11130         * gimple.h (gimple_call_fn): Adjust comment.
11131         (gimple_call_set_fndecl): New function.
11132         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
11133         longer having bare FUNCTION_DECL operand.
11134         (gimple_call_return_type): Likewise.
11135         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
11136
11137         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
11138         (gimple_mod_pow2): Likewise.
11139         (gimple_mod_subtract): Likewise.
11140         (gimple_ic): Likewise.
11141         (gimple_stringop_fixed_value): Likewise.
11142         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
11143         longer having bare FUNCTION_DECL operand.
11144         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
11145         * omp-low.c (optimize_omp_library_calls): Likewise.
11146         * cgraphunit.c (update_call_expr): Likewise.
11147         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
11148         (execute_convert_to_rsqrt): Likewise.
11149         * cfgexpand.c (gimple_to_tree): Simplify.
11150         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
11151         bare FUNCTION_DECL operand.
11152         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
11153         (convert_gimple_call): Use gimple_call_fndecl.
11154         * c-common.c (c_warn_unused_result): Likewise.
11155
11156 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11157
11158         PR c/17880
11159         * c-typeck.c (digest_init): Call verify_sequence_points from here.
11160         (c_finish_return): Likewise.
11161         (c_start_case): Likewise.
11162         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
11163         * c-parser.c (c_parser_condition): New. Call
11164         verify_sequence_points.
11165         (c_parser_paren_condition): Call c_parser_condition.
11166         (c_parser_for_statement): Call c_parser_condition.
11167
11168 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11169
11170         PR 36901
11171         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
11172         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
11173         Moved from diagnostic.h
11174         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
11175         DK_PERMERROR.
11176         (emit_diagnostic): New.
11177         (warning0, pedwarn0): Delete.
11178         (warning, warning_at, pedwarn, permerror): Return bool.
11179         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
11180         Moved to diagnostic.c.
11181         (struct diagnostic_context): Use correct type for
11182         classify_diagnostic.
11183         (diagnostic_report_diagnostic): Update declaration.
11184         (emit_diagnostic): Declare.
11185         * errors.c (warning): Return bool.
11186         * errors.h (warning): Update declaration.
11187         * toplev.h (warning0, pedwarn0): Delete.
11188         (warning, warning_at, pedwarn, permerror): Return bool.
11189         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
11190         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
11191         inform. Update all calls.
11192         (diagnose_mismatched_decls): Check return value of warning/pedwarn
11193         before giving informative note.
11194         (implicit_decl_warning): Likewise.
11195         * c-typeck.c (build_function_call): Likewise.
11196         * tree-sssa.c (warn_uninit): Likewise.
11197         * builtins.c (gimplify_va_arg_expr): Likewise.
11198
11199 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11200
11201         PR 7651
11202         * doc/invoke.texi (-Wextra): Move warning from here...
11203         (-Wuninitialized): ... to here.
11204
11205 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11206
11207         PR 28875
11208         * flags.h (set_Wunused): Delete
11209         * toplev.c (process_options): Handle Wunused flags here.
11210         * opts.c (maybe_warn_unused_parameter): Delete.
11211         (common_handle_option): Replace set_Wunused by warn_unused.
11212         (set_Wextra): Do not handle Wunused-parameter here.
11213         (set_Wunused): Delete.
11214         * c-opts.c (c_common_handle_option): Replace set_Wunused by
11215         warn_unused.
11216         * common.opt (Wunused): Add Var and Init.
11217         (Wunused-function): Likewise.
11218         (Wunused-label): Likewise.
11219         (Wunused-parameter): Likewise.
11220         (Wunused-value): Likewise.
11221         (Wunused-variable): Likewise.
11222
11223 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
11224
11225         * doc/invoke.texi: Add cpu_type power7.
11226         * config.in (HAVE_AS_VSX): New.
11227         * config.gcc: Add cpu_type power7.
11228         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
11229         VSX instructions.
11230         * configure: Regenerate.
11231         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
11232         power5.
11233         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
11234         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
11235         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
11236
11237 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
11238
11239         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
11240         type to vectorize.builtin_conversion.
11241         (vectorizable_conversion): Likewise.
11242         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
11243         integral type as input.
11244         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
11245         FIX_TRUNC_EXPR.
11246         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
11247         and ALTIVEC_BUILTIN_VCTSXS.
11248         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
11249         formatting.
11250
11251 2008-08-08  Richard Guenther  <rguenther@suse.de>
11252
11253         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
11254         (surely_varying_stmt_p): Calls are varying only if they are
11255         non-builtin and not indirect or have no result.
11256         (ccp_fold): Re-instantiate code before the tuples merge.
11257
11258 2008-08-08  Richard Guenther  <rguenther@suse.de>
11259
11260         PR tree-optimization/37056
11261         * gimple.h (gimple_assign_rhs_class): New helper function.
11262         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
11263         unary operations properly.
11264
11265 2008-08-07  Jan Hubicka  <jh@suse.cz>
11266
11267         * i386.h (ix86_size_cost): Declare.
11268         (ix86_cur_cost): New function macro.
11269         * i386.md (peepholes expanding size and splitters): Predicate by
11270         optimize_insn_for_speed_p.
11271         (peepholes reduce size and splitters): Predicate by
11272         optimize_insn_for_size_p.
11273         * i386.c (ix86_size_cost): Rename from ...
11274         (size_cost): This one.
11275         (override_options): Update.
11276         (decide_alg): Likewise.
11277         (ix86_expand_clear): Use RTL profile.
11278         (ix86_pad_returns): Use RTL profile.
11279
11280 2008-08-07  Jan Hubicka  <jh@suse.cz>
11281
11282         * recog.c (split_all_insns): Set RTL profile
11283         (peephole2_optimize): Likewise.
11284         * function.c (thread_prologue_and_epilogue_insns): Likewise.
11285         * combine.c (combine_instructions): Likewise.
11286
11287 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11288
11289         * c-common.c (c_common_reswords): Also warn about keyword "bool".
11290
11291 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
11292
11293         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
11294         value in a6 after the set_frame_ptr insn.
11295
11296 2008-08-07  Richard Henderson  <rth@redhat.com>
11297
11298         PR debug/37033
11299         * gcc.c (cpp_options): Pass along -g*.
11300
11301 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
11302
11303         * config/arm/arm.c (output_move_neon): Update comment describing
11304         big-endian vector layout.
11305         (arm_assemble_integer): Do not handle big-endian NEON vectors
11306         specially.
11307         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
11308         neon_vget_lane<mode>_sext_internal,
11309         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
11310         element indices for big-endian.
11311
11312 2008-08-07  Richard Henderson  <rth@redhat.com>
11313
11314         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
11315         * configure, config.in: Rebuild.
11316         * debug.h (dwarf2out_do_cfi_asm): Declare.
11317         * c-cppbuiltin.c (c_cpp_builtins): Use it.
11318         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
11319         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
11320         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
11321
11322 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
11323
11324         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
11325         movv2si_internal): Combine into mov<mode>_internal.
11326         (movv2si_internal_2): Remove.
11327
11328 2008-08-07  Jan Hubicka  <jh@suse.cz>
11329
11330         PR target/37048
11331         * i386.md (single stringop patterns): Enable unconditionally.
11332
11333 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
11334
11335         PR target/36992
11336         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
11337
11338         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
11339         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
11340
11341         * config/i386/sse.md (sse2_movq128): New.
11342
11343         * doc/extend.texi: Document __builtin_ia32_movq128.
11344
11345 2008-08-07  Richard Guenther  <rguenther@suse.de>
11346
11347         PR middle-end/37042
11348         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
11349         pointers can access anything.
11350
11351 2008-08-06  Jan Hubicka  <jh@suse.cz>
11352
11353         * optabs.c (emit_unop_insn): Break out to ...
11354         (maybe_emit_unop_insn): ... this one.
11355         (expand_sfix_optab): Use maybe variant.
11356         * optabs.h (maybe_emit_unop_insn): Declare.
11357
11358         * i386.md (mov0 patterns): Enable by default.
11359         (FP conversion expanders): Disable expansion of code expanding
11360         sequences when instruction should be optimized for size.
11361         (single strinop patterns): Enable when optimizing for size.
11362         (string expanders): Disable expanding of code expanding sequences
11363         when optimizning instruction for size.
11364         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
11365         per BB basis.
11366         (ix86_fp_comparison_sahf_cost): Likewise.
11367         (ix86_expand_branch): Likewise.
11368         (ix86_expand_ashl_const): Likewise.
11369         (ix86_split_ashl): Likewise.
11370         (ix86_expand_strlen): Likewise.
11371         (ix86_emit_fp_unordered_jump): Likewie.
11372
11373 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11374
11375         * c-common.c: Fix typo.
11376         (c_common_reswords): Activate more C++ keyword warnings.
11377
11378         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
11379
11380 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11381
11382         PR 26785
11383         * diagnostic.c (permerror_at): New.
11384         * toplev.h (permerror_at): Declare.
11385
11386 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
11387             Ira Rosen  <irar@il.ibm.com>
11388
11389         * tree-vect-transform.c (vect_model_simple_cost): Return
11390         immediately if stmt is pure SLP.
11391         (vect_model_store_cost): Ditto.
11392         (vect_model_load_cost): Ditto.
11393         (vectorizable_store): Remove PURE_SLP check before call
11394         to vect_model_store_cost.
11395         (vect_model_store_cost): When checking whether stmt describe
11396         strided access, add a check that it is not slp_node.
11397
11398 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11399
11400         PR 8715
11401         * c-common.c (warn_for_sign_compare): New. Handle separately the
11402         case that 'constant' is zero.
11403         * c-typeck.c (build_binary_op): Move code to c-common.c
11404
11405 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11406
11407         * config/alpha/alpha.c (alpha_preferred_reload_class,
11408         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
11409         alpha_output_mi_thunk_osf): Avoid C++ keywords.
11410         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
11411         * config/arm/arm.md: Likewise.
11412         * config/avr/avr-protos.h (preferred_reload_class,
11413         test_hard_reg_class, avr_simplify_comparison_p,
11414         out_shift_with_cnt, class_max_nregs): Likewise.
11415         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
11416         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
11417         preferred_reload_class, test_hard_reg_class): Likewise.
11418         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
11419         bfin_memory_move_cost, bfin_secondary_reload,
11420         bfin_output_mi_thunk): Likewise.
11421         * config/crx/crx.c (crx_secondary_reload_class,
11422         crx_memory_move_cost): Likewise.
11423         * config/frv/frv-protos.h (frv_secondary_reload_class,
11424         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
11425         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
11426         frv_secondary_reload_class, frv_class_likely_spilled_p,
11427         frv_class_max_nregs): Likewise.
11428         * config/h8300/h8300.c (h8300_classify_operand,
11429         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
11430         Likewise.
11431         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
11432         * config/ia64/ia64.c (ia64_preferred_reload_class,
11433         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
11434         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
11435         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
11436         Likewise.
11437         * config/m68hc11/m68hc11.c (preferred_reload_class,
11438         m68hc11_memory_move_cost): Likewise.
11439         * config/mcore/mcore.c (mcore_secondary_reload_class,
11440         mcore_reload_class): Likewise.
11441         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
11442         mips_class_max_nregs, mips_cannot_change_mode_class,
11443         mips_preferred_reload_class, mips_secondary_reload_class,
11444         mips_output_mi_thunk): Likewise.
11445         * config/mmix/mmix.c (mmix_preferred_reload_class,
11446         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
11447         Likewise.
11448         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11449         Likewise.
11450         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
11451         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
11452         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11453         * config/rs6000/rs6000.c (paired_expand_vector_init,
11454         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
11455         compare_section_name, rs6000_memory_move_cost): Likewise.
11456         * config/s390/s390.c (s390_emit_compare_and_swap,
11457         s390_preferred_reload_class, s390_secondary_reload,
11458         legitimize_pic_address, legitimize_tls_address,
11459         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
11460         s390_class_max_nregs): Likewise.
11461         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11462         * config/s390/s390.md: Likewise.
11463         * config/score/score-protos.h (score_secondary_reload_class,
11464         score_preferred_reload_class): Likewise.
11465         * config/score/score.c (score_preferred_reload_class,
11466         score_secondary_reload_class): Likewise.
11467         * config/score/score3.c (score3_output_mi_thunk,
11468         score3_preferred_reload_class, score3_secondary_reload_class,
11469         score3_hard_regno_mode_ok): Likewise.
11470         * config/score/score3.h (score3_preferred_reload_class,
11471         score3_secondary_reload_class): Likewise.
11472         * config/score/score7.c (score7_output_mi_thunk,
11473         score7_preferred_reload_class, score7_secondary_reload_class,
11474         score7_hard_regno_mode_ok): Likewise.
11475         * config/score/score7.h (score7_preferred_reload_class,
11476         score7_secondary_reload_class): Likewise.
11477         * config/sh/sh.c (prepare_move_operands, output_far_jump,
11478         output_branchy_insn, add_constant, gen_block_redirect,
11479         sh_insn_length_adjustment, sh_cannot_change_mode_class,
11480         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
11481         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11482         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
11483         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
11484         xstormy16_preferred_reload_class): Likewise.
11485         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
11486         xtensa_expand_atomic, override_options,
11487         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
11488         Likewise.
11489         * reorg.c (try_merge_delay_insns): Likewise.
11490         * tree.c (merge_dllimport_decl_attributes): Likewise.
11491
11492         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
11493
11494 2008-08-06  Michael Matz  <matz@suse.de>
11495
11496         * Makefile.in (write_entries_to_file): Quote words.
11497         * gengtype.c (read_input_line): Skip over leading white-space.
11498
11499 2008-08-06  Marc Gauthier  <marc@tensilica.com>
11500
11501         * config.gcc: Match more processor names for Xtensa.
11502         * configure.ac: Likewise.
11503         * doc/install.texi (Specific): Likewise.
11504         * configure: Regenerate.
11505
11506 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11507
11508         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
11509         * calls.c (avoid_likely_spilled_reg): Likewise.
11510         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11511         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
11512         * config/i386/i386.c (ix86_expand_special_args_builtin,
11513         ix86_secondary_reload): Likewise.
11514         * except.c (struct eh_region, gen_eh_region_catch,
11515         remove_unreachable_regions, duplicate_eh_regions,
11516         assign_filter_values, build_post_landing_pads,
11517         sjlj_find_directly_reachable_regions, remove_eh_handler,
11518         reachable_next_level, foreach_reachable_handler,
11519         can_throw_internal_1, can_throw_external_1,
11520         collect_one_action_chain): Likewise.
11521         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
11522         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
11523         * function.c (update_temp_slot_address, instantiate_new_reg,
11524         instantiate_virtual_regs_in_rtx,
11525         instantiate_virtual_regs_in_insn): Likewise.
11526         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
11527         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
11528         gimplify_cleanup_point_expr): Likewise.
11529         * ipa-cp.c (ipcp_lattice_changed): Likewise.
11530         * passes.c (next_pass_1): Likewise.
11531         * print-tree.c (print_node_brief, print_node): Likewise.
11532         * profile.c (branch_prob): Likewise.
11533         * tree-dump.c (dump_register): Likewise.
11534         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
11535         Likewise.
11536         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
11537         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
11538         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
11539         copy_arguments_for_versioning, copy_static_chain): Likewise.
11540         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
11541         add_new_name_mapping, register_new_name_mapping): Likewise.
11542         * tree-mudflap.c (mf_xform_derefs): Likewise.
11543         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
11544         get_init_expr, combine_chains): Likewise.
11545         * tree-pretty-print.c (dump_generic_node): Likewise.
11546         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
11547         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
11548         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
11549         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
11550
11551 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11552
11553         PR middle-end/37010
11554         * calls.c (expand_call): Use the biggest preferred stack
11555         boundary.
11556
11557 2008-08-06  Michael Matz  <matz@suse.de>
11558
11559         PR target/36613
11560         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
11561         for reused reload, instead of overwriting them.
11562
11563 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11564
11565         PR middle-end/37009
11566         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
11567         for incoming stack boundary.
11568
11569         * function.c (assign_parm_find_entry_rtl): Update
11570         parm_stack_boundary.
11571
11572         * function.h (rtl_data): Add parm_stack_boundary.
11573
11574         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
11575         parm_stack_boundary for incoming stack boundary.
11576
11577 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
11578
11579         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
11580         for unrepresentable subregs or treat them as equal to other regs
11581         or subregs with the same register number.
11582
11583 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
11584
11585         PR middle-end/35432
11586         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
11587         if want_value.
11588
11589 2008-08-06  Jan Hubicka  <jh@suse.cz>
11590
11591         * predict.c (maybe_hot_frequency_p): When profile is absent, all
11592         frequencies might be hot.
11593
11594 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
11595
11596         * reload.c (find_reloads): Force constants into literal pool
11597         also if they are wrapped in a SUBREG.
11598
11599 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11600
11601         PR target/35659
11602         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
11603         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
11604         Don't allow predicated instructions for data speculation.
11605         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
11606         declaration.
11607
11608 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11609
11610         * haifa-sched.c (extend_global): Split to extend_global_data and
11611         extend_region_data.  Update all uses.
11612         (extend_all): Rename to extend_block_data.
11613
11614 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11615
11616         * sched-rgn.c (new_ready): Check if instruction can be
11617         speculatively scheduled before attempting speculation.
11618         (debug_rgn_dependencies): Remove wrongful assert.
11619
11620 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
11621
11622         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
11623
11624 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
11625
11626         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
11627         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
11628         va_size, and type_size.
11629
11630 2008-08-04  Jason Merrill  <jason@redhat.com>
11631
11632         PR c++/37016
11633         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
11634         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
11635
11636 2008-08-05  Richard Henderson  <rth@redhat.com>
11637
11638         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
11639         * configure: Rebuild.
11640
11641 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11642
11643         PR tree-opt/37024
11644         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
11645         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
11646         is a conversion.
11647
11648 2008-08-05  Richard Henderson  <rth@redhat.com>
11649
11650         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
11651         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
11652         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
11653         * common.opt (fdwarf2-cfi-asm): New.
11654         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
11655         * config.in, configure: Rebuild.
11656         * dwarf2asm.c (dw2_asm_output_data_raw): New.
11657         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
11658         New.
11659         (dw2_force_const_mem): Externalize.
11660         * dwarf2asm.h: Update.
11661         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
11662         generate a real label.
11663         (output_cfi_directive): New.
11664         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
11665         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
11666         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
11667         and .cfi_lsda.
11668         (dwarf2out_end_epilogue): Emit .cfi_endproc.
11669         (output_loc_operands_raw, output_loc_sequence_raw): New.
11670         (output_cfa_loc_raw): New.
11671
11672 2008-08-05  Paul Brook  <paul@codesourcery.com>
11673
11674         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
11675         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
11676         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
11677         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
11678         * config/arm/arm.h (TARGET_VFPD32): Define.
11679         (TARGET_VFP3): Use TARGET_VFPD32.
11680         (fputype): Add FPUTYPE_VFP3D16.
11681         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
11682         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
11683         * config/arm/arm-cores.def: Add cortex-r4f.
11684         * config/arm/arm-tune.md: Regenerate.
11685
11686 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11687
11688         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
11689         Reword some comments throughout the file.
11690
11691         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
11692         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
11693         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
11694         MFC_MIN_DMA_LIST_ELEMENTS.
11695         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
11696         MFC_MAX_DMA_LIST_ELEMENTS.
11697
11698         (MFC_START_ENABLE): Remove PPU-only define.
11699         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
11700         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
11701
11702         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
11703         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
11704         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
11705         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
11706         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
11707         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
11708         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
11709
11710         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
11711         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
11712         (mfc_sdcrt, mfc_sdcrtst): Likewise.
11713         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
11714
11715         (spu_read_machine_status): Fix typo.
11716
11717 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11718
11719         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
11720         SUBREG of multi-word hard register.
11721         * config/spu/spu.c (valid_subreg): Likewise.
11722         (adjust_operand): Handle SUBREGs of multi-word hard registers.
11723
11724 2008-08-04  Richard Guenther  <rguenther@suse.de>
11725
11726         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
11727         the candidate with the stripped base if that base is different
11728         from the original base even for offset zero.
11729
11730 2008-08-04  Richard Guenther  <rguenther@suse.de>
11731
11732         PR middle-end/36691
11733         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
11734         check for no_overflow.
11735
11736 2008-08-04  Richard Guenther  <rguenther@suse.de>
11737
11738         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
11739
11740 2008-08-04  Paul Brook  <paul@codesourcery.com>
11741
11742         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
11743         (arm_order_regs_for_local_alloc): New function.
11744         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
11745         prototype.
11746         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
11747
11748 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
11749
11750         PR target/37012
11751         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
11752         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
11753         (ix86_expand_epilogue): Likewise.
11754
11755 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
11756
11757         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
11758         in comments.
11759
11760 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
11761
11762         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
11763         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
11764         (*movv2sf_internal_rex64): Ditto.
11765
11766 2008-08-03  Jan Hubicka  <jh@suse.cz>
11767
11768         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
11769         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
11770         * expmed.c (expand_smod_pow2): Likewise.
11771
11772 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
11773
11774         PR target/36992
11775         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
11776         alternative 0 of operand 1.
11777         (*vec_concatv2di_rex64_sse): Ditto.
11778         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
11779         of operand 1.
11780         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
11781         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
11782         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
11783         (*movv2sf_internal_rex64): Ditto.
11784
11785 2008-08-02  Richard Guenther  <rguenther@suse.de>
11786
11787         PR target/35252
11788         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
11789         (ssedoublesizemode): New mode attribute.
11790         (sse_shufps): Call gen_sse_shufps_v4sf.
11791         (sse_shufps_1): Macroize.
11792         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
11793         (sse2_shufpd_1): Macroize.
11794         (vec_extract_odd, vec_extract_even): New expanders.
11795         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
11796         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
11797         * i386.c (ix86_expand_vector_init_one_nonzero): Call
11798         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
11799         (ix86_expand_vector_set): Likewise.
11800         (ix86_expand_reduc_v4sf): Likewise.
11801
11802 2008-08-01  Doug Kwan  <dougkwan@google.com>
11803
11804         * matrix-reorg.c: Re-enable all code.
11805         (struct malloc_call_data): Change CALL_STMT to gimple type.
11806         (collect_data_for_malloc_call): Tuplify.
11807         (struct access_site_info): Change STMT to gimple type.
11808         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
11809         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
11810         (struct free_info): Change STMT to gimple type.
11811         (struct matrix_access_phi_node):  Change PHI to gimple type.
11812         (get_inner_of_cast_expr): Remove.
11813         (may_flatten_matrices_1): Tuplify.
11814         (may_flatten_matrices): Ditto.
11815         (mark_min_matrix_escape_level): Ditto.
11816         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
11817         (ssa_accessed_in_call_rhs): New
11818         (ssa_accessed_in_assign_rhs): New
11819         (record_access_alloc_site_info): Tuplify.
11820         (add_allocation_site): Ditto.
11821         (analyze_matrix_allocation_site): Ditto.
11822         (analyze_transpose): Ditto.
11823         (get_index_from_offset): Ditto.
11824         (update_type_size): Ditto.
11825         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
11826         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
11827         (analyze_accesses_for_phi_node): Tuplify.
11828         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
11829         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
11830         (analyze_matrix_accesses): Tuplify.
11831         (check_var_data): New call-back type for check_var_notmodified_p.
11832         (check_var_notmodified_p): Tuplify and use call-back struct to
11833         return statement found.
11834         (can_calculate_expr_before_stmt): Factor out statement related code
11835         into ...
11836         (can_calculate_stmt_before_stmt): New.
11837         (check_allocation_function): Tuplify.
11838         (find_sites_in_func): Ditto.
11839         (record_all_accesses_in_func): Ditto.
11840         (transform_access_sites): Ditto.
11841         (transform_allocation_sites): Ditto.
11842         (matrix_reorg): Re-enable.
11843         (gate_matrix_reorg): Re-enable.
11844
11845 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
11846
11847         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
11848         for labels for which it hasn't been set yet.  If it has been set,
11849         stop walking insns and continue with next worklist item.
11850         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
11851         if the only BARRIER is at the very end of a function.
11852
11853 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
11854
11855         * cfgexpand.c (expand_stack_alignment): Assert that
11856         stack_realign_drap and drap_rtx must match.
11857
11858         * function.c (instantiate_new_reg): If DRAP is used to realign
11859         stack, replace virtual_incoming_args_rtx with internal arg
11860         pointer.
11861
11862 2008-08-01  Richard Guenther  <rguenther@suse.de>
11863
11864         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
11865         loop information only if we initialized it.
11866         (execute_pre): Call fini_pre with in_fre.
11867         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
11868         if we do not unroll because we hit max-completely-peeled-insns.
11869         Use our estimation for consistency, do allow shrinking.
11870
11871 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
11872
11873         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
11874         with MIN_STACK_BOUNDARY.
11875         (ix86_update_stack_boundary): Likewise.
11876         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
11877         STACK_BOUNDARY.
11878
11879         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
11880         (MIN_STACK_BOUNDARY): This.
11881
11882 2008-08-01  Richard Guenther  <rguenther@suse.de>
11883
11884         PR middle-end/36997
11885         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
11886
11887 2008-08-01  Richard Guenther  <rguenther@suse.de>
11888
11889         PR tree-optimization/36988
11890         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
11891         do not matter if that doesn't change volatile qualification.
11892
11893 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
11894
11895         * configure.ac: Do not generate libada-mk.  Do not subst
11896         host_cc_for_libada.
11897         * libada-mk.in: Remove.
11898         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
11899         * configure: Regenerate.
11900
11901 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
11902
11903         * tree-pass.h: Added comment about not dumping passes with name
11904         starting with star in struct opt_pass.
11905         * passes.c (register_dump_files_1): Don't do dump for a pass with
11906         name starting with star.
11907         * doc/passes.texi (Pass manager): Mention pass names and special
11908         meaning of star prefix to avoid dump.
11909
11910 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
11911
11912         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
11913         to MIPS64r2.
11914         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
11915         (ISA_MIPS64R2): New macro.
11916         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
11917         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
11918         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
11919         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
11920         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
11921         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
11922         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
11923         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
11924         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
11925         Move up to keep list alphabetically sorted.
11926         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
11927         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
11928         processor.
11929         * doc/invoke.texi (MIPS Options): Add -mips64r2.
11930         (-march=@var{arch}): Add mips64r2.
11931
11932 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11933
11934         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
11935
11936 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
11937
11938         * expr.c (expand_assignment): Check for complete type.
11939
11940 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11941
11942         PR debug/36977
11943         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
11944
11945         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
11946         for stack alignment.
11947
11948         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
11949
11950 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
11951
11952         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
11953         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
11954
11955 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
11956
11957         PR rtl-optimization/36419
11958         * dwarf2out.c (barrier_args_size): New variable.
11959         (compute_barrier_args_size, compute_barrier_args_size_1): New
11960         functions.
11961         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
11962         if not called yet in the current function, use barrier_args_size
11963         array to find the new args_size value.
11964         (dwarf2out_frame_debug): Free and clear barrier_args_size.
11965
11966 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11967
11968         PR debug/36980
11969         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
11970         rule 19.
11971
11972 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11973
11974         PR debug/36976
11975         * dwarf2out.c (dwarf2out_args_size_adjust): New.
11976         (dwarf2out_stack_adjust): Use it.
11977         (dwarf2out_frame_debug_expr): Likewise.
11978
11979 2008-07-31  Richard Guenther  <rguenther@suse.de>
11980
11981         PR tree-optimization/36978
11982         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
11983         the generated condition.
11984
11985 2008-07-31  Richard Guenther  <rguenther@suse.de>
11986
11987         * passes.c (init_optimization_passes): Always call
11988         pass_early_warn_uninitialized.
11989         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
11990         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
11991         * doc/passes.texi (Warn for uninitialized variables): Adjust.
11992
11993 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
11994
11995         PR c/36970
11996         * builtins.c (maybe_emit_free_warning): New function.
11997         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
11998         maybe_emit_free_warning for BUILT_IN_FREE.
11999
12000         PR debug/36278
12001         * dwarf2out.c (get_context_die): New function.
12002         (force_decl_die, force_type_die): Use it.
12003         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
12004         returns NULL, force generation of DW_TAG_typedef and put that into
12005         DW_AT_import.
12006
12007         PR preprocessor/36649
12008         * c-pch.c (c_common_read_pch): Save and restore
12009         line_table->trace_includes across PCH restore.
12010
12011 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
12012
12013         PR ada/36554
12014         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
12015
12016 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
12017
12018         PR 36974
12019         * final.c (call_from_call_insn): Handle COND_EXEC.
12020
12021 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
12022
12023         * builtins.c (std_gimplify_va_arg_expr): Replace
12024         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
12025         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12026
12027 2008-07-30  Joey Ye  <joey.ye@intel.com>
12028             H.J. Lu  <hongjiu.lu@intel.com>
12029
12030         * builtins.c (expand_builtin_setjmp_receiver): Replace
12031         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
12032         (expand_builtin_apply_args_1): Likewise.
12033         (expand_builtin_longjmp): Need DRAP for stack alignment.
12034         (expand_builtin_apply): Likewise.
12035
12036         * caller-save.c (setup_save_areas): Call assign_stack_local_1
12037         instead of assign_stack_local to allow alignment reduction.
12038
12039         * calls.c (emit_call_1): Need DRAP for stack alignment if
12040         return pops.
12041         (expand_call): Replace virtual_incoming_args_rtx with
12042         crtl->args.internal_arg_pointer.
12043         * stmt.c (expand_nl_goto_receiver): Likewise.
12044
12045         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
12046         alignment and store to stack_alignment_estimated and
12047         max_used_stack_slot_alignment.
12048         (expand_one_var): Likewise.
12049         (expand_stack_alignment): New function.
12050         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
12051         and stack_alignment_estimated fields in rtl_data.  Call
12052         expand_stack_alignment at end.
12053
12054         * defaults.h (INCOMING_STACK_BOUNDARY): New.
12055         (MAX_STACK_ALIGNMENT): Likewise.
12056         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
12057         (SUPPORTS_STACK_ALIGNMENT): Likewise.
12058
12059         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
12060         stack alignment when generating virtual registers.
12061
12062         * function.c (assign_stack_local): Renamed to ...
12063         (assign_stack_local_1): This.  Add a parameter to indicate
12064         if it is OK to reduce alignment.
12065         (assign_stack_local): Use it.
12066         (instantiate_new_reg): Instantiate virtual incoming args rtx
12067         to vDRAP if stack realignment and DRAP is needed.
12068         (assign_parms): Collect parameter/return type alignment and
12069         contribute to stack_alignment_estimated.
12070         (locate_and_pad_parm): Likewise.
12071         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
12072         with crtl->args.internal_arg_pointer.
12073
12074         * function.h (rtl_data): Add new field drap_reg,
12075         max_used_stack_slot_alignment, stack_alignment_estimated,
12076         stack_realign_needed, need_drap, stack_realign_processed and
12077         stack_realign_finalized.
12078         (stack_realign_fp): New macro.
12079         (stack_realign_drap): Likewise.
12080
12081         * global.c (compute_regsets): Frame pointer is needed when
12082         stack is realigned.  Can eliminate frame pointer when stack is
12083         realigned and dynamic realigned argument pointer isn't used.
12084
12085         * reload1.c (update_eliminables):  Frame pointer is needed
12086         when stack is realigned.
12087         (init_elim_table): Can eliminate frame pointer when stack is
12088         realigned and dynamic realigned argument pointer isn't used.
12089
12090         * rtl.h (assign_stack_local_1): Declare new funtion.
12091
12092         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
12093         (TARGET_GET_DRAP_RTX): Likewise.
12094         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
12095         TARGET_GET_DRAP_RTX.
12096
12097         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
12098
12099         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
12100         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
12101
12102 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
12103             H.J. Lu  <hongjiu.lu@intel.com>
12104
12105         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
12106         vdrap_reg, stack_realign and drap_reg_saved.
12107         (add_cfi): Don't allow redefining CFA when DRAP is used.
12108         (reg_save): Handle stack alignment.
12109         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
12110         alignment.  Don't generate DWARF information for (set fp sp)
12111         when DRAP is used.
12112         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
12113         to INVALID_REGNUM.
12114         (int_loc_descriptor): Move prototype forward.  Also define if
12115         DWARF2_UNWIND_INFO is true.
12116         (output_cfa_loc): Handle DW_CFA_expression.
12117         (build_cfa_aligned_loc): New.
12118         (based_loc_descr): Update assert for stack realign.  For local
12119         variables, use sp+offset when stack is aligned without drap and
12120         fp+offset when stack is aligned with drap.  For arguments, use
12121         cfa+offset when drap is used to align stack.
12122
12123 2008-07-30  Joey Ye  <joey.ye@intel.com>
12124             H.J. Lu  <hongjiu.lu@intel.com>
12125
12126         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
12127         Break long line.
12128         (ix86_gen_andsp): New.
12129         (ix86_user_incoming_stack_boundary): Likewise.
12130         (ix86_default_incoming_stack_boundary): Likewise.
12131         (ix86_incoming_stack_boundary): Likewise.
12132         (ix86_can_eliminate): Likewise.
12133         (find_drap_reg): Likewise.
12134         (ix86_update_stack_boundary): Likewise.
12135         (ix86_get_drap_rtx): Likewise.
12136         (ix86_finalize_stack_realign_flags): Likewise.
12137         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
12138         (TARGET_GET_DRAP_RTX): Likewise.
12139         (override_options): Overide option value for new options.
12140         (ix86_function_ok_for_sibcall): Remove check for
12141         force_align_arg_pointer.
12142         (ix86_handle_cconv_attribute): Likewise.
12143         (ix86_function_regparm): Likewise.
12144         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
12145         (ix86_va_start): Replace virtual_incoming_args_rtx with
12146         crtl->args.internal_arg_pointer.
12147         (ix86_select_alt_pic_regnum): Check DRAP register.
12148         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
12149         (ix86_compute_frame_layout): Compute frame layout wrt stack
12150         realignment.
12151         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
12152         (ix86_expand_prologue): Decide if stack realignment is needed
12153         and generate prologue code accordingly.
12154         (ix86_expand_epilogue): Generate epilogue code wrt stack
12155         realignment is really needed or not.
12156
12157         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
12158         (ABI_STACK_BOUNDARY): Likewise.
12159         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
12160         (STACK_REALIGN_DEFAULT): Likewise.
12161         (INCOMING_STACK_BOUNDARY): Likewise.
12162         (MAX_STACK_ALIGNMENT): Likewise.
12163         (ix86_incoming_stack_boundary): Likewise.
12164         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
12165         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
12166         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
12167         (machine_function): Remove force_align_arg_pointer.
12168
12169         * config/i386/i386.md (BX_REG): New.
12170         (R13_REG): Likewise.
12171
12172         * config/i386/i386.opt (mforce_drap): New.
12173         (mincoming-stack-boundary): Likewise.
12174         (mstackrealign): Add Init(-1).
12175
12176         * config/i386/i386-protos.h (ix86_can_eliminate): New
12177
12178 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
12179
12180         * doc/extend.texi: Update force_align_arg_pointer.
12181
12182         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
12183         -mstackrealign.
12184
12185         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
12186         (INCOMING_STACK_BOUNDARY): Likewise.
12187         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
12188         (TARGET_GET_DRAP_RTX): Likewise.
12189
12190 2008-07-30  Andreas Schwab  <schwab@suse.de>
12191
12192         PR rtl-optimization/36929
12193         * dse.c (replace_inc_dec): Use emit_insn_before instead of
12194         add_insn_before and fix argument order.
12195         (replace_inc_dec_mem): Handle NULL rtx.
12196
12197 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
12198
12199         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
12200         function.
12201         (arm_compute_initial_elimination_offset): Use it.
12202         (arm_compute_save_reg_mask): Include static chain save slot when
12203         calculating alignment.
12204         (arm_get_frame_offsets): Ditto.
12205         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
12206         that we can use to decrement the stack when the stack decrement
12207         could be too big for an immediate value in a single insn.
12208         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
12209
12210 2008-07-30  Richard Guenther  <rguenther@suse.de>
12211
12212         PR tree-optimization/36967
12213         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
12214         Release defs of statements we remove.
12215
12216 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
12217
12218         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
12219         instead of NULL_RTVEC.
12220
12221 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
12222
12223         PR target/35866
12224
12225         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
12226         vector modes.
12227
12228 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
12229
12230         * final.c (call_from_call_insn): New.
12231         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
12232
12233 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
12234
12235         * configure.ac: Substitute ADA_CFLAGS.
12236         * configure: Regenerate.
12237         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
12238         * Makefile.in: Remove mention of X_* variables.
12239         * config/pa/x-ada-hpux10: Remove.
12240         * config/pa/x-ada: Remove.
12241
12242         * doc/fragments.texi: Update.
12243
12244 2008-07-30  Olivier Hainque  <hainque@adacore.com>
12245
12246         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
12247         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
12248         __dso_handle explicitly here.
12249
12250 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12251
12252         PR 34389
12253         * c-typeck.c (build_binary_op): Encapsulate code into...
12254         * c-common.c (shorten_binary_op): ...this new function.
12255         (conversion_warning): Use the new function. Handle non-negative
12256         constant in bitwise-and.
12257         * c-common.h (shorten_binary_op): Declare.
12258
12259 2008-07-30  Olivier Hainque  <hainque@adacore.com>
12260
12261         * scan.c (make_sstring_space): Add explicit conversions of
12262         allocator's return value.
12263         * fix-header.c (recognized_function): Likewise.
12264
12265 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12266
12267         * doc/cpp.texi: Update to GFDL 1.2.
12268         * doc/gcc.texi: Do not list GPL as Invariant Section.
12269         * doc/gccint.texi: Likewise.  Update copyright years.
12270         * doc/install.texi: Update copyright years.
12271
12272 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
12273
12274         PR target/36955
12275         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
12276         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
12277
12278 2008-07-29  Jan Hubicka  <jh@suse.cz>
12279
12280         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
12281         (grokdeclarator): Likewise.
12282         * langhooks.c (lhd_warn_unused_global_decl): Use
12283         DECL_DECLARED_INLINE_P.
12284         * print-tree.c (print_node): Remove DECL_INLINE check.
12285
12286 2008-07-29  Richard Guenther  <rguenther@suse.de>
12287
12288         PR tree-optimization/36945
12289         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
12290         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
12291         Record invariant addresses un-decomposed.
12292         (copy_reference_ops_from_call): Record reference call
12293         arguments properly.  Simplify.
12294         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
12295         helper split out from ...
12296         (create_component_ref_by_pieces): ... here.  Simplify.
12297         Prepare for recursive invocation for call arguments.
12298         (create_expression_by_pieces): Adjust call to
12299         create_component_ref_by_pieces.
12300         (compute_avail): Process operand 2 of reference ops.
12301
12302 2008-07-29  Richard Guenther  <rguenther@suse.de>
12303
12304         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
12305
12306 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
12307
12308         * c-format.c (check_format_types): Revert unwanted checkin.
12309
12310 2008-07-29  Jan Hubicka  <jh@suse.cz>
12311
12312         * flags.h (flag_really_no_inline): Remove.
12313         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
12314         * toplev.c (flag_really_no_inline): Remove.
12315         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
12316         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
12317         (cgraph_decide_inlining_incrementally): Likewise.
12318         (compute_inline_parameters): Likewise.
12319         * opts.c (decode_options): Simplify.
12320         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
12321         * common.opt (finline): Initialize to 1.
12322         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
12323
12324 2008-07-29  Jan Hubicka  <jh@suse.cz>
12325
12326         * predict.c (always_optimize_for_size_p): New function.
12327         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
12328         optimize_edge_for_size_p, optimize_edge_for_speed_p,
12329         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
12330         functions.
12331         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
12332         * function.c (prepare_function_start): Set default profile.
12333         * function.h (rtl_data): Add maybe_hot_insn_p.
12334         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
12335         (construct_exit_block): Likewise.
12336         (tree_expand_cfg): Likewise.
12337         * basic-block.h
12338         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
12339         optimize_edge_for_size_p, optimize_edge_for_speed_p,
12340         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
12341         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
12342         Declare.
12343
12344 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12345
12346         PR 34985
12347         * c-decl.c (merge_decls): Merge USED flags.
12348
12349 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12350
12351         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
12352         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
12353         next_stack, lab_false and lab_over trees.
12354
12355 2008-07-28  Richard Guenther  <rguenther@suse.de>
12356
12357         PR tree-optimization/36957
12358         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
12359         (useless_type_conversion_p): Remove.
12360         (types_compatible_p): Remove.
12361         * gimple.h (tree_ssa_useless_type_conversion): Declare.
12362         (useless_type_conversion_p): Declare.
12363         (types_compatible_p): Declare.
12364         (gimple_expr_type): Return the base type only if it is
12365         trivially convertible to the subtype.
12366
12367 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
12368
12369         * configure.ac: Use the m4_do macro to concatenate the warnings into
12370         one string in ACX_PROG_CC_WARNING_OPTS,
12371         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
12372         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
12373         * configure: Regenerate.
12374
12375 2008-07-28  Richard Guenther  <rguenther@suse.de>
12376
12377         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
12378         (insert_fake_stores): Remove.
12379         (realify_fake_stores): Likewise.
12380         (execute_pre): Remove dead code.
12381         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
12382         (find_func_aliases): Deal with it here instead.
12383         Re-enable gcc_unreachable call.
12384
12385 2008-07-28  Richard Guenther  <rguenther@suse.de>
12386
12387         Merge from gimple-tuples-branch.
12388
12389         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
12390         * gimple.def: New file.
12391         * gsstruct.def: Likewise.
12392         * gimple-iterator.c: Likewise.
12393         * gimple-pretty-print.c: Likewise.
12394         * tree-gimple.c: Removed.  Merged into ...
12395         * gimple.c: ... here.  New file.
12396         * tree-gimple.h: Removed.  Merged into ...
12397         * gimple.h: ... here.  New file.
12398
12399         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
12400         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
12401         --enable-checking=gimple flag.
12402         * config.in: Likewise.
12403         * configure: Regenerated.
12404
12405         * tree-ssa-operands.h: Tuplified.
12406         * tree-vrp.c: Likewise.
12407         * tree-loop-linear.c: Likewise.
12408         * tree-into-ssa.c: Likewise.
12409         * tree-ssa-loop-im.c: Likewise.
12410         * tree-dump.c: Likewise.
12411         * tree-complex.c: Likewise.
12412         * cgraphbuild.c: Likewise.
12413         * tree-ssa-threadupdate.c: Likewise.
12414         * tree-ssa-loop-niter.c: Likewise.
12415         * tree-pretty-print.c: Likewise.
12416         * tracer.c: Likewise.
12417         * gengtype.c: Likewise.
12418         * tree-loop-distribution.c: Likewise.
12419         * tree-ssa-loop-unswitch.c: Likewise.
12420         * cgraph.c: Likewise.
12421         * cgraph.h: Likewise.
12422         * tree-ssa-loop-manip.c: Likewise.
12423         * value-prof.c: Likewise.
12424         * tree-ssa-loop-ch.c: Likewise.
12425         * tree-tailcall.c: Likewise.
12426         * value-prof.h: Likewise.
12427         * tree.c: Likewise.
12428         * tree.h: Likewise.
12429         * tree-pass.h: Likewise.
12430         * ipa-cp.c: Likewise.
12431         * tree-scalar-evolution.c: Likewise.
12432         * tree-scalar-evolution.h: Likewise.
12433         * target.h: Likewise.
12434         * lambda-mat.c: Likewise.
12435         * tree-phinodes.c: Likewise.
12436         * diagnostic.h: Likewise.
12437         * builtins.c: Likewise.
12438         * tree-ssa-alias-warnings.c: Likewise.
12439         * cfghooks.c: Likewise.
12440         * fold-const.c: Likewise.
12441         * cfghooks.h: Likewise.
12442         * omp-low.c: Likewise.
12443         * tree-ssa-dse.c: Likewise.
12444         * ipa-reference.c: Likewise.
12445         * tree-ssa-uncprop.c: Likewise.
12446         * toplev.c: Likewise.
12447         * tree-gimple.c: Likewise.
12448         * tree-gimple.h: Likewise.
12449         * tree-chrec.c: Likewise.
12450         * tree-chrec.h: Likewise.
12451         * tree-ssa-sccvn.c: Likewise.
12452         * tree-ssa-sccvn.h: Likewise.
12453         * cgraphunit.c: Likewise.
12454         * tree-ssa-copyrename.c: Likewise.
12455         * tree-ssa-ccp.c: Likewise.
12456         * tree-ssa-loop-ivopts.c: Likewise.
12457         * tree-nomudflap.c: Likewise.
12458         * tree-call-cdce.c: Likewise.
12459         * ipa-pure-const.c: Likewise.
12460         * c-format.c: Likewise.
12461         * tree-stdarg.c: Likewise.
12462         * tree-ssa-math-opts.c: Likewise.
12463         * tree-ssa-dom.c: Likewise.
12464         * tree-nrv.c: Likewise.
12465         * tree-ssa-propagate.c: Likewise.
12466         * ipa-utils.c: Likewise.
12467         * tree-ssa-propagate.h: Likewise.
12468         * tree-ssa-alias.c: Likewise.
12469         * gimple-low.c: Likewise.
12470         * tree-ssa-sink.c: Likewise.
12471         * ipa-inline.c: Likewise.
12472         * c-semantics.c: Likewise.
12473         * dwarf2out.c: Likewise.
12474         * expr.c: Likewise.
12475         * tree-ssa-loop-ivcanon.c: Likewise.
12476         * predict.c: Likewise.
12477         * tree-ssa-loop.c: Likewise.
12478         * tree-parloops.c: Likewise.
12479         * tree-ssa-address.c: Likewise.
12480         * tree-ssa-ifcombine.c: Likewise.
12481         * matrix-reorg.c: Likewise.
12482         * c-decl.c: Likewise.
12483         * tree-eh.c: Likewise.
12484         * c-pretty-print.c: Likewise.
12485         * lambda-trans.c: Likewise.
12486         * function.c: Likewise.
12487         * langhooks.c: Likewise.
12488         * ebitmap.h: Likewise.
12489         * tree-vectorizer.c: Likewise.
12490         * function.h: Likewise.
12491         * langhooks.h: Likewise.
12492         * tree-vectorizer.h: Likewise.
12493         * ipa-type-escape.c: Likewise.
12494         * ipa-type-escape.h: Likewise.
12495         * domwalk.c: Likewise.
12496         * tree-if-conv.c: Likewise.
12497         * profile.c: Likewise.
12498         * domwalk.h: Likewise.
12499         * tree-data-ref.c: Likewise.
12500         * tree-data-ref.h: Likewise.
12501         * tree-flow-inline.h: Likewise.
12502         * tree-affine.c: Likewise.
12503         * tree-vect-analyze.c: Likewise.
12504         * c-typeck.c: Likewise.
12505         * gimplify.c: Likewise.
12506         * coretypes.h: Likewise.
12507         * tree-ssa-phiopt.c: Likewise.
12508         * calls.c: Likewise.
12509         * tree-ssa-coalesce.c: Likewise.
12510         * tree.def: Likewise.
12511         * tree-dfa.c: Likewise.
12512         * except.c: Likewise.
12513         * except.h: Likewise.
12514         * cfgexpand.c: Likewise.
12515         * tree-cfgcleanup.c: Likewise.
12516         * tree-ssa-pre.c: Likewise.
12517         * tree-ssa-live.c: Likewise.
12518         * tree-sra.c: Likewise.
12519         * tree-ssa-live.h: Likewise.
12520         * tree-predcom.c: Likewise.
12521         * lambda.h: Likewise.
12522         * tree-mudflap.c: Likewise.
12523         * ipa-prop.c: Likewise.
12524         * print-tree.c: Likewise.
12525         * tree-ssa-copy.c: Likewise.
12526         * ipa-prop.h: Likewise.
12527         * tree-ssa-forwprop.c: Likewise.
12528         * ggc-page.c: Likewise.
12529         * c-omp.c: Likewise.
12530         * tree-ssa-dce.c: Likewise.
12531         * tree-vect-patterns.c: Likewise.
12532         * tree-ssa-ter.c: Likewise.
12533         * tree-nested.c: Likewise.
12534         * tree-ssa.c: Likewise.
12535         * lambda-code.c: Likewise.
12536         * tree-ssa-loop-prefetch.c: Likewise.
12537         * tree-inline.c: Likewise.
12538         * tree-inline.h: Likewise.
12539         * tree-iterator.c: Likewise.
12540         * tree-optimize.c: Likewise.
12541         * tree-ssa-phiprop.c: Likewise.
12542         * tree-vect-transform.c: Likewise.
12543         * tree-object-size.c: Likewise.
12544         * tree-outof-ssa.c: Likewise.
12545         * cfgloop.c: Likewise.
12546         * system.h: Likewise.
12547         * tree-profile.c: Likewise.
12548         * cfgloop.h: Likewise.
12549         * c-gimplify.c: Likewise.
12550         * c-common.c: Likewise.
12551         * tree-vect-generic.c: Likewise.
12552         * tree-flow.h: Likewise.
12553         * c-common.h: Likewise.
12554         * basic-block.h: Likewise.
12555         * tree-ssa-structalias.c: Likewise.
12556         * tree-switch-conversion.c: Likewise.
12557         * tree-ssa-structalias.h: Likewise.
12558         * tree-cfg.c: Likewise.
12559         * passes.c: Likewise.
12560         * ipa-struct-reorg.c: Likewise.
12561         * ipa-struct-reorg.h: Likewise.
12562         * tree-ssa-reassoc.c: Likewise.
12563         * cfgrtl.c: Likewise.
12564         * varpool.c: Likewise.
12565         * stmt.c: Likewise.
12566         * tree-ssanames.c: Likewise.
12567         * tree-ssa-threadedge.c: Likewise.
12568         * langhooks-def.h: Likewise.
12569         * tree-ssa-operands.c: Likewise.
12570         * config/alpha/alpha.c: Likewise.
12571         * config/frv/frv.c: Likewise.
12572         * config/s390/s390.c: Likewise.
12573         * config/m32c/m32c.c: Likewise.
12574         * config/m32c/m32c-protos.h: Likewise.
12575         * config/spu/spu.c: Likewise.
12576         * config/sparc/sparc.c: Likewise.
12577         * config/i386/i386.c: Likewise.
12578         * config/sh/sh.c: Likewise.
12579         * config/xtensa/xtensa.c: Likewise.
12580         * config/stormy16/stormy16.c: Likewise.
12581         * config/ia64/ia64.c: Likewise.
12582         * config/rs6000/rs6000.c: Likewise.
12583         * config/pa/pa.c: Likewise.
12584         * config/mips/mips.c: Likewise.
12585
12586 2008-07-28  Simon Baldwin  <simonb@google.com>
12587
12588         * c-pragma.c (handle_pragma_message): New function.
12589         (init_pragma): Register handle_pragma_message.
12590         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
12591         documentation.
12592
12593 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
12594
12595         PR tree-optimization/35252
12596         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
12597         REALPART_EXPR to be considered as same load operation.
12598
12599 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
12600
12601         PR tree-optimization/36830
12602         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
12603         (expressions_equal_p): Return false if only one operand is null.
12604
12605 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
12606
12607         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
12608         version requirements.
12609
12610 2008-07-26  Olivier Hainque  <hainque@adacore.com>
12611
12612         * collect2.c (symkind): New enum.  Symbol kinds we care about.
12613         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
12614         code and head comment accordingly.
12615         (scan_prog_file): Use symkind names instead of bare integers.
12616
12617 2008-07-25  Jan Hubicka  <jh@suse.cz>
12618
12619         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
12620         DECL_INLINE.
12621         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
12622         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
12623         * dojump.c (clear_pending_stack_adjust): Likewise.
12624         * print-tree.c (print_node): Ignore DECL_INLINE.
12625         * tree-inline.c (inlinable_function_p): Likewise.
12626
12627 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
12628
12629         * doc/extend.texi (hot attribute): Document that the hot attribute
12630         turns on -O3 for some ports.
12631         (cold attribute): Document that the cold attribute turns on -Os
12632         for some ports
12633
12634         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
12635         reflect function specific option support.
12636
12637         * target.h (struct target_option_hooks): Add fields to say whether
12638         the cold attribute implies -Os and the hot attribute implies -O3.
12639
12640         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
12641         By default, do not turn on -Os for cold functions.
12642         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
12643         not turn on -O3 for hot functions.
12644
12645         * c-common.c (handle_hot_attribute): Use target hook to determine
12646         if hot functions should enable -O3.
12647         (handle_cold_attribute): Use target hook to determine if cold
12648         functions should enable -Os.
12649
12650         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
12651         (override_options): Move disable scheduling to
12652         optimization_options.
12653         (optimization_options): Disable scheduling here, not
12654         override_options.
12655         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12656         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12657
12658         * config/ia64/ia64.c (ia64_override_options): Move setting
12659         scheduling flags to ia64_optimization_options.
12660         (ia64_optimization_options): Disable scheduling options here, and
12661         not in ia64_override_options.
12662         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12663         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12664
12665 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
12666
12667         PR target/36936
12668         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
12669
12670 2008-07-25  Martin Jambor  <mjambor@suse.cz>
12671
12672         PR tree-optimization/36926
12673         * ipa-prop.c (ipa_analyze_call_uses): Call
12674         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
12675
12676 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
12677
12678         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
12679         movv2si_internal): Add mem = reg alternative.
12680
12681 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
12682
12683         PR bootstrap/36918
12684         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
12685         DEFAULT_PCC_STRUCT_RETURN to 127.
12686
12687 2008-07-24  Jan Hubicka  <jh@suse.cz>
12688
12689         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
12690         (build_cgraph_edges): Likewise.
12691         * cgraph.c (cgraph_node): Do not update assembler hash.
12692         (cgraph_remove_node): Drop non-unit-at-a-time code.
12693         * tree-pass.h (pass_O0_always_inline): Remove.
12694         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
12695         * toplev.c (process_options): Flag unit-at-a-time does not imply
12696         no section anchors.
12697         * cgraphunit.c: Update comments.
12698         (decide_is_function_needed): Drop non-unit-at-a-time mode.
12699         (cgraph_assemble_pending_functions): Remove.
12700         (cgraph_reset_node): Drop non-unit-at-a-time code.
12701         (cgraph_finalize_function): Likewise.
12702         (cgraph_analyze_function): Likewise.
12703         (cgraph_finalize_compilation_unit): Likewise.
12704         (cgraph_expand_function): Likewise.
12705         (cgraph_optimize): Likesise.
12706         (save_inline_function_body): Likewise.
12707         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
12708         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
12709         * ipa-inline.c: Update comments.
12710         (enum inlining_mode): remove INLINE_SPEED.
12711         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
12712         (cgraph_mark_inline_edge): Likewise.
12713         (try_inline): Likewise.
12714         (cgraph_decide_inlining_incrementally): Likewise.
12715         (cgraph_gate_inlining): Remove.
12716         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
12717         (cgraph_gate_early_inlining): Likewise.
12718         (gate_inline_passes): Remove.
12719         (pass_inline_parameters, pass_ipa_inline): Remove gates.
12720         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12721         pass_O0_always_inline): Remove.
12722         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
12723         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
12724         * opts.c (no_unit_at_a_time_default): Remove.
12725         (decode_options): Remove flag_unit_at_a_time reset and warning.
12726         * opts.h (no_unit_at_a_time_default): Remove.
12727         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
12728         early in GNU dialect.
12729         (merge_decls): Update comment; drop unit-at-a-time check.
12730         (finish_decl): Likewise.
12731         (grok_declaration): Remove flag_inline_trees code.
12732         (finish_functions): Return on function returning non-void on all
12733         statics.
12734         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
12735         * cfgexpand.c (expand_one_static_var): Remove.
12736         (expand_one_var): Remove expand_one_static_var call.
12737         (expand_used_vars_for_block): Remove flag_unit_a_time check.
12738         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
12739         and flag_unit_at_a-time compatibility checks.
12740         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
12741         * tree-inline.c (flag_inline_trees): Remove.
12742         (inlinable_function_p): Don't check it.
12743         (expand_call_inline): Remove non-unit-at-a-time code.
12744         * tree-inline.h (flag_inline_trees): Remove.
12745         * tree-optimize.c (execute_early_local_optimizations): Remove
12746         unit-at-a-time checks.
12747         (tree_rest_of_compilation): Likewise.
12748         * combine.c (setup_incoming_promotions): Likewise.
12749         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
12750         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
12751         * passes.c (pass_inline_parameters): Update comments; remove
12752         O0_alwaysinline pass.
12753         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
12754         (execute_one_pass): Likewise.
12755         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
12756         (ix86_function_sseregparm): Likewise.
12757         * arm.c (arm_function_in_section_p): Likewise.
12758         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
12759         * varpool.c: Update comments.
12760         (decide_is_variable_needed): Remove unit-at-a-time checks.
12761         (varpool_finalize_decl): Likewise.
12762
12763 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
12764
12765         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
12766         to 2 instead of -1.
12767         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
12768
12769 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
12770
12771         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
12772         imp symbol extension.
12773
12774         2008-07-23  Ian Lance Taylor  <iant@google.com>
12775
12776         * tree-vrp.c (infer_value_range): Ignore asm statements when
12777         looking for memory accesses for -fdelete-null-pointer-checks.
12778
12779 2008-07-24  Ben Elliston  <bje@au.ibm.com>
12780
12781         * config/spu/spu-c.c (__vector_keyword): New variable.
12782         (vector_keyword): Likewise.
12783         (spu_categorize_keyword): New function.
12784         (spu_macro_to_expand): Likewise.
12785         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
12786         compiling an ISO C dialect.
12787
12788 2008-07-24  Ben Elliston  <bje@au.ibm.com>
12789
12790         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
12791         conventional usage.
12792
12793 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
12794
12795         * configure: Regenerate.
12796         * configure.ac: Require texinfo 4.7.
12797         * doc/install.texi: Document texinfo 4.7 requirement.
12798
12799 2008-07-23  Martin Jambor  <mjambor@suse.cz>
12800
12801         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
12802         rather than for DECL_SAVED_TREE.
12803         * ipa-prop.c: Include diagnostic.h.
12804         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
12805         thoroughly.
12806         (ipa_detect_param_modifications): Function rewritten from scratch.
12807         (ipa_compute_jump_functions): Changed accesses to modification flags.
12808         (ipa_free_node_params_substructures): Update flags destruction.
12809         (ipa_node_duplication_hook): Update flags duplication.
12810         (ipa_print_all_params_modified): Updated flag access.
12811         * ipa-prop.h (struct ipa_param_flags): New structure.
12812         (struct ipa_node_params): New field modification_analysis_done,
12813         modified_flags changed into param_flags.
12814         (ipa_is_ith_param_modified): Changed to use new flags.
12815         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
12816
12817         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
12818         ipa-cp.c and split into two functions.
12819         (ipa_print_node_jump_functions): New function.
12820         (compute_scalar_jump_functions): New function.
12821         (type_like_member_ptr_p): New function.
12822         (compute_pass_through_member_ptrs): New function.
12823         (fill_member_ptr_cst_jump_function): New function.
12824         (determine_cst_member_ptr): New function.
12825         (compute_cst_member_ptr_arguments): New function.
12826         (ipa_compute_jump_functions): Complete rewrite.
12827         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
12828         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
12829         (struct ipa_member_ptr_cst): New structure.
12830         (union jump_func_value): New field member_cst.
12831         * ipa-cp.c (ipcp_lat_is_insertable): New function.
12832         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
12833         jump function types.
12834         (ipcp_print_all_lattices): Slight fprintf rearrangement.
12835         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
12836         instead of ipcp_print_all_jump_functions.
12837         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
12838         only for replacable scalars.
12839
12840         * doc/invoke.texi (Optimize options): Add description of
12841         -findirect-inlining.
12842         * common.opt (flag_indirect_inlining): New flag.
12843         * opts.c (decode_options): Set flag_indirect_inlining when
12844         optimize >= 3.
12845
12846         * ipa-inline.c: Include ipa-prop.h.
12847         (inline_indirect_intraprocedural_analysis): New function.
12848         (inline_generate_summary): Allocate parameter and argument info
12849         structures, call inline_indirect_intraprocedural_analysis on each
12850         node when doing indirect inlining and deallocate indirect inlining
12851         data structures in the end.
12852         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
12853         (free_all_ipa_structures_after_iinln): New function.
12854         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
12855         done.
12856         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
12857
12858         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
12859         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12860         of computing the frequency separately.
12861         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12862         of computing the frequency separately.
12863         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
12864         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
12865         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
12866         (ipa_get_stmt_member_ptr_load_param): New function.
12867         (ipa_is_ssa_with_stmt_def): New function.
12868         (ipa_note_param_call): New function.
12869         (ipa_analyze_call_uses): New function.
12870         (ipa_analyze_stmt_uses): New function.
12871         (ipa_analyze_params_uses): New function.
12872         (ipa_free_node_params_substructures): Also free the param_calls linked
12873         list.
12874         (ipa_node_duplication_hook): Also duplicate the param_calls
12875         linked list.
12876         (ipa_print_node_param_flags): New function.
12877         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
12878         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
12879         * ipa-prop.h (struct ipa_param_flags): New field called.
12880         (struct ipa_param_call_note): New structure.
12881         (struct ipa_node_params): New fields param_calls and
12882         uses_analysis_done.
12883         (ipa_is_ith_param_called): New function.
12884         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
12885         ipa_analyze_params_uses and dump parameter flags.
12886
12887         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
12888         ipa_propagate_indirect_call_infos if performing indirect inlining,
12889         pass a new parameter new_edges to it.
12890         (add_new_edges_to_heap): New fucntion.
12891         (cgraph_decide_inlining_of_small_functions): New vector
12892         new_indirect_edges for newly found indirect edges , call
12893         ipa_propagate_indirect_call_infos after inlining.
12894         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
12895         inlining if performing indirect inlining.  Call
12896         free_all_ipa_structures_after_iinln when doing so too.
12897         (inline_generate_summary): Do not call
12898         free_all_ipa_structures_after_iinln here.
12899         * ipa-prop.c (update_jump_functions_after_inlining): New function.
12900         (print_edge_addition_message): New function.
12901         (update_call_notes_after_inlining): New function.
12902         (propagate_info_to_inlined_callees): New function.
12903         (ipa_propagate_indirect_call_infos): New function.
12904         * ipa-prop.h: Include cgraph.h
12905         (struct ipa_param_call_note): Fields reordered, new field processed.
12906         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
12907         flag indirect_call.
12908         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
12909         rediscovered call statements.
12910         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
12911         (dump_cgraph_node): Dump also the indirect_call flag.
12912         (cgraph_clone_edge): Copy also the indirect_call flag.
12913         * tree-inline.c (copy_bb): Do not check for fndecls from call
12914         expressions, check for edge availability when moving clones.
12915         (get_indirect_callee_fndecl): New function.
12916         (expand_call_inline): If callee declaration is not apprent from
12917         the statement, try calling get_indirect_callee_fndecl.  Do not
12918         issue warnings or call sorry when not inlinings an indirect edge.
12919         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
12920
12921         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
12922         bit more frandly to matching.
12923         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
12924         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
12925         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
12926
12927 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
12928
12929         PR 36907
12930         * opth-gen.awk: Suppress function specific features when building
12931         target libraries.
12932         * optc-gen.awk: Ditto.
12933
12934 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12935
12936         PR 35058
12937         * diagnostic.c (pedwarn): Add opt parameter.
12938         (pedwarn0): New.
12939         * c-tree.h (pedwarn_init): Add opt parameter.
12940         (pedwarn_c90): Likewise.
12941         (pedwarn_c99): Likewise.
12942         * c-errors.c (pedwarn_c99): Likewise.
12943         (pedwarn_c90): Likewise.
12944         * toplev.h (pedwarn): Update declaration.
12945         (pedwarn0): Declare.
12946         * c-lex.c: All calls to pedwarn changed.
12947         * builtins.c: All calls to pedwarn changed.
12948         * toplev.c: All calls to pedwarn changed.
12949         * c-decl.c: All calls to pedwarn changed.
12950         * c-typeck.c: All calls to pedwarn changed.
12951         * c-common.c: All calls to pedwarn changed.
12952         * c-parser.c: All calls to pedwarn changed.
12953
12954 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
12955             Karthik Kumar  <karthikkumar@gmail.com>
12956
12957         * attribs.c (file scope): Include c-common.h.
12958         (decl_attributes): Add support for #pragma GCC optimize and
12959         #pragma GCC option.
12960
12961         * targhooks.c (default_can_inline_p): New function that is the
12962         default for the TARGET_CAN_INLINE_P target hook.
12963
12964         * targhooks.h (default_can_inline_p): Add declaration.
12965
12966         * tree.c (cl_optimization_node): New static tree for building
12967         OPTIMIZATION_NODE tree.
12968         (cl_target_option_node): New static tree for building
12969         TARGET_OPTION_NODE tree.
12970         (cl_option_hash_table): New hash table for hashing
12971         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12972         (cl_option_hash_hash): New function to provide the hash value for
12973         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12974         (cl_option_hash_eq): New function to provide an equality test for
12975         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12976         (tree_code_size): Add support for OPTIMIZATION_NODE and
12977         TARGET_OPTION_NODE trees.
12978         (tree_code_structure): Add support for OPTIMIZATION_NODE and
12979         TARGET_OPTION_NODE trees.
12980         (build_optimization_node): Build a tree that has all of the
12981         current optimization options.
12982         (build_target_option_node): Build a tree that has the target
12983         options that might be changed on a per function basis.
12984
12985         * tree.h (file scope): Include options.h.
12986         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
12987         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
12988         (TREE_OPTIMIZATION): Ditto.
12989         (TREE_TARGET_SPECIFIC): Ditto.
12990         (struct tree_function_decl): Add fields for remembering the
12991         current optimization options and target specific options.
12992         (struct tree_optimization_option): New tree variant that remembers
12993         the optimization options.
12994         (struct tree_target_option): New tree variant that remembers the
12995         target specific flags that might change for compiling a particular
12996         function.
12997         (union tree_node): Include tree_optimization_option and
12998         tree_target_option fields.
12999         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
13000         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
13001         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
13002         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
13003         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
13004         optimization and target options.
13005         (optimization_default_node): New macro to refer to global_trees
13006         field.
13007         (optimization_current_node): Ditto.
13008         (optimization_cold_node): Ditto.
13009         (optimization_hot_node): Ditto.
13010         (target_option_default_node): Ditto.
13011         (target_option_current_node): Ditto.
13012         (current_option_pragma): Ditto.
13013         (current_optimize_pragma): Ditto.
13014
13015         * target.h (struct gcc_target): Add valid_option_attribute_p,
13016         target_option_save, target_option_restore, target_option_print,
13017         target_option_pragma_parse, and can_inline_p hooks.
13018
13019         * toplev.h (parse_optimize_options): Add declaration.
13020         (fast_math_flags_struct_set_p): Ditto.
13021
13022         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
13023         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
13024         optimize is used.
13025
13026         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
13027         tree_can_inline_p hook to see if one function can inline another.
13028         (cgraph_decide_inlining): Ditto.
13029         (cgraph_decide_inlining_incrementally): Ditto.
13030
13031         * opts.c (decode_options): Add support for running multiple times
13032         to allow functions with different target or optimization options
13033         than was specified on the command line.
13034         (fast_math_flags_struct_set_p): New function that is similar to
13035         fast_math_flags_set_p, except it uses the values in the
13036         cl_optimization structure instead of global variables.
13037
13038         * optc-gen.awk: Add support for TargetSave to allow a back end to
13039         declare new fields that need to be saved when using function
13040         specific options.  Include flags.h and target.h in the options.c
13041         source.  Add support for Save to indicate which options can be set
13042         for individual functions.  Generate cl_optimize_save,
13043         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
13044         cl_target_option_restore, cl_target_option_print functions to
13045         allow functions to use different optimization or target options.
13046
13047         * opt-functions.awk (var_type_struct): Return the type used for
13048         storing the field in a structure.
13049
13050         * opth-gen.awk: Add support for TargetSave to allow a back end to
13051         declare new fields that need to be saved when using function
13052         specific options.  Add support for Save to indicate which options
13053         can be set for individual functions.  Only generate one extern for
13054         Mask fields.  Generate cl_optimization and cl_target_option
13055         structures to remember optimization and target options.
13056
13057         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
13058         collecting new tree nodes.
13059         (TS_TARGET_OPTION): Ditto.
13060
13061         * c-decl.c (merge_decls): Merge function specific target and
13062         optimization options.
13063
13064         * function.c (invoke_set_current_function_hook): If the function
13065         uses different optimization options, change the global variables
13066         to reflect this.
13067
13068         * coretypes.h (struct cl_optimization): Add forward reference.
13069         (struct cl_target_option): Ditto.
13070
13071         * c-pragma.c (option_stack): New static vector to remember the
13072         current #pragma GCC option stack.
13073         (handle_pragma_option): New function to support #pragma GCC option
13074         to change target options.
13075         (optimize_stack): New static vector to remember the current
13076         #pragma GCC optimize stack.
13077         (handle_pragma_optimize): New function to support #pragma GCC
13078         optimize to change optimization options.
13079         (init_pragma): Add support for #pragma GCC optimize and #pragma
13080         GCC option.
13081
13082         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
13083         optimization options.
13084         (TARGET_OPTION_NODE): New tree code for remembering certain target
13085         options.
13086
13087         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
13088         TARGET_OPTION_NODE trees.
13089
13090         * common.opt (-O): Add Optimization flag.
13091         (-Os): Ditto.
13092         (-fmath-errno): Ditto.
13093         (-falign-functions): Add UInteger flag to make sure flag gets full
13094         int in cl_optimization structure.
13095         (-falign-jumps): Ditto.
13096         (-falign-labels): Ditto.
13097         (-falign-loops): Ditto.
13098         (-fsched-stalled-insns): Ditto.
13099         (-fsched-stalled-insns-dep): Ditto.
13100
13101         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
13102         definition.
13103         (TARGET_OPTION_SAVE): Ditto.
13104         (TARGET_OPTION_RESTORE): Ditto.
13105         (TARGET_OPTION_PRINT): Ditto.
13106         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
13107         (TARGET_CAN_INLINE_P): Ditto.
13108         (TARGET_INITIALIZER): Add new hooks.
13109
13110         * tree-inline.c (tree_can_inline_p): New function to determine
13111         whether one function can inline another.  Check if the functions
13112         use compatible optimization options, and also call the backend
13113         can_inline_p hook.
13114
13115         * tree-inline.h (tree_can_inline_p): Add declaration.
13116
13117         * c-common.c (c_common_attribute): Add support for option and
13118         optimize attributes.
13119         (handle_option_attribute): Add support for the option attribute to
13120         allow the user to specify different target options for compiling a
13121         specific function.
13122         (handle_optimize_attribute): Add support for the optimize
13123         attribute to allow the user to specify different optimization
13124         options for compiling a specific function.
13125         (handle_hot_attribute): Turn on -O3 optimization for this one
13126         function if it isn't the default optimization level.
13127         (handle_cold_attribute): Turn on -Os optimization for this one
13128         function if it insn't the default optimization.
13129         (const_char_p): New const char * typedef.
13130         (optimize_args): New static vector to remember the optimization
13131         arguments.
13132         (parse_optimize_options): New function to set up the optimization
13133         arguments from either the optimize attribute or #pragma GCC optimize.
13134
13135         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
13136         (builtin_define_std): Ditto.
13137
13138         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
13139         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
13140         (x86_64-*-*): Ditto.
13141
13142         * Makefile.in (TREE_H): Add options.h.
13143         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
13144
13145         * doc/extend.texi (option attribute): Document new attribute.
13146         (optimize attribute): Ditto.
13147         (hot attribute): Document hot attribute sets -O3.
13148         (cold attribute): Document cold attribute sets -Os.
13149         (#pragma GCC option): Document new pragma.
13150         (#pragma GCC optimize): Ditto.
13151
13152         * doc/options.texi (TargetSave): Document TargetSave syntax.
13153         (UInteger): Document UInteger must be used for certain flags.
13154         (Save): Document Save option to create target specific options
13155         that can be saved/restored on a function specific context.
13156
13157         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
13158         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
13159
13160         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
13161         (TARGET_OPTION_SAVE): Ditto.
13162         (TARGET_OPTION_RESTORE): Ditto.
13163         (TARGET_OPTION_PRINT): Ditto.
13164         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
13165         (TARGET_CAN_INLINE_P): Ditto.
13166
13167         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
13168         -mfpmath=sse,387.
13169         (-mfpmath=both): Ditto.
13170
13171 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
13172             Karthik Kumar  <karthikkumar@gmail.com>
13173
13174         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
13175         (TARGET_POPCNT): Ditto.
13176         (TARGET_SAHF): Ditto.
13177         (TARGET_AES): Ditto.
13178         (TARGET_PCLMUL): Ditto.
13179         (TARGET_CMPXCHG16B): Ditto.
13180         (TARGET_RECIP): Move switch into target_flags.
13181         (TARGET_FUSED_MADD): Ditto.
13182         (ix86_arch_features): Make an unsigned char type.
13183         (ix86_tune_features): Ditto.
13184         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
13185         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
13186         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
13187
13188         * config/i386/i386.opt (arch): New TargetSave field to define
13189         fields that need to be saved for function specific option support.
13190         (tune): Ditto.
13191         (fpmath): Ditto.
13192         (branch_cost): Ditto.
13193         (ix86_isa_flags_explicit): Ditto.
13194         (tune_defaulted): Ditto.
13195         (arch_specified): Ditto.
13196         (-m128-long-double): Add Save flag to save option for target
13197         specific option support.
13198         (-m80387): Ditto.
13199         (-maccumulate-outgoing-args): Ditto.
13200         (-malign-double): Ditto.
13201         (-malign-stringops): Ditto.
13202         (-mfancy-math-387): Ditto.
13203         (-mhard-float): Ditto.
13204         (-mieee-fp): Ditto.
13205         (-minline-all-stringops): Ditto.
13206         (-minline-stringops-dynamically): Ditto.
13207         (-mms-bitfields): Ditto.
13208         (-mno-align-stringops): Ditto.
13209         (-mno-fancy-math-387): Ditto.
13210         (-mno-push-args): Ditto.
13211         (-mno-red-zone): Ditto.
13212         (-mpush-args): Ditto.
13213         (-mred-zone): Ditto.
13214         (-mrtd): Ditto.
13215         (-msseregparm): Ditto.
13216         (-mstack-arg-probe): Ditto.
13217         (-m32): Ditto.
13218         (-m64): Ditto.
13219         (-mmmx): Ditto.
13220         (-m3dnow): Ditto.
13221         (-m3dnowa): Ditto.
13222         (-msse): Ditto.
13223         (-msse2): Ditto.
13224         (-msse3): Ditto.
13225         (-msse4.1): Ditto.
13226         (-msse4.2): Ditto.
13227         (-msse4): Ditto.
13228         (-mno-sse4): Ditto.
13229         (-msse4a): Ditto.
13230         (-msse5): Ditto.
13231         (-mrecip): Move flag into target_flags.
13232         (-mcld): Ditto.
13233         (-mno-fused-madd): Ditto.
13234         (-mfused-madd): Ditto.
13235         (-mabm): Move flag into ix86_isa_flags.
13236         (-mcx16): Ditto.
13237         (-mpopcnt): Ditto.
13238         (-msahf): Ditto.
13239         (-maes): Ditto.
13240         (-mpclmul): Ditto.
13241
13242         * config/i386/i386-c.c: New file for #pragma support.
13243         (ix86_target_macros_internal): New function to #define or #undef
13244         target macros based when the user uses the #pragma GCC option to
13245         change target options.
13246         (ix86_pragma_option_parse): New function to add #pragma GCC option
13247         support.
13248         (ix86_target_macros): Move defining the target macros here from
13249         TARGET_CPU_CPP_BUILTINS in i386.h.
13250         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
13251         defined, initialize any subtarget #pragmas.
13252
13253         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
13254         REGISTER_TARGET_PRAGMAS.
13255
13256         * config/i386/t-i386: New file for x86 dependencies.
13257         (i386.o): Make dependencies mirror the include files used.
13258         (i386-c.o): New file, add dependencies.
13259
13260         * config/i386/i386-protos.h (override_options): Add bool argument.
13261         (ix86_valid_option_attribute_tree): Add declaration.
13262         (ix86_target_macros): Ditto.
13263         (ix86_register_macros): Ditto.
13264
13265         * config/i386/i386.c (ix86_tune_features): Move initialization of
13266         the target masks to initial_ix86_tune_features to allow functions
13267         to have different target options.  Make type unsigned char,
13268         instead of unsigned int.
13269         (initial_ix86_tune_features): New static vector to hold processor
13270         masks for the tune variables.
13271         (ix86_arch_features): Move initialization of the target masks to
13272         initial_ix86_arch_features to allow functions to have different
13273         target options.  Make type unsigned char, instead of unsigned int.
13274         (initial_ix86_arch_features): New static vector to hold processor
13275         masks for the arch variables.
13276         (enum ix86_function_specific_strings): New enum to describe the
13277         string options used for attribute((option(...))).
13278         (ix86_target_string): New function to return a string that
13279         describes the target options.
13280         (ix86_debug_options): New function to print the current options in
13281         the debugger.
13282         (ix86_function_specific_save): New function hook to save the
13283         function specific global variables in the cl_target_option structure.
13284         (ix86_function_specific_restore): New function hook to restore the
13285         function specific variables from the cl_target_option structure to
13286         the global variables.
13287         (ix86_function_specific_print): New function hook to print the
13288         target specific options in the cl_target_option structure.
13289         (ix86_valid_option_attribute_p): New function hook to validate
13290         attribute((option(...))) arguments.
13291         (ix86_valid_option_attribute_tree): New function that is common
13292         code between attribute((option(...))) and #pragma GCC option
13293         support that parses the options and returns a tree holding the options.
13294         (ix86_valid_option_attribute_inner_p): New helper function for
13295         ix86_valid_option_attribute_tree.
13296         (ix86_can_inline_p): New function hook to decide if one function
13297         can inline another on a target specific basis.
13298         (ix86_set_current_function); New function hook to switch target
13299         options if the user used attribute((option(...))) or #pragma GCC
13300         option.
13301         (ix86_tune_defaulted): Move to static file scope from
13302         override_options.
13303         (ix86_arch_specified): Ditto.
13304         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
13305         ix86_isa_flags.
13306         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
13307         (OPTION_MASK_ISA_ABM_SET): Ditto.
13308         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
13309         (OPTION_MASK_ISA_CX16_SET): Ditto.
13310         (OPTION_MASK_ISA_SAHF_SET): Ditto.
13311         (OPTION_MASK_ISA_AES_UNSET): Ditto.
13312         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
13313         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
13314         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
13315         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
13316         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
13317         (struct ptt): Move to static file scope from override_options.
13318         (processor_target_table): Ditto.
13319         (cpu_names): Ditto.
13320         (ix86_handle_option): Add support for options that are now isa options.
13321         (override_options): Add support for declaring functions that
13322         support different target options than were specified on the
13323         command line.  Move struct ptt, processor_target_table, cpu_names,
13324         ix86_tune_defaulted, ix86_arch_specified to static file scope.
13325         Add bool argument.  Fix up error messages so the appropriate error
13326         is given for either command line or attribute.
13327         (ix86_previous_fndecl): New static to remember previous function
13328         declaration to see if we need to change target options.
13329         (ix86_builtins_isa): New array to record the ISA of each builtin
13330         function.
13331         (def_builtin): Always create the builtin function, even if the
13332         current ISA doesn't support it.
13333         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
13334         tests for those builtins.
13335         (ix86_init_builtins): Remove TARGET_MMX test for calling
13336         ix86_init_mmx_sse_builtins.
13337         (ix86_expand_builtin): If the current ISA doesn't support a given
13338         builtin, signal an error.
13339         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
13340         (TARGET_SET_CURRENT_FUNCTION): Ditto.
13341         (TARGET_OPTION_SAVE): Ditto.
13342         (TARGET_OPTION_RESTORE): Ditto.
13343         (TARGET_OPTION_PRINT): Ditto.
13344         (TARGET_CAN_INLINE_P): Ditto.
13345
13346 2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>
13347
13348         * c-typeck.c (build_external_ref): Don't call assemble_external.
13349         * final.c (output_operand): Call assemble_external.
13350
13351 2008-07-21  DJ Delorie  <dj@redhat.com>
13352
13353         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
13354         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
13355
13356 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13357
13358         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
13359         original insn and splitter contents into ...
13360         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
13361         flag_unsafe_math_optimizations.  Add dummy scratch register.
13362         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
13363         !flag_unsafe_math_optimizations.  Returns number with next
13364         highest magnitude if this is still less or equal to the true
13365         quotient in magnitude.
13366
13367 2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>
13368
13369         * Makefile.in: Replace toplev.h with TOPLEV_H.
13370         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
13371         * c-lex.c (fe_file_change): Don't set in_system_header.
13372         * c-parser.c (c_token): Remove in_system_header.
13373         (c_lex_one_token): Don't set in_system_header.
13374         (c_parser_set_source_position_from_token): Don't set in_system_header.
13375         * diagnostic.c (diagnostic_report_diagnostic): Use location from
13376         diagnostic_info.
13377         (warning_at): New.
13378         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
13379         * flags.h (in_system_header): Remove.
13380         * function.c (saved_in_system_header): Remove.
13381         (push_cfun): Don't set in_system_header.
13382         (pop_cfun): Don't set in_system_header.
13383         (push_struct_function): Don't set in_system_header.
13384         * input.h (expanded_location): Add sysp.
13385         (in_system_header_at): New.
13386         (in_system_header): New.
13387         * toplev.c (in_system_header): Remove.
13388         * toplev.h: Include input.h
13389         (warning_at): New.
13390         * tree-cfg.c (execute_warn_function_return): Call warning_at.
13391         * tree-ssa.c (warn_uninit): Call warning_at.
13392         (warn_uninitialized_var): Update calls to warn_uninit.
13393         (warn_uninitialized_phi): Update calls to warn_uninit.
13394         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
13395         (expand_location): Initialize xloc.sysp.
13396         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
13397         (tree_decl_with_vis): Remove in_system_header_flag.
13398
13399 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
13400
13401         PR target/36822
13402         * recog.c (asm_operand_ok): Change the order of the extra
13403         memory constraint checks.
13404
13405 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13406
13407         PR tree-opt/36879
13408         * tree-switch-conversion.c (build_one_array): Call
13409         varpool_mark_needed_node and varpool_finalize_decl
13410         instead of assemble_variable.
13411
13412 2008-07-19  Jan Hubicka  <jh@suse.cz>
13413
13414         * cgraph.c (cgraph_add_new_function): Do early local passes.
13415         * tree-nrv.c (gate_pass_return_slot): New gate.
13416         (pass_nrv): Add the gate.
13417         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
13418         functions.
13419         (coalesce_ssa_name): Coalesce SSA names.
13420         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
13421         not optimizing so unused user vars remains visible.
13422         * common.opt (flag_tree_ter): Always enable by default.
13423         * tree-ssa-ter.c: Include flags.h
13424         (is_replaceable_p): Check that locations match; when aliasing
13425         is missing be conservative about loads.
13426         * tree-optimize.c (gate_init_datastructures): Remove.
13427         (pass_init_datastructures): New.
13428         * passes.c: Reorder passes so we always go into SSA.
13429
13430 2008-07-19  Jan Hubicka  <jh@suse.cz>
13431
13432         * doc/extend.texi (flatten attribute): Remove note about
13433         unit-at-a-time.
13434         * doc/invoke.texi (--combine): Likewise.
13435         (-finline-functions-called-once): Update levels when enabled.
13436         (-funit-at-a-time): Document new behaviour.
13437         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
13438         -fno-section-anchors when disabled explicitly.
13439         (inline params): They are not ignored now.
13440         (precompiled headers): Remove unit-at-a-time as being incompatible.
13441         * opts.c (decode_options): Handle unit-at-a-time as alias;
13442         imply -fno-section-anchors when toplevel reorder is disabled
13443         explicitly.
13444         * common.opt (ftoplevel-reorder): Set default value to 2.
13445         (funit-at-a-time): Set default value to 1.
13446         * config/rs6000/rs6000.c (optimization_options): Set section anchors
13447         to 2.
13448
13449 2008-07-19  Jan Hubicka  <jh@suse.cz>
13450
13451         * builtins.c (expand_builtin_int_roundingfn,
13452         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
13453         it is not useful.
13454
13455 2008-07-19  Richard Guenther  <rguenther@suse.de>
13456
13457         PR bootstrap/36864
13458         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
13459         * tree-ssa-sccvn.c (get_constant_value_id): New function.
13460         * tree-ssa-pre.c (get_expr_value_id): For newly created
13461         constant value-ids make sure to add the expression to its
13462         expression-set.
13463
13464 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
13465
13466         PR middle-end/36877
13467         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
13468         return value of the builtin is ignored.
13469
13470 2008-07-19  Olivier Hainque  <hainque@adacore.com>
13471
13472         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
13473         bits, a C conformant malloc implementation has to provide.
13474         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
13475
13476 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
13477
13478         PR target/36780
13479         PR target/36827
13480         * reload.c (find_reloads_subreg_address): Only reload address if
13481         reloaded == 0, not for reloaded != 1.
13482
13483         Revert:
13484         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
13485         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13486         (m32c_legitimate_address_p): Handle "++rii" addresses created by
13487         m32c_legitimize_reload_address.
13488
13489         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13490         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13491         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13492
13493 2008-07-19  Olivier Hainque  <hainque@adacore.com>
13494
13495         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
13496         argument, saying whether nested array are to be collapsed
13497         into a single array type DIE with multiple subscripts.
13498         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
13499         issues, centralize the nested array types collapsing control and
13500         disable the transformation for Ada.
13501
13502 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
13503
13504         PR target/36786
13505         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
13506         x86_64_shift_adj.
13507         (x86_64_shift_adj_2): New expander.
13508         (x86_64_shift_adj_3): Ditto.
13509         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
13510         to split TImode operands.
13511         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
13512         (ix86_split_lshr): Ditto.
13513
13514 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
13515
13516         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
13517         and __CHAR32_TYPE__.
13518         * c-typeck.c (digest_init): Support char16_t and char32_t.
13519         (set_nonincremental_init_from_string): Idem.
13520
13521 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
13522
13523         PR middle-end/36859
13524         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
13525         PREFERRED_STACK_BOUNDARY.
13526         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
13527
13528 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
13529
13530         PR middle-end/36858
13531         * function.c (locate_and_pad_parm): Cap boundary earlier.
13532
13533 2008-07-17  Julian Brown  <julian@codesourcery.com>
13534
13535         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
13536         no-op for targets which don't use DLLs.
13537
13538 2008-07-17  Martin Jambor  <mjambor@suse.cz>
13539
13540         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
13541         that nodes are relevant by examining the node->analyzed flag.
13542         (ipcp_init_stage): Check which nodes are relevant, assert that the
13543         relevant ones are also required.
13544         (ipcp_propagate_stage): Check on the side arrays are properly
13545         allocated.
13546         (ipcp_print_all_jump_functions): Make sure not to touch any node
13547         that is not analyzed or an edge that does not have a corresponding
13548         entry in the on-the-side vectors.
13549         (ipcp_function_scale_print): Likewise.
13550         (ipcp_update_callgraph): Check that the node is relevant.
13551         (ipcp_insert_stage): Check that the node is relevant.  Check there is
13552         an info for every node and edge.
13553         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
13554         (ipa_print_all_tree_maps): Likewise and a new variable info.
13555         (ipa_print_all_params_modified): Likewise.
13556         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
13557
13558 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
13559
13560         PR target/25343
13561         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
13562
13563 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
13564
13565         PR rtl-optimization/36753
13566         * fwprop.c (use_killed_between): Don't shortcut
13567         single-definition global registers.
13568
13569 2008-07-16  Jan Hubicka  <jh@suse.cz>
13570
13571         * cgraph.h (varpool_empty_needed_queue): Declare.
13572         * cgraphunit.c (output_in_order): Mark all variables as needed;
13573         empty the queue.
13574         * varpool.c (varpool_assemble_node): Update debug queue.
13575         (varpool_assemble_pending_decls): Don't do it here.
13576         (varpool_empty_needed_queue):  New function.
13577
13578 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13579
13580         * recog.c (peephole2_optimize): Fix formatting.
13581
13582 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13583
13584         * c-pch.c (get_ident): Avoid C++ keywords.
13585         * combine-stack-adj.c (single_set_for_csa): Likewise.
13586         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
13587         output_asm_insn): Likewise.
13588         * reload.c (push_secondary_reload, find_reusable_reload,
13589         push_reload, combine_reloads, find_reloads,
13590         debug_reload_to_stream): Likewise.
13591         * reload.h (struct reload): Likewise.
13592         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
13593         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
13594         emit_output_reload_insns): Likewise.
13595         * targhooks.c (default_secondary_reload): Likewise.
13596         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
13597
13598 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13599
13600         * recog.c (validate_change_1, validate_change,
13601         validate_unshare_change, validate_replace_rtx_1, struct
13602         funny_match, constrain_operands, peephole2_optimize): Avoid C++
13603         keywords.
13604         * reload.c (push_secondary_reload, secondary_reload_class,
13605         scratch_reload_class, find_valid_class, find_reusable_reload,
13606         push_reload, find_dummy_reload, find_reloads_address_1,
13607         find_reloads_address_part, find_equiv_reg): Likewise.
13608         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
13609         choose_reload_regs): Likewise.
13610         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
13611         Likewise.
13612         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
13613         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
13614         * sched-rgn.c (concat_INSN_LIST): Likewise.
13615         * stor-layout.c (mode_for_size, mode_for_size_tree,
13616         smallest_mode_for_size): Likewise.
13617
13618 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13619
13620         * cfg.c (dump_reg_info): Avoid C++ keywords.
13621         * dwarf2asm.c (dw2_force_const_mem,
13622         dw2_asm_output_encoded_addr_rtx): Likewise.
13623         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
13624         * expmed.c (expand_shift): Likewise.
13625         * global.c (find_reg): Likewise.
13626         * graph.c (draw_edge): Likewise.
13627         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
13628         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
13629         widen_clz, widen_bswap, expand_parity, expand_unop,
13630         emit_cmp_and_jump_insn_1): Likewise.
13631         * postreload.c (reload_cse_simplify_operands): Likewise.
13632         * ra.h (add_neighbor): Likewise.
13633         * reg-stack.c (remove_regno_note, change_stack): Likewise.
13634         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
13635         record_reg_classes, copy_cost, record_address_regs,
13636         invalid_mode_change_p): Likewise.
13637         * regrename.c (regrename_optimize, scan_rtx_reg,
13638         dump_def_use_chain, find_oldest_value_reg,
13639         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
13640
13641 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
13642
13643         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
13644         MASK_POWERPC64 for power4 in previous commit.
13645
13646 2008-07-16  Olivier Hainque  <hainque@adacore.com>
13647
13648         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
13649         instead of bare conversion to cast const-ness away.
13650
13651 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
13652
13653         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
13654         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
13655         * config/xtensa/xtensa.c (xtensa_function_value): New function.
13656         (TARGET_FUNCTION_VALUE): Define.
13657
13658 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
13659
13660         * config/rs6000/rs6000.c (processor_target_table): Add
13661         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
13662
13663 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
13664
13665         PR target/36827
13666         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13667         (m32c_legitimate_address_p): Handle "++rii" addresses created by
13668         m32c_legitimize_reload_address.
13669
13670 2007-07-16  Rafael Ávila de Espíndola  <espindola@google.com>
13671
13672         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
13673         DECL_IN_SYSTEM_HEADER in sync.
13674
13675 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
13676
13677         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
13678         * tree-ssa-pre.c (pre_expr_eq): Ditto
13679         (get_constant_for_value_id): Take a type as an argument.
13680         (fully_constant_expression): Pass in type.
13681         (find_or_generate_expression): Short circuit constant case.
13682         (create_expression_by_pieces): Remove special casing of
13683         pointer_plus.
13684         (do_regular_insertion): Short circuit constant case.
13685         (do_partial_partial_insertion): Ditto.
13686
13687 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13688
13689         PR target/36782
13690         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
13691
13692 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
13693
13694         * config/xtensa/libgcc-xtensa.ver: New file.
13695         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
13696
13697 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13698
13699         * df-problems.c (df_set_note): Avoid C++ keywords.
13700         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
13701         * dse.c (record_store, remove_useless_values): Likewise.
13702         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
13703         gen_reg_rtx_offset, operand_subword, change_address_1,
13704         change_address, adjust_address_1, offset_address,
13705         widen_memory_access, emit_copy_of_insn_after): Likewise.
13706         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
13707         * fwprop.c (should_replace_address, propagate_rtx_1,
13708         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
13709         Likewise.
13710         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
13711         gcse_emit_move_after, update_ld_motion_stores): Likewise.
13712         * lcm.c (compute_insert_delete, pre_edge_lcm,
13713         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
13714         * lower-subreg.c (resolve_reg_notes): Likewise.
13715         * mode-switching.c (optimize_mode_switching): Likewise.
13716
13717 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13718
13719         * bt-load.c (add_btr_def, migrate_btr_def,
13720         branch_target_load_optimize): Avoid C++ keywords.
13721         * caller-save.c (insert_restore, insert_save, insert_one_insn):
13722         Likewise.
13723         * combine.c (subst, simplify_set, make_extraction,
13724         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
13725         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
13726         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
13727
13728 2008-07-15  Richard Guenther  <rguenther@suse.de>
13729
13730         PR middle-end/36369
13731         * c-common.c (strict_aliasing_warning): Do not warn for
13732         TYPE_REF_CAN_ALIAS_ALL pointers.
13733         (c_common_get_alias_set): may_alias types are not special.
13734         * tree.c (build_pointer_type_for_mode): Look up the may_alias
13735         attribute and set can_ref_all accordingly.
13736         (build_reference_type_for_mode): Likewise.
13737         * doc/extend.texi (may_alias): Clarify.
13738
13739 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13740
13741         PR target/36780
13742         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13743         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13744
13745 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13746
13747         PR target/31568
13748         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
13749         gcc_assert, instead call output_operand_lossage.
13750
13751 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
13752
13753         * builtins.c (std_canonical_va_list): Treat structure based
13754         va_list types.
13755
13756 2008-07-15  Ben Elliston  <bje@au.ibm.com>
13757
13758         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
13759
13760 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
13761
13762         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
13763         is set.
13764
13765 2008-07-14  Jan Hubicka  <jh@suse.cz>
13766
13767         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
13768         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
13769         fix predicates and constraints.
13770         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
13771         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
13772
13773 2008-07-14  Doug Kwan  <dougkwan@google.com>
13774
13775         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
13776         additional option file arm/eabi.opt.
13777         * config/arm/eabi.h (File): New configuration file for EABI targets.
13778         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
13779         SUBSUBTARGET_EXTRA_SPECS.
13780         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
13781         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
13782         from STARTFILE_SPEC so that it can be referenced in an override.
13783         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
13784         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
13785         can be referenced in an override.
13786         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
13787         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
13788         so that it can be referenced in an override.
13789         (LINK_SPEC): Use BPABI_LINK_SPEC.
13790         * config/arm/eabi.opt (File): New.
13791
13792 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13793
13794         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
13795         (FIXED_VALUE_H): New variable.
13796         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
13797         input.h, fixed-value.h.
13798         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
13799         (BASIC_BLOCK_H): Use $(BITMAP_H).
13800         (FUNCTION_H): Add varray.h.
13801         (IPA_REFERENCE_H): Use $(BITMAP_H).
13802         (CGRAPH_H): Add $(BASIC_BLOCK_H).
13803         (DF_H): Use $(BITMAP_H).
13804         (GGC_H): Add statistics.h.
13805         (INSN_ADDR_H): New.
13806         (INSN_ATTR_H): Use it.
13807         (SYSTEM_H): Add safe-ctype.h, filenames.h.
13808         (INPUT_H): New.
13809         (SYMTAB_H): Add $(OBSTACK_H).
13810         (CPP_INTERNAL_H): New.
13811         (TREE_DUMP_H): Add tree-pass.h.
13812         (TREE_FLOW_H): Use $(BITMAP_H)
13813         (PRETTY_PRINT_H): Use $(INPUT_H).
13814         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
13815         (GSTAB_H): New.
13816         (BITMAP_H): New.
13817         (many object files): Fix lots of header dependencies throughout.
13818
13819 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13820
13821         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
13822         New macros.
13823         (s-gtyp-input): Use them to write tmp-gi.list.
13824         (echo_to_gi.list): Remove.
13825
13826 2008-07-14  Richard Guenther  <rguenther@suse.de>
13827
13828         * tree-ssa-sccvn.c (pre_info): Remove.
13829         (switch_to_PRE_table): Likewise.
13830         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
13831         (set_hashtable_value_ids): Do not create value-ids for the
13832         optimistic tables.
13833         (run_scc_vn): Remove double test.  Remove bogus special-case
13834         in value-number printing.
13835         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
13836         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
13837         SSA_NAME_VALUE.
13838         * tree-flow-inline.h (get_value_handle): Remove.
13839         * tree-flow.h (get_value_handle): Remove.
13840
13841 2008-07-14  Martin Jambor  <mjambor@suse.cz>
13842
13843         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
13844         in which we generate arithmetics is not a subrange.
13845
13846 2008-07-14  Martin Jambor  <mjambor@suse.cz>
13847
13848         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
13849
13850 2008-07-14  Richard Guenther  <rguenther@suse.de>
13851
13852         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
13853
13854 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
13855
13856         PR target/36745
13857         * config/s390/s390.c (s390_secondary_reload): Add a secondary
13858         reload for symbol refs moved to r0 with -fPIC.
13859         (legitimize_pic_address): Use the target register as temporary
13860         reg if possible.
13861         (emit_symbolic_move): Adjust comment.
13862         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
13863         New expanders.
13864
13865 2008-07-14  Ben Elliston  <bje@au.ibm.com>
13866
13867         * c-common.h (C_CPP_HASHNODE): New macro.
13868         * coretypes.h (struct cpp_token): Forward declare.
13869         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13870         the context-sensitive keyword method.
13871         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
13872         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
13873         expand_bool_pixel): New.
13874         (altivec_categorize_keyword): New function.
13875         (init_vector_keywords): New function.
13876         (rs6000_macro_to_expand): Likewise.
13877         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
13878         compiling an ISO C dialect.
13879
13880 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
13881
13882         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
13883         (create_expression_by_pieces): Fix typo.
13884         (do_regular_insertion): Use debug counter here too.
13885
13886 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
13887
13888         PR target/35492.
13889         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
13890         CONST_OK_FOR_LETTER_P.  All port-local users changed.
13891         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
13892         implement Kp matching power-of-two.
13893         (CONSTRAINT_LEN): Define to match.
13894         * config/cris/cris.md: Replace all use of constraint K with Kc.
13895         ("*btst*): Use Kp for operand 0 of last alternative.
13896
13897 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13898
13899         PR testsuite/36440
13900         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
13901         and quad formats.
13902
13903 2008-07-13  Jan Hubicka  <jh@suse.cz>
13904
13905         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
13906         to be mangled too.
13907
13908 2008-07-13  Richard Guenther  <rguenther@suse.de>
13909
13910         PR middle-end/36811
13911         * langhooks.c (lhd_print_error_function): Deal with recursive
13912         BLOCK trees.
13913
13914 2008-07-12  Jan Hubicka  <jh@suse.cz>
13915
13916         * cgraph.c (assembler_name_hash): New static var.
13917         (hash_node_by_assembler_name, eq_assembler_name): New.
13918         (cgraph_node_for_asm): Use hashtable.
13919         (cgraph_remove_node): Maintain hashtable.
13920         (change_decl_assembler_name): Sanity check that names are not changing
13921         after aliasing was processed.
13922         * cgraph.h (varpoon_node): Add next GGC marker.
13923         * tree.c (decl_assembler_name_equal): Constify.
13924         (decl_assembler_name_hash): New.
13925         * tree.h (decl_assembler_name_equal): Constify.
13926         (decl_assembler_name_hash): Update.
13927
13928 2008-07-12  David Daney  <ddaney@avtrex.com>
13929
13930         * config/mips/driver-native.c (host_detect_local_cpu): Handle
13931         sb1 and r5000 cpus.
13932
13933 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13934
13935         * doc/md.texi: Document the MIPS "v" constraint.
13936         * config/mips/mips.h (reg_class): Revert last change.
13937         (REG_CLASS_NAMES): Likewise.
13938         (REG_CLASS_CONTENTS): Likewise.
13939         * config/mips/mips.c (mips_regno_to_class): Likewise.
13940         * config/mips/constraints.md (v): Likewise, but add documentation.
13941         Add a comment to say that this constraint should not be used in
13942         gcc code.
13943
13944 2008-07-11  DJ Delorie  <dj@redhat.com>
13945
13946         * config/h8300/h8300.md (length): Fix branch offset limit.
13947
13948 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
13949
13950         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
13951         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
13952         (avr_hard_regno_scratch_ok): New function.
13953         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
13954         * config/avr/avr.md (all peepholes that request a scratch register):
13955         Remove avr_peep2_scratch_safe use.
13956
13957 2008-07-11  Tom Tromey  <tromey@redhat.com>
13958             Ian Lance Taylor  <iant@google.com>
13959
13960         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
13961         (struct c_common_resword): Define.
13962         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
13963         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
13964         (c_common_reswords, num_c_common_reswords): Declare.
13965         * c-common.c (c_common_reswords): New global const array.
13966         (num_c_common_reswords): New const int.
13967         * c-parser.c (struct resword, reswords): Don't define.
13968         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
13969         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
13970         than reswords.  If warning about C++ keywords, give them a special
13971         RID code.
13972         (c_lex_one_token): Warn about C++ keywords.  Call
13973         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
13974         (c_parser_external_declaration): Look for RID_xxx rather than
13975         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
13976         (c_parser_statement_after_labels): Likewise.
13977         (c_parser_objc_class_instance_variables): Likewise.
13978         (c_parser_objc_class_declaration): Likewise.
13979         (c_parser_objc_try_catch_statement): Likewise.
13980         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
13981         (declspecs_add_type): Likewise.
13982
13983 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
13984
13985         * ggc-page.c (alloc_page):
13986         Substituting xmalloc, xcalloc with
13987         XNEWVEC and XCNEWVAR macros which add the
13988         needed casts.
13989
13990 2008-07-11  Richard Guenther  <rguenther@suse.de>
13991
13992         PR tree-optimization/36765
13993         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
13994         aliases from HEAP vars to SMTs.
13995
13996 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13997
13998         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
13999         * configure.ac (loose_warn): Move -Wc++-compat from here...
14000         (strict_warn): ...to here.
14001         * configure: Regenerate.
14002
14003 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
14004
14005         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
14006         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
14007         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
14008         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
14009         excluding more specific h8300-*-* and sh-*-* targets.
14010
14011 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
14012
14013         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
14014         (eliminate): Ditto.
14015         (execute_pre): Call loop_optimizer_finalize in early exit.
14016
14017 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
14018
14019         PR middle-end/36790
14020         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
14021         uids in the bitmap, not just VAR_DECL uids.
14022
14023         PR rtl-optimization/36419
14024         * combine-stack-adj.c (adjust_frame_related_expr): New function.
14025         (combine_stack_adjustments_for_block): Call it if needed.  Delete
14026         correct insn.
14027         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
14028         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
14029         prologue sp adjustment.
14030
14031 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
14032
14033         PR other/28322
14034         * opts.c (print_ignored_options): Report postponed diagnostics for
14035         unknown -Wno-* options as warnings, not errors.
14036         (postpone_unknown_option_error): Renamed to...
14037         (postpone_unknown_option_warning): ... this.
14038
14039 2008-07-09  Doug Kwan  <dougkwan@google.com>
14040
14041         Revert:
14042         2008-07-08  Doug Kwan  <dougkwan@google.com>
14043
14044         * config/arm/arm.opt (mandroid): New option.
14045         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
14046         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
14047         (CC1_SPEC): Same.
14048         (CC1PLUS_SPEC): Same.
14049         (LIB_SPEC): Same.
14050         (STARTFILE_SPEC): Same.
14051         (ENDFILE_SPEC): Same.
14052         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
14053         used.
14054
14055 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
14056
14057         PR target/35802
14058         * config/mips/mips.h (reg_class): Remove V1_REG.
14059         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
14060         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
14061         instead of V1_REGS.
14062         (mips_get_tp): New function.
14063         (mips_legitimize_tls_address): Use it.
14064         * config/mips/constraints.md (v): Delete.
14065         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
14066         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
14067         After reload, split into a move and ...
14068         (*tls_get_tp_<mode>_split): ...this new instruction.
14069
14070 2008-07-09  David Daney  <ddaney@avtrex.com>
14071
14072         * config/mips/driver-native.c: Include coretypes.h and tm.h.
14073
14074 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
14075
14076         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
14077         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
14078         Add c argument.
14079         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
14080         htab_delete should be called.  Don't free c.
14081         (lookup_tmp_var): Create temp_htab lazily.
14082         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
14083         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
14084         callers.
14085         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
14086         lower_omp_ordered, lower_omp_critical, lower_omp_for,
14087         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
14088         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
14089         * tree-sra.c (generate_element_init): Likewise.
14090         * tree-mudflap.c (execute_mudflap_function_ops,
14091         execute_mudflap_function_decls): Likewise.
14092         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
14093         * tree-gimple.h (struct gimplify_ctx): New type.
14094         (push_gimplify_context): Adjust prototype.
14095
14096 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
14097
14098         * tree-ssa-pre.c (phi_translate_1): Update placement of
14099         add_to_value calls.
14100
14101 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
14102
14103         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
14104         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
14105         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
14106         * targhooks.c (default_hard_regno_scratch_ok): New function.
14107         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
14108         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
14109         * recog.c:  Include "target.h".
14110         (peep2_find_free_register): Add check for global regs. Add target
14111         specific check.
14112         * Makefile.in (recog.o): Depend on target.h.
14113
14114 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
14115
14116         * config/sh/sh.c (sh_canonical_va_list_type): New.
14117         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
14118
14119 2008-07-09  Raksit Ashok <raksit@google.com>
14120
14121         * doc/invoke.texi (Option Summary): Mention new option
14122         -Wdisallowed-function-list=...
14123         (Warning Options): Document -Wdisallowed-function-list=...
14124         * common.opt (Wdisallowed-function-list=): New flag.
14125         * flags.h (warn_disallowed_functions): External definition of new
14126         boolean warning flag.
14127         (warn_if_disallowed_function_p): Declare new function.
14128         * opts.c (warning_disallowed_functions): New static variable.
14129         (warn_disallowed_functions): New boolean warning flag.
14130         (warn_if_disallowed_function_p): New function.
14131         (add_comma_separated_to_vector): Rename
14132         add_instrument_functions_exclude_list to this.
14133         (common_handle_option): Handle new option. Rename calls to
14134         add_instrument_functions_exclude_list into calls to
14135         add_comma_separated_to_vector.
14136         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
14137         based on flag warn_disallowed_functions.
14138
14139 2008-07-09  Christian Bruel  <christian.bruel@st.com>
14140
14141         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
14142          instead of get_attr_length.
14143
14144 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14145
14146         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
14147         keywords.
14148         * genemit.c (gen_insn): Likewise.
14149         * gengtype.c (note_def_vec): Likewise.
14150         * gengtype.h (note_def_vec): Likewise.
14151         * genoutput.c (struct data, output_insn_data, process_template,
14152         gen_expand, gen_split, note_constraint): Likewise.
14153         * genrecog.c (new_decision, add_to_sequence, factor_tests,
14154         make_insn_sequence): Likewise.
14155         * gensupport.c (record_insn_name): Likewise.
14156
14157 2008-07-08  Doug Kwan  <dougkwan@google.com>
14158
14159         * config/arm/arm.opt (mandroid): New option.
14160         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
14161         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
14162         (CC1_SPEC): Same.
14163         (CC1PLUS_SPEC): Same.
14164         (LIB_SPEC): Same.
14165         (STARTFILE_SPEC): Same.
14166         (ENDFILE_SPEC): Same.
14167         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
14168         used.
14169
14170 2008-07-08  Raksit Ashok  <raksit@google.com>
14171
14172         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
14173         (set_storage_via_setmem): Fix expected_align parameter.
14174         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
14175         missing from the list.
14176         * doc/md.texi (movmem): Explicitly state that expected alignment is
14177         to be expressed in bytes.
14178         (setmem): Explicitly state that expected alignment is to be expressed
14179         in bytes.
14180
14181 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
14182
14183         * reload.c (find_reloads_subreg_address): Do not require validity
14184         of address in original mode before reloading address.
14185
14186 2008-07-07  Tianwei Sheng  <tianweis@google.com>
14187
14188         * df-core.c (df_remove_problem): Adjust the access to avoid out of
14189         bounds array access.
14190
14191 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
14192
14193         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
14194
14195 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
14196
14197         Fix PR tree-optimization/23455
14198         Fix PR tree-optimization/35286
14199         Fix PR tree-optimization/35287
14200         * Makefile.in (OBJS-common): Remove tree-vn.o.
14201         (tree-vn.o): Remove.
14202         * dbgcnt.def: Add treepre_insert debug counter.
14203         * gcc/tree-flow.h (add_to_value): Updated for other changes.
14204         (debug_value_expressions): Ditto.
14205         (print_value_expressions): Ditto.
14206         * tree-pretty-print.c (dump_generic_node): Updated for
14207         VALUE_HANDLE removal.
14208         * tree-ssa-dom.c (record_equality): Ditto.
14209         (cprop_operand): Ditto.
14210         (lookup_avail_expr): Ditto.
14211         * tree-ssa-threadedge.c
14212         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
14213         (simplify_control_stmt_condition): Ditto.
14214         * tree.c (tree_code_size): Ditto.
14215         (tree_node_structure): Ditto.
14216         (iterative_hash_expr): Ditto.
14217         * tree.def: Ditto.
14218         * tree.h (VALUE_HANDLE_ID): Ditto.
14219         (VALUE_HANDLE_EXPR_SET): Ditto.
14220         (struct tree_value_handle): Ditto.
14221         (union tree_node): Ditto.
14222         * treestruct.def: Ditto.
14223         * tree-vn.c: Removed.
14224         * tree-ssa-pre.c: Rewritten entirely.
14225         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
14226         (constant_value_ids): Ditto.
14227         (vn_nary_op_t): Moved to header.
14228         (vn_phi_t): Ditto.
14229         (vn_reference_op_t): Ditto
14230         (vn_reference_t): Ditto.
14231         (next_value_id): New variable.
14232         (VN_INFO): Add an assert.
14233         (vn_constant_eq): New function.
14234         (vn_constant_hash): Ditto.
14235         (get_or_alloc_constant_value_id): Ditto.
14236         (value_id_constant_p): Ditto.
14237         (vn_reference_compute_hash): De-staticify.
14238         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
14239         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
14240         (valueize_refs): Update opcode if it changes from ssa name to constant.
14241         (vn_reference_lookup_1): Add new argument.
14242         (vn_reference_lookup):  Ditto.
14243         (vn_reference_lookup_pieces): New function.
14244         (vn_reference_insert): Add return type. Modify to deal with value ids.
14245         (vn_reference_insert_pieces):  New function.
14246         (vn_nary_op_compute_hash): De-staticify.
14247         (vn_nary_op_eq): Ditto.
14248         (vn_nary_op_lookup_pieces): New function.
14249         (vn_nary_op_lookup): Add new argument.
14250         (vn_nary_op_insert_pieces): New function.
14251         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
14252         (vn_phi_insert): Ditto.
14253         (visit_unary_op): Update for callee changes.
14254         (visit_binary_op): Ditto.
14255         (visit_reference_op_load): Ditto.
14256         (visit_reference_op_store): Ditto.
14257         (init_scc_vn): Init next_value_id, constant_to_value_id and
14258         constant_value_ids.
14259         (free_scc_vn): Free them.
14260         (set_hashtable_value_ids): New function.
14261         (run_scc_vn): Use it.
14262         (get_max_value_id): New function.
14263         (get_next_value_id): Ditto.
14264         (expressions_equal_p): Moved from tree-vn.c
14265         (sort_vuses): Ditto.
14266         (sort_vuses_heap): Ditto.
14267         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
14268         above).
14269         * tree.c (iterative_hash_hashval_t): Made non-static
14270         * tree.h (iterative_hash_hashval_t): Declare it.
14271
14272 2008-07-08  Martin Jambor  <mjambor@suse.cz>
14273
14274         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
14275         instead of ipa_create_node_params.
14276         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
14277         ipa_check_create_edge_args, free them with
14278         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
14279
14280         * ipa-prop.c: Include flags.h and tree-inline.h.
14281         (ipa_node_params_vector): New variable.
14282         (ipa_edge_args_vector): New variable.
14283         (edge_removal_hook_holder): New variable.
14284         (node_removal_hook_holder): New variable.
14285         (edge_duplication_hook_holder): New variable.
14286         (node_duplication_hook_holder): New variable.
14287         (ipa_detect_param_modifications): Check for presence of modified flags.
14288         (ipa_compute_jump_functions): Check for presence of jump functions.
14289         (ipa_free_edge_args_substructures): New function.
14290         (ipa_create_node_params): Removed.
14291         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
14292         (ipa_free_node_params_substructures): New function.
14293         (ipa_free_all_node_params): Changed to deallocate the on-the-side
14294         vector.
14295         (ipa_edge_removal_hook): New function.
14296         (ipa_node_removal_hook): New function.
14297         (duplicate_array): New function.
14298         (ipa_edge_duplication_hook): New function.
14299         (ipa_node_duplication_hook): New function.
14300         (ipa_register_cgraph_hooks): New function.
14301         (ipa_unregister_cgraph_hooks): New function.
14302         (free_all_ipa_structures_after_ipa_cp): New function.
14303
14304         * ipa-prop.h: Include vec.h.
14305         (ipa_node_params_t): New typedef with vector types for it.
14306         (ipa_edge_args_t):  New typedef with vector types for it.
14307         (IPA_NODE_REF): Changed to access an on-the-side vector.
14308         (IPA_EDGE_REF): Changed to access an on-the-side vector.
14309         (ipa_check_create_node_params): New function.
14310         (ipa_check_create_edge_args): New function.
14311
14312         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
14313         all users.
14314
14315 2008-07-07  Tom Tromey  <tromey@redhat.com>
14316
14317         * configure, config.in: Rebuilt.
14318         * configure.ac: Don't check for scandir or alphasort.
14319
14320 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
14321
14322         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
14323         types immediately after creating them.
14324
14325 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
14326
14327         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
14328
14329 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
14330
14331         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
14332         dump_constraint_graph.
14333         (dump_constraint_edge): New function.
14334         (dump_constraint_graph): New function.
14335         (debug_constraint_graph): New function.
14336         (dump_constraint): Removed useless comparison.
14337         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
14338         (dump_constraint_graph): Declare.
14339         (debug_constraint_graph): Declare.
14340         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
14341
14342 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
14343
14344         * config/i386/i386.c (is_va_list_char_pointer): New.
14345         (ix86_va_start): Replace compare with ms_va_list_type_node
14346         by is_va_list_char_pointer.
14347         (ix86_gimplify_va_arg): Likewise.
14348
14349 2008-07-07  Martin Jambor  <mjambor@suse.cz>
14350
14351         * cgraph.c (cgraph_edge_max_uid): New variable.
14352         (struct cgraph_edge_hook_list): New type.
14353         (struct cgraph_node_hook_list): New type.
14354         (struct cgraph_2edge_hook_list): New type.
14355         (struct cgraph_2node_hook_list): New type.
14356         (first_cgraph_edge_removal_hook): New variable.
14357         (first_cgraph_node_removal_hook): New variable.
14358         (first_cgraph_edge_duplicated_hook): New variable.
14359         (first_cgraph_node_duplicated_hook): New variable.
14360         (cgraph_add_edge_removal_hook): New function.
14361         (cgraph_remove_edge_removal_hook): New function.
14362         (cgraph_call_edge_removal_hooks):  New function.
14363         (cgraph_add_node_removal_hook):  New function.
14364         (cgraph_remove_node_removal_hook):  New function.
14365         (cgraph_call_node_removal_hooks):  New function.
14366         (cgraph_add_edge_duplication_hook):  New function.
14367         (cgraph_remove_edge_duplication_hook):  New function.
14368         (cgraph_call_edge_duplication_hooks):  New function.
14369         (cgraph_add_node_duplication_hook):  New function.
14370         (cgraph_remove_node_duplication_hook):  New function.
14371         (cgraph_call_node_duplication_hooks):  New function.
14372         (cgraph_create_edge): Assign to edge uid.
14373         (cgraph_remove_edge): Call edge removal hooks.
14374         (cgraph_node_remove_callees): Call edge removal hooks.
14375         (cgraph_node_remove_callers): Call edge removal hooks.
14376         (cgraph_remove_node): Call node removal hooks.
14377         (cgraph_clone_edge): Call edge duplication hooks.
14378         (cgraph_clone_node): Call node duplication hooks.
14379
14380         * cgraph.h (cgraph_edge): New field uid.
14381         (cgraph_edge_hook): New type.
14382         (cgraph_node_hook): New type.
14383         (cgraph_2edge_hook): New type.
14384         (cgraph_2node_hook): New type.
14385
14386 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
14387
14388         * config.in: Regenerate.
14389
14390 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
14391
14392         * gcc.c (print_sysroot): New.
14393         (option_map, display_help, process_command): Handle the
14394         -print-sysroot option.
14395         (main): Print the sysroot if requested.
14396         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
14397
14398 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14399
14400         PR target/34780
14401         * unwind-pe.h (size_of_encoded_value): add attribute unused.
14402
14403 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
14404
14405         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
14406         (assign_parm_setup_block_p): Also check mode of entry_parm.
14407
14408 2008-07-07  Richard Guenther  <rguenther@suse.de>
14409
14410         * tree-ssa-structalias.h (set_used_smts): Remove.
14411         * tree-ssa-structalias.c (used_smts): Likewise.
14412         (set_used_smts): Likewise.
14413         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
14414         call to set_used_smts.
14415
14416 2008-07-07  Richard Guenther  <rguenther@suse.de>
14417
14418         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
14419         (new_var_info): Set it to false.
14420         (solution_set_add): Correctly handle pointers outside a var and
14421         inside a field.
14422         (type_safe): Treat variables with is_full_var properly.
14423         (do_sd_constraint): Likewise.
14424         (do_ds_constraint): Likewise.
14425         (process_constraint): Remove zeroing offset for !use_field_sensitive.
14426         (get_constraint_for_ptr_offset): New function.
14427         (get_constraint_for_component_ref): For addresses at least include
14428         the last field of the variable.  Handle is_full_vars properly.
14429         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
14430         (handle_ptr_arith): Remove.
14431         (find_func_aliases): Simplify assignment handling.
14432         (create_function_info_for): For parameter and result varinfos set
14433         is_full_var flag.
14434         (create_variable_info_for): Set is_full_var flag whenever we
14435         just created a single varinfo for a decl.
14436         (init_alias_vars): Initialize use_field_sensitive from
14437         max-fields-for-field-sensitive parameter.
14438
14439 2008-07-07  Richard Guenther  <rguenther@suse.de>
14440
14441         PR tree-optimization/36713
14442         * tree-flow-inline.h (is_call_used): New function.
14443         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
14444         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14445         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
14446
14447 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
14448
14449         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
14450
14451 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
14452
14453         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
14454
14455 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
14456             Nathan Sidwell  <nathan@codesourcery.com>
14457
14458         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
14459         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
14460         tmake_file.
14461         * config/m68k/t-linux: New.
14462         * doc/install.texi: Document m68k-*-linux is now multilibbed by
14463         default.
14464
14465 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
14466
14467         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
14468         * config/m68k/m68k-devices.def: Remove multilibs that only differ
14469         by MAC/EMAC.
14470
14471 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14472
14473         * gcc.c (execute): Fix -Wc++-compat warning.
14474
14475 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14476
14477         PR target/36720
14478         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
14479         constant for little endian.
14480
14481 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
14482
14483         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
14484         mips_base_mips16 instead of TARGET_MIPS16.
14485         (mips_base_mips16): Declare.
14486         * config/mips/mips.c (mips_base_mips16): Make global.
14487         (was_mips16_p): Remove GTY marker.
14488         (was_mips16_pch_p): New variable.
14489         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
14490         (mips_override_options): Force to non-MIPS16 mode initially.
14491         Do not complain about MIPS16 PIC incompatibilities here.
14492         Only allow -mgpopt if -mexplicit-relocs is in force for
14493         non-MIPS16 code.
14494
14495 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
14496
14497         * configure.ac: Check for caddr_t, define to char * if not defined.
14498         * configure: Regenerate.
14499         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
14500         (mmap_gt_pch_use_address): Likewise.
14501         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
14502
14503 2008-07-06  Richard Guenther  <rguenther@suse.de>
14504
14505         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
14506         (new_var_info): Deal with it.
14507         (solution_set_add): Likewise.
14508         (bitpos_of_field): Make signed, fix.
14509         (struct fieldoff): Remove type and decl fields.  Make size field
14510         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
14511         flags.
14512         (fieldoff_compare): Deal with it.
14513         (push_fields_onto_fieldstack): Remove has_union argument, glob
14514         adjacent non-pointer fields together.
14515         (create_function_info_for): Do not set has_union.
14516         (create_variable_info_for): Simplify.
14517
14518 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
14519
14520         * config.gcc (extra_headers): Add cross-stdarg.h for target
14521         x86_64-*-* and i?86-*-*.
14522         * config/i386/cross-stdarg.h: New.
14523         * builtins.c (std_fn_abi_va_list): New.
14524         (std_canonical_va_list_type): New.
14525         (stabilize_va_list): Replace va_list_type_node use by
14526         mtarget.canonical_va_list_type.
14527         (gimplify_va_arg_expr): Likewise.
14528         (expand_builtin_va_copy): Replace va_list_type_node use by
14529         mtarget.fn_abi_va_list.
14530         * tree-sra.c (is_va_list_type): New helper.
14531         (decl_can_be_decomposed_p): Replace
14532         va_list_type_node use by is_va_list_type.
14533         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
14534         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
14535         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
14536         * config/i386/i386-protos.h (ix86_get_valist_type): New.
14537         (ix86_enum_va_list): New.
14538         * config/i386/i386.c (sysv_va_list_type_node): New.
14539         (ms_va_list_type_node): New.
14540         (ix86_function_type_abi): Remove sorry.
14541         (ix86_build_builtin_va_list_abi): New.
14542         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
14543         for 64-bit targets.
14544         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
14545         (ix86_init_builtins_va_builtins_abi): New.
14546         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
14547         for 64-bit targets.
14548         (ix86_handle_abi_attribute): New.
14549         (attribute_spec): Add sysv_abi and ms_abi.
14550         (ix86_fn_abi_va_list): New.
14551         (ix86_canonical_va_list_type): New.
14552         (ix86_enum_va_list): New.
14553         (TARGET_FN_ABI_VA_LIST): New.
14554         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14555         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
14556         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
14557         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14558         (TARGET_ENUM_VA_LIST): New.
14559         * expr.h (std_fn_abi_va_list): New.
14560         (std_canonical_va_list_type): New.
14561         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
14562         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14563         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
14564         TARGET_CANONICAL_VA_LIST_TYPE.
14565         * target.h (struct gcc_target): Add fn_abi_va_list hook
14566         and canonical_va_list_type hook.
14567
14568 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14569
14570         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
14571         integral and pointer types.
14572
14573 2008-07-04  Roger Sayle  <roger@eyesopen.com>
14574
14575         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
14576         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
14577
14578 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
14579
14580         PR target/36684
14581         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
14582
14583 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
14584
14585         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
14586         build_gimple_modify_stmt.
14587         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
14588         gimple operand.  Use fold_build* instead of build*.
14589
14590 2008-07-04  Richard Guenther  <rguenther@suse.de>
14591
14592         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
14593         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
14594         properly to compute the reachability set if we do field-sensitive PTA.
14595         * invoke.texi (max-fields-for-field-sensitive): Document default.
14596         * opts.c (decode_options): Set max-fields-for-field-sensitive to
14597         100 for optimize >= 2.
14598
14599 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14600
14601         * ggc-zone.c (lookup_page_table_if_allocated,
14602         set_page_table_entry, zone_find_object_size, alloc_small_page,
14603         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
14604         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
14605         -Wc++-compat and/or -Wcast-qual warnings.
14606
14607 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
14608
14609         PR target/36634
14610         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
14611         pic_offset_table_rtx to be marked as used here.
14612         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
14613         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
14614         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
14615         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
14616         !TARGET_SECURE_PLT.
14617
14618 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14619
14620         * alloc-pool.c (hash_descriptor, eq_descriptor,
14621         alloc_pool_descriptor): Fix -Wc++-compat warnings.
14622         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
14623         Likewise.
14624         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
14625         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
14626         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
14627         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
14628         Likewise.
14629
14630 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
14631
14632         * tree-flow.h (loop_only_exit_p): Declare.
14633         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
14634         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
14635         the number of iterations if it is constant.  Otherwise, if this is the
14636         only possible exit of the loop, use the conservative estimate on the
14637         number of iterations of the entire loop if available.
14638
14639 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
14640
14641         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
14642         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
14643         Add synchronization functions.
14644         * config/sync.c: New file.
14645         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
14646         (LIBGCC_SYNC_CFLAGS): Likewise.
14647
14648 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
14649
14650         PR target/36710
14651         * config/i386/i386.md (mode): Add TF to "mode" attribute.
14652         (*pushtf_sse): New insn pattern.
14653         (pushtf splitters): New splitters.
14654
14655 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
14656
14657         PR middle-end/35736
14658         * predict.c (build_predict_expr): Use void_type_node for the tree
14659         type, instead of NULL_TREE.
14660
14661 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14662
14663         * config/i386/i386.c (contains_aligned_value_p): Return true
14664         for TCmode.
14665         (ix86_data_alignment): Align TCmode to 128bits.
14666         (ix86_local_alignment): Likewise.
14667
14668 2008-07-03  Andrew Haley  <aph@redhat.com>
14669
14670         PR bootstrap/33304
14671         * vec.h (VEC_TA): New.
14672         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
14673         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
14674         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
14675         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
14676         (C_COMMON_FIXED_TYPES): Remove first arg.
14677         (C_COMMON_FIXED_MODE_TYPES): Likewise.
14678         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
14679         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
14680         not to use empty macro arguments.
14681
14682 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
14683
14684         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
14685         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
14686         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
14687         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
14688         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
14689         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
14690         config/ia64/crtn.asm, config/m68hc11/larith.asm,
14691         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
14692         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
14693         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
14694         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
14695         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
14696         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
14697         config/rs6000/e500crtres64gpr.asm,
14698         config/rs6000/e500crtres64gprctr.asm,
14699         config/rs6000/e500crtrest32gpr.asm,
14700         config/rs6000/e500crtrest64gpr.asm,
14701         config/rs6000/e500crtresx32gpr.asm,
14702         config/rs6000/e500crtresx64gpr.asm,
14703         config/rs6000/e500crtsav32gpr.asm,
14704         config/rs6000/e500crtsav64gpr.asm,
14705         config/rs6000/e500crtsav64gprctr.asm,
14706         config/rs6000/e500crtsavg32gpr.asm,
14707         config/rs6000/e500crtsavg64gpr.asm,
14708         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
14709         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
14710         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
14711         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
14712         config/sparc/sol2-cn.asm: Remove .file directives.
14713
14714 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
14715
14716         * resource.c (mark_referenced_resources): Look inside
14717         UNSPEC_VOLATILEs and ASM_INPUTs.
14718
14719 2008-07-02  Ian Lance Taylor  <iant@google.com>
14720
14721         * rtlanal.c (add_reg_note): New function.
14722         * rtl.h (add_reg_note): Declare.
14723         * auto-inc-dec.c (attempt_change): Use add_reg_note.
14724         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
14725         * builtins.c (expand_builtin_longjmp): Likewise.
14726         (expand_builtin_nonlocal_goto): Likewise.
14727         * calls.c (emit_call_1, expand_call): Likewise.
14728         * cfgexpand.c (add_reg_br_prob_note): Likewise.
14729         * cfglayout.c (fixup_reorder_chain): Likewise.
14730         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
14731         (commit_one_edge_insertion): Likewise.
14732         * combine.c (move_deaths, distribute_notes): Likewise.
14733         * df-problems.c (df_set_note): Likewise.
14734         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
14735         (set_unique_reg_note): Likewise.
14736         (emit_copy_of_insn_after): Likewise.
14737         * expr.c (expand_expr_real): Likewise.
14738         * gcse.c (add_label_notes): Likewise.
14739         * haifa-sched.c (create_check_block_twin): Likewise.
14740         * jump.c (mark_jump_label_1): Likewise.
14741         * loop-doloop.c (add_test, doloop_modify): Likewise.
14742         * loop-unswitch.c (compare_and_jump_seq): Likewise.
14743         * lower-subreg.c (move_eh_region_note): Likewise.
14744         * optabs.c (emit_libcall_block): Likewise.
14745         * predict.c (predict_insn): Likewise.
14746         (combine_predictions_for_insn): Likewise.
14747         * recog.c (peephole2_optimize): Likewise.
14748         * regmove.c (try_auto_increment): Likewise.
14749         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
14750         * reload.c (find_reloads): Likewise.
14751         * reload1.c (fixup_eh_region_note): Likewise.
14752         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
14753         * reorg.c (delete_prior_computation): Likewise.
14754         (delete_computation, dbr_schedule): Likewise.
14755         * config/pa/pa.c (legitimize_pic_address): Likewise.
14756         * config/sh/sh.c (sh_reorg): Likewise.
14757
14758 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
14759
14760         PR target/36669
14761         * config/libgcc-glibc.ver: Add %exclude.
14762         * config/m32r/libgcc-glibc.ver: Likwise.
14763         * config/s390/libgcc-glibc.ver: Likwise.
14764         * config/sh/libgcc-glibc.ver: Likwise.
14765         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
14766
14767         * config/i386/libgcc-glibc.ver: New.
14768
14769         * config/i386/libgcc-x86_64-glibc.ver: Removed.
14770
14771 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
14772
14773         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
14774         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
14775         i[34567]86-*-linux*, x86_64-*-linux*.  Add
14776         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
14777         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
14778         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
14779         i[34567]86-*-linux*, x86_64-*-linux*.
14780
14781         * libgcc-std.ver: Add empty GCC_4.4.0.
14782
14783         * mkmap-symver.awk: Support multiple versions per symbol.
14784
14785         * config/i386/i386.c (ix86_init_builtins): Always define
14786         __builtin_fabsq and __builtin_copysignq with fallbacks.
14787         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
14788         and __builtin_copysignq if SSE2 isn't available.
14789
14790         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
14791         (LIBGCC2_TF_CEXT): Likwise.
14792         (TF_SIZE): Likwise.
14793
14794         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
14795
14796         * config/i386/sfp-machine.h: Moved to libgcc.
14797
14798         * config/i386/sfp-machine.h: New.
14799         * config/i386/t-linux: Likwise.
14800
14801         * config/i386/t-darwin: Remove softfp_wrap_start and
14802         softfp_wrap_end.
14803         * config/i386/t-darwin64: Likewise.
14804
14805         * config/i386/t-fprules-softfp64: Renamed to ...
14806         * config/i386/t-fprules-softfp: This.
14807
14808         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
14809         and softfp_wrap_end.
14810
14811 2008-07-02  Jason Merrill  <jason@redhat.com>
14812
14813         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
14814
14815         * tree.c (ctor_to_list): New fn.
14816         * tree.h: Declare it.
14817         (CONSTRUCTOR_ELT): New macro.
14818         (CONSTRUCTOR_NELTS): New macro.
14819
14820 2008-07-02  Richard Guenther  <rguenther@suse.de>
14821
14822         * tree-ssa-structalias.c (struct variable_info): Reorder
14823         to fill padding on 64bit hosts.  Make collapsed_to an int.
14824         (get_varinfo_fc): Deal with that.
14825         (new_var_info): Likewise.
14826         (collapse_rest_of_var): Likewise.
14827
14828 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
14829
14830         * doc/install.texi (--enable-java-home): Document.
14831         (--enable-aot-compile-rpm): Likewise.
14832         (--with-arch-directory): Likewise.
14833         (--with-os-directory): Likewise.
14834         (--with-origin-name): Likewise.
14835         (--with-arch-suffix): Likewise.
14836         (--with-jvm-root-dir): Likewise.
14837         (--with-jvm-jar-dir): Likewise.
14838         (--with-python-dir): Likewise.
14839
14840 2008-07-02  Richard Guenther  <rguenther@suse.de>
14841
14842         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
14843         from decls explicitly.  Merge operand checking from tuples.
14844
14845 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14846
14847         * tree-switch-conversion.c: Included timevar.h which I forgot before.
14848
14849 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14850
14851         * tree-switch-conversion.c: Included timevar.h
14852         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
14853
14854         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
14855
14856 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14857
14858         * tree-switch-conversion.c: Corrected various comments and
14859         whitespace issues
14860         (build_constructors): Fixed minor formatting mistakes.
14861
14862         * invoke.texi (Optimize Options): Corrected the
14863         switch-conversion-max-branch-ratio parameter.
14864
14865 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
14866
14867         * final.c (asm_insn_count): Return zero for an empty asm body.
14868
14869 2008-07-02  Richard Guenther  <rguenther@suse.de>
14870
14871         * bitmap.h (bitmap_set_bit): Return bool.
14872         (bitmap_clear_bit): Likewise.
14873         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
14874         write to the bitmap if it would.
14875         (bitmap_clear_bit): Likewise.
14876         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
14877         bitmap_set_bit return value.
14878         (add_pred_graph_edge): Likewise.
14879         (add_graph_edge): Likewise.
14880         (do_sd_constraint): Likewise.
14881         (do_ds_constraint): Likewise.
14882
14883 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14884
14885         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
14886         Fix -Wc++-compat and/or -Wcast-qual warnings.
14887         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
14888         gen_regparm_prefix): Likewise.
14889         * vmsdbgout.c (write_modbeg, lookup_filename,
14890         vmsdbgout_source_line, vmsdbgout_init): Likewise.
14891
14892 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
14893
14894         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
14895         defaults.h definition apply.
14896
14897 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
14898
14899         * function.c (assign_parm_remove_parallels): New.
14900         (assign_parm_setup_block_p): Do not return true for non-BLKmode
14901         PARALLELs.
14902         (assign_parm_setup_block): Do not handle them.
14903         (assign_parm_setup_reg, assign_parm_setup_stack): Call
14904         assign_parm_remove_parallels.
14905
14906 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
14907
14908         * c-typeck.c (convert_for_assignment): Use
14909         vector_targets_convertible_p.
14910         * c-common.c (vector_targets_convertible_p): New.
14911         * c-common.h (vector_targets_convertible_p): New prototype.
14912         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
14913         opaque_p_V2SI_type_node.
14914
14915 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
14916
14917         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
14918         RFmode constants.
14919
14920 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
14921
14922         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
14923         TFmode constants via two element DImode vector for hosts with
14924         HOST_BITS_PER_WIDE_INT < 64.
14925         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
14926         also for HOST_BITS_PER_WIDE_INT < 64.
14927
14928 2008-07-01  Richard Guenther  <rguenther@suse.de>
14929
14930         PR tree-optimization/36666
14931         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
14932         (get_constraint_exp_from_ssa_var): Split into ...
14933         (get_constraint_exp_for_temp): ... this ...
14934         (get_constraint_for_ssa_var): ... and that.
14935         Return constraint expressions for all touched sub-fields
14936         if the results address is not taken.
14937         (process_constraint): Remove assertion that aggregate
14938         assignments do not happen at this place.
14939         (get_constraint_for_component_ref): Add address_p argument.
14940         Return constraint expressions for all touched sub-fields
14941         if the results address is not taken.
14942         (do_deref): Use get_constraint_exp_for_temp.
14943         (get_constraint_for_1): Rename from ...
14944         (get_constraint_for): ... this.  Add the old function as wrapper.
14945         (do_structure_copy): Use get_constraint_for_1.
14946
14947 2008-07-01  Martin Jambor  <mjambor@suse.cz>
14948
14949         * Makefile.in (tree-switch-conversion.o): Add.
14950         (OBJS-common): Add tree-swtch-conversion.o.
14951         * passes.c (init_optimization_passes): Add pass_convert_switch.
14952         * tree-pass.h (pass_convert_switch): Add.
14953         * tree-switch-conversion.c: New file.
14954         * gcc.dg/tree-ssa/cswtch.c: New testcase.
14955         * common.opt (ftree-cswtch): New option.
14956         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14957         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14958         * opts.c (decode_options): Set flag_tree_switch_conversion when
14959         optimization level is >= 2.
14960         * doc/invoke.texi (Optimize Options): Added description of
14961         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
14962
14963 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14964
14965         * config/darwin-driver.c (darwin_default_min_version): Fix
14966         -Wc++-compat warnings.
14967
14968 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
14969
14970         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
14971         of operand 0.
14972
14973 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
14974
14975         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
14976
14977 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
14978
14979         PR rtl-optimization/34744
14980         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
14981         (df_scan_free_internal): Free data structures not
14982         allocated in storage pools.
14983         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
14984         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
14985         df_scan_free_mws_vec.
14986         * dse.c (dse_step6): Free offset_map_p and offset_map_n
14987         unconditionally.
14988
14989 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14990
14991         * config/i386/i386.c (contains_aligned_value_p): Return true
14992         for __float128.
14993         (ix86_function_arg_boundary): Return its natural boundary
14994         for __float128.
14995         (return_in_memory_32): Don't check TDmode.
14996         (ix86_split_to_parts): Support splitting into 4 parts and
14997         support TFmode for 32bit target.
14998         (ix86_split_long_move): Support splitting into 4 parts.
14999         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
15000         for SSE2.
15001         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
15002         (ix86_init_builtins): Here.
15003         (ix86_scalar_mode_supported_p): Always return true for TFmode.
15004         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
15005         'q' and 'w', respectively.
15006
15007         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
15008         TARGET_64BIT.
15009         (movtf_internal): Likewise.
15010         (<code>tf2): Likewise.
15011         (*absnegtf2_sse): Likewise.
15012         (copysign<mode>3): Likewise.
15013         (copysign<mode>3_const): Likewise.
15014         (copysign<mode>3_var): Likewise.
15015         (define_split UNSPEC_COPYSIGN): Likewise.
15016         * config/i386/sse.md (*nandtf3): Likewise.
15017         (<code>tf3): Likewise.
15018         (*<code>tf3): Likewise.
15019
15020 2008-06-30  Joey Ye  <joey.ye@intel.com>
15021             H.J. Lu  <hongjiu.lu@intel.com>
15022
15023         * global.c (compute_regsets): Set frame_pointer_needed here.
15024         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
15025
15026 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
15027
15028         * doc/install.texi (specific): Expand Windows build notes.
15029
15030 2008-06-30  Ira Rosen  <irar@il.ibm.com>
15031
15032         PR tree-optimization/36648
15033         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
15034         number of prolog iterations by step. Fix the comment.
15035
15036 2008-06-30  Richard Guenther  <rguenther@suse.de>
15037
15038         PR middle-end/36671
15039         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
15040         handle calls from ECF_MALLOC functions.
15041         (handle_pure_call): ECF_MALLOC functions do not return
15042         call-used memory.
15043         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
15044
15045 2008-06-29  Andreas Schwab  <schwab@suse.de>
15046
15047         * config/m68k/m68k.c (print_operand): Always print a float
15048         constant in hex.
15049         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
15050         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
15051         Remove macros.
15052
15053         * config/rs6000/x-linux64: Remove never used file.
15054
15055 2008-06-29  Richard Guenther  <rguenther@suse.de>
15056
15057         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
15058         prototype.
15059         (struct alias_info): Move ...
15060         * tree-ssa-alias.c: ... here.
15061         (update_alias_info): Declare.
15062         (compute_may_aliases): Call it.
15063         (update_alias_info): New function.
15064         * tree-ssa-structalias.c (update_alias_info): Move ...
15065         * tree-ssa-alias.c (update_alias_info_1): ... here.
15066         * tree-ssa-structalias.c (process_constraint_1): Remove
15067         unused from_call argument.  Rename to ...
15068         (process_constraint): ... this.  Delete old wrapper.
15069         (make_constraint_to): Adjust callers.
15070         (handle_const_call): Likewise.
15071         (handle_pure_call): Likewise.
15072         (init_base_vars): Likewise.
15073         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
15074         (find_func_aliases): We don't need structure copies for
15075         complex types.
15076         (make_constraint_from_anything): Remove.
15077         (create_variable_info_for): For globals make constraints
15078         from escaped, not from anything.
15079         (compute_points_to_sets): Do not call update_alias_info.
15080         (ipa_pta_execute): Use make_constraint_from.
15081
15082 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15083
15084         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
15085         (bitmap.o-warn, dominance.o-warn): New.
15086         * configure.ac (cxx_compat_warn): Delete.
15087         (loose_warn): Add -Wcast-qual and -Wc++-compat.
15088         * system.h: Remove #pragma diagnostic for -Wcast-qual and
15089         -Wc++-compat.
15090         * configure: Regenerate.
15091
15092         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
15093         warnings.
15094
15095 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15096
15097         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
15098         * df-scan.c (df_notes_rescan): Likewise.
15099         * ggc-page.c (set_page_table_entry): Likewise.
15100         * intl.c (gcc_gettext_width): Likewise.
15101         * varasm.c (get_unnamed_section, get_noswitch_section,
15102         get_section): Likewise.
15103
15104 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
15105
15106         * regrename.c (build_def_use): Don't copy RTX.
15107
15108 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
15109
15110         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
15111         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
15112         punctuation.  Use @ref instead of @xref.
15113         (Function Names): Remove stray @display/@end display.
15114         (C++ Attributes): Use @ref instead of @xref.
15115         (Deprecated Features): Fix punctuation around @xref.
15116         (Backwards Compatibility): Likewise.
15117         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
15118
15119 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
15120
15121         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
15122         constants for E500 double.
15123
15124 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15125
15126         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
15127         element type of const_vector.
15128
15129 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
15130
15131         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
15132         Remove FLAGS_REG clobber from expander pattern.
15133         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
15134         (anddi3, andsi3, andhi3, andqi3): Ditto.
15135         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
15136         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
15137         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
15138         (ashlsi3, ashlhi3, ashlqi3): Ditto.
15139         (ashrsi3, ashrhi3, ashrqi3): Ditto.
15140         (lshrsi3, lshrhi3, lshrqi3): Ditto.
15141         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
15142         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
15143
15144 2008-06-28  Richard Guenther  <rguenther@suse.de>
15145
15146         * tree-ssa-structalias.c (callused_id, var_callused,
15147         callused_tree): Add.
15148         (handle_pure_call): New function.
15149         (find_func_aliases): Call it.
15150         (find_what_p_points_to): Handle the call-used set.
15151         (clobber_what_escaped): Likewise.
15152         (compute_call_used_vars): New function.
15153         (init_base_vars): Init the call-used variable.
15154         (do_sd_constraint): Do not propagate the solution from CALLUSED
15155         but use CALLUSED as a placeholder.
15156         (solve_graph): Likewise.
15157         * tree-flow-inline.h (gimple_call_used_vars): New function.
15158         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
15159         (compute_call_used_vars): Declare.
15160         * tree-ssa-alias.c (set_initial_properties): Call
15161         compute_call_used_vars.
15162         (reset_alias_info): Clear call-used variables.
15163         (add_call_clobber_ops): Assert we are not called for const/pure
15164         functions.  Remove handling of them.
15165         (add_call_read_ops): Handle pure functions by adding the
15166         call-used set of variables as VUSEs.
15167         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
15168         (delete_tree_ssa): Free it.
15169         * tree-dfa.c (remove_referenced_var): Clear the var from the
15170         call-used bitmap.
15171
15172 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
15173
15174         * tree.c (build_varargs_function_type_list): New.
15175         (build_function_type_list_1): New.
15176         (build_function_type_list): Use build_function_type_list_1.
15177         * tree.h (build_varargs_function_type_list): New.
15178
15179 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15180
15181         PR target/34856
15182         * config/spu/spu.c (spu_builtin_splats): Do not generate
15183         invalid CONST_VECTOR expressions.
15184         (spu_expand_vector_init): Likewise.
15185
15186 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
15187
15188         * optabs.c (libfunc_decls): New variable.
15189         (libfunc_decl_hash, libfunc_decl_eq): New functions.
15190         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
15191         for the same function twice.
15192
15193 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
15194
15195         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
15196         ix86_expand_binary_operator directly.
15197         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
15198         for operand 2.
15199         (*ashrti3_1): Ditto.
15200         (*lshrti3_1): Ditto.
15201         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
15202         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
15203         using only one splitter.  Conditionaly execute splitter before or
15204         after peephole2 pass.
15205         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
15206         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
15207         Use only one alternative in asm template.
15208         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
15209         in asm template.
15210         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
15211         "J" operand constraint for operand 2.
15212         (*ashldi3_cconly_rex64): Ditto.
15213         (*ashrdi3_cmp_rex64): Ditto.
15214         (*ashrdi3_cconly_rex64): Ditto.
15215         (*lshrdi3_cmp_rex64): Ditto.
15216         (*lshrdi3_cconly_rex64): Ditto.
15217         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
15218         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
15219         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
15220         gen_x86_shrd_1.
15221
15222 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
15223
15224         * gimplify.c (omp_is_private): Don't return true if decl is not
15225         already private on #pragma omp for or #pragma omp parallel for.
15226
15227         PR debug/36617
15228         * tree-cfg.c (struct move_stmt_d): Replace block field with
15229         orig_block and new_block fields.
15230         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
15231         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
15232         (move_block_to_fn): Replace vars_map and new_label_map arguments
15233         with struct move_stmt_d pointer.
15234         (replace_block_vars_by_duplicates): New function.
15235         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
15236         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
15237         all subblocks of ORIG_BLOCK to the new function.  Call
15238         replace_block_vars_by_duplicates.
15239         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
15240         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
15241         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
15242         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
15243         (expand_omp): Temporarily set input_location to the location of
15244         region's controlling stmt.
15245         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
15246         BIND_EXPR, push ctx->block_vars and gimplification vars into
15247         the BIND_EXPR and its block's BLOCK_VARS instead of directly
15248         into dest function.
15249         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
15250         there are any BLOCK_VARS.
15251         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
15252         OMP_PARALLEL or OMP_TASK stmt.
15253         (lower_omp): Save and restore input_location around the lower_omp_1
15254         call.
15255
15256 2008-06-27  Richard Guenther  <rguenther@suse.de>
15257
15258         PR tree-optimization/36400
15259         PR tree-optimization/36373
15260         PR tree-optimization/36344
15261         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
15262         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
15263         (update_alias_info): Remove call clobbering code.
15264         (make_constraint_to): New helper function.
15265         (make_escape_constraint): Likewise.
15266         (handle_rhs_call): Use it on all pointer containing arguments.
15267         Also mark the static chain escaped.
15268         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
15269         instead of ANYTHING.
15270         (make_constraint_from): New helper split out from ...
15271         (make_constraint_from_anything): ... here.
15272         (find_func_aliases): Add constraints for escape sites.
15273         (intra_create_variable_infos): Make constraints from NONLOCAL
15274         for parameters.
15275         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
15276         as ANYTHING.
15277         (clobber_what_p_points_to): Remove.
15278         (clobber_what_escaped): New function.
15279         (init_base_vars): Init NONLOCAL and ESCAPED.
15280         (do_sd_constraint): Do not propagate the solution from ESCAPED
15281         but use ESCAPED as a placeholder.
15282         (solve_graph): Likewise.
15283         * tree-flow.h (clobber_what_p_points_to): Remove.
15284         (clobber_what_escaped): Declare.
15285         * tree-ssa-alias.c (set_initial_properties): Call it.
15286         Remove code clobbering escaped pointers.
15287
15288 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
15289
15290         * function.c (allocate_struct_function): Only allocate a unique
15291         funcdef_no if the decl is nonzero.
15292
15293 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
15294
15295         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
15296         * config/mips/mips.c (mips_split_const_insns): New function.
15297         * config/mips/mips.md (move_type): New attribute.
15298         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
15299         (dword_mode): New attribute.
15300         (type): Avoid long line.  Map "move_type"s to "type"s,
15301         choosing "multi" for doubleword moves if appropriate.
15302         Swap MTC/MFC comments to match their declaration order.
15303         (extended_mips16): Default to "yes" if "move_type" is "sll0",
15304         "type" is "branch" or "jal" is "direct".
15305         (length): Handle "extended_mips16" first.  Make the default
15306         "0" for "ghost" instructions.  Set the length from "move_type".
15307         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
15308         of "type", with "sll0" for the register alternative.  Remove the
15309         "extended_mips16" attribute.
15310         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
15311         of "type", with "shift_shift" for the register alternative.
15312         Remove the "length" attribute.
15313         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
15314         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
15315         of "type", with "andi" for the register alternative.
15316         (*zero_extendqihi2): Likewise.
15317         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
15318         of "andi" instead of a "type" of "arith".
15319         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
15320         instead of "type".
15321         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
15322         (mov_<store>r, *mov<mode>_ra): Likewise.
15323         (extendsidi2): Use "move_type" instead of "type", with "move"
15324         for the register alternative.
15325         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
15326         of "type", with "signext" for the register alternative.
15327         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
15328         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
15329         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
15330         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
15331         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
15332         (unnamed branch insn): Likewise.
15333         (*movdi_gp32_fp64): Fold into...
15334         (*movdi_32bit): ...here.
15335         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
15336         (*movdf_hardfloat): ...this new pattern.
15337         (*movdf_softfloat): Remove redundant FPR alternatives.
15338         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
15339         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
15340         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
15341         the "move" attribute.
15342         (*movdi_32bit): Use "move_type" instead of "type" and remove the
15343         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
15344         and "store" for COP loads and stores.
15345         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
15346         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
15347         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
15348         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
15349         (*movtf_mips16, *movv2sf): Likewise.
15350         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
15351         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
15352         (mfhc1<mode>): Use "move_type" instead of "move".
15353         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
15354         (loadgp_blockage): Remove the "length" attribute.
15355         (blockage, set_got_version, update_got_version): Likewise.
15356         (call_internal): Remove the "extended_mips16" attribute.
15357         (call_value_internal, call_value_multiple_internal): Likewise.
15358         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
15359         instead of "move".
15360         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
15361         the "length" attribute.
15362
15363 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15364
15365         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
15366         -Wcast-qual warnings.
15367         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
15368         handle_pragma_pop_macro): Likewise.
15369         * collect2.c (resolve_lib_name): Likewise.
15370         * config/arc/arc.c (arc_init): Likewise.
15371         * config/arm/arm.c (neon_builtin_compare,
15372         locate_neon_builtin_icode): Likewise.
15373         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
15374         * config/bfin/bfin.c (bfin_init_machine_status,
15375         bfin_optimize_loop): Likewise.
15376         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
15377         * config/cris/cris.c (cris_init_expanders): Likewise.
15378         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
15379         * config/darwin.c (machopic_indirection_eq,
15380         machopic_indirection_name, machopic_output_indirection): Likewise.
15381         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
15382         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
15383         frv_optimize_membar): Likewise.
15384         * config/i386/cygwin.h (mingw_scan,
15385         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
15386         * config/i386/cygwin1.c (mingw_scan): Likewise.
15387         * config/i386/i386.c (machopic_output_stub): Likewise.
15388         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
15389         i386_pe_unique_section): Likewise.
15390         * config/ia64/ia64.c (ia64_init_machine_status,
15391         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
15392         Likewise.
15393         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
15394         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
15395         * config/m68k/m68k.c (m68k_handle_option,
15396         m68k_sched_md_init_global): Likewise.
15397         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
15398         mcore_unique_section): Likewise.
15399         * config/mips/mips.c (mips_block_move_straight,
15400         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
15401         Likewise.
15402         * config/mmix/mmix.c (mmix_init_machine_status,
15403         mmix_encode_section_info): Likewise.
15404         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
15405         * config/rs6000/rs6000.c (rs6000_init_machine_status,
15406         print_operand_address, output_toc, redefine_groups,
15407         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
15408         * config/s390/s390.c (s390_init_machine_status): Likewise.
15409         * config/score/score.c (score_block_move_straight,
15410         score_block_move_loop_body): Likewise.
15411         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15412         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15413         * emit-rtl.c (find_auto_inc): Likewise.
15414         * gcc.c (translate_options, process_command): Likewise.
15415         * reorg.c (dbr_schedule): Likewise.
15416         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
15417         * xcoffout.c (xcoffout_declare_function): Likewise.
15418
15419 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
15420
15421         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
15422         ipa-pta working again.
15423
15424 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
15425
15426         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
15427         genautomata.
15428
15429 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
15430
15431         * config.gcc (powerpc*-*-*): Add new core e500mc.
15432         * config/rs6000/e500mc.md: New file.
15433         * config/rs6000/rs6000.c (processor_costs): Add new costs for
15434         e500mc.
15435         (rs6000_override_options): Add e500mc case to
15436         processor_target_table. Altivec and Spe options not allowed
15437         with e500mc. Add isel instruction to e500mc by
15438         default. Initialize rs6000_cost for e500mc.
15439         (rs6000_issue_rate): Set issue rate for e500mc.
15440         * config/rs6000/rs6000.h (processor_type): Add
15441         PROCESSOR_PPCE500MC.
15442         (ASM_CPU_SPEC): Add e500mc.
15443         Set TARGET_ISEL to rs6000_isel.
15444         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
15445         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
15446         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
15447         Include e500mc.md.
15448         * doc/invoke.texi: Add e500mc to list of cpus.
15449
15450 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15451
15452         PR c/34867
15453         * c-lex.c (lex_charconst): Initialize unsignedp.
15454
15455 2008-06-27  Olivier Hainque  <hainque@adacore.com>
15456
15457         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
15458         documented assumptions.
15459
15460 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
15461
15462         * dwarf2out.c: Remove trailing white spaces.  Break long line
15463         in comments.
15464
15465 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
15466
15467         * libfuncs.h (LTI_synchronize): New libfunc_index.
15468         (synchronize_libfunc): Declare.
15469         * builtins.c (expand_builtin_synchronize): Consider using
15470         synchronize_libfunc before falling back on an asm blockage.
15471         * config/mips/mips.c: Include libfuncs.h
15472         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
15473
15474 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
15475
15476         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
15477         parameter.  Copy stack_reg to r11 where appropriate.
15478         (no_global_regs_above): Add gpr parameter.
15479         (rs6000_stack_info): Only add padding for SPE save area if we
15480         are saving SPE GPRs and CR.
15481         (saveres_routine_syms): New variable.
15482         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
15483         Define.
15484         (rs6000_savres_routine_sym): New function.
15485         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
15486         split out of...
15487         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
15488         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
15489         Tweak FPR out-of-line saving.
15490         (rs6000_make_savres_rtx): New function.
15491         (rs6000_use_multiple_p): New function.
15492         (rs6000_savres_strategy): New function.
15493         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
15494         out-of-line if appropriate.
15495         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
15496         if we are optimizing for size.
15497         (GP_SAVE_INLINE): Define.
15498         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
15499         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
15500         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
15501         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
15502         (*save_fpregs_<mode>): Add use of r11.
15503         (*restore_gpregs_<mode>): New insn.
15504         (*return_and_restore_gpregs_<mode>): New insn.
15505         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
15506         use r11.
15507         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
15508         (*restore_gpregs_spe): New insn.
15509         (*return_and_restore_gpregs_spe): New insn.
15510         * config/rs6000/predicates.md (save_world_operation): Fix check.
15511
15512 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
15513
15514         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
15515         this point, so assert that.
15516
15517 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
15518
15519         * cfganal.c: Include vec.h and vecprim.h.
15520         (compute_idf): Import from...
15521         * tree-into-ssa (compute_idf): ...here.
15522         * basic-block.h (compute_idf): Export.
15523
15524 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
15525
15526         * c-decl.c (merge_decls): Use !current_function_decl to check for
15527         extern declaration of C99 inline function being at file scope.
15528
15529 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
15530
15531         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
15532
15533 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15534
15535         * alias.c (record_alias_subset, init_alias_analysis): Fix
15536         -Wc++-compat and/or -Wcast-qual warnings.
15537         * attribs.c (lookup_attribute_spec): Likewise.
15538         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
15539         copy_bb, connect_traces,
15540         find_rarely_executed_basic_blocks_and_cr): Likewise.
15541         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
15542         note_btr_set, migrate_btr_defs): Likewise.
15543         * builtins.c (result_vector, expand_builtin_memcpy,
15544         expand_builtin_mempcpy_args, expand_builtin_strncpy,
15545         builtin_memset_read_str, expand_builtin_printf,
15546         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
15547         Likewise.
15548         * caller-save.c (mark_set_regs): Likewise.
15549         * calls.c (expand_call, emit_library_call_value_1): Likewise.
15550         * cgraph.c (cgraph_edge): Likewise.
15551         * combine.c (likely_spilled_retval_1): Likewise.
15552         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
15553         htab_counts_entry_del, get_coverage_counts): Likewise.
15554         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
15555         new_cselib_val): Likewise.
15556         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
15557         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
15558         Likewise.
15559         * df-core.c (df_compact_blocks): Likewise.
15560         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
15561         * df-scan.c (df_grow_reg_info, df_ref_create,
15562         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
15563         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
15564         df_record_entry_block_defs, df_record_exit_block_uses,
15565         df_bb_verify): Likewise.
15566         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
15567         DF_REF_EXTRACT_MODE_CONST): New.
15568         * dominance.c (get_immediate_dominator, get_dominated_by,
15569         nearest_common_dominator, root_of_dom_tree,
15570         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
15571         -Wc++-compat and/or -Wcast-qual warnings.
15572         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
15573         record_store, replace_read, check_mem_read_rtx, scan_insn,
15574         dse_step1, dse_record_singleton_alias_set): Likewise.
15575         * dwarf2asm.c (dw2_force_const_mem): Likewise.
15576
15577 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15578
15579         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
15580         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
15581         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
15582         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
15583         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
15584         add_ranges_num, add_ranges_by_labels, file_info_cmp,
15585         file_name_acquire, output_file_names, add_const_value_attribute,
15586         premark_used_types_helper, file_table_eq, file_table_hash,
15587         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
15588         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
15589         -Wcast-qual warnings.
15590         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
15591         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
15592         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
15593         gen_reg_rtx, start_sequence, init_emit): Likewise.
15594         * et-forest.c (et_new_occ, et_new_tree): Likewise.
15595         * except.c (init_eh_for_function, gen_eh_region,
15596         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
15597         arh_to_landing_pad, arh_to_label, add_action_record,
15598         add_call_site, switch_to_exception_section): Likewise.
15599         * expmed.c (synth_mult): Likewise.
15600         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
15601         store_expr): Likewise.
15602         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
15603         Likewise.
15604         * function.c (assign_stack_temp_for_type,
15605         allocate_struct_function, match_asm_constraints_1): Likewise.
15606         * gcov-io.c (gcov_allocate): Likewise.
15607         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
15608         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
15609         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
15610         record_one_set, insert_expr_in_table, insert_set_in_table,
15611         dump_hash_table, compute_hash_table_work, alloc_hash_table,
15612         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
15613         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
15614         -Wcast-qual warnings.
15615
15616 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15617
15618         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
15619         -Wcast-qual warnings.
15620         * gcc.c (process_command): Likewise.
15621         * genattrtab.c (oballoc): Use XOBNEW.
15622         (oballocvec): Define.
15623         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
15624         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
15625         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
15626         -Wc++-compat and/or -Wcast-qual warnings.
15627         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
15628         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
15629         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
15630         gen_presence_absence_set, gen_automaton, gen_regexp_el,
15631         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
15632         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
15633         add_excls, process_presence_absence_names,
15634         process_presence_absence_patterns, add_presence_absence,
15635         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
15636         get_free_state, add_arc, get_free_automata_list_el,
15637         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
15638         transform_3, cache_presence, create_ainsns, create_automata,
15639         create_state_ainsn_table, dfa_insn_code_enlarge,
15640         output_trans_func, output_min_issue_delay_func,
15641         output_dead_lock_func, output_reset_func,
15642         output_get_cpu_unit_code_func, output_dfa_start_func,
15643         expand_automata): Likewise.
15644         * genextract.c (gen_insn): Likewise.
15645         * gengtype-lex.l: Likewise.
15646         * gengtype.c (read_input_list, adjust_field_type,
15647         process_gc_options): Likewise.
15648         * genoutput.c (note_constraint): Likewise.
15649         * genpreds.c (mangle, add_constraint): Likewise.
15650         * genrecog.c (process_define_predicate, new_decision,
15651         add_to_sequence): Likewise.
15652         * gensupport.c (record_insn_name): Likewise.
15653
15654 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15655
15656         * config/i386/driver-i386.c (detect_caches_amd,
15657         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
15658         and/or -Wcast-qual warnings.
15659         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
15660         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
15661         gt_pch_save): Likewise.
15662         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
15663         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
15664         * global.c (compute_regsets): Likewise.
15665         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
15666         finish_graph_dump_file): Likewise.
15667         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
15668         unlink_bb_notes): Likewise.
15669         * integrate.c (get_hard_reg_initial_val): Likewise.
15670         * ipa-prop.c (ipa_push_func_to_list): Likewise.
15671         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
15672         * local-alloc.c (update_equiv_regs): Likewise.
15673         * loop-invariant.c (check_invariant_table_size,
15674         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
15675         Likewise.
15676         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
15677         altered_reg_used, mark_altered): Likewise.
15678         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
15679         insert_var_expansion_initialization,
15680         combine_var_copies_in_loop_exit, apply_opt_in_copies,
15681         release_var_copies): Likewise.
15682         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
15683         analyze_matrix_decl, add_allocation_site, analyze_transpose,
15684         analyze_accesses_for_phi_node, check_var_notmodified_p,
15685         check_allocation_function, find_sites_in_func,
15686         record_all_accesses_in_func, transform_access_sites,
15687         transform_allocation_sites): Likewise.
15688         * omp-low.c (new_omp_region, create_omp_child_function_name,
15689         check_omp_nesting_restrictions, check_combined_parallel,
15690         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
15691         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
15692         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
15693         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
15694         Likewise.
15695         * opts-common.c (prune_options): Likewise.
15696         * opts.c (add_input_filename, print_filtered_help,
15697         get_option_state): Likewise.
15698         * params.c (add_params): Likewise.
15699         * passes.c (set_pass_for_id, next_pass_1,
15700         do_per_function_toporder, pass_fini_dump_file): Likewise.
15701         * postreload.c (reload_cse_simplify_operands): Likewise.
15702         * predict.c (tree_predicted_by_p, tree_predict_edge,
15703         clear_bb_predictions, combine_predictions_for_bb): Likewise.
15704
15705 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15706
15707         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
15708         warnings.
15709         * recog.c (check_asm_operands, validate_change_1): Likewise.
15710         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
15711         subst_asm_stack_regs): Likewise.
15712         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
15713         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
15714         * regmove.c (reg_is_remote_constant_p): Likewise.
15715         * regrename.c (regrename_optimize, scan_rtx_reg,
15716         kill_clobbered_value, kill_set_value, kill_autoinc_value):
15717         Likewise.
15718         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
15719         regstat_compute_calls_crossed): Likewise.
15720         * reload1.c (init_reload, new_insn_chain,
15721         has_nonexceptional_receiver, reload, copy_reloads,
15722         calculate_needs_all_insns, init_elim_table): Likewise.
15723         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
15724         * rtl.c (shallow_copy_rtx_stat): Likewise.
15725         * rtlanal.c (parms_set): Likewise.
15726         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
15727         sbitmap_resize, sbitmap_vector_alloc): Likewise.
15728         * sched-ebb.c (earliest_block_with_similiar_load,
15729         add_deps_for_risky_insns): Likewise.
15730         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
15731         schedule_region): Likewise.
15732         * see.c (eq_descriptor_pre_extension,
15733         hash_descriptor_pre_extension, hash_del_pre_extension,
15734         eq_descriptor_properties, hash_descriptor_properties,
15735         hash_del_properties, see_seek_pre_extension_expr,
15736         see_initialize_data_structures, see_print_register_properties,
15737         see_print_pre_extension_expr, see_delete_merged_def_extension,
15738         see_delete_unmerged_def_extension, see_emit_use_extension,
15739         see_pre_delete_extension, see_map_extension, see_commit_changes,
15740         see_analyze_merged_def_local_prop,
15741         see_analyze_merged_def_local_prop,
15742         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
15743         see_set_prop_merged_def, see_set_prop_unmerged_def,
15744         see_set_prop_unmerged_use, see_print_one_extension,
15745         see_merge_one_use_extension, see_merge_one_def_extension,
15746         see_store_reference_and_extension, see_update_uses_relevancy,
15747         see_update_defs_relevancy): Likewise.
15748         * statistics.c (hash_statistics_hash, hash_statistics_eq,
15749         hash_statistics_free, curr_statistics_hash): Likewise.
15750         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
15751         expand_asm_operands, expand_return, case_bit_test_cmp,
15752         expand_case): Likewise.
15753         * stor-layout.c (start_record_layout): Likewise.
15754         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
15755         gt_pch_save_stringpool): Likewise.
15756         * tree-data-ref.c (hash_stmt_vertex_info,
15757         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
15758         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
15759
15760 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
15761
15762         PR target/36627
15763         * config/i386/i386.md: Change constraints of HImode and QImode
15764         immediate operands from "i" to "n".  Change SImode "ni" constraint to
15765         "i" and SImode "rmi" constraint to "g".  Remove all constraints
15766         from const0_operand and const1_operand predicated operands.
15767         (i): Change QImode and HImode attribute from "i" to "n".
15768         (*subqi_2): Change HImode operands to QImode.
15769         (*subqi_3): Ditto.
15770
15771 2008-06-25  Olivier Hainque  <hainque@adacore.com>
15772
15773         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
15774         sed substitutions.
15775
15776 2008-06-25  Richard Guenther  <rguenther@suse.de>
15777
15778         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
15779         not overflow the result type.
15780
15781 2008-06-25  Richard Guenther  <rguenther@suse.de>
15782
15783         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
15784         (vn_lookup): Likewise.
15785
15786 2008-06-25  Richard Guenther  <rguenther@suse.de>
15787
15788         PR tree-optimization/35518
15789         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
15790         * tree-sra.c (instantiate_element): Use fold_build3 to build
15791         BIT_FIELD_REFs.
15792         (try_instantiate_multiple_fields): Likewise.
15793
15794 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15795
15796         * config/rs6000/rs6000.md: Change all string instruction's clobber to
15797         be early clobbers.
15798
15799 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15800
15801         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
15802         use_backchain_to_restore_sp to true
15803         if the offset of the link register save area would go over the 32k - 1
15804         offset limit of the load
15805         instructions.
15806
15807 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
15808
15809         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
15810         anchor for the type-punning blurb.  Cross-reference "Structures
15811         unions enumerations and bit-fields implementation".  Provide a
15812         cast-through-pointer example.  Make final sentence self-contained.
15813         * doc/implement-c.texi (Structures unions enumerations and
15814         bit-fields implementation): Cross-reference the type-punning blurb
15815         in the -fstrict-aliasing documentation.
15816
15817 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15818
15819         PR middle-end/36594
15820         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
15821         the memory instead of the memory itself for the save area.
15822
15823 2008-06-24  Olivier Hainque  <hainque@adacore.com>
15824             Nicolas Roche  <roche@adacore.com>
15825
15826         * gengtype.c (srcdir_len): size_t instead of int.
15827         (get_file_realbasename): New function.  For F a filename, the real
15828         basename of F, with all the path components stripped.
15829         (get_file_srcdir_relative_path): New function.  For F a filename, the
15830         relative path to F from $(srcdir).
15831         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
15832         get_file_realbasename.  Adjust the head comment.
15833         (get_prefix_langdir_index): New function. For F a filename, return the
15834         lang_dir_names[] relative index of the language directory that is
15835         a prefix in F.
15836         (get_file_langdir): For F a filename, return the name of the language
15837         directory where F is located.
15838         (get_file_gtfilename): New function. The gt- output file name for an
15839         input filename F.
15840         (get_output_file_with_visibility): Replace in-line computations with
15841         uses of get_file_gtfilename and get_prefix_langdir_index.
15842         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
15843
15844 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
15845
15846         PR tree-optimization/36504
15847         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
15848         references without base address.
15849
15850 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15851
15852         PR middle-end/36584
15853         * calls.c (expand_call): Increase alignment for recursive functions.
15854
15855 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
15856
15857         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
15858         (TARGET_FUNCTION_VALUE): New define.
15859         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
15860         * config/avr/avr.h (FUNCTION_VALUE): Remove.
15861
15862 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15863
15864         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
15865         (fmod<mode>3): Ditto.
15866         (remainderxf3): Ditto.
15867         (remainder<mode>3): Ditto.
15868
15869 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
15870
15871         PR target/36533
15872         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
15873         REG is a hard register.
15874
15875         PR tree-optimization/36508
15876         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
15877         499, don't check it at all in release compilers.
15878
15879 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15880
15881         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
15882         together with SSE_TARGET_MATH to disable insn pattern.
15883         (*fop_<MODEF:mode>_2_i387): Ditto.
15884         (*fop_<MODEF:mode>_3_i387): Ditto.
15885
15886 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
15887
15888         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
15889
15890 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15891
15892         PR middle-end/34906
15893         * gimplify.c (gimplify_asm_expr): Check the return code of
15894         parse_output_constraint call, set function return and is_inout
15895         value if it failed.
15896
15897 2008-06-22  Ian Lance Taylor  <iant@google.com>
15898
15899         * c-lex.c (narrowest_unsigned_type): Change itk to int.
15900         (narrowest_signed_type): Likewise.
15901         * c-typeck.c (c_common_type): Change local variable mclass to enum
15902         mode_class, twice.
15903         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
15904         tcc_comparison, not the tree code itself.
15905         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
15906         (c_expand_expr): Cast modifier to enum expand_modifier.
15907         * c-common.h (C_RID_CODE): Add casts.
15908         (C_SET_RID_CODE): Define.
15909         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
15910         (c_lex_one_token): Add cast to avoid warning.
15911         (c_parser_objc_type_name): Rename local typename to type_name.
15912         (check_no_duplicate_clause): Change code parameter to enum
15913         omp_clause_code.
15914         (c_parser_omp_var_list_parens): Change kind parameter to enum
15915         omp_clause_code.
15916         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
15917         c_parser_omp_list_var_parens.
15918         (c_parser_omp_threadprivate): Likewise.
15919         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
15920         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
15921         * c-format.c (NO_FMT): Define.
15922         (printf_length_specs): Use NO_FMT.
15923         (asm_fprintf_length_specs): Likewise.
15924         (gcc_diag_length_specs): Likewise.
15925         (scanf_length_specs): Likewise.
15926         (strfmon_length_specs): Likewise.
15927         (gcc_gfc_length_specs): Likewise.
15928         (printf_flag_specs): Change 0 to STD_C89.
15929         (asm_fprintf_flag_specs): Likewise.
15930         (gcc_diag_flag_specs): Likewise.
15931         (gcc_cxxdiag_flag_specs): Likewise.
15932         (scanf_flag_specs): Likewise.
15933         (strftime_flag_specs): Likewise.
15934         (strfmon_flag_specs): Likewise.
15935         (print_char_table): Likewise.
15936         (asm_fprintf_char_table): Likewise.
15937         (gcc_diag_char_table): Likewise.
15938         (gcc_tdiag_char_table): Likewise.
15939         (gcc_cdiag_char_table): Likewise.
15940         (gcc_cxxdiag_char_table): Likewise.
15941         (gcc_gfc_char_table): Likewise.
15942         (scan_char_table): Likewise.
15943         (time_char_table): Likewis.
15944         (monetary_char_table): Likewise.
15945         * c-format.h (BADLEN): Likewise.
15946
15947 2008-06-21  Ian Lance Taylor  <iant@google.com>
15948
15949         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
15950         Define END_OF_BASE_TREE_CODES around inclusion.
15951         * tree.c (tree_code_type): New global array.
15952         (tree_code_length, tree_code_name): Likewise.
15953         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
15954         $(lang_tree_files).
15955         (all-tree.def, s-alltree): New targets.
15956         (gencheck.h, s-gencheck): Remove.
15957         (tree.o): Depend upon all-tree.def.
15958         (build/gencheck.o): Remove gencheck.h dependency.
15959         (mostlyclean): Don't remove gencheck.h.
15960         * c-common.h (enum c_tree_code): Remove.
15961         * c-lang.c (tree_code_type): Remove.
15962         (tree_code_length, tree_code_name): Remove.
15963         * gencheck.c (tree_codes): Include all-tree.def, rather than
15964         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
15965         after it is used.
15966         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
15967         than tree.def.
15968         * cp/cp-tree.h (enum cplus_tree_code): Remove.
15969         (operator_name_info): Size to MAX_TREE_CODES.
15970         (assignment_operator_name_info): Likewise.
15971         * cp/cp-lang.c (tree_code_type): Remove.
15972         (tree_code_length, tree_code_name): Remove.
15973         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
15974         (assignment_operator_name_info): Likewise.
15975         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
15976         MAX_TREE_CODES.
15977         * cp/mangle.c (write_expression): Likewise.
15978         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
15979         * fortran/f95-lang.c (tree_code_type): Remove.
15980         (tree_code_length, tree_code_name): Remove.
15981         * java/java-tree.h (enum java_tree_code): Remove.
15982         * java/lang.c (tree_code_type): Remove.
15983         (tree_code_length, tree_code_name): Remove.
15984         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
15985         * objc/objc-act.h (enum objc_tree_code): Remove.
15986         * objc/objc-lang.c (tree_code_type): Remove.
15987         (tree_code_length, tree_code_name): Remove.
15988         * objcp/objcp-lang.c (tree_code_type): Remove.
15989         (tree_code_length, tree_code_name): Remove.
15990         * ada/ada-tree.h (enum gnat_tree_code): Remove.
15991         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
15992         * ada/misc.c (tree_code_type): Remove.
15993         (tree_code_length, tree_code_name): Remove.
15994
15995 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
15996
15997         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
15998         the grand_bitmap_obstack.
15999
16000 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16001
16002         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
16003         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
16004         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
16005         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
16006         move_stmt_r, new_label_mapper): Likewise.
16007         * tree-complex.c (cvc_lookup): Likewise.
16008         * tree-dfa.c (create_function_ann): Likewise.
16009         * tree-dump.c (dump_register): Likewise.
16010         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
16011         find_phi_replacement_condition): Likewise.
16012         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
16013         tree_function_versioning): Likewise.
16014         * tree-into-ssa.c (cmp_dfsnum): Likewise.
16015         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
16016         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
16017         get_nonlocal_debug_decl, convert_nonlocal_reference,
16018         convert_nonlocal_omp_clauses, get_local_debug_decl,
16019         convert_local_reference, convert_local_omp_clauses,
16020         convert_nl_goto_reference, convert_nl_goto_receiver,
16021         convert_tramp_reference, convert_call_expr): Likewise.
16022         * tree-outof-ssa.c (contains_tree_r): Likewise.
16023         * tree-parloops.c (reduction_phi, initialize_reductions,
16024         eliminate_local_variables_1, add_field_for_reduction,
16025         add_field_for_name, create_phi_for_local_result,
16026         create_call_for_reduction_1, create_loads_for_reductions,
16027         create_stores_for_reduction, create_loads_and_stores_for_name):
16028         Likewise.
16029         * tree-phinodes.c (allocate_phi_node): Likewise.
16030         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
16031         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
16032         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
16033         * tree-ssa-coalesce.c (compare_pairs): Likewise.
16034         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
16035         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
16036         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
16037         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
16038         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
16039         vn_nary_op_insert): Likewise.
16040         * tree-ssa.c (redirect_edge_var_map_add,
16041         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
16042         * tree-vectorizer.c (vectorize_loops): Likewise.
16043         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
16044         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
16045         tree_cons_stat, build1_stat, build_variant_type_copy,
16046         decl_init_priority_lookup, decl_fini_priority_lookup,
16047         decl_priority_info, decl_restrict_base_lookup,
16048         decl_restrict_base_insert, decl_debug_expr_lookup,
16049         decl_debug_expr_insert, decl_value_expr_lookup,
16050         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
16051         type_hash_add, get_file_function_name, tree_check_failed,
16052         tree_not_check_failed, tree_range_check_failed,
16053         omp_clause_range_check_failed, build_omp_clause,
16054         build_vl_exp_stat): Likewise.
16055         * value-prof.c (gimple_histogram_value,
16056         gimple_duplicate_stmt_histograms): Likewise.
16057         * var-tracking.c (attrs_list_insert, attrs_list_copy,
16058         unshare_variable, variable_union_info_cmp_pos, variable_union,
16059         dataflow_set_different_1, dataflow_set_different_2,
16060         vt_find_locations, variable_was_changed, set_variable_part,
16061         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
16062         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
16063         section_entry_hash, object_block_entry_eq,
16064         object_block_entry_hash, create_block_symbol,
16065         initialize_cold_section_name, default_function_rodata_section,
16066         strip_reg_name, set_user_assembler_name, const_desc_eq,
16067         build_constant_desc, output_constant_def, lookup_constant_def,
16068         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
16069         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
16070         default_internal_label): Likewise.
16071         * varray.c (varray_init, varray_grow): Likewise.
16072         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
16073
16074 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
16075
16076         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
16077         operators for "test" insn.  Macroize insn using SWI mode macro.
16078         (*jcc_fused_2): Ditto.
16079         (*jcc_fused_3): Macroize insn using SWI mode macro.
16080         (*jcc_fused_4): Ditto.
16081
16082 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
16083
16084         * tree-ssa-pre.c: Fix typo in comment.
16085         (init_antic, fini_antic): Add explicit funtions for
16086         initializing and deinitializing ANTIC and AVAIL sets.
16087         (create_expression_by_pieces): Fix typo in comment.
16088         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
16089         (execute_pre): Eventually dump details about ANTIC_IN.
16090
16091 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16092
16093         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
16094         * gcc.c (translate_options, init_spec, store_arg, read_specs,
16095         add_to_obstack, file_at_path, find_a_file, execute,
16096         add_preprocessor_option, add_assembler_option, add_linker_option,
16097         process_command, insert_wrapper, do_option_spec, do_self_spec,
16098         spec_path, do_spec_1, is_directory, main, used_arg,
16099         getenv_spec_function): Likewise.
16100         * tlink.c (symbol_hash_lookup, file_hash_lookup,
16101         demangled_hash_lookup, symbol_push, file_push, frob_extension):
16102         Likewise.
16103
16104 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
16105
16106         * doc/rtl.texi: Updated subreg section.
16107
16108 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
16109
16110         PR c++/36523
16111         * cgraphunit.c (cgraph_process_new_functions): Don't clear
16112         node->needed and node->reachable.
16113         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
16114         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
16115         (expand_task_call): Don't call expand_task_copyfn.
16116         (expand_task_copyfn): Renamed to...
16117         (finalize_task_copyfn): ... this.
16118
16119 2008-06-19  Jan Hubicka  <jh@suse.cz>
16120
16121         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
16122         clobbering framepointer.
16123
16124 2008-06-19  Jan Hubicka  <jh@suse.cz>
16125
16126         * tree-optimize.c (execute_early_local_optimizations): Set
16127         cgraph_state only at first invocation.
16128
16129 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16130
16131         * system.h (-Wc++-compat): Activate as a warning, no an error.
16132
16133 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
16134
16135         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
16136         instead of "#" in insn asm template.
16137         (*jcc_fused_2): Ditto.
16138
16139 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
16140
16141         * config/i386/i386.h (ix86_tune_indices)
16142         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
16143         (TARGET_FUSE_CMP_AND_BRANCH): New define.
16144         * config/i386/i386.md (*jcc_fused_1): New insn pattern
16145         (*jcc_fused_2): Ditto.
16146         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
16147         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
16148         (print operand): Handle 'E' and 'e' code.
16149
16150 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
16151
16152         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
16153         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16154         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
16155
16156 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
16157
16158         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
16159         node->decl.
16160         (cgraph_expand_function): Use local copy of decl.
16161         (cgraph_expand_all_functions): Remove redundant initialization of
16162         order_pos.
16163         (cgraph_optimize): Reword internal_error message.
16164
16165 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
16166
16167         * arm-protos.h (arm_return_in_memory): Remove public
16168         arm_return_in_memory() prototype.
16169         * arm.c (arm_return_in_memory): Add static prototype, add target
16170         hook macro, change definition and comments.
16171         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
16172
16173 2008-06-19  Ben Elliston  <bje@au.ibm.com>
16174
16175         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
16176         real.c: Remove references to IEEE 754R.
16177         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
16178         * doc/libgcc.texi (Decimal float library routines): Likewise.
16179
16180 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16181
16182         * targhooks.h (struct gcc_target): New member unwind_word_mode.
16183         (default_unwind_word_mode): Add prototype.
16184         * targhooks.c (default_unwind_word_mode): New function.
16185         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
16186         instead of word_mode.
16187         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
16188         (TARGET_INITIALIZER): Use it.
16189
16190         * c-common.c (handle_mode_attribute): Support "unwind_word"
16191         mode attribute.
16192         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
16193
16194         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
16195         word_mode to access SjLj_Function_Context member "data".
16196         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
16197         conversion from targetm.eh_return_filter_mode () to
16198         targetm.unwind_word_mode () if they differ.
16199
16200         * builtin-types.def (BT_UNWINDWORD): New primitive type.
16201         (BT_FN_UNWINDWORD_PTR): New function type.
16202         (BT_FN_WORD_PTR): Remove.
16203         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
16204         * except.c (expand_builtin_extend_pointer): Convert pointer to
16205         targetm.unwind_word_mode () instead of word_mode.
16206
16207         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
16208         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
16209         (spu_unwind_word_mode): New function.
16210         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
16211         (TARGET_UNWIND_WORD_MODE): Define.
16212         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
16213
16214 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16215
16216         * config/spu/spu.c (reg_align): Remove.
16217         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
16218         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
16219         (spu_split_store): Likewise.
16220
16221 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
16222
16223         * gcc/tree-vn.c: Fix typo in comment.
16224
16225 2008-06-18  Jan Hubicka  <jh@suse.cz>
16226
16227         * cgraphunit.c (cgraph_optimize): Output debug info when doing
16228         toplevel reorder too.
16229
16230 2008-06-18  Jan Hubicka  <jh@suse.cz>
16231
16232         * c-opts.c (c_common_post_options): PCH is not compatible with
16233         no-unit-at-a-time.
16234         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
16235         -fno-toplevel-reorder by default now.
16236
16237 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16238
16239         PR documentation/30739
16240         * doc/install.texi (Prerequisites): Document dependency on awk.
16241
16242 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
16243             Ian Lance Taylor  <iant@google.com>
16244
16245         PR rtl-optimization/35604
16246         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
16247         only want to change jump destinations, not eventual label comparisons.
16248
16249 2008-06-16  Jan Hubicka  <jh@suse.cz>
16250
16251         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
16252         syntax errors.
16253         (cgraph_analyze_function): Likewise.
16254
16255 2008-06-16  Jan Hubicka  <jh@suse.cz>
16256
16257         * cgraph.h (cgraph_mark_if_needed): New function.
16258         * cgraphunit.c (cgraph_mark_if_needed): New function.
16259         * c-decl.c (duplicate_decl): Use it.
16260
16261 2008-06-16  Jan Hubicka  <jh@suse.cz>
16262
16263         * cgraph.c (cgraph_add_new_function): When in expansion state, do
16264         lowering.
16265
16266 2008-06-16  Jan Hubicka  <jh@suse.cz>
16267
16268         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
16269
16270 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
16271             Kazu Hirata  <kazu@codesourcery.com>
16272             Maxim Kuvyrkov  <maxim@codesourcery.com
16273
16274         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
16275         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
16276         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
16277         EXTRA_SPEC_FUNCTIONS.
16278         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
16279         (DRIVER_SELF_SPECS): Adjust.
16280         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
16281         * config/mips/st.h, config/mips/t-st: New.
16282         * config/mips/driver-native.c, config/mips/x-native: New.
16283         * doc/invoke.texi (MIPS): Document 'native' value for -march and
16284         -mtune options.
16285
16286 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16287
16288         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
16289         from it.
16290         (ISA_HAS_FP_CONDMOVE): New macro.
16291         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
16292         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
16293         (ISA_HAS_NMADD3_NMSUB3): New macro.
16294         * config/mips/mips.c (mips_rtx_costs): Update.
16295         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
16296         compiling for ST Loongson 2E/2F.
16297         (madd<mode>): Rename to madd4<mode>.  Update.
16298         (madd3<mode>): New pattern.
16299         (msub<mode>): Rename to msub4<mode>.  Update.
16300         (msub3<mode>): New pattern.
16301         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
16302         (nmadd3<mode>): New pattern.
16303         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
16304         (nmadd3<mode>_fastmath): New pattern.
16305         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
16306         (nmsub3<mode>): New pattern.
16307         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
16308         (nmsub3<mode>_fastmath): New pattern.
16309         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
16310
16311 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
16312
16313         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
16314         (DF_REF_INSN_INFO): New.
16315         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
16316         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
16317         with a NULL DF_REF_INSN_INFO.
16318         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
16319         DF_INSN_SET.
16320         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
16321         DF_INSN_INFO_EQ_USES): New.
16322         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
16323         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
16324         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
16325         * df-core.c: Update comment for above changes.
16326         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
16327         DF_INSN_UID_* macros.
16328         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
16329         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
16330         insn rtx.  Update all callers.
16331         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
16332         df_ref_create_structure, df_insn_refs_collect): Likewise.
16333         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
16334         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
16335         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
16336         macros to access the insn refs.
16337         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
16338         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
16339         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
16340         for accessing the refs.
16341         (try_fwprop_subst): Likewise.
16342         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
16343         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
16344         for accessing the refs.
16345         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
16346         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
16347         to look at the insn refs.
16348         (record_uses): Likewise.
16349         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
16350         function anymore.
16351         (mark_artificial_uses): Don't mark_insn for artificial refs.
16352         (mark_reg_rependencies): Likewise.
16353
16354         * doc/rtl.texi: Remove documentation of ADDRESSOF.
16355
16356 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16357
16358         * configure: Regenerate.
16359
16360 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
16361
16362         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
16363         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16364         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16365
16366 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
16367
16368         * config/avr/avr.c (avr_mcu_t): Add attiny167.
16369         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16370         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16371
16372 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
16373
16374         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
16375         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16376         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16377
16378 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
16379
16380         * tree-ssa-sccvn.c: Fix format of comments.
16381
16382 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
16383
16384         * cgraph.c: Remove unneeded forward declarations of eq_node()
16385         and hash_node().
16386
16387 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
16388
16389         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
16390         REG_RETVAL notes.
16391         (see_update_relevancy): Likewise.
16392         * fwprop.c (try_fwprop_subst): Likewise.
16393         * rtlanal.c (noop_move_p): Likewise.
16394         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
16395         notes to non-existing libcall blocks.
16396         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
16397         Remove orig_set.
16398         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
16399         (dead_libcall_p): Remove.
16400         (delete_trivially_dead_insns): Don't use it.
16401         * web.c (union_defs): Remove comment about keeping nops.
16402         * gcse.c (hash_scan_insn): Don't take libcall pointers.
16403         (compute_hash_table_work): Don't track libcall notes.
16404         (do_local_cprop): Don't take libcall pointers.  Don't update
16405         libcall notes.
16406         (adjust_libcall_notes): Deleted.
16407         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
16408         ever have existed in the first place).
16409         (replace_store_insn): Don't try to remove libcall notes.
16410         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
16411         (resolve_reg_notes): Don't call them.
16412         (resolve_simple_move): Likewise.
16413         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
16414         Don't remove REG_RETVAL notes.
16415         * emit-rtl.c (try_split): Don't update libcall notes.
16416         (emit_copy_of_insn_after): Dito.
16417         * cselib.c (cselib_current_insn_in_libcall): Remove.
16418         (cselib_process_insn): Don't set/clear it.
16419         (new_elt_loc_list): Don't record it.
16420         (cselib_init): Don't initialize it.
16421         * cselib.c (struct elt_loc_list): Remove in_libcall field.
16422         * loop-invariant.c (find_invariant_insn): Don't look for libcall
16423         notes.
16424         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
16425         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
16426         (init_deps): Don't initialize it.
16427         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
16428         * combine.c (delete_noop_moves): Don't update libcall notes.
16429         (can_combine_p): Remove now pointless #if 0 block.
16430         (try_combine): Remove another obsolete #if 0 block.
16431         (distribute_notes): Don't distribute libcall notes.
16432         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
16433         * dce.c (libcall_dead_p): Remove.
16434         (delete_unmarked_insns): Don't handle libcall blocks.
16435         (preserve_libcall_for_dce): Remove.
16436         (prescan_insns_for_dce): Don't special-case libcall block insns.
16437         * reload1 (reload): Don't handle libcall notes.
16438         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
16439         documentation.
16440
16441 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
16442
16443         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
16444         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16445         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16446
16447 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
16448
16449         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
16450         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16451         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16452
16453 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16454
16455         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
16456
16457 2008-06-16  Ira Rosen  <irar@il.ibm.com>
16458
16459         PR tree-optimization/36493
16460         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
16461         the arguments list. Use VECTYPE to create vector pointer.
16462         (vectorizable_store): Fail if accesses through a pointer to vectype
16463         do not alias the original memory reference operands.
16464         Call vect_create_data_ref_ptr without the removed argument.
16465         (vectorizable_load): Likewise.
16466         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
16467         removed argument.
16468
16469 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
16470
16471         PR target/36336
16472         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
16473         reg_equiv_constant.
16474
16475 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
16476
16477         * config/mips/loongson2ef.md: New file.
16478         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
16479         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
16480         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
16481         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
16482         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
16483         and loongson_2f.
16484         (loongson2ef.md): New include.
16485         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
16486         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
16487         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
16488         (loongson_gt_<mode>, loongson_extract_halfword)
16489         (loongson_insert_halfword_0, loongson_insert_halfword_2)
16490         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
16491         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
16492         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
16493         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
16494         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
16495         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
16496         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
16497         (vec_interleave_low<mode>): Define type attribute.
16498         * config/mips/mips.c (mips_ls2): New static variable.
16499         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
16500         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
16501         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
16502         Implement target scheduling hooks.
16503         (mips_multipass_dfa_lookahead): Update to handle tuning for
16504         Loongson 2E/2F.
16505         (mips_sched_init): Initialize data for Loongson scheduling.
16506         (mips_ls2_variable_issue): New static function.
16507         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
16508         Add sanity check.
16509         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
16510         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
16511         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
16512         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
16513         Handle ST Loongson 2E/2F cores.
16514         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
16515
16516 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16517
16518         * omp-low.c (extract_omp_for_data): Fix comment typo.
16519         * c.opt: Fix typo.
16520
16521 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16522
16523         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
16524         FIXME note about gcc/config.guess.
16525         * doc/options.texi (Option file format): Remove non-ASCII bytes.
16526         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
16527         * doc/cppopts.texi: Likewise.
16528         * doc/extend.texi: Likewise.
16529         * doc/gcc.texi: Likewise.
16530         * doc/gccint.texi: Likewise.
16531         * doc/gcov.texi: Likewise.
16532         * doc/gty.texi: Likewise.
16533         * doc/hostconfig.texi: Likewise.
16534         * doc/install.texi: Likewise.
16535         * doc/invoke.texi: Likewise.
16536         * doc/loop.texi: Likewise.
16537         * doc/makefile.texi: Likewise.
16538         * doc/md.texi: Likewise.
16539         * doc/passes.texi: Likewise.
16540         * doc/tm.texi: Likewise.
16541         * doc/tree-ssa.texi: Likewise.
16542         * doc/trouble.texi: Likewise.
16543
16544 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
16545             Nathan Sidwell  <nathan@codesourcery.com>
16546             Maxim Kuvyrkov  <maxim@codesourcery.com>
16547             Richard Sandiford  <rdsandiford@googlemail.com>
16548
16549         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
16550         * config/mips/mips-protos.h (mips_expand_vector_init): New.
16551         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
16552         builtins.
16553         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
16554         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
16555         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
16556         V8QImode cases.
16557         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
16558         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
16559         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
16560         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
16561         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
16562         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
16563         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
16564         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
16565         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
16566         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
16567         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
16568         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
16569         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
16570         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
16571         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
16572         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
16573         (mips_builtins): Add Loongson builtins.
16574         (mips_loongson_2ef_bdesc): New.
16575         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
16576         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
16577         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
16578         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
16579         New.
16580         (mips_expand_vector_init): New.
16581         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
16582         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
16583         if appropriate.
16584         * config/mips/mips.md: Add unspec numbers for Loongson
16585         builtins.  Include loongson.md.
16586         (MOVE64): Include Loongson vector modes.
16587         (SPLITF): Include Loongson vector modes.
16588         (HALFMODE): Handle Loongson vector modes.
16589         * config/mips/loongson.md: New.
16590         * config/mips/loongson.h: New.
16591         * config.gcc: Add loongson.h header for mips*-*-* targets.
16592         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
16593
16594 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
16595
16596         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
16597         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
16598         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
16599         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
16600         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
16601         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
16602         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
16603         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
16604         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
16605         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
16606         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
16607         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
16608         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
16609         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
16610         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
16611         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
16612         Remove use_fixproto=yes.
16613         (ia64*-*-hpux*): Remove comment about using fixproto.
16614         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
16615
16616 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16617
16618         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
16619         library rebuilds.
16620         * configure: Regenerate.
16621
16622 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
16623
16624         PR middle-end/36520
16625         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
16626         before evaluating it.
16627
16628 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
16629
16630         PR c/36507
16631         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
16632         nested inline functions.
16633         (start_decl, start_function): Don't invert DECL_EXTERNAL
16634         for nested inline functions.
16635
16636 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
16637
16638         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
16639         splits that must be made for correctness.
16640
16641 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
16642
16643         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
16644         (AVAIL_NON_MIPS16): Likewise.
16645         (mips_builtin_description): Replace target_flags with a predicate.
16646         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
16647         (dspr2_32): New availability predicates.
16648         (MIPS_BUILTIN): New macro.
16649         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
16650         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
16651         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
16652         Replace the TARGET_FLAGS parameters with AVAIL parameters.
16653         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
16654         (mips_dsp_32only_bdesc): Merge into...
16655         (mips_builtins): ...this new array.
16656         (mips_bdesc_map, mips_bdesc_arrays): Delete.
16657         (mips_init_builtins): Update after above changes.
16658         (mips_expand_builtin_1): Merge into...
16659         (mips_expand_builtin): ...here and update after above changes.
16660
16661 2008-06-12  Paul Brook  <paul@codesourcery.com>
16662
16663         * longlong.h (__arm__): Define count_leading_zeros.
16664         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
16665         (clzsi2, clzdi2): New functions.
16666         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
16667         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
16668         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
16669         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
16670         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
16671         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
16672         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
16673         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
16674         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
16675         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
16676
16677 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
16678
16679         * config/m68k/m68k.c (m68k_tune_flags): New.
16680         (override_options): Compute m68k_tune_flags.
16681         (MULL_COST, MULW_COST): Update for various variants of CFV2.
16682         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
16683
16684 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
16685
16686         PR middle-end/36506
16687         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
16688
16689 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16690
16691         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
16692         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
16693
16694 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16695
16696         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
16697         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
16698
16699 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
16700
16701         PR middle-end/36506
16702         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
16703         reductions.
16704
16705 2008-06-12  Richard Guenther  <rguenther@suse.de>
16706
16707         PR tree-optimization/36345
16708         * tree-flow.h (struct ptr_info_def): Align escape_mask,
16709         add memory_tag_needed flag.
16710         (may_alias_p): Declare.
16711         * tree-ssa-alias.c (may_alias_p): Export.
16712         (set_initial_properties): Use memory_tag_needed flag.
16713         (update_reference_counts): Likewise.
16714         (reset_alias_info): Reset memory_tag_needed flag.
16715         (create_name_tags): Check memory_tag_needed flag.
16716         (dump_points_to_info_for): Dump it.
16717         * tree-ssa-structalias.c (struct variable_info): Remove
16718         directly_dereferenced flag.
16719         (new_var_info): Do not initialize it.
16720         (process_constraint_1): Do not set it.
16721         (update_alias_info): Set is_dereferenced flag.
16722         (set_uids_in_ptset): Use may_alias_p.
16723         (set_used_smts): Check memory_tag_needed flag.
16724         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
16725         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
16726         memory_tag_needed flag.
16727         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
16728         from broken design.
16729
16730 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
16731
16732         * config/i386/i386.c (ix86_compute_frame_layout): Disable
16733         red zone for w64 abi.
16734         (ix86_expand_prologue): Likewise.
16735         (ix86_force_to_memory): Likewise.
16736         (ix86_free_from_memory): Likewise.
16737
16738 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
16739
16740         PR target/36425
16741         * config/rs6000/rs6000.c (rs6000_override_options): Set
16742         rs6000_isel conditionally to the absence of comand line override.
16743         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16744         Remove duplicate rs6000_isel setting.
16745         * config/rs6000/eabispe.h: Ditto.
16746
16747 2008-06-11  Richard Guenther  <rguenther@suse.de>
16748
16749         * alias.c (get_alias_set): Use the element alias-set for arrays.
16750         (record_component_aliases): For arrays and vectors do nothing.
16751         * c-common.c (strict_aliasing_warning): Handle the cases
16752         of alias set zero explicitly.
16753         * Makefile.in (dfp.o-warn): Add -Wno-error.
16754
16755 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
16756
16757         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
16758         tune_32 tune_64.
16759         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
16760         tune_32 tune_64 to supported_defaults.  Allow values not
16761         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
16762         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
16763         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
16764         with_cpu_64 to generic for 64-bit-supporting configurations, not
16765         with_cpu.  Remove FIXMEs.
16766         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
16767         --with-arch-64, --with-tune-32, --with-tune-64): Document.
16768         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
16769         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
16770         arch_32 and arch_64.
16771
16772 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
16773             Olivier Hainque  <hainque@adacore.com>
16774
16775         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
16776         Use DECL_SIZE_UNIT to retrieve the size of the field.
16777
16778 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
16779
16780         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
16781         with function calls after declarations.  Lay out
16782         neon_float_type_node before further use.
16783
16784 2008-06-11  Richard Guenther  <rguenther@suse.de>
16785
16786         * tree-flow.h (may_point_to_global_var): Declare.
16787         * tree-ssa-alias.c (may_point_to_global_var): New function.
16788         * tree-ssa-sink.c (is_hidden_global_store): Use it.
16789
16790 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
16791
16792         * configure.ac: Teach that fido supports .debug_line.
16793         * configure: Regenerate.
16794
16795 2008-06-10  Tom Tromey  <tromey@redhat.com>
16796
16797         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
16798         debug hook.
16799
16800 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
16801
16802         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
16803         (encode_decimal64, decode_decimal64, encode_decimal128,
16804         decode_decimal128): Reverse order of 32-bit parts of value if host
16805         and target endianness differ.
16806
16807 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
16808
16809         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
16810         Avoid division by 0.
16811         (tree_mod_pow2_value_transform): Likewise.
16812         (tree_ic_transform): Likewise.
16813         (tree_stringops_transform): Likewise.
16814         (tree_mod_subtract_transform): Likewise.
16815         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
16816         (copy_edges_for_bb): Likewise.
16817         (initialize_cfun): Likewise.
16818
16819 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
16820
16821         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
16822         nonmemory_operand. Add "N" operand constraint.
16823         (*btsi): Ditto.
16824         (*jcc_btdi_mask_rex64): New instruction and split pattern.
16825         (*jcc_btsi_mask): Ditto.
16826         (*jcc_btsi_mask_1): Ditto.
16827
16828 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
16829
16830         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
16831         TYPE_CANONICAL for copied element type.
16832
16833 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
16834
16835         PR target/36473
16836         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
16837         Add m_CORE2 and m_GENERIC.
16838         * config/i386/predicates.md (bt_comparison_operator): New predicate.
16839         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
16840         (*btsi): Ditto.
16841         (*jcc_btdi_rex64): New instruction and split pattern.
16842         (*jcc_btsi): Ditto.
16843         (*jcc_btsi_1): Ditto.
16844         (*btsq): Fix Intel asm dialect operand order.
16845         (*btrq): Ditto.
16846         (*btcq): Ditto.
16847
16848 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
16849
16850         PR middle-end/36447
16851         * simplify-rtx.c (simplify_subreg): Add check for shift count
16852         greater than size.
16853
16854 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
16855
16856         * doc/md.texi: Synchronize with later constraints.md change.
16857         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
16858         with a C implementation.
16859         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
16860         MFLO handling.
16861         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
16862         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
16863         when moving to and from MD_REGNUM.
16864         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
16865         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
16866         Handle byte and halfword moves.
16867         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
16868         separately.
16869         * config/mips/constraints.md (h): Turn into NO_REGS.
16870         (l, x): Update documentation.
16871         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
16872         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
16873         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
16874         (HILO): New mode iterator.
16875         (MOVE128): Add TI.
16876         (any_div): New code iterator.
16877         (u): Extend code attribute to div and udiv.
16878         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
16879         d_operand in the splitters.  Remove redundant CONST_INT checks.
16880         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
16881         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
16882         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
16883         accordingly, using normal moves instead of unspecs to move LO into
16884         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
16885         (<u>mulsidi3): Handle expansion in C code.
16886         (<u>mulsidi3_32bit_internal): Rename to...
16887         (<u>mulsidi3_32bit): ...this.
16888         (<u>mulsidi3_32bit_r4000): Fix insn separator.
16889         (*<u>mulsidi3_64bit): Rename to...
16890         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
16891         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
16892         to set LO and HI to the multiplication result.  Use a normal move
16893         for MFLO and an unspec for MFHI.
16894         (*<u>mulsidi3_64bit_parts): Replace with...
16895         (<u>mulsidi3_64bit_hilo): ...this new instruction.
16896         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
16897         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
16898         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
16899         instead of HI.  Split the instruction into a separate multiplication
16900         and MFHI if !TARGET_FIX_R4000.
16901         (<su>muldi3_highpart): Likewise.
16902         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
16903         and the "=h" clobber.
16904         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
16905         (<u>mulditi3): New expander.
16906         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
16907         (madsi): Remove "=h" clobber.
16908         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
16909         Force the modulus result to be a GPR and split the instruction into
16910         a division followed by an MFHI after reload.
16911         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
16912         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
16913         the MIPS16 HIGH define_split.
16914         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
16915         of acc<->gpr moves to "multi".
16916         (*movdi_64bit): Replace the single "x" alternative with
16917         alternatives for moving into and out of "a".
16918         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
16919         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
16920         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
16921         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
16922         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
16923         (movti): New expander.
16924         (*movti, *movti_mips16): New insns.
16925         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
16926         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
16927         (mthi<GPR:mode>_<HILO:mode>): Likewise.
16928         * config/mips/predicates.md (fpr_operand): Delete.
16929         (d_operand): New predicate.
16930
16931 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
16932
16933         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
16934         failure on some Bourne shells.
16935         (x86_64-*-*): Ditto.
16936
16937 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
16938
16939         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
16940
16941 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16942
16943         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
16944         (sparc-sun-solaris2*): Likewise.
16945
16946 2008-06-09  Arnaud Charlet  <charlet@adacore.com
16947
16948         * doc/install.texi: Update requirements to build the Ada compiler.
16949
16950 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
16951
16952         * df-scan.c (struct df_scan_problem_data): Remove the
16953         mw_link_pool alloc pool.
16954         (df_scan_free_internal): Don't free it.
16955         (df_scan_alloc): Don't allocate it.
16956         * df.h (struct df_link): Update comment.
16957
16958 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
16959
16960         * except.h: Correct checks for when SJLJ exceptions must be used.
16961
16962 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16963
16964         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
16965         default.
16966
16967 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
16968
16969         PR tree-optimization/36218
16970         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
16971         configure for the build system.
16972         (BUILD_LDFLAGS): Define.
16973         * configure: Regenerate.
16974         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
16975
16976 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
16977
16978         PR target/36424
16979         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
16980         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
16981         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
16982
16983 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
16984
16985         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
16986
16987 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
16988
16989         * config.gcc (Obsolete configurations): Remove list of
16990         configurations.
16991         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
16992         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
16993         targets matched by those patterns.
16994         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
16995         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
16996         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
16997         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
16998         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
16999         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
17000         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
17001         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
17002         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
17003         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
17004         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
17005         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
17006         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
17007         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
17008         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
17009         Make code for Solaris 7 and greater unconditional for Solaris.
17010         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
17011         Remove --with-* handling.
17012         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
17013         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
17014         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
17015         LINK_OS_WINDISS_SPEC): Remove.
17016         * config/rs6000/sysv4.opt (mwindiss): Remove.
17017         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
17018         * configure: Regenerate.
17019         * doc/cpp.texi: Don't mention BeOS.
17020         * doc/extend.texi (interrupt): Don't mention MS1.
17021         * doc/install.texi (i386-@var{any}-sysv, m68k-bull-sysv,
17022         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
17023         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
17024         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
17025         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
17026         Remove.
17027         * doc/invoke.texi (MT Options): Remove.
17028         (-mwindiss): Remove.
17029         (CRIS Options): Remove cris-axis-aout references.
17030         (HPPA Options): Don't mention hppa1.1-*-pro.
17031         * doc/md.texi (MorphoTech family): Remove.
17032         * libgcc2.c: Don't handle UWIN.
17033         * config/alpha/t-unicosmk: Remove.
17034         * config/alpha/unicosmk.h: Remove.
17035         * config/arm/kaos-arm.h: Remove.
17036         * config/arm/kaos-strongarm.h: Remove.
17037         * config/arm/strongarm-coff.h: Remove.
17038         * config/arm/strongarm-elf.h: Remove.
17039         * config/arm/strongarm-pe.h: Remove.
17040         * config/arm/t-strongarm-pe: Remove.
17041         * config/arm/t-xscale-coff: Remove.
17042         * config/arm/t-xscale-elf: Remove.
17043         * config/arm/xscale-coff.h: Remove.
17044         * config/arm/xscale-elf.h: Remove.
17045         * config/chorus.h: Remove.
17046         * config/cris/aout.h: Remove.
17047         * config/cris/aout.opt: Remove.
17048         * config/cris/t-aout: Remove.
17049         * config/i386/beos-elf.h: Remove.
17050         * config/i386/kaos-i386.h: Remove.
17051         * config/i386/ptx4-i.h: Remove.
17052         * config/i386/sco5.h: Remove.
17053         * config/i386/sco5.opt: Remove.
17054         * config/i386/sysv4-cpp.h: Remove.
17055         * config/i386/sysv5.h: Remove.
17056         * config/i386/t-beos: Remove.
17057         * config/i386/t-sco5: Remove.
17058         * config/i386/t-uwin: Remove.
17059         * config/i386/uwin.asm: Remove.
17060         * config/i386/uwin.h: Remove.
17061         * config/kaos.h: Remove.
17062         * config/mips/windiss.h: Remove.
17063         * config/mt: Remove directory.
17064         * config/pa/pa-osf.h: Remove.
17065         * config/pa/pa-pro-end.h: Remove.
17066         * config/pa/t-pro: Remove.
17067         * config/ptx4.h: Remove.
17068         * config/rs6000/beos.h: Remove.
17069         * config/rs6000/kaos-ppc.h: Remove.
17070         * config/rs6000/t-beos: Remove.
17071         * config/rs6000/windiss.h: Remove.
17072         * config/sh/kaos-sh.h: Remove.
17073         * config/sol2-6.h: Remove.
17074         * config/sparc/sol26-sld.h: Remove.
17075         * config/sparc/sysv4-only.h: Remove.
17076         * config/vax/bsd.h: Remove.
17077         * config/vax/t-memfuncs: Remove.
17078         * config/vax/ultrix.h: Remove.
17079         * config/vax/vaxv.h: Remove.
17080         * config/windiss.h: Remove.
17081
17082 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
17083
17084         PR rtl-optimization/36438
17085         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
17086         for vector shifts with constant scalar shift operands.
17087
17088 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
17089
17090         * doc/invoke.texi: Document -march=xlr.
17091         * config/mips/xlr.md: New file.
17092         * config/mips/mips.md: Include it.
17093         (cpu): Add "xlr".
17094         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
17095         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
17096         (mips_rtx_cost_data): Likewise.
17097
17098 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
17099
17100         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
17101         PRE_INC and PRE_DEC cases.
17102
17103 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
17104
17105         PR rtl-optimization/36419
17106         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
17107         the emitting jump insn.
17108
17109         PR target/36362
17110         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
17111         is not bool, boolify the whole *expr_p and convert to the desired type.
17112
17113 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
17114
17115         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
17116         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
17117         Add omp_private_outer_ref hook, add another argument to
17118         omp_clause_default_ctor hook.
17119         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
17120         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
17121         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
17122         hook_tree_tree_tree_tree_null.
17123         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
17124         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
17125         * hooks.c (hook_tree_tree_tree_tree_null): New function.
17126         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
17127         * tree.def (OMP_TASK): New tree code.
17128         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
17129         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
17130         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
17131         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
17132         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
17133         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
17134         OMP_CLAUSE_COLLAPSE_EXPR): Define.
17135         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
17136         (OMP_DIRECTIVE_P): Add OMP_TASK.
17137         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
17138         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
17139         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
17140         and OMP_CLAUSE_UNTIED entries.
17141         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
17142         num_ops to 2.
17143         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17144         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
17145         * tree-pretty-print.c (dump_omp_clause): Handle
17146         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
17147         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
17148         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
17149         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
17150         warning about unsigned iterators.  Change decl/init/cond/incr
17151         arguments to TREE_VECs, check arguments for all collapsed loops.
17152         (c_finish_omp_taskwait): New function.
17153         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
17154         ws_clauses.
17155         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
17156         default_function_array_conversion on init.  Add par_clauses argument.
17157         If decl is present in parallel's lastprivate clause, change it to
17158         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
17159         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
17160         collapse count in clauses.
17161         (c_parser_omp_for, c_parser_omp_parallel): Adjust
17162         c_parser_omp_for_loop callers.
17163         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
17164         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
17165         (c_parser_omp_clause_name): Handle collapse and untied clauses.
17166         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
17167         functions.
17168         (c_parser_omp_clause_schedule): Handle schedule(auto).
17169         Include correct location in the error message.
17170         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
17171         and PRAGMA_OMP_CLAUSE_UNTIED.
17172         (OMP_TASK_CLAUSE_MASK): Define.
17173         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
17174         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
17175         * tree-nested.c (convert_nonlocal_omp_clauses,
17176         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
17177         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
17178         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17179         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
17180         OMP_CLAUSE_DECL.
17181         (conver_nonlocal_reference, convert_local_reference,
17182         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
17183         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
17184         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
17185         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
17186         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
17187         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
17188         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
17189         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
17190         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
17191         OMP_CLAUSE_UNTIED.
17192         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
17193         * c-common.h (c_finish_omp_taskwait): New prototype.
17194         * gimple-low.c (lower_stmt): Handle OMP_TASK.
17195         * tree-parloops.c (create_parallel_loop): Create 1 entry
17196         vectors for OMP_FOR_{INIT,COND,INCR}.
17197         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
17198         (make_edges): Handle OMP_TASK.
17199         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
17200         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17201         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
17202         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
17203         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
17204         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
17205         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
17206         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
17207         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
17208         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
17209         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
17210         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
17211         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
17212         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
17213         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
17214         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
17215         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
17216         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
17217         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
17218         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
17219         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
17220         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
17221         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
17222         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
17223         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
17224         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
17225         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
17226         original iterator is present in lastprivate clause or if
17227         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
17228         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17229         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
17230         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
17231         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
17232         if it is set, lookup var in outer contexts too.  Handle
17233         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
17234         to be implicitly determined firstprivate for task regions.
17235         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
17236         if it is set, lookup var in outer contexts too.  Set
17237         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
17238         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
17239         OMP_CLAUSE_UNTIED.  Take region_type as last argument
17240         instead of in_parallel and in_combined_parallel.
17241         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
17242         Adjust callers.
17243         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
17244         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
17245         (new_omp_context): Set default_kind to
17246         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
17247         (omp_region_type): New enum.
17248         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
17249         fields, add region_type.
17250         (new_omp_context): Take region_type as argument instead of is_parallel
17251         and is_combined_parallel.
17252         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
17253         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
17254         ctx->is_combined_parallel checks.
17255         (gimplify_omp_task): New function.
17256         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
17257         OMP_CLAUSE_UNTIED.
17258         * omp-low.c (extract_omp_for_data): Use schedule(static)
17259         for schedule(auto).  Handle pointer and unsigned iterators.
17260         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
17261         Add loops argument.  Extract data for collapsed OMP_FOR loops.
17262         (expand_parallel_call): Assert sched_kind isn't auto,
17263         map runtime schedule to index 3.
17264         (struct omp_for_data_loop): New type.
17265         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
17266         Add loop, loops, collapse and iter_type fields.
17267         (workshare_safe_to_combine_p): Disallow combined for if
17268         iter_type is unsigned long long.  Don't combine collapse > 1 loops
17269         unless all bounds and steps are constant.  Adjust extract_omp_for_data
17270         caller.
17271         (expand_omp_for_generic): Handle pointer, unsigned and long long
17272         iterators.  Handle collapsed OMP_FOR loops.  Adjust
17273         for struct omp_for_data changes.  If libgomp function doesn't return
17274         boolean_type_node, add comparison of the return value with 0.
17275         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
17276         pointer, unsigned and long long iterators.  Adjust for struct
17277         omp_for_data changes.
17278         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
17279         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
17280         unsigned long long.  Allocate loops array, pass it to
17281         extract_omp_for_data.  For collapse > 1 loops use always
17282         expand_omp_for_generic.
17283         (omp_context): Add sfield_map and srecord_type fields.
17284         (is_task_ctx, lookup_sfield): New functions.
17285         (use_pointer_for_field): Use is_task_ctx helper.  Change first
17286         argument's type from const_tree to tree.  Clarify comment.
17287         In OMP_TASK disallow copy-in/out sharing.
17288         (build_sender_ref): Call lookup_sfield instead of lookup_field.
17289         (install_var_field): Add mask argument.  Populate both record_type
17290         and srecord_type if needed.
17291         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
17292         in srecord_type.
17293         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
17294         and DECL_FIELD_OFFSET.
17295         (scan_sharing_clauses): Adjust install_var_field callers.  For
17296         firstprivate clauses on explicit tasks allocate the var by value in
17297         record_type unconditionally, rather than by reference.
17298         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
17299         Use is_taskreg_ctx instead of is_parallel_ctx.
17300         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17301         (create_omp_child_function_name): Add task_copy argument, use
17302         *_omp_cpyfn* names if it is true.
17303         (create_omp_child_function): Add task_copy argument, if true create
17304         *_omp_cpyfn* helper function.
17305         (scan_omp_parallel): Adjust create_omp_child_function callers.
17306         Rename parallel_nesting_level to taskreg_nesting_level.
17307         (scan_omp_task): New function.
17308         (lower_rec_input_clauses): Don't run constructors for firstprivate
17309         explicit task vars which are initialized by *_omp_cpyfn*.
17310         Pass outer var ref to omp_clause_default_ctor hook if
17311         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
17312         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
17313         OMP_CLAUSE_REDUCTION_INIT.
17314         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
17315         avoid duplicate setting of fields.  Handle
17316         OMP_CLAUSE_PRIVATE_OUTER_REF.
17317         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
17318         copy-out if TREE_READONLY, only copy-in.
17319         (expand_task_copyfn): New function.
17320         (expand_task_call): New function.
17321         (struct omp_taskcopy_context): New type.
17322         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
17323         New functions.
17324         (lower_omp_parallel): Rename to...
17325         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
17326         Call create_task_copyfn if srecord_type is needed.  Adjust
17327         sender_decl type.
17328         (task_shared_vars): New variable.
17329         (check_omp_nesting_restrictions): Warn if work-sharing,
17330         barrier, master or ordered region is closely nested inside OMP_TASK.
17331         Add warnings for barrier if closely nested inside of work-sharing,
17332         ordered, or master region.
17333         (scan_omp_1): Call check_omp_nesting_restrictions even for
17334         GOMP_barrier calls.  Rename parallel_nesting_level to
17335         taskreg_nesting_level.  Handle OMP_TASK.
17336         (lower_lastprivate_clauses): Even if some lastprivate is found on a
17337         work-sharing construct, continue looking for them on parent parallel
17338         construct.
17339         (lower_omp_for_lastprivate): Add lastprivate clauses
17340         to the beginning of dlist rather than end.  Adjust for struct
17341         omp_for_data changes.
17342         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
17343         not after it.  Handle collapsed OMP_FOR loops, adjust for
17344         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
17345         (get_ws_args_for): Adjust extract_omp_for_data caller.
17346         (scan_omp_for): Handle collapsed OMP_FOR
17347         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17348         (lower_omp_single_simple): If libgomp function doesn't return
17349         boolean_type_node, add comparison of the return value with 0.
17350         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
17351         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
17352         (parallel_nesting_level): Rename to...
17353         (taskreg_nesting_level): ... this.
17354         (is_taskreg_ctx): New function.
17355         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
17356         of is_parallel_ctx.
17357         (execute_lower_omp): Rename parallel_nesting_level to
17358         taskreg_nesting_level.
17359         (expand_omp_parallel): Rename to...
17360         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
17361         Call omp_task_call for OMP_TASK regions.
17362         (expand_omp): Adjust caller, handle OMP_TASK.
17363         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
17364
17365         * bitmap.c (bitmap_default_obstack_depth): New variable.
17366         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
17367         if argument is NULL and bitmap_default_obstack is already initialized.
17368         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
17369         at the end.
17370         * matrix-reorg.c (matrix_reorg): Likewise.
17371
17372 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
17373
17374         * config/i386/i386.md (*indirect_jump): Macroize using P
17375         mode iterator.  Remove !TARGET_64BIT from insn constraints.
17376         (*tablejump_1): Ditto.
17377         (*indirect_jump_rex64): Remove insn pattern.
17378         (*tablejump_1_rex64): Ditto.
17379         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
17380         and eh_return_si insn patterns.
17381
17382 2008-06-06  Richard Guenther  <rguenther@suse.de>
17383
17384         * tree-ssa-structalias.c (merge_smts_into): Remove.
17385         (find_what_p_points_to): Do not bother to compute the
17386         points-to set for pt_anything pointers.
17387         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
17388         for pt_anything pointers is ok.
17389
17390 2008-06-06  Jan Hubicka  <jh@suse.cz>
17391
17392         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
17393
17394 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17395
17396         * cgraph.c: Fix typos in comments.
17397         (cgraph_availability_names): Fix string typo.
17398         * fold-const.c: Fix typos in comments.
17399         (fold_binary): Fix typo in warning.
17400         * genautomata.c: Fix typos in comments.
17401         (check_presence_pattern_sets): Fix typo in local variable.
17402         (output_description): Fix typo in output.
17403         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
17404         * hwint.h: Likewise.
17405         * matrix-reorg.c (check_allocation_function): Likewise.
17406         * omega.c (smooth_weird_equations): Likewise.
17407         * auto-inc-dec.c: Fix typos in comments.
17408         * bb-reorder.c: Likewise.
17409         * builtins.c: Likewise.
17410         * c-common.c: Likewise.
17411         * c-cppbuiltin.c: Likewise.
17412         * c-parser.c: Likewise.
17413         * c-pretty-print.c: Likewise.
17414         * cfgcleanup.c: Likewise.
17415         * cfgexpand.c: Likewise.
17416         * cfghooks.c: Likewise.
17417         * cfglayout.c: Likewise.
17418         * cfgloopmanip.c: Likewise.
17419         * cgraphunit.c: Likewise.
17420         * coverage.c: Likewise.
17421         * dbxout.c: Likewise.
17422         * df-byte-scan.c: Likewise.
17423         * df-core.c: Likewise.
17424         * df-problems.c: Likewise.
17425         * df-scan.c: Likewise.
17426         * dfp.c: Likewise.
17427         * dominance.c: Likewise.
17428         * domwalk.c: Likewise.
17429         * dse.c: Likewise.
17430         * dwarf2out.c: Likewise.
17431         * emit-rtl.c: Likewise.
17432         * et-forest.c: Likewise.
17433         * function.c: Likewise.
17434         * function.h: Likewise.
17435         * gcc.c: Likewise.
17436         * gcov-io.c: Likewise.
17437         * gcov.c: Likewise.
17438         * gcse.c: Likewise.
17439         * genattrtab.c: Likewise.
17440         * ggc-page.c: Likewise.
17441         * gimplify.c: Likewise.
17442         * gthr-lynx.h: Likewise.
17443         * haifa-sched.c: Likewise.
17444         * ipa-cp.c: Likewise.
17445         * ipa-inline.c: Likewise.
17446         * ipa-prop.h: Likewise.
17447         * ipa-pure-const.c: Likewise.
17448         * ipa-struct-reorg.c: Likewise.
17449         * ipa-struct-reorg.h: Likewise.
17450         * ipa-type-escape.c: Likewise.
17451         * ipa.c: Likewise.
17452         * loop-doloop.c: Likewise.
17453         * mips-tfile.c: Likewise.
17454         * mkmap-flat.awk: Likewise.
17455         * mkmap-symver.awk: Likewise.
17456         * modulo-sched.c: Likewise.
17457         * omp-low.c: Likewise.
17458         * optabs.c: Likewise.
17459         * optabs.h: Likewise.
17460         * opts.c: Likewise.
17461         * passes.c: Likewise.
17462         * postreload-gcse.c: Likewise.
17463         * postreload.c: Likewise.
17464         * predict.c: Likewise.
17465         * pretty-print.h: Likewise.
17466         * profile.c: Likewise.
17467         * protoize.c: Likewise.
17468         * ra-conflict.c: Likewise.
17469         * real.c: Likewise.
17470         * recog.c: Likewise.
17471         * regclass.c: Likewise.
17472         * regs.h: Likewise.
17473         * reload.c: Likewise.
17474         * rtl-error.c: Likewise.
17475         * rtlanal.c: Likewise.
17476         * scan.h: Likewise.
17477         * sched-rgn.c: Likewise.
17478         * see.c: Likewise.
17479         * stmt.c: Likewise.
17480         * target.h: Likewise.
17481         * tree-dfa.c: Likewise.
17482         * tree-eh.c: Likewise.
17483         * tree-flow-inline.h: Likewise.
17484         * tree-inline.c: Likewise.
17485         * tree-into-ssa.c: Likewise.
17486         * tree-loop-distribution.c: Likewise.
17487         * tree-nested.c: Likewise.
17488         * tree-parloops.c: Likewise.
17489         * tree-pass.h: Likewise.
17490         * tree-pretty-print.c: Likewise.
17491         * tree-profile.c: Likewise.
17492         * tree-scalar-evolution.c: Likewise.
17493         * tree-sra.c: Likewise.
17494         * tree-ssa-alias-warnings.c: Likewise.
17495         * tree-ssa-ccp.c: Likewise.
17496         * tree-ssa-coalesce.c: Likewise.
17497         * tree-ssa-dom.c: Likewise.
17498         * tree-ssa-dse.c: Likewise.
17499         * tree-ssa-forwprop.c: Likewise.
17500         * tree-ssa-live.c: Likewise.
17501         * tree-ssa-live.h: Likewise.
17502         * tree-ssa-loop-im.c: Likewise.
17503         * tree-ssa-loop-ivopts.c: Likewise.
17504         * tree-ssa-loop-niter.c: Likewise.
17505         * tree-ssa-loop-prefetch.c: Likewise.
17506         * tree-ssa-phiopt.c: Likewise.
17507         * tree-ssa-phiprop.c: Likewise.
17508         * tree-ssa-sccvn.c: Likewise.
17509         * tree-ssa-ter.c: Likewise.
17510         * tree-ssa-threadupdate.c: Likewise.
17511         * tree-ssa.c: Likewise.
17512         * tree-vect-analyze.c: Likewise.
17513         * tree-vect-transform.c: Likewise.
17514         * tree-vectorizer.c: Likewise.
17515         * tree-vn.c: Likewise.
17516         * tree-vrp.c: Likewise.
17517         * tree.c: Likewise.
17518         * tree.def: Likewise.
17519         * tree.h: Likewise.
17520         * unwind-dw2-fde.c: Likewise.
17521         * unwind.inc: Likewise.
17522         * value-prof.c: Likewise.
17523         * vmsdbgout.c: Likewise.
17524
17525 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
17526
17527         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
17528         always place FP constants in the TOC for TARGET_POWERPC64.
17529         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
17530
17531 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
17532
17533         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
17534         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
17535         enable for TARGET_E500_DOUBLE.
17536         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
17537         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
17538         floating-point modes like integer modes for E500 double.
17539         (rs6000_legitimate_offset_address_p): Likewise.
17540         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
17541         addressing for DDmode for E500 double.
17542         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
17543         modes as using 64-bits of registers for E500 double.
17544         (spe_build_register_parallel): Do not handle DDmode or TDmode.
17545         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
17546         specially for E500 double.
17547         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
17548         TDmode for E500 double.
17549         (rs6000_gimplify_va_arg): Only handle SDmode in registers
17550         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
17551         (rs6000_split_multireg_move): Do not handle TDmode specially for
17552         E500 double.
17553         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
17554         using 64-bit registers for E500 double.
17555         (emit_frame_save): Do not handle DDmode specially for E500 double.
17556         (gen_frame_mem_offset): Likewise.
17557         (rs6000_function_value): Do not call spe_build_register_parallel
17558         for DDmode or TDmode.
17559         (rs6000_libcall_value): Likewise.
17560         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
17561         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
17562         for E500 double.
17563
17564 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
17565
17566         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
17567         in comments.
17568
17569 2008-06-04  Junjie Gu <jgu@tensilica.com>
17570
17571         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
17572         comparison for frame pointers.
17573
17574 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
17575
17576         PR target/27386
17577         * config/avr/avr.h (PUSH_ROUNDING): Remove.
17578
17579 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
17580
17581         PR target/30243
17582         * builtins.c (expand_builtin_signbit): Don't take lowpart when
17583         register is already smaller or equal to required mode.
17584
17585 2008-06-04  Xinliang David Li  <davidxl@google.com>
17586
17587         * tree-call-cdce.c: New file.
17588         (cond_dead_built_in_calls): New static variable.
17589         (input_domain): New struct.
17590         (check_pow): New function.
17591         (check_builtin_call): Ditto.
17592         (check_target_format): Ditto.
17593         (is_call_dce_candidate): Ditto.
17594         (gen_one_condition): Ditto.
17595         (gen_conditions_for_domain): Ditto.
17596         (get_domain): Ditto.
17597         (gen_conditions_for_pow_cst_base): Ditto.
17598         (gen_conditions_for_pow_int_base): Ditto.
17599         (gen_conditions_for_pow): Ditto.
17600         (get_no_error_domain): Ditto.
17601         (gen_shrink_wrap_conditions): Ditto.
17602         (shrink_wrap_one_built_in_call): Ditto.
17603         (shink_wrap_conditional_dead_built_in_calls): Ditto.
17604         (tree_call_cdce): Ditto.
17605         (gate_call_cdce): Ditto.
17606         (pass_call_cdce): New gimple pass.
17607         * passes.c (init_optimization_passes): New pass.
17608         * tree-pass.h: New pass declaration.
17609         * opts.c (decode_options): New flag setting.
17610         * common.opt: Add -ftree-builtin-call-dce flag.
17611         * Makefile.in: Add new source file.
17612         * tempvar.def: New tv_id.
17613         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
17614
17615 2008-06-04  Richard Guenther  <rguenther@suse.de>
17616
17617         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
17618         (is_call_clobbered): Always check var_ann->call_clobbered.
17619         (mark_call_clobbered): Always set var_ann->call_clobbered.
17620         (clear_call_clobbered): Always clear var_ann->call_clobbered.
17621         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
17622         (reset_alias_info): Clear call clobbering info on MTAGs and
17623         globals as well.
17624         (set_pt_anything): Set pt_global_mem.
17625         (create_tag_raw): Adjust comment.
17626         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
17627
17628 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
17629             Maxim Kuvyrkov  <maxim@codesourcery.com>
17630
17631         * config/m68k/m68k.opt (mxgot): New option.
17632         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
17633         (m68k_output_addr_const_extra): New.
17634         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
17635         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
17636         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
17637         * doc/invoke.texi (M680x0 Options): Document -mxgot.
17638
17639 2008-06-04  Richard Guenther  <rguenther@suse.de>
17640
17641         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
17642         negative or non-representable offsets.
17643
17644 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
17645
17646         * config/i386/i386.c (ix86_gen_leave): New.
17647         (ix86_gen_pop1): Likewise.
17648         (ix86_gen_add3): Likewise.
17649         (ix86_gen_sub3): Likewise.
17650         (ix86_gen_sub3_carry): Likewise.
17651         (ix86_gen_one_cmpl2): Likewise.
17652         (ix86_gen_monitor): Likewise.
17653         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
17654         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
17655         ix86_gen_one_cmpl2 and ix86_gen_monitor.
17656         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
17657         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
17658         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
17659         (ix86_expand_epilogue): Updated.
17660         (print_operand): Handle integer register operand for 'z'.
17661         (ix86_expand_strlensi_unroll_1): Likewise.
17662         (ix86_expand_strlen): Likewise.
17663         (ix86_expand_builtin): Likewise.
17664         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
17665         mov{q}/mov{l} and add{q}/add{l}.
17666
17667 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17668
17669         * config/i386/i386.md (P): New mode iterator.
17670         (SFmode push_operand splitter): Macroize DImode and SImode pushes
17671         using P mode iterator.
17672         (DFmode push_operand splitter): Ditto.
17673         (XFmode push_operand splitter): Ditto.
17674         (DFmode float_extend SFmode push_operand splitter): Ditto.
17675         (XFmode float_extend SFmode push_operand splitter): Do not generate
17676         SImode pushes for 64bit target.  Macroize Dimode and SImode
17677         pushes using P mode iterator.
17678         (XFmode float_extend DFmode push_operand splitter): Ditto.
17679
17680 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17681
17682         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
17683         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
17684         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
17685         return type to int.
17686         (ix86_call_abi_override): Remove check for call_used_regs.
17687
17688 2008-06-03  Richard Guenther  <rguenther@suse.de>
17689
17690         * tree-ssa-structalias.c (find_func_aliases): Add constraints
17691         for the lhs of calls if the return type contains pointers.
17692
17693 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17694
17695         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
17696         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
17697         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
17698         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
17699         of cfun and DEFAULT_ABI to deceide abi mode.
17700         (DEFAULT_ABI): New.
17701         (REG_PARM_STACK_SPACE): Removed.
17702         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
17703         (STACK_BOUNDARY): Use default target to deceide stack boundary.
17704         * config/i386/i386-protos.h (ix86_cfun_abi): New.
17705         (ix86_function_abi): Likewise.
17706         (ix86_function_type_abi): Likewise.
17707         (ix86_call_abi_override): Likewise.
17708         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
17709         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
17710         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
17711         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
17712         specific defines.
17713         (X86_64_REGPARM_MAX): New.
17714         (X86_64_SSE_REGPARM_MAX): New.
17715         (X64_REGPARM_MAX): New.
17716         (X64_SSE_REGPARM_MAX): New.
17717         (X86_32_REGPARM_MAX): New.
17718         (X86_32_SSE_REGPARM_MAX): New.
17719         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
17720         (ix86_function_regparm): Handle user calling abi.
17721         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
17722         by DEFAULT_ABI versus SYSV_ABI check.
17723         (ix86_reg_parm_stack_space): New.
17724         (ix86_function_type_abi): New.
17725         (ix86_call_abi_override): New.
17726         (ix86_function_abi): New.
17727         (ix86_cfun_abi): New.
17728         (init_cumulative_args): Call abi specific initialization.
17729         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
17730         (function_arg_64): Extend SSE_REGPARM_MAX check.
17731         (function_arg (): Remove TARGET_64BIT_MS_ABI.
17732         (ix86_pass_by_reference): Likewise.
17733         (ix86_function_value_regno_p): Likewise.
17734         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
17735         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
17736         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
17737         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
17738         (setup_incoming_varargs_64): Adjust regparm for call abi.
17739         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
17740         (ix86_va_start): Likewise.
17741         (ix86_gimplify_va_arg): Likewise.
17742         (ix86_expand_prologue): Likewise.
17743         (output_pic_addr_const): Likewise.
17744         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
17745         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
17746         (x86_output_mi_thunk): Likewise.
17747         (x86_function_profiler): Likewise.
17748         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
17749         (SYSV_ABI, MS_ABI): New constants.
17750         (DEFAULT_ABI): New.
17751         (init_regs): Add prototype of function in regclass.c file.
17752         (OVERRIDE_ABI_FORMAT): New.
17753         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
17754         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
17755         (OUTGOING_REG_PARM_STACK_SPACE): New.
17756         (ix86_reg_parm_stack_space): New prototype.
17757         (CUMULATIVE_ARGS): Add call_abi member.
17758         (machine_function): Add call_abi member.
17759         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
17760         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
17761
17762 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
17763
17764         PR target/34879
17765         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
17766         (avr_builtin_setjmp_frame_value): New function.
17767         * config/avr/avr.md (nonlocal_goto_receiver): Define.
17768         (nonlocal_goto): Define.
17769
17770 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
17771
17772         * config/mips/mips.c (mips_emit_loadgp): Return early if
17773         there is nothing do to, otherwise emit a blockage if
17774         !TARGET_EXPLICIT_RELOCS || crtl->profile.
17775         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
17776
17777 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17778
17779         * configure.ac: Drop unneeded backslash ending up in config.in.
17780         * acinclude.m4: Likewise.
17781         * config.in: Regenerate.
17782
17783 2008-05-26  Jan Hubicka  <jh@suse.cz>
17784
17785         * predict.c (maybe_hot_frequency_p): Break out of...
17786         (maybe_hot_bb_p): ... here.
17787         (maybe_hot_edge_p): New.
17788         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
17789         * basic-block.h (maybe_hot_edge_p): Declare.
17790
17791 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
17792
17793         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
17794         (*cmpfp_<mode>_cc): Ditto.
17795         (*fp_jcc_8<mode>_387): Ditto.
17796         (*fop_<MODEF:mode>_2_i387): Ditto.
17797         (*fop_<MODEF:mode>_3_i387): Ditto.
17798         (*fop_xf_2_i387): Ditto.
17799         (*fop_xf_3_i387): Ditto.
17800
17801 2008-06-02  Tomas Bily  <tbily@suse.cz>
17802
17803         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
17804
17805 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17806
17807         * config/mips/mips.c (mips_valid_offset_p): New function.
17808         (mips_valid_lo_sum_p): Likewise.
17809         (mips_classify_address): Use them.
17810         (mips_force_address): New function.
17811         (mips_legitimize_address): Use it.
17812         * config/mips/mips.md (MOVE128): New mode iterator.
17813         (movtf): Require TARGET_64BIT.  Remove empty strings.
17814         (*movtf_internal): Rename to...
17815         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
17816         of "R" and use {,fp}{load,store} attributes instead of "multi".
17817         Use a separate define_split.
17818         (*movtf_mips16): New pattern.
17819
17820 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17821
17822         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
17823         * config/mips/mips.c (mips_expand_before_return): New function.
17824         (mips_expand_epilogue): Call it.
17825         * config/mips/mips.md (return): Turn into a define_expand.
17826         (*return): New insn.
17827
17828 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17829
17830         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
17831         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
17832         functions.  Do not emit uses and clobbers of CONCATs; individually
17833         use and clobber their operands.
17834         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
17835         gen_clobber, emit_use and gen_use.
17836         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
17837         (expand_builtin_return): Likewise.
17838         * cfgbuild.c (count_basic_blocks): Likewise.
17839         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
17840         * explow.c (emit_stack_restore): Likewise.
17841         * expmed.c (extract_bit_field_1): Likewise.
17842         * expr.c (convert_move, emit_move_complex_parts): Likewise.
17843         (emit_move_multi_word, store_constructor): Likewise.
17844         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
17845         (thread_prologue_and_epilogue_insns): Likewise.
17846         * lower-subreg.c (resolve_simple_move): Likewise.
17847         * optabs.c (widen_operand, expand_binop): Likewise.
17848         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
17849         * reload.c (find_reloads): Likewise.
17850         * reload1.c (eliminate_regs_in_insn): Likewise.
17851         * stmt.c (expand_nl_goto_receiver): Likewise.
17852         * config/alpha/alpha.md (builtin_longjmp): Likewise.
17853         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
17854         * config/arm/arm.c (arm_load_pic_register): Likewise.
17855         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
17856         * config/arm/arm.md (untyped_return): Likewise.
17857         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
17858         * config/avr/avr.c (expand_prologue): Likewise.
17859         * config/bfin/bfin.c (do_unlink): Likewise.
17860         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
17861         * config/cris/cris.c (cris_expand_prologue): Likewise.
17862         * config/darwin.c (machopic_indirect_data_reference): Likewise.
17863         (machopic_legitimize_pic_address): Likewise.
17864         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
17865         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
17866         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
17867         (ix86_expand_convert_uns_didf_sse): Likewise.
17868         (ix86_expand_vector_init_general): Likewise.
17869         * config/ia64/ia64.md (eh_epilogue): Likewise.
17870         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
17871         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
17872         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
17873         (config/iq2000/iq2000.c): Likewise.
17874         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
17875         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
17876         (builtin_longjmp): Likewise.
17877         * config/mn10300/mn10300.md (call, call_value): Likewise.
17878         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
17879         * config/pdp11/pdp11.md (abshi2): Likewise.
17880         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
17881         * config/s390/s390.c (s390_emit_prologue): Likewise.
17882         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
17883         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
17884         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
17885         * config/sh/sh.c (prepare_move_operands): Likewise.
17886         (output_stack_adjust, sh_expand_epilogue): Likewise.
17887         (sh_set_return_address, sh_expand_t_scc): Likewise.
17888         * config/sparc/sparc.c (load_pic_register): Likewise.
17889         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
17890         * config/spu/spu.c (spu_expand_epilogue): Likewise.
17891         * config/v850/v850.c (expand_epilogue): Likewise.
17892
17893 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
17894
17895         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
17896         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
17897         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
17898         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
17899         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
17900         stack pointer register.
17901         (output_movhi): Remove code for interrupt specific writing to the
17902         stack pointer register.
17903
17904 2008-05-31  Richard Guenther  <rguenther@suse.de>
17905
17906         PR tree-optimization/34244
17907         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
17908         (tree_expr_nonzero_warnv_p): Likewise.
17909         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
17910         ssa_name_nonnegative_p.
17911         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
17912         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
17913         not tree_expr_nonzero_warnv_p.
17914
17915         PR tree-optimization/36262
17916         Revert
17917         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
17918
17919         PR tree-optimization/34244
17920         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
17921         (record_numbers_of_iterations): New function.
17922         (execute_vrp): Cache the numbers of iterations of loops.
17923         * tree-scalar-evolution.c (scev_reset_except_niters):
17924         New function.
17925         (scev_reset): Use scev_reset_except_niters.
17926         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
17927
17928 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
17929
17930         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17931         __WORKAROUND_RETS when appropriate.
17932
17933 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
17934
17935         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
17936         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
17937         mode iterator.
17938         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
17939         *fop_df_comm_sse insn patterns using MODEF mode iterator.
17940         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
17941         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
17942         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
17943         *fop_df_1_mixed insn patterns using MODEF mode iterator.
17944         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
17945         *fop_df_1_sse insn patterns using MODEF mode iterator.
17946         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
17947         *fop_df_1_i387 insn patterns using MODEF mode iterator.
17948         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
17949         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
17950         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
17951         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
17952         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
17953         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
17954         (*fop_xf_4_i387): Use <MODE> for mode attribute.
17955         (*fop_xf_5_i387): Ditto.
17956         (*fop_xf_6_i387): Ditto.
17957
17958 2008-05-30  Richard Guenther  <rguenther@suse.de>
17959
17960         * builtins.c (build_string_literal): Avoid generating
17961         a non-gimple_val result.
17962
17963 2008-05-30  DJ Delorie  <dj@redhat.com>
17964
17965         * exec-tool.in: Use an environment variable (private) instead of a
17966         file (shared) as a semaphore, so as to not break parallel builds.
17967
17968 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
17969
17970         * optabs.c (maybe_encapsulate_block): Remove.
17971         (emit_libcall_block): Adjust accordingly.
17972         * optabs.h (maybe_encapsulate_block): Remove prototype.
17973
17974         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
17975         Don't use maybe_encapsulate_block.
17976
17977 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
17978
17979         * config/rs6000/rs6000.c (rs6000_legitimize_address,
17980         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
17981         rtx is a SYMBOL_REF before calling get_pool_constant.
17982
17983 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
17984
17985         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
17986
17987 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
17988
17989         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
17990         rather than OS names to choose INO_T_EQ definition.
17991         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
17992         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
17993
17994 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
17995
17996         PR target/36348
17997         * config/darwin-f.c: New.
17998         * config/t-darwin: Added rule to build darwin-f.o.
17999         * config.gcc: Defined new variable, fortran_target_objs.
18000         (*-*-darwin*): Set fortran_target_objs.
18001         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
18002         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
18003         * configure: Regenerated.
18004
18005 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
18006
18007         PR target/35771
18008         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
18009         canonical type if needed.
18010
18011 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
18012
18013         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
18014
18015 2008-05-29  Richard Guenther  <rguenther@suse.de>
18016
18017         PR tree-optimization/36343
18018         PR tree-optimization/36346
18019         PR tree-optimization/36347
18020         * tree-flow.h (clobber_what_p_points_to): Declare.
18021         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
18022         pointed-to variable is dereferenced is irrelevant to whether
18023         the pointer can access the pointed-to variable.
18024         (clobber_what_p_points_to): New function.
18025         * tree-ssa-alias.c (set_initial_properties): Use it.
18026         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
18027         call clobber check for NMTs.
18028
18029 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
18030
18031         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
18032         for printing gcov_type.
18033
18034 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
18035
18036         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
18037         and the eh region information.
18038         * value-prof.c (gimple_move_stmt_histograms): New function.
18039         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
18040
18041 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
18042
18043         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
18044
18045 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
18046
18047         * value-prof.c (tree_ic_transform): Print counts.
18048         * tree-profile.c (tree_gen_ic_func_profiler):
18049         Clear __gcov_indreict_call_callee variable to avoid misattribution
18050         of the profile.
18051
18052 2008-05-28  Rafael Espíndola  <espindola@google.com>
18053
18054         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
18055         invalid sharing.
18056
18057 2008-05-28  Richard Guenther  <rguenther@suse.de>
18058
18059         PR tree-optimization/36339
18060         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
18061         and clobbering code out of the loop.
18062
18063 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
18064
18065         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
18066         letters defined.
18067
18068         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
18069         s390_contiguous_bitmask_p, s390_symref_operand_p,
18070         s390_check_symref_alignment, s390_reload_larl_operand,
18071         s390_reload_symref_address): New functions.
18072         (s390_branch_condition_mnemonic): Support compare and branch
18073         instructions.
18074         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
18075         and 'W' constraints.
18076         (s390_secondary_reload): Add secondary reloads for unaligned
18077         symbol refs or symbol refs to floating point or QI/TI mode
18078         integer values.
18079         (legitimate_address_p): Accept symbol references as addresses.
18080         (s390_expand_insv): Use rotate and insert selected bits
18081         instruction for insv when building for z10.
18082         (print_operand_address): Handle symbol ref addresses.
18083         (print_operand): Output modifier 'c' added for signed byte values.
18084         (s390_encode_section_info): Mark symbol refs with
18085         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
18086
18087         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
18088         (length attribute): RRF, RRR have 4 byte length.
18089         (FPALL, INTALL): New mode iterators added.
18090         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
18091         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
18092         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
18093         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
18094         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
18095         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
18096         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
18097         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
18098         instructions.
18099         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
18100         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
18101         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
18102         reload<INTALL:mode><P:mode>_toreg_z10,
18103         reload<FPALL:mode><P:mode>_tomem_z10,
18104         reload<FPALL:mode><P:mode>_toreg_z10,
18105         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
18106         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
18107         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
18108         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
18109         definition.
18110         (movmem, clrmem, cmpmem): New splitters added.
18111
18112         * config/s390/predicates.md (larl_operand): Use
18113         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
18114         SYMBOL_REF_ALIGN1_P.
18115         (s390_signed_integer_comparison,
18116         s390_unsigned_integer_comparison): New predicates.
18117
18118         * config/s390/s390-protos.h (s390_check_symref_alignment,
18119         s390_contiguous_bitmask_p, s390_reload_larl_operand,
18120         s390_reload_symref_address,
18121         s390_compare_and_branch_condition_mask): Prototypes added.
18122
18123         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
18124         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
18125         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
18126
18127 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
18128
18129         * config/s390/s390.c (z10_cost): New cost function for z10.
18130         (s390_handle_arch_option, override_options): Support -march=z10 switch.
18131         (s390_issue_rate): Adjust issue rate for z10.
18132         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
18133         (processor_flags): Add PF_Z10.
18134         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
18135         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
18136         * gcc/config.gcc: Add z10.
18137
18138 2008-05-28  Richard Guenther  <rguenther@suse.de>
18139
18140         PR tree-optimization/36291
18141         * tree-flow. h (struct gimple_df): Remove var_anns member.
18142         * tree-flow-inline.h (gimple_var_anns): Remove.
18143         (var_ann): Simplify.
18144         * tree-dfa.c (create_var_ann): Simplify.
18145         (remove_referenced_var): Clear alias info from var_anns of globals.
18146         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
18147         (delete_tree_ssa): Clear alias info from var_anns of globals.
18148         Do not free var_anns.
18149         (var_ann_eq): Remove.
18150         (var_ann_hash): Likewise.
18151
18152 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
18153
18154         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
18155         and loongson2f entries.
18156         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
18157         * config/mips/mips.h (processor_type): Add Loongson-2E
18158         and Loongson-2F entries.
18159         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
18160         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
18161         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
18162         * doc/invoke.texi (MIPS Options): Document loongson2e
18163         and loongson2f processor names.
18164
18165 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
18166
18167         PR target/35767
18168         PR target/35771
18169         * config/i386/i386.c (ix86_function_arg_boundary): Use
18170         alignment of canonical type.
18171         (ix86_expand_vector_move): Check unaligned memory access for
18172         all SSE modes.
18173
18174 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
18175
18176         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
18177         Moved to the front of file.
18178
18179 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
18180             H.J. Lu  <hongjiu.lu@intel.com>
18181
18182         * dwarf2out.c (current_fde): New.
18183         (add_cfi): Use it.
18184         (lookup_cfa:): Likewise.
18185         (dwarf2out_end_epilogue): Likewise.
18186         (dwarf2out_note_section_used): Likewise.
18187
18188 2008-05-27  Michael Matz  <matz@suse.de>
18189
18190         PR c++/27975
18191         * c.opt (Wenum-compare): New warning option.
18192         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
18193
18194 2008-05-27  Michael Matz  <matz@suse.de>
18195
18196         PR middle-end/36326
18197         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
18198         non-BLKmode types.
18199         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
18200         into memory as tail calls.
18201
18202 2008-05-27  Richard Guenther  <rguenther@suse.de>
18203
18204         PR tree-optimization/36339
18205         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
18206         pointers cause all addressable variables to be call clobbered.
18207
18208 2008-05-27  Richard Guenther  <rguenther@suse.de>
18209
18210         PR tree-optimization/36245
18211         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
18212
18213 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18214
18215         * config/s390/s390.md: Replace all occurences of the 'm'
18216         constraint with 'RT'.
18217
18218 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18219
18220         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
18221         definitions added.
18222         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
18223         "*movdi_64".
18224         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
18225         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
18226         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
18227
18228 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18229
18230         * reload.c (find_reloads): Skip alternatives according to the
18231         "enabled" attribute. Constify the constraint variable.
18232         * recog.c (get_attr_enabled): Add default implementation.
18233         (extract_insn): Set the alternative_enabled_p array
18234         in the recog_data struct.
18235         (preprocess_constraints, constrain_operands): Skip
18236         alternatives according to the "enabled" attribute
18237         * recog.h (struct recog_data): New field alternative_enabled_p.
18238         (skip_alternative): New inline function.
18239         * regclass.c (record_operand_costs): Check the "enabled" attribute.
18240         (record_reg_classes): Skip alternative according to the
18241         "enabled" attribute.
18242
18243         * doc/md.texi: Add documention for the "enabled" attribute.
18244
18245 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18246
18247         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
18248         * postreload.c (reload_cse_simplify_operands): Replace 'm'
18249         constraint with TARGET_MEM_CONSTRAINT.
18250         * recog.c (asm_operand_ok, preprocess_constraints,
18251         constrain_operands): Likewise.
18252         * regclass.c (record_reg_classes): Likewise.
18253         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
18254         * reload1.c (maybe_fix_stack_asms): Likewise.
18255         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
18256         * recog.h: Adjust comment.
18257         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
18258         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
18259         * doc/md.texi: Add a note to description of 'm' constraint.
18260         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
18261
18262 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18263
18264         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
18265         that the bitfield is of integral type before testing its precision.
18266
18267 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
18268             Sa Liu  <saliu@de.ibm.com>
18269
18270         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
18271         __modti3, __udivti3, __umodti3 and __udivmodti4.
18272         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
18273         that implement TImode mul and div functions.
18274         * config/spu/multi3.c: New. Implement __multi3.
18275         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
18276         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
18277         functions on SPU.
18278
18279 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
18280
18281         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
18282         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
18283         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
18284         tls_sysv_suffix): New mode and mode attribute iterators.
18285         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
18286         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
18287         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
18288         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
18289         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
18290         iterators.
18291
18292 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
18293
18294         PR tree-optimization/36329
18295         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
18296         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
18297         * cgraphbuild.c (initialize_inline_failed): Use the latter
18298         macro in lieu of the former.
18299         * ipa-inline.c (cgraph_mark_inline): Likewise.
18300         (cgraph_decide_inlining_of_small_function): Likewise.
18301         (cgraph_decide_inlining): Likewise.
18302         (cgraph_decide_inlining_incrementally): Likewise.
18303
18304 2008-05-26  Tristan Gingold  <gingold@adacore.com>
18305             Anatoly Sokolov  <aesok@post.ru>
18306
18307         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
18308         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
18309         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
18310         optimization for 'avr6' architecture.
18311
18312 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
18313
18314         PR target/34932
18315         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
18316
18317 2008-05-26  Richard Guenther  <rguenther@suse.de>
18318
18319         * tree-ssa-sccvn.c (expr_has_constants): Declare.
18320         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
18321
18322 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
18323
18324         PR middle-end/36253
18325         * caller-save.c (insert_restore): Verify alignment of spill space.
18326         (insert_save): Likewise.
18327         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
18328         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
18329         (STACK_SLOT_ALIGNMENT): Likewise.
18330         * function.c (LOCAL_ALIGNMENT): Removed.
18331         (get_stack_local_alignment): New.
18332         (assign_stack_local): Use it.  Set alignment on stack slot.
18333         (assign_stack_temp_for_type): Use get_stack_local_alignment.
18334         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
18335         (STACK_SLOT_ALIGNMENT): New.
18336         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
18337         stack slot in XFmode.
18338
18339         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
18340
18341 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
18342
18343         PR/36321
18344         * config/i386/i386.md (allocate_stack_worker_64): Make sure
18345         argument operand in rax isn't removed.
18346
18347 2008-05-26  Richard Guenther  <rguenther@suse.de>
18348
18349         PR middle-end/36300
18350         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
18351         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
18352
18353 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
18354
18355         PR bootstrap/36331
18356         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
18357
18358 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
18359
18360         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
18361         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
18362
18363 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
18364
18365         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
18366         build a trampoline if we don't want one.
18367         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
18368         return zero for nested functions if we don't want a trampoline.
18369
18370 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
18371
18372         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
18373
18374 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
18375
18376         PR fortran/18428
18377         * c.opt: Removed undocumented option '-lang-fortran'.
18378         * c-common.h: Removed global variable 'lang_fortran'.
18379         * c-opts.c (c_common_handle_option): Removed code to handle
18380         option '-lang-fortran'. Updated includes.
18381         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
18382         definition of '__GFORTRAN__'.
18383         (define__GNUC__): Reimplemented to use BASEVER and
18384         cpp_define_formatted.
18385         (builtin_define_with_value_n): Removed.
18386         * c-incpath.h: Renamed to ...
18387         * incpath.h: ... this.
18388         * c-incpath.c: Renamed to ...
18389         * incpath.c: ... this. Updated includes.
18390         * fix-header.c: Updated includes.
18391         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
18392         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
18393         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
18394
18395 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
18396
18397         * tree.h: Update the table of flags used on tree nodes.
18398         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
18399         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
18400         (FORCED_LABEL): Add access check.
18401         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
18402         (ASM_INPUT_P): Likewise.
18403         (ASM_VOLATILE_P): Likewise.
18404         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
18405         (OMP_SECTION_LAST): Access private_flag directly.
18406         (OMP_RETURN_NOWAIT): Likewise.
18407         (OMP_PARALLEL_COMBINED): Likewise.
18408         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
18409         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
18410         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
18411         deprecated_flag directly.
18412
18413 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
18414
18415         * final.c (frame_pointer_needed): Removed.
18416         * flags.h (frame_pointer_needed): Likewise.
18417
18418         * function.h (rtl_data): Add frame_pointer_needed.
18419         (frame_pointer_needed): New.
18420
18421 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
18422
18423         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
18424
18425 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
18426
18427         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
18428         SRC is a REG.
18429
18430 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
18431
18432         * c-common.c (strip_array_types): Move function to..
18433         * tree.c: ..here.
18434         (get_inner_array_type): Delete.
18435         * c-common.h (strip_array_types): Move declaration to..
18436         * tree.h: ..here.
18437         (get_inner_array_type): Delete.
18438         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
18439         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
18440         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18441         * config/pa/pa.c (emit_move_sequence): Likewise.
18442
18443 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
18444
18445         * config/i386/i386.md (*sse_prologue_save_insn): Set length
18446         attribute to 34.
18447
18448 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
18449
18450         * function.c: Include target hook for nonlocal_goto frame value.
18451
18452 2008-05-24  Richard Guenther  <rguenther@suse.de>
18453
18454         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
18455         variable can be only accessed through a pointer or a union.
18456
18457 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18458
18459         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
18460         * doc/extend.texi: Likewise.
18461
18462 2008-05-23  DJ Delorie  <dj@redhat.com>
18463
18464         * config/m32c/jump.md (untyped_call): Add.
18465
18466         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
18467         for A24 to PSImode.
18468         (m32c_address_cost): Detail costs for indirect offsets.
18469
18470 2008-05-23  Rafael Espíndola  <espindola@google.com>
18471
18472         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
18473         if a node is a SUBREG.
18474         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
18475         is a SUBREG.
18476
18477 2008-05-23  Paul Brook  <paul@codesourcery.com>
18478             Carlos O'Donell  <carlos@codesourcery.com>
18479
18480         * doc/extend.texi: Clarify use of __attribute__((naked)).
18481         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18482         * target.h (gcc_target): Add allocate_stack_slots_for_args.
18483         * function.c (use_register_for_decl): Use
18484         targetm.calls.allocate_stack_slots_for_args.
18485         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18486         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
18487         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
18488
18489 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
18490
18491         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
18492
18493 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
18494
18495         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
18496         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
18497         is only rounded once.
18498
18499 2008-05-23  Richard Guenther  <rguenther@suse.de>
18500
18501         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
18502
18503 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
18504             Jakub Jelinek  <jakub@redhat.com>
18505
18506         PR target/36079
18507         * configure.ac: Handle --enable-cld.
18508         * configure: Regenerated.
18509         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
18510         * config/i386/i386.h (struct machine_function): Add needs_cld field.
18511         (ix86_current_function_needs_cld): New define.
18512         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
18513         (cld): New isns pattern.
18514         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
18515         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
18516         * config/i386/i386.opt (mcld): New option.
18517         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
18518         TARGET_CLD and ix86_current_function_needs_cld.
18519         (override_options): Use -mcld by default for 32-bit code if
18520         USE_IX86_CLD.
18521
18522         * doc/install.texi (Options specification): Document --enable-cld.
18523         * doc/invoke.texi (Machine Dependent Options)
18524         [i386 and x86-64 Options]: Add -mcld option.
18525         (Intel 386 and AMD x86-64 Options): Document -mcld option.
18526
18527 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
18528         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
18529         (return_in_memory_64): Likewise.
18530         (return_in_memory_ms_64): Likewise.
18531
18532 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18533
18534         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
18535         * builtins.c (fold_builtin_fpclassify): New.
18536         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
18537         * builtins.def (BUILT_IN_FPCLASSIFY): New.
18538         * c-common.c (handle_type_generic_attribute): Adjust to accept
18539         fixed arguments before an elipsis.
18540         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
18541         * doc/extend.texi: Document __builtin_fpclassify.
18542
18543 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
18544
18545         * omp-low.c (gate_expand_omp_ssa): Remove.
18546         (pass_expand_omp_ssa): Remove.
18547         (gate_expand_omp): Do not check for flag_openmp_ssa.
18548         * common.opt (-fopenmp-ssa): Remove.
18549         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
18550
18551 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
18552
18553         * config/sh/sh.opt (mfixed-range): New option.
18554         * config/sh/sh-protos.h (sh_fix_range): Declare.
18555         * config/sh/sh.c (sh_fix_range): New function.
18556         * config/sh/sh.h (sh_fixed_range_str): Declare.
18557         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
18558         is not empty.
18559         * doc/invoke.texi (SH Options): Document -mfixed-range.
18560
18561 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
18562
18563         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
18564         it before the redeclaration.
18565
18566 2008-05-22  Anatoly Sokolov <aesok@post.ru>
18567
18568         * config/avr/avr.c (get_sequence_length): Add new function.
18569         (expand_prologue, expand_epilogue): Remove duplicate code.
18570
18571 2008-05-22  Rafael Espíndola  <espindola@google.com>
18572
18573         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
18574         sharing.
18575
18576 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
18577
18578         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
18579         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
18580
18581         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
18582         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
18583         (vect_update_misalignment_for_peel): Likewise.
18584         (vector_alignment_reachable_p): Likewise.
18585         * tree-vect-transform.c (vectorizable_load): Likewise.
18586         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
18587         (get_vectype_for_scalar_type): Pass mode of scalar_type
18588         to UNITS_PER_SIMD_WORD.
18589
18590         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
18591         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
18592         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
18593         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
18594         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
18595
18596 2008-05-22  Ira Rosen  <irar@il.ibm.com>
18597
18598         PR tree-optimization/36293
18599         * tree-vect-transform.c (vect_transform_strided_load): Don't check
18600         if the first load must be skipped because of a gap.
18601
18602 2008-05-22  Richard Guenther  <rguenther@suse.de>
18603
18604         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
18605         more cases of offset disambiguation that is possible if
18606         strict-aliasing rules apply.
18607         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
18608         for basic offset and type-based disambiguation.
18609
18610 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18611
18612         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
18613         ix86_expand_vector_set on V16QImode for SSE4.1.
18614
18615 2008-05-21  Tom Tromey  <tromey@redhat.com>
18616
18617         * c.opt (Wimport): Mark as undocumented.
18618         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
18619         -Wno-import.
18620         (Warning Options): Likewise.
18621         * doc/cppopts.texi: Don't mention -Wimport.
18622
18623 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
18624
18625         PR tree-optimization/36287
18626         PR tree-optimization/36286
18627         * lambda-code.c (build_access_matrix): Do not use the loop->num
18628         for computing the number of induction variables: use the loop depth
18629         instead.
18630
18631 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
18632
18633         PR/36280
18634         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
18635         option -f(no-)leading-underscore.
18636
18637 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18638
18639         * config/i386/i386.c (ix86_expand_vector_init_general): Use
18640         GET_MODE_NUNITS (mode).
18641
18642 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
18643
18644         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
18645         (-mmulhw): Add 464 to description.
18646         (-mdlmzb): Likewise.
18647         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
18648         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
18649         464fp entries.
18650         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
18651         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
18652         * config/rs6000/rs6000.md: Update comments for 464.
18653
18654 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
18655
18656         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
18657
18658 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18659
18660         * config/i386/sse.md (vec_extractv4sf): Removed.
18661         (vec_extractv2df): Likewise.
18662         (vec_extractv2di): Likewise.
18663         (vec_extractv4si): Likewise.
18664         (vec_extractv8hi): Likewise.
18665         (vec_extractv16qi): Likewise.
18666         (vec_extract<mode>): New.
18667
18668 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18669
18670         * config/i386/sse.md (vec_setv4sf): Removed.
18671         (vec_setv2df): Likewise.
18672         (vec_setv2di): Likewise.
18673         (vec_setv4si): Likewise.
18674         (vec_setv8hi): Likewise.
18675         (vec_setv16qi): Likewise.
18676         (vec_set<mode>): New.
18677
18678 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18679
18680         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
18681         goto for vec_concat and vec_interleave.
18682
18683 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18684
18685         * config/i386/sse.md (vec_initv4sf): Removed.
18686         (vec_initv2df): Likewise.
18687         (vec_initv2di): Likewise.
18688         (vec_initv4si): Likewise.
18689         (vec_initv8hi): Likewise.
18690         (vec_initv16qi): Likewise.
18691         (vec_init<mode>): New.
18692
18693 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
18694
18695         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
18696
18697 2008-05-21  Tom Tromey  <tromey@redhat.com>
18698
18699         * ggc-zone.c (lookup_page_table_if_allocated): New function.
18700         (zone_find_object_offset): Likewise.
18701         (gt_ggc_m_S): Likewise.
18702         (highest_bit): Likewise.
18703         * ggc-page.c (gt_ggc_m_S): New function.
18704         * stringpool.c (string_stack): Remove.
18705         (init_stringpool): Update.
18706         (ggc_alloc_string): Use ggc_alloc.
18707         (maybe_delete_ident): New function.
18708         (ggc_purge_stringpool): Likewise.
18709         (gt_ggc_m_S): Remove.
18710         * ggc-common.c (ggc_protect_identifiers): New global.
18711         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
18712         ggc_protect_identifiers.
18713         * ggc.h (ggc_protect_identifiers): Declare.
18714         (gt_ggc_m_S): Update.
18715         (ggc_purge_stringpool): Declare.
18716         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
18717         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
18718         special case.
18719         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
18720
18721 2008-05-21  David S. Miller  <davem@davemloft.net>
18722
18723         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
18724         tmake_file.
18725
18726 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
18727
18728         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
18729         once finished.
18730
18731 2008-05-20  David Daney  <ddaney@avtrex.com>
18732
18733         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
18734         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
18735         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18736         UNSPEC_UPDATE_GOT_VERSION): Renumber.
18737         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
18738         (atomic_hiqi_op): New define_code_iterator.
18739         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
18740         mips_expand_compare_and_swap_12.
18741         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
18742         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
18743         (sync_<optab><mode>, sync_old_<optab><mode>,
18744         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
18745         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
18746         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
18747         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
18748         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
18749         (test_and_set_12): New insn.
18750         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
18751         sync_new_<optab><mode>, sync_old_nand<mode>,
18752         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
18753         clobber to operand 0 for SI and DI mode insns.
18754         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
18755         mips_gen_fn_4): New typedefs.
18756         (mips_gen_fn_ptrs): Define new union type.
18757         (mips_expand_compare_and_swap_12): Remove declaration.
18758         (mips_expand_atomic_qihi): Declare function.
18759         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
18760         (mips_expand_atomic_qihi): ... this.  Use new generator function
18761         parameter.
18762         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
18763         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
18764         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
18765         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
18766         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
18767         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
18768         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
18769         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
18770         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
18771         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
18772         New macros.
18773
18774 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
18775
18776         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
18777         the missing break.
18778
18779 2008-05-20  Anatoly Sokolov <aesok@post.ru>
18780
18781         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
18782         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
18783         (avr_attribute_table): Add 'OS_main' function attribute.
18784         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
18785         functions with 'OS_main' attribute.
18786
18787 2008-05-20  Richard Guenther  <rguenther@suse.de>
18788
18789         PR tree-optimization/35204
18790         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
18791         helper, split out from ...
18792         (DFS): ... here.  Make the DFS walk non-recursive.
18793
18794 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
18795             Jan Sjodin  <jan.sjodin@amd.com>
18796
18797         PR tree-optimization/36181
18798         * tree-parloops.c (loop_has_vector_phi_nodes): New.
18799         (parallelize_loops): Don't parallelize when the loop has vector
18800         phi nodes.
18801
18802 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18803             Sebastian Pop  <sebastian.pop@amd.com>
18804
18805         * tree-loop-linear.c (gather_interchange_stats): Look in the access
18806         matrix, and never look at the tree representation of the memory
18807         accesses.
18808         (linear_transform_loops): Computes parameters and access matrices.
18809         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
18810         when fails.
18811         (access_matrix_get_index_for_parameter): New.
18812         * tree-data-ref.h (struct access_matrix): New.
18813         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
18814         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
18815         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
18816         am_vector_index_for_loop): New.
18817         (struct data_reference): Add field access_matrix.
18818         (DR_ACCESS_MATRIX): New.
18819         (compute_data_dependences_for_loop): Update declaration.
18820         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
18821         * lambda.h (lambda_vector_vec_p): Declared.
18822         * lambda-code.c: Depend on pointer-set.h.
18823         (lambda_collect_parameters_from_af, lambda_collect_parameters,
18824         av_for_af_base, av_for_af, build_access_matrix,
18825         lambda_compute_access_matrices): New.
18826         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
18827
18828 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
18829
18830         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
18831         $SOURCEDIR/include.
18832
18833 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18834             Sebastian Pop  <sebastian.pop@amd.com>
18835
18836         PR tree-optimization/36206
18837         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
18838         FOLD_CONVERSIONS.
18839         (instantiate_scev_1): Rename flags to fold_conversions.
18840         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
18841         outeside instantiation_loop.
18842         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
18843         (evolution_function_is_affine_or_constant_p): Removed.
18844         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
18845         instantiate_scev.
18846         (analyze_siv_subscript): Pass in the loop nest number.
18847         Call evolution_function_is_affine_in_loop instead of
18848         evolution_function_is_affine_p.
18849         (analyze_overlapping_iterations): Pass in the loop nest number.
18850
18851 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18852             Sebastian Pop  <sebastian.pop@amd.com>
18853
18854         PR tree-optimization/36206
18855         * tree-chrec.h (chrec_fold_op): New.
18856         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
18857         and other trees.
18858
18859 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
18860
18861         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
18862         (DIRS_EQ): New.
18863         (remove_duplicates): Do not set inode on non-inode systems.
18864         Use DIRS_EQ.
18865
18866 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
18867
18868         * config.gcc (tm_file): Update comments about relative pathnames.
18869
18870 2008-05-20  Richard Guenther  <rguenther@suse.de>
18871
18872         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
18873         * tree-ssa-sccvn.c (process_scc): Likewise.
18874         * tree-ssa-sink.c (execute_sink_code): Likewise.
18875         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
18876         * tree-vrp.c (process_assert_insertions): Likewise.
18877         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
18878         (perform_tree_ssa_dce): Likewise.
18879         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
18880         (dump_dominator_optimization_stats): Likewise.
18881         * tree-vectorizer.c (vectorize_loops): Likewise.
18882
18883 2008-05-20  Richard Guenther  <rguenther@suse.de>
18884
18885         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
18886
18887 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
18888
18889         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
18890         (ix86_i386elf_return_in_memory): Likewise.
18891         (ix86_i386interix_return_in_memory): Likewise.
18892         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
18893         (SUBTARGET_RETURN_IN_MEMORY): New.
18894         * config/i386/i386elf.h: Likewise.
18895         * config/i386/ptx4-i.h: Likewise.
18896         * config/i386/sol2-10.h: Likewise.
18897         * config/i386/sysv4.h: Likewise.
18898         * config/i386/vx-common.h: Likewise.
18899         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
18900         * config/i386/i386.c (ix86_return_in_memory): Made static and
18901         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
18902         (ix86_i386elf_return_in_memory): Removed.
18903         (ix86_i386interix_return_in_memory): Removed.
18904         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
18905         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
18906
18907 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
18908
18909         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
18910
18911 2008-05-19  Xinliang David Li  <davidxl@google.com>
18912
18913         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
18914         * opts.c: Ditto.
18915         * common.opt: Ditto.
18916         * doc/invoke.texi: Ditto.
18917
18918 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
18919
18920         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
18921         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
18922
18923 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
18924
18925         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
18926         sizes of operand array from 8/4 to 4/2.
18927         (ix86_expand_vector_init_general): Change size of operand array
18928         from 32 to 16.  Remove op0, op1 and half_mode.
18929
18930 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
18931
18932         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
18933         (ix86_expand_vector_init_interleave): Likewise.
18934         (ix86_expand_vector_init_general): Use them.  Assert
18935         word_mode == SImode when n_words == 4.
18936
18937 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
18938
18939         * config/i386/i386.c (ix86_secondary_reload): New static function.
18940         (TARGET_SECONDARY_RELOAD): New define.
18941         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
18942         * config/i386/i386.md (reload_outqi): Remove.
18943
18944 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18945
18946         PR middle-end/35509
18947         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
18948         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
18949         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
18950         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
18951         (fold_builtin_1): Likewise.
18952         * builtins.def (BUILT_IN_ISINF_SIGN): New.
18953         c-common.c (check_builtin_function_arguments): Handle
18954         BUILT_IN_ISINF_SIGN.
18955         * doc/extend.texi: Document __builtin_isinf_sign.
18956         * fold-const.c (operand_equal_p): Handle COND_EXPR.
18957
18958 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
18959
18960         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
18961         EH cleanup at the end of the pass, search for those that have been
18962         turned into forwarder blocks and do the cleanup on their successor.
18963
18964 2008-05-18  Richard Guenther  <rguenther@suse.de>
18965
18966         * tree-cfg.c (verify_gimple_expr): Allow conversions from
18967         pointers to sizetype and vice versa.
18968
18969 2008-05-18 Xinliang David Li   <davidxl@google.com>
18970
18971         * gcc/tree-ssa-dce.c: Coding style fix.
18972         (check_pow): Documentation comment.
18973         (check_log): Documenation comment. Coding style fix.
18974         (is_unnecessary_except_errno_call): Ditto.
18975         (gen_conditions_for_pow): Ditto.
18976         (gen_conditions_for_log): Ditto.
18977         (gen_shrink_wrap_conditions): Ditto.
18978         (shrink_wrap_one_built_in_calls): Ditto.
18979         * gcc/doc/invoke.texi: Better documentation string.
18980         * ChangeLog: Fix wrong change log entries from
18981         May 17 checkin on function call DCE.
18982
18983 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
18984
18985         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
18986
18987 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
18988
18989         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
18990         * df-problems.c (simulation routines): Fixed block comment to
18991         properly say how to add forwards scanning functions.
18992
18993 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
18994
18995         * tree-inline.c (setup_one_parameter): Remove dead code.
18996
18997 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
18998
18999         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
19000         a BIT_AND_EXPR only for an INTEGER_TYPE.
19001
19002 2008-05-17 Xinliang David Li   <davidxl@google.com>
19003
19004         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
19005         (check_pow, check_log, is_unnecessary_except_errno_call): New
19006         functions to check for eliminating math functions that are pure
19007         except for setting errno.
19008         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
19009         general condition expressions for shrink-wrapping pow/log calls.
19010         (gen_shrink_wrap_conditions): Ditto.
19011         (shrink_wrap_one_built_in_call): Ditto.
19012         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
19013         (mark_operand_necessary): If debugging, output if OP is necessary.
19014         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
19015         unnecessary.
19016         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
19017         opt level >= 2.
19018         * gcc/common.opt: New user flag -ftree-builtin-dce.
19019         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
19020
19021 2008-05-16  David S. Miller  <davem@davemloft.net>
19022
19023         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
19024         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
19025
19026 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
19027
19028         PR target/36246
19029         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
19030
19031 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19032
19033         * ifcvt.c (dead_or_predicable): Rename
19034         df_simulate_one_insn_backwards to df_simulate_one_insn.
19035         * recog.c (peephole2_optimize): Ditto.
19036         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
19037         Ditto.
19038         * df.h: Rename df_simulate_one_insn_backwards to
19039         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
19040         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
19041         scanning of defs and uses.
19042         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
19043         (df_simulate_one_insn_forwards): Removed.
19044
19045 2008-05-16  Doug Kwan  <dougkwan@google.com>
19046
19047         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
19048         QNaN & SNaN.
19049         (real_from_string): Handle NaNs and Inf as approriate.
19050
19051 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
19052
19053         * doc/gty.texi (Source Files Containing Type Information): Note
19054         that headers should appear first in the gtfiles list.
19055
19056 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19057
19058         * tree.def (COND_EXEC): Properly documented this code.
19059
19060 2008-05-16  Diego Novillo  <dnovillo@google.com>
19061
19062         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
19063         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
19064         the new field.
19065
19066 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19067
19068         * tree-ssa-dse (max_stmt_uid): Removed.
19069         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
19070         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
19071         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
19072         * function.h (cfun.last_stmt_uid): New field.
19073         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
19074         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
19075         New functions.
19076         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
19077         (create_stmt_ann): Initialize the ann->uid field.
19078         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
19079         with new calls.
19080         * tree-flow.h (renumber_gimple_stmt_uids): New function.
19081
19082 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
19083
19084         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
19085         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
19086         (init_empty_tree_cfg): Call it.
19087
19088 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19089
19090         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
19091         Update all users.
19092
19093 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19094
19095         * doc/invoke.text (-fdump-tree-*-verbose): New option.
19096         * tree-dump.c (dump_options): New verbose option.
19097         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
19098         Add verbose dump.
19099         * tree-pass.h (TDF_VERBOSE): New dump flag.
19100         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
19101         (tree-flow.h): Added include.
19102         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
19103
19104 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
19105
19106         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
19107
19108         From Jie Zhang  <jie.zhang@analog.com>
19109         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19110         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
19111         mcpu=bf561-none and mcpu=bf561-0.2.
19112         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19113         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
19114         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19115         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
19116         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
19117         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
19118         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
19119         option.
19120         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
19121         (cputype_selected): Remove.
19122         (bfin_handle_option): Don't use cputype_selected.
19123         (override_options): When no mcpu option, enable all workarounds.
19124         Don't use bfin_workarounds.
19125         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
19126         processor type.
19127         (DEFAULT_CPU_TYPE): Don't define.
19128
19129 2008-05-16  Richard Guenther  <rguenther@suse.de>
19130
19131         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
19132         on deletion of the last stmt.
19133
19134 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
19135
19136         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
19137         V8HImode for SSE2 and V16QImode for SSE4.1.
19138
19139 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
19140
19141         * cgraph.h (compute_inline_parameters): Made public.
19142         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
19143         variable_generate_summary, function_write_summary,
19144         variable_write_summary, variable_read_summary.  Added generate_summary,
19145         write_summary, read_summary.
19146         * cgraphunit.c (cgraph_process_new_functions): Changed call from
19147         pass_ipa_inline.function_generate_summary, to
19148         compute_inline_parameters.
19149         * ipa-inline.c (compute_inline_parameters): Made public and added
19150         node parameter.
19151         (compute_inline_parameters_for_current): New function.
19152         (pass_inline_param): Now calls compute_inline_parameters_for_current.
19153         (inline_generate_summary): Removed parameter and made to loop over
19154         all cgraph nodes.
19155         (pass_ipa_inline): Updated for new IPA_PASS structure.
19156         * passes.c (execute_ipa_summary_passes): Now is called once per
19157         pass rather than once per node*pass.
19158
19159 2008-05-15  Anatoly Sokolov <aesok@post.ru>
19160
19161         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
19162         avr_have_mul_p, avr_asm_only_p): Remove variables.
19163         (avr_override_options): Remove initialization of removed variables.
19164         (avr_file_start):  Convert removed variables to fields of
19165         'struct base_arch_s *avr_current_arch'.
19166         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
19167         (AVR_HAVE_MUL): (Ditto.).
19168         (AVR_HAVE_MOVW): (Ditto.).
19169         (AVR_HAVE_LPMX): (Ditto.).
19170         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
19171         avr_asm_only_p): Remove declaration.
19172
19173 2008-05-15  Diego Novillo  <dnovillo@google.com>
19174
19175         * config/arm/arm.c (arm_return_in_memory): Fix return type.
19176         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
19177
19178 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
19179
19180         PR middle-end/36194
19181         * combine.c (check_conversion): Rename back to check_promoted_subreg.
19182         Don't call record_truncated_value from here.
19183         (record_truncated_value): Turn it into a for_each_rtx callback.
19184         (record_truncated_values): New function.
19185         (combine_instructions): Call note_uses with record_truncated_values.
19186         Change name of check_conversion to check_promoted_subreg.
19187
19188 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
19189
19190         * doc/sourcebuild.texi: Document support for torture tests.
19191
19192 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
19193
19194         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
19195         to alternative 4 of operand 2.
19196
19197 2008-05-15  Richard Guenther  <rguenther@suse.de>
19198
19199         * tree-pass.h (current_pass): Declare.
19200         (get_pass_for_id): Likewise.
19201         * passes.c (passes_by_id, passes_by_id_size): New globals.
19202         (set_pass_for_id): New function.
19203         (get_pass_for_id): Likewise.
19204         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
19205         (execute_function_todo): Flush per function statistics.
19206         * toplev.c (compile_file): Init statistics.
19207         (general_init): Do early statistics initialization.
19208         (finalize): Finish statistics.
19209         * statistics.h (statistics_early_init): Declare.
19210         (statistics_init): Likewise.
19211         (statistics_fini): Likewise.
19212         (statistics_fini_pass): Likewise.
19213         (statistics_counter_event): Likewise.
19214         (statistics_histogram_event): Likewise.
19215         * statistics.c: New file.
19216         * Makefile.in (OBJS-common): Add statistics.o.
19217         (statistics.o): Add dependencies.
19218         * doc/invoke.texi (-fdump-statistics): Document.
19219
19220         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
19221         (insert): Likewise.
19222         (execute_pre): Use statistics_counter_event.
19223         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
19224         (substitute_and_fold): Increment it.  Use statistics_counter_event.
19225
19226 2008-05-15  Diego Novillo  <dnovillo@google.com>
19227
19228         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
19229
19230         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
19231         * tree-ssa-alias.c (new_type_alias): Remove references to
19232         sub-variables from comment.
19233         * tree-ssa-operands.c (swap_tree_operands): Likewise.
19234
19235 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
19236
19237         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
19238         attribute to 1 only for insertps alternative.
19239
19240 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
19241
19242         * config/bfin/bfin.md (loadbytes): New pattern.
19243         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
19244         (bfin_init_builtins): Initialize it.
19245         (bdesc_1arg): Add it.
19246
19247 2008-05-15  Sa Liu  <saliu@de.ibm.com>
19248
19249         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
19250         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
19251         * testsuite/lib/target-supports.exp: Add
19252         check_effective_target_fortran_integer_16.
19253
19254 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
19255
19256         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
19257         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
19258         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
19259         (TARGET_RETURN_IN_MEMORY): Define.
19260
19261 2008-05-15  Richard Guenther  <rguenther@suse.de>
19262
19263         PR middle-end/36244
19264         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
19265         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
19266         represent unmodifiable vars.
19267
19268 2008-05-15  Richard Guenther  <rguenther@suse.de>
19269
19270         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
19271         INDIRECT_REF and TARGET_MEM_REF.
19272         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
19273         TARGET_MEM_REF.
19274
19275 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
19276             H.J. Lu  <hongjiu.lu@intel.com>
19277
19278         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
19279         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
19280         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
19281         insn alternatives.  Add missing alternatives.
19282         (*vec_concatv2di_rex64_sse4_1): Likewise.
19283         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
19284         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
19285         Require TARGET_SSE.
19286
19287 2008-05-15  Richard Guenther  <rguenther@suse.de>
19288
19289         PR tree-optimization/36009
19290         PR tree-optimization/36204
19291         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
19292         (determine_invariantness_stmt): Record the loop a store is
19293         always executed in.
19294         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
19295         dependency.
19296
19297 2008-05-15  Richard Guenther  <rguenther@suse.de>
19298
19299         PR tree-optimization/34330
19300         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
19301         through the pointer will alias the SMT.
19302
19303 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
19304
19305         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
19306
19307 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
19308
19309         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
19310
19311 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
19312             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
19313
19314         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
19315         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
19316         (vashl_optab): New optab for vector/vector shifts.
19317         (vashr_optab): Ditto.
19318         (vlshr_optab): Ditto.
19319         (vrotl_optab): Ditto.
19320         (vrotr_optab): Ditto.
19321         (optab_subtype): New enum for optab_for_tree_code call.
19322         (optab_for_tree_code): Add enum optab_subtype argument.
19323
19324         * optabs.c (optab_for_tree_code): Take an additional argument to
19325         distinguish between a vector shift by a scalar and vector shift by
19326         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
19327         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
19328         vector shift by a vector.
19329         (expand_widen_pattern_expr): Pass additional argument to
19330         optab_for_tree_code.
19331
19332         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
19333         vrotl_optab, vrotr_optab.
19334
19335         * expr.c (expand_expr_real_1): Update calls to
19336         optab_for_tree_code to distinguish between vector shifted by a
19337         scalar and vector shifted by a vector.
19338         * tree-vectorizer.c (supportable_widening_operation): Ditto.
19339         (supportable_narrowing_operation): Ditto.
19340         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
19341         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
19342         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
19343         (vect_create_epilog_for_reduction): Ditto.
19344         (vectorizable_reduction): Ditto.
19345         (vectorizable_operation): Ditto.
19346         (vect_strided_store_supported): Ditto.
19347         (vect_strided_load_supported): Ditto.
19348         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
19349         * expmed.c (expand_shift): Ditto.
19350
19351         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
19352         scalar type.
19353         (ashr@var{m}3): Ditto.
19354         (vashl@var{m}3): Document new vector/vector shift standard name.
19355         (vashr@var{m}3): Ditto.
19356         (vlshr@var{m}3): Ditto.
19357         (vrotl@var{m}3): Ditto.
19358         (vrotr@var{m}3): Ditto.
19359
19360         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
19361         (PPERM_INVERT): Ditto.
19362         (PPERM_REVERSE): Ditto.
19363         (PPERM_REV_INV): Ditto.
19364         (PPERM_ZERO): Ditto.
19365         (PPERM_ONES): Ditto.
19366         (PPERM_SIGN): Ditto.
19367         (PPERM_INV_SIGN): Ditto.
19368         (PPERM_SRC1): Ditto.
19369         (PPERM_SRC2): Ditto.
19370
19371         * config/i386/sse.md (mulv2di3): Add SSE5 support.
19372         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
19373         allows a memory operand to be the value being added, and split it
19374         to improve vectorization.
19375         (sse5_pmacsdqh_mem): Ditto.
19376         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
19377         (sse5_mulv2div2di3_high): Ditto.
19378         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
19379         (vec_pack_trunc_v4si): Ditto.
19380         (vec_pack_trunc_v2di): Ditto.
19381         (sse5_pcmov_<mode>): Remove code that tried to use use
19382         andps/andnps instead of pcmov.
19383         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
19384         pmacsdqh instructions.
19385         (vec_widen_smult_lo_v4si): Ditto.
19386
19387         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
19388         (PPERM_INVERT): Ditto.
19389         (PPERM_REVERSE): Ditto.
19390         (PPERM_REV_INV): Ditto.
19391         (PPERM_ZERO): Ditto.
19392         (PPERM_ONES): Ditto.
19393         (PPERM_SIGN): Ditto.
19394         (PPERM_INV_SIGN): Ditto.
19395         (PPERM_SRC1): Ditto.
19396         (PPERM_SRC2): Ditto.
19397         (ix86_expand_sse_movcc): Move the SSE5 test after the if
19398         true/false tests.
19399         (ix86_expand_int_vcond): If SSE5 generate all possible integer
19400         comparisons.
19401         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
19402         says ignore whether the last reference is a memory operand.
19403
19404 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
19405             Paolo Bonzini <bonzini at gnu dot org>
19406
19407         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
19408         shift patterns.
19409
19410         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
19411         (vlshr<mode>3): Rename from vlshr<mode>3.
19412         (vashr<mode>3): Rename from vashr<mode>3.
19413         (mulv4sf3): Change the names of vector shift patterns.
19414         (mulv4si3): Ditto.
19415         (negv4sf2): Ditt.
19416
19417         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
19418         shift insns.
19419
19420         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
19421         (SI_SHLHI): Ditto.
19422         (SI_SHL): Ditto.
19423         (SI_SHLI): Ditto.
19424         (SI_ROTH): Ditto.
19425         (SI_ROTHI): Ditto.
19426         (SI_ROT): Ditto.
19427         (SI_ROTI): Ditto.
19428         (SPU_RL_0): Ditto.
19429         (SPU_RL_1): Ditto.
19430         (SPU_RL_2): Ditto.
19431         (SPU_RL_3): Ditto.
19432         (SPU_RL_4): Ditto.
19433         (SPU_RL_5): Ditto.
19434         (SPU_RL_6): Ditto.
19435         (SPU_RL_7): Ditto.
19436         (SPU_SL_0): Ditto.
19437         (SPU_SL_1): Ditto.
19438         (SPU_SL_2): Ditto.
19439         (SPU_SL_3): Ditto.
19440         (SPU_SL_4): Ditto.
19441         (SPU_SL_5): Ditto.
19442         (SPU_SL_6): Ditto.
19443         (SPU_SL_7): Ditto.
19444
19445         * config/spu/spu.md (v): New iterator macro to add v for vector types.
19446         (floatunssidf2_internal): Change vector/vector shift names.
19447         (floatunsdidf2_internal): Ditto.
19448         (mulv8hi3): Ditto.
19449         (ashrdi3): Ditto.
19450         (ashrti3): Ditto.
19451         (cgt_df): Ditto.
19452         (cgt_v2df): Ditto.
19453         (dftsv): Ditto.
19454         (vashl<mode>3): Rename from ashl<mode>3.
19455         (vashr<mode>3): Rename from ashr<mode>3.
19456         (vlshr<mode>3): Rename from lshr<mode>3.
19457         (vrotl<mode>3): Rename from rotl<mode>3.
19458
19459 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
19460
19461         PR target/36224
19462         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
19463         multiply gives the wrong value when doing widening multiplies.
19464         (vec_widen_smult_lo_v4si): Ditto.
19465
19466 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
19467
19468         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
19469         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
19470         emit_library_call_value.
19471         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
19472         * tree.h (ECF_LIBCALL_BLOCK): Removed.
19473         * calls.c (initialize_argument_information, precompute_arguments,
19474         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
19475         (precompute_arguments): Removed flags parameter.
19476         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
19477
19478 2008-05-14  Richard Guenther  <rguenther@suse.de>
19479
19480         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
19481         Make sure to register the store if the use is a PHI_NODE.
19482
19483 2008-05-14  Olivier Hainque  <hainque@adacore.com>
19484
19485         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
19486         memory if the component is to be referenced in BLKmode according
19487         to get_inner_reference.
19488
19489 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
19490
19491         * calls.c (emit_library_call_value_1): Restore code clearing
19492         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
19493
19494 2008-05-14  Olivier Hainque  <hainque@adacore.com>
19495             Nicolas Roche  <roche@adacore.com>
19496
19497         * configure.ac: Add support for a "gcc_subdir" variable in
19498         config-lang.in, to denote a subdirectory where the language/GCC
19499         integration files are to be found.
19500         * configure: Regenerate.
19501
19502 2008-05-14  Ira Rosen  <irar@il.ibm.com>
19503
19504         PR tree-optimization/36098
19505         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
19506         value for the first load in the group in case of a gap.
19507         (vect_build_slp_tree): Check that there are no gaps in loads.
19508
19509 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
19510
19511         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
19512         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
19513         expand_copysign_bit): Change call to emit_no_conflict_block to
19514         emit_insn and remove unneeded code to construct extra args.
19515         (emit_no_conflict_block): Removed.
19516         * optabls.h (emit_no_conflict_block): Removed.
19517         * cse.c (cse_extended_basic_block): Remove search for
19518         REG_NO_CONFLICT note.
19519         * global.c: Removed incorrect comment added in revision 117.
19520         * expr.c (convert_move): Change call to emit_no_conflict_block to
19521         emit_insn.
19522         * recog.c: Change comments so that they do not mention
19523         REG_NO_CONFLICT.
19524         * local_alloc.c (combine_regs): Removed last parameter.
19525         (no_conflict_p): Removed.
19526         (block_alloc): Removed note, no_conflict_combined_regno and set
19527         local vars. Removed all code to process REG_NO_CONFLICT blocks.
19528         (combine_regs): Removed already_dead and code to look for
19529         REG_NO_CONFLICT notes.
19530         * lower_subreg (remove_retval_note): Removed code to look for
19531         REG_NO_CONFLICT block.
19532         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
19533         (resolve_clobber): Remove code to process libcalls that have
19534         REG_NO_CONFLICT notes.
19535         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
19536         case.
19537         * combine.c (can_combine_p, distribute_notes):  Removed
19538         REG_NO_CONFLICT case.
19539         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
19540         to emit_insns.
19541         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
19542         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
19543         Ditto.
19544         * reg-notes.def (NO_CONFLICT): Removed.
19545
19546 2008-05-14  David S. Miller  <davem@davemloft.net>
19547
19548         * config/sparc/sparc.c (sparc_profile_hook): If
19549         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
19550         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
19551         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
19552
19553 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
19554
19555         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
19556
19557 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
19558
19559         PR target/36222
19560         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
19561         and op1 expansion before vector concat to have less live pseudos.
19562
19563 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
19564
19565         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
19566         ix86_expand_vector_set if supported.
19567
19568 2008-05-13  Diego Novillo  <dnovillo@google.com>
19569             Kenneth Zadeck  <zadeck@naturalbridge.com>
19570
19571         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
19572
19573         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
19574         phinodes_print_statistics, init_ssanames, fini_ssanames,
19575         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
19576         release_ssa_name, release_defs, replace_ssa_name_symbol,
19577         ssanames_print_statistics): Move ...
19578         * tree-flow.h: ... here.
19579         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
19580         Use FN instead of cfun.
19581         (make_ssa_name_fn): Rename from make_ssa_name.
19582         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
19583         * tree-flow-inline.h (make_ssa_name): Move from
19584         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
19585         * omp-low.c (expand_omp_parallel):
19586         * tree-flow-inline.h (redirect_edge_var_map_result):
19587         * tree-ssa.c (init_tree_ssa): Add argument FN.
19588         Use it instead of cfun.  Update all users.
19589
19590 2008-05-13  Tom Tromey  <tromey@redhat.com>
19591
19592         PR preprocessor/22168:
19593         * doc/cpp.texi (Top): Update menu.
19594         (Alternatives to Wrapper #ifndef): New node.
19595         (Other Directives): Document deprecation.
19596         (Obsolete Features): Remove menu.
19597         (Assertions): Merge node into Obsolete Features.
19598         (Obsolete once-only headers): Move earlier; rename to Alternatives
19599         to Wrapper #ifndef.
19600         * doc/cppopts.texi: Update.
19601         * c.opt (Wdeprecated): Enable for C and ObjC.
19602         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
19603         (C++ Dialect Options): Move -Wno-deprecated from here to...
19604         (Warning Options): ... here.
19605
19606 2008-05-13  Richard Guenther  <rguenther@suse.de>
19607
19608         PR middle-end/36227
19609         * fold-const.c (fold_sign_changed_comparison): Do not allow
19610         changes in pointer-ness.
19611
19612 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
19613
19614         PR target/24713
19615         * config/sh/sh.c (sh_expand_prologue): Don't clear
19616         RTX_FRAME_RELATED_P for push insns.
19617
19618 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
19619
19620         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
19621
19622 2008-05-12  Anatoly Sokolov <aesok@post.ru>
19623
19624         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
19625         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
19626         Use 'machine->is_leaf' instead of 'leaf_func_p'.
19627
19628 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
19629
19630         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
19631         (*vec_concatv4sf_sse): This.
19632         (*sse2_concatv2si): Renamed to ...
19633         (*vec_concatv2si_sse2): This.
19634         (*sse1_concatv2si): Renamed to ...
19635         (*vec_concatv2si_sse): This.
19636         (*vec_concatv2di_rex): Renamed to ...
19637         (*vec_concatv2di_rex64): This.
19638         (*vec_concatv2si_sse4_1): New.
19639         (*vec_concatv2di_rex64_sse4_1): Likewise.
19640
19641 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
19642
19643         PR rtl-optimization/36111
19644         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
19645         that was created for swappable operands.
19646
19647 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
19648
19649         PR ada/36001
19650         * Makefile.in: Substitute GNATMAKE and GNATBIND.
19651         * configure.ac: Add call to ACX_PROG_GNAT.
19652
19653 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
19654
19655         * optc-gen.awk: Fix comment typo.
19656
19657 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19658
19659         * pretty-print.c (pp_integer_with_precision): Use
19660         HOST_LONG_LONG_FORMAT.
19661
19662 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
19663
19664         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
19665
19666 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
19667
19668         * config/i386/i386.c (bdesc_ptest): Removed.
19669         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
19670         (bdesc_args): Add __builtin_ia32_ptestz128,
19671         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
19672         (ix86_init_mmx_sse_builtins): Updated.
19673         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
19674         (ix86_expand_builtin): Updated.
19675
19676 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
19677
19678         * tree-cfg.c (valid_fixed_convert_types_p): New function.
19679         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
19680
19681 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
19682
19683         * value-prof.c (interesting_stringop_to_profile): Do not
19684         return early for BUILT_IN_MEMPCPY.
19685
19686 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
19687
19688         * calls.c (expand_call): Don't use callgraph to increase
19689         preferred_stack_boundary.
19690
19691         * cgraph.h (cgraph_rtl_info): Use unsigned on
19692         preferred_incoming_stack_boundary.
19693
19694         * final.c (rest_of_clean_state): Use unsigned on
19695         preferred_stack_boundary.
19696
19697 2008-05-09  Tom Tromey  <tromey@redhat.com>
19698
19699         PR preprocessor/22231:
19700         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
19701         proceeding.
19702
19703 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
19704
19705         PR tree-optimization/36129
19706         * tree-ssa-ccp.c: Include value-prof.h.
19707         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
19708         built-in function was folded to a constant.
19709         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
19710
19711 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
19712             Sebastian Pop  <sebastian.pop@amd.com>
19713
19714         * tree-scalar-evolution.c: Document instantiate_scev.
19715         (instantiate_parameters_1): Renamed instantiate_scev_1.
19716         Don't use the same loop for instantiation_loop and evolution_loop.
19717         (instantiate_scev): New.
19718         (instantiate_parameters): Moved...
19719         (resolve_mixers): Update call to instantiate_scev_1 to pass the
19720         same loop twice.  Maintains the semantics for this function.
19721         * tree-scalar-evolution.h (instantiate_scev): Declare.
19722         (instantiate_parameters): ...here.  Now static inline.
19723         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
19724         instead of resolve_mixers.
19725
19726 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
19727
19728         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
19729
19730 2008-05-09  Tomas Bily  <tbily@suse.cz>
19731
19732         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
19733         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
19734         * tree-ssa-structalias.c (get_constraint_for): Likewise.
19735         * c-common.c (c_common_truthvalue_conversion): Likewise.
19736         * tree-object-size.c (compute_object_offset): Likewise.
19737         * tree-inline.c (estimate_num_insns_1): Likewise.
19738         * varasm.c (const_hash_1, compare_constant, copy_constant)
19739         (compute_reloc_for_constant, output_addressed_constants)
19740         (initializer_constant_valid_p): Likewise.
19741         * c-omp.c (check_omp_for_incr_expr): Likewise.
19742         * gimplify.c (gimplify_expr): Likewise.
19743         * c-typeck.c (c_finish_return): Likewise.
19744         * tree-vectorizer.c (supportable_widening_operation)
19745         (supportable_narrowing_operation): Likewise.
19746         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
19747         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
19748         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
19749         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
19750         (descr_info_loc): Likewise.
19751         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19752         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
19753         (fold_unary): Likewise.
19754         * builtins.c (get_pointer_alignment): Likewise.
19755         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
19756         (instantiate_parameters_1): Likewise.
19757         * tree.c (expr_align, stabilize_reference): Likewise.
19758         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
19759         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19760         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
19761         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19762         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
19763         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
19764         Likewise.
19765         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
19766         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
19767         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
19768         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
19769         (forward_propagate_comparison)
19770         (tree_ssa_forward_propagate_single_use_vars): Likewise.
19771         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
19772         * emit-rtl.c (component_ref_for_mem_expr)
19773         (set_mem_attributes_minus_bitpos): Likewise.
19774         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
19775         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
19776         Likewise.
19777         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
19778         (build_function_call, pointer_diff, build_compound_expr)
19779         (c_finish_return): Likewise.
19780         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
19781         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
19782         Likewise.
19783         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
19784         * expr.c (is_aligning_offset): Likewise.
19785         * tree-ssa-alias.c (is_escape_site): Likewise.
19786         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
19787         (check_all_va_list_escapes): Likewise.
19788         * tree-ssa-loop-ivopts.c (determine_base_object)
19789         (determine_common_wider_type): Likewise.
19790         * dojump.c (do_jump): Likewise.
19791         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
19792         * tree-gimple.c (is_gimple_cast): Likewise.
19793         * fold-const.c (decode_field_reference)
19794         (fold_sign_changed_comparison, fold_unary, fold_comparison)
19795         (fold_binary): Likewise.
19796         * tree-ssa-alias-warnings.c (find_alias_site_helper)
19797         (already_warned_in_frontend_p): Likewise.
19798         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
19799         * tree.c (really_constant_p, get_unwidened): Likewise.
19800         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
19801         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
19802         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
19803         Likewise.
19804         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
19805         CONVERT_EXPR_P.
19806         (CONVERT_EXPR_P): Define.
19807         (CASE_CONVERT): Define.
19808
19809 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
19810
19811         PR middle-end/36117
19812         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
19813         (delete_unmarked_insns): When deleting a call, call
19814         delete_unreachable_blocks.
19815         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
19816         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
19817
19818 2008-05-08  Richard Guenther  <rguenther@suse.de>
19819
19820         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
19821         (-ftree-salias): Likewise.
19822         (salias-max-implicit-fields): Remove param documentation.
19823         (salias-max-array-elements): Likewise.
19824         * tree-pass.h (pass_create_structure_vars): Remove.
19825         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19826         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19827         * tree-ssa-alias.c (create_structure_vars): Remove.
19828         (gate_structure_vars): Likewise.
19829         (pass_create_structure_vars): Likewise.
19830         (gate_build_alias): Likewise.
19831         (pass_build_alias): Adjust to run always and dump the function.
19832         * common.opt (ftree-salias): Hide.
19833         * passes.c (init_optimization_passes): Remove
19834         pass_create_structure_vars, adjust comment.
19835         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19836         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19837         * opts.c (decode_options): Do not set flag_tree_salias.
19838         (common_handle_option): Add OPT_ftree_salias to the backward
19839         compatibility section.
19840
19841 2008-05-08  Richard Guenther  <rguenther@suse.de>
19842
19843         * tree-flow-inline.h (var_can_have_subvars): Move ...
19844         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
19845         * tree-flow.h (var_can_have_subvars): Remove.
19846         (push_fields_onto_fieldstack): Remove.
19847         (sort_fieldstack): Likewise.
19848         (struct fieldoff): Move ...
19849         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
19850         alias_set and base_for_components fields.
19851         (sort_fieldstack): Make static.
19852         (push_fields_onto_fieldstack): Likewise.  Remove code that
19853         handles anything but RECORD_TYPEs.  Remove alias_set and
19854         base_for_components handling.
19855         (create_variable_info_for): Adjust.
19856
19857 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
19858
19859         * common.opt (Wframe-larger-than=): Shorten the help message
19860         to one line.
19861         * doc/invoke.texi (Wframe-larger-than=): Add more description.
19862
19863 2008-05-08  Rafael Espíndola  <espindola@google.com>
19864
19865         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
19866         trap.
19867         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
19868         trap and that both operands are gimple values.
19869         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
19870         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
19871         is a fp operation.
19872
19873 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
19874
19875         * read-rtl.c (join_c_conditions): Return the first string if the
19876         two strings are equal.
19877
19878 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
19879
19880         * gensupport.h (pred_data): Add a "num_codes" field.
19881         (add_predicate_code): Declare.
19882         * gensupport.c (add_predicate_code): New function.
19883         (std_pred_table): Add an "allows_const_p" field.
19884         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
19885         Remove the (incomplete) list of such codes from the codes field.
19886         (init_predicate_table): Use add_predicate_code.  Add all
19887         RTX_CONST_OBJs if allows_const_p is true.
19888         * genrecog.c (process_define_predicate): Use add_predicate_code.
19889
19890 2008-05-08  David Daney  <ddaney@avtrex.com>
19891             Richard Sandiford  <rsandifo@nildram.co.uk>
19892
19893         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
19894         special case of constant zero operands.
19895         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
19896         old and new values.  Special case constant zero values.
19897         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
19898         fails.
19899         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
19900         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
19901
19902 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
19903
19904         PR target/36090
19905         * simplify-rtx.c (simplify_plus_minus): Create CONST of
19906         similar RTX_CONST_OBJ before CONST_INT.
19907
19908 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
19909
19910         * stmt.c (expand_stack_restore): Change sa mode if needed.
19911
19912 2008-05-08  Richard Guenther  <rguenther@suse.de>
19913
19914         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
19915         return type to bool.
19916         (ix86_sol10_return_in_memory): Likewise.
19917         (ix86_i386elf_return_in_memory): Likewise.
19918         (ix86_i386interix_return_in_memory): Likewise.
19919         * config/i386/i386.c (ix86_return_in_memory): Likewise.
19920         (ix86_sol10_return_in_memory): Likewise.
19921         (ix86_i386elf_return_in_memory): Likewise.
19922         (ix86_i386interix_return_in_memory): Likewise.
19923
19924 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
19925
19926         PR bootstrap/36180
19927         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
19928         fndecl argument.
19929         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
19930         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
19931         declared in front.
19932
19933 2008-05-08  Richard Guenther  <rguenther@suse.de>
19934
19935         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
19936         * tree-data-ref.h (struct dr_alias): Remove subvars field.
19937         (DR_SUBVARS): Remove.
19938         * tree-dfa.c (dump_subvars_for): Remove.
19939         (debug_subvars_for): Likewise.
19940         (dump_variable): Do not dump subvars.
19941         (remove_referenced_var): Do not remove subvars.
19942         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
19943         (lookup_subvars_for_var): Remove.
19944         (get_subvars_for_var): Likewise.
19945         (get_subvars_at): Likewise.
19946         (get_first_overlapping_subvar): Likewise.
19947         (overlap_subvar): Likewise.
19948         * tree-flow.h (subvar_t): Remove.
19949         (struct var_ann_d): Remove subvars field.
19950         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
19951         argument.  Remove special handling of SFTs.
19952         (compute_tag_properties): Likewise.
19953         (set_initial_properties): Likewise.
19954         (compute_call_clobbered): Likewise.
19955         (count_mem_refs): Likewise.
19956         (compute_memory_partitions): Likewise.
19957         (compute_flow_insensitive_aliasing): Likewise.
19958         (setup_pointers_and_addressables): Likewise.
19959         (new_type_alias): Likewise.
19960         (struct used_part): Remove.
19961         (used_portions): Likewise.
19962         (struct used_part_map): Likewise.
19963         (used_part_map_eq): Likewise.
19964         (used_part_map_hash): Likewise.
19965         (free_used_part_map): Likewise.
19966         (up_lookup): Likewise.
19967         (up_insert): Likewise.
19968         (get_or_create_used_part_for): Likewise.
19969         (create_sft): Likewise.
19970         (create_overlap_variables_for): Likewise.
19971         (find_used_portions): Likewise.
19972         (create_structure_vars): Likewise.
19973         * tree.def (STRUCT_FIELD_TAG): Remove.
19974         * tree.h (MTAG_P): Adjust.
19975         (struct tree_memory_tag): Remove base_for_components and
19976         unpartitionable flags.
19977         (struct tree_struct_field_tag): Remove.
19978         (SFT_PARENT_VAR): Likewise.
19979         (SFT_OFFSET): Likewise.
19980         (SFT_SIZE): Likewise.
19981         (SFT_NONADDRESSABLE_P): Likewise.
19982         (SFT_ALIAS_SET): Likewise.
19983         (SFT_UNPARTITIONABLE_P): Likewise.
19984         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
19985         (union tree_node): Remove sft field.
19986         * alias.c (get_alias_set): Remove special handling of SFTs.
19987         * print-tree.c (print_node): Remove handling of SFTs.
19988         * tree-dump.c (dequeue_and_dump): Likewise.
19989         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
19990         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
19991         * tree-predcom.c (set_alias_info): Do not set subvars.
19992         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
19993         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
19994         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
19995         (add_vars_for_offset): Remove.
19996         (add_virtual_operand): Remove special handling of SFTs.
19997         (add_call_clobber_ops): Likewise.
19998         (add_call_read_ops): Likewise.
19999         (get_asm_expr_operands): Likewise.
20000         (get_modify_stmt_operands): Likewise.
20001         (get_expr_operands): Likewise.
20002         (add_to_addressable_set): Likewise.
20003         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
20004         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
20005         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
20006         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
20007         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
20008         (tree_node_structure): Likewise.
20009         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
20010         handling of SFTs.
20011         (find_what_p_points_to): Likewise.
20012
20013 2008-05-08  Sa Liu  <saliu@de.ibm.com>
20014
20015         * config/spu/spu.md: Fixed subti3 pattern.
20016
20017 2008-05-08  Richard Guenther  <rguenther@suse.de>
20018
20019         PR middle-end/36154
20020         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20021         sure to create a representative for trailing arrays for PTA.
20022
20023 2008-05-08  Richard Guenther  <rguenther@suse.de>
20024
20025         PR middle-end/36172
20026         * fold-const.c (operand_equal_p): Two objects which types
20027         differ in pointerness are not equal.
20028
20029 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
20030
20031         * calls.c (compute_argument_block_size): Add argument tree fndecl.
20032         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
20033         (emit_library_call_value_1): Add new variable fndecl initialized by
20034         NULL_TREE. It should be the decl type of orgfun, but this information
20035         seems not to be available here, so it uses the default calling abi.
20036         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
20037         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
20038         by TARGET_RETURN_IN_MEMORY.
20039         * config/i386/i386-interix.h: Likewise.
20040         * config/i386/i386.h: Likewise.
20041         * config/i386/i386elf.h: Likewise.
20042         * config/i386/ptx4-i.h: Likewise.
20043         * config/i386/sol2-10.h: Likewise.
20044         * config/i386/sysv4.h: Likewise.
20045         * config/i386/vx-common.h: Likewise.
20046         * config/cris/cris.h: Removed #if 0 clause.
20047         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
20048         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
20049         argument.
20050         (ix86_sol10_return_in_memory): Likewise.
20051         (ix86_i386elf_return_in_memory): New.
20052         (ix86_i386interix_return_in_memory): New.
20053         * config/mt/mt-protos.h (mt_return_in_memory): New.
20054         * config/mt/mt.c: Likewise.
20055         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
20056         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
20057         * config/bfin/bfin.h: Likewise.
20058         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
20059         argument.
20060         * config/bfin/bfin.c: Likewise.
20061         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
20062         * config/alpha/unicosmk.h: Likewise.
20063         * config/i386/cygming.h: Likewise.
20064         * config/iq2000/iq2000.h: Likewise.
20065         * config/mips/mips.h: Likewise.
20066         * config/mn10300/mn10300.h: Likewise.
20067         * config/rs6000/rs6000.h: Likewise.
20068         * config/score/score.h: Likewise.
20069         * config/spu/spu.h: Likewise.
20070         * config/v850/v850.h: Likewise.
20071         * defaults.h: Likewise.
20072         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
20073         * expr.c (emit_block_move): Adjust use of
20074         OUTGOING_REG_PARM_STACK_SPACE.
20075         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
20076         OUTGOING_REG_PARM_STACK_SPACE.
20077         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
20078
20079 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
20080
20081         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
20082         on OMP_RETURN for OMP_FOR.
20083
20084         PR debug/35896
20085         * dwarf2out.c (dw_expand_expr, common_check): Removed.
20086         (fortran_common): New function.
20087         (gen_variable_die): Call fortran_common instead of common_check,
20088         adjust for it returning tree instead of rtx.  Formatting.
20089
20090 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
20091
20092         PR rtl/7335
20093         PR rtl/33826
20094         * see.c (see_copy_insn): Copy new pure const attributes for new call.
20095         * c-decl.c (merge_decls): Ditto.
20096         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
20097         to RTL_CONST_OR_PURE_CALL_P.
20098         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
20099         Initialized DECL_LOOPING_CONST_PURE.
20100         (process_call_operands): Set tree_side_effects properly.
20101         * tree.h (TREE_READONLY_DECL_P): Removed.
20102         (DECL_IS_PURE): Renamed to DECL_PURE_P.
20103         (DECL_LOOPING_OR_CONST_P): New macro.
20104         (struct tree_function_decl): Added looping_const_or_pure_p.
20105         (ECF_*) Renumbered.
20106         (ECF_LOOPING_OR_CONST_P): New macro.
20107         * rtlanal.c (pure_const_p): Removed.
20108         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
20109         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
20110         to RTL_CONST_CALL_P.
20111         * ipa-pure-const.c (pure_const_state_e): Added looping field.
20112         (check_decl, check_tree, check_call, scan_function): Initialize
20113         looping.
20114         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
20115         (static_execute): Set looping true for recursive functions.
20116         Undo setting state to IPA_NEITHER for recursive functions.
20117         * cse.c (cse_insn):
20118         * ifcvt.c (noce_can_store_speculate_p): Changed
20119         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
20120         RTL_CONST_OR_PURE_CALL_P.
20121         * dse.c (scan_insn): Ditto.
20122         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
20123         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
20124         RTL_CONST_OR_PURE_CALL_P.
20125         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
20126         pure_call_p to RTL_CONST_CALL_P.
20127         * gimplify.c (gimplify_call_expr): Clear side effects for
20128         non-looping pure and constant calls.
20129         * calls.c (emit_call_1): Set rtl flags from ecf flags.
20130         (flags_from_decl_or_type): Set ecf flags from decl flags.
20131         (initialize_argument_information): Turn off
20132         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
20133         Change const to pure if callee_copies is true rather than just
20134         turning off const.
20135         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
20136         way of marking pure calls.
20137         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
20138         Remove hack that was supposed to fix pr7335 and remove old
20139         way of marking pure calls.
20140         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
20141         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
20142         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
20143         RTL_CONST_OR_PURE_CALL_P.
20144         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
20145         * loop-invariant.c (find_exits, find_invariant_bb): Changed
20146         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
20147         * sched-deps.c (schedule_analyze): Ditto.
20148         * rtl.h (struct rtx_def): Use call field, unchanging field, and
20149         return_val field of calls to represent pure and const function info.
20150         (CONST_OR_PURE_CALL_P): Deleted macro.
20151         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
20152         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
20153         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
20154         TREE_READONLY.
20155         * tree-optimize.c (execute_fixup_cfg): Added test for
20156         ECF_LOOPING_CONST_OR_PURE.
20157         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
20158         DECL_PURE_P.
20159         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
20160         effects for looping pure or const calls.
20161         (verify_gimple_expr): Added verification code.
20162         * config/alpha/alpha.c (alpha_legitimize_address,
20163         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
20164         RTL_CONST_CALL_P.
20165         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
20166         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
20167         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
20168         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
20169         RTL_CONST_OR_PURE_CALL_P.
20170         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
20171         and const calls to be deleted.
20172
20173 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
20174
20175         PR target/35714
20176         * config/i386/mmx.md (mmx_subv2sf3): New expander.
20177         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
20178         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
20179         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20180         to handle nonimmediate operands.
20181         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
20182         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
20183         to handle nonimmediate operands.
20184         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
20185         (mmx_pmulhrwv4hi3): New expander.  Use
20186         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20187         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
20188         (sse2_umulv1siv1di3): New expander.  Use
20189         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20190         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
20191         (mmx_eq<mode>3): New expander.  Use
20192         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20193         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
20194         (mmx_uavgv8qi3): New expander.  Use
20195         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20196         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
20197         (mmx_uavgv4hi3): New expander.  Use
20198         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20199
20200         * config/i386/sse.md
20201         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
20202         to handle nonimmediate operands.
20203         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
20204         to handle nonimmediate operands.
20205         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
20206         to handle nonimmediate operands.
20207         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
20208         to handle nonimmediate operands.
20209         (sse2_unpckhpd_exp): New expander.  Use
20210         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20211         (sse2_unpcklpd_exp): New expander.  Use
20212         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20213         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
20214         to handle nonimmediate operands.
20215         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
20216         to handle nonimmediate operands.
20217         (*sse2_<plusminus_insn><mode>3): Rename from
20218         sse2_<plusminus_insn><mode>3 insn pattern.
20219         (sse2_<plusminus_insn><mode>3): New expander.  Use
20220         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20221         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
20222         (sse2_umulv2siv2di3): New expander.  Use
20223         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20224         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
20225         (sse4_1_mulv2siv2di3): New expander.  Use
20226         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20227         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
20228         (sse2_pmaddwd): New expander.  Use
20229         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20230         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
20231         (sse2_eq<mode>3): New expander.  Use
20232         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20233         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
20234         (sse4_1_eqv2di3): New expander.  Use
20235         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20236         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
20237         (sse2_uavgv16qi3): New expander.  Use
20238         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20239         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
20240         (sse2_uavgv16qi3): New expander.  Use
20241         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20242         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
20243         (sse2_uavgv8hi3): New expander.  Use
20244         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20245         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
20246         (ssse3_pmulhrswv8hi3): New expander.  Use
20247         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20248         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
20249         (ssse3_pmulhrswv4hi3): New expander.  Use
20250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20251
20252         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
20253         (<sse>_vmmul<mode>3): Ditto.
20254         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
20255         (divv2df3): Ditto.
20256         (ssse3_pmaddubsw128): Use register_operand for operand 1.
20257         (ssse3_pmaddubsw): Ditto.
20258
20259         * config/i386/i386.c (struct_builtin_description)
20260         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
20261         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
20262         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
20263         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
20264         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
20265         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
20266         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
20267         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
20268         (ix86_fixup_binary_operands): Assert that src1
20269         and src2 must have the same mode when swapped.
20270         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
20271         and ix86_binary_operator_ok.  Do not force operands in registers
20272         when optimizing.
20273
20274 2008-05-07  Jan Hubicka  <jh@suse.cz>
20275
20276         * cgraph.c (dump_cgraph_node): Update.
20277         * cgraph.h (cgraph_local_info): Break out inline summary.
20278         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
20279         hook.
20280         * ipa-inline (inline_summary): New accestor function.
20281         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
20282         cgraph_decide_inlining, compute_inline_parameters): Update.
20283         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
20284
20285 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
20286
20287         Cleanup ColdFire scheduling support and add V4 pipeline model.
20288
20289         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
20290         (define_attr cpu): Add cfv4 value.
20291         (define_attr type, define_attr type1): Merge into a single 'type'
20292         attribute.  Update all uses.
20293         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
20294         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
20295         Update all uses.
20296         (define_attr opx_mem, define_attr opy_mem): Remove.
20297         (define_attr op_mem): Clean up, update comment.
20298         (define_attr size): Use specific values instead of general int.
20299         (define_attr guess, define_attr split): Remove.  Update all uses.
20300         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
20301         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
20302         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
20303         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
20304         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
20305         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
20306         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
20307         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
20308         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
20309         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
20310         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
20311         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
20312         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
20313         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
20314         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
20315         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
20316         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
20317         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
20318         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
20319         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
20320         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
20321         Update or set attributes.
20322         (stack_tie): New fake instruction.
20323
20324         * config/m68k/m68k.h (TUNE_CFV4): New macro.
20325         (m68k_sched_attr_size): Update declaration.
20326         (m68k_sched_attr_type2): Remove.
20327         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
20328         Declare new bypass predicates.
20329
20330         * config/m68k/m68k.c (m68k_sched_issue_rate,
20331         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
20332         implementations.
20333         (TARGET_SCHED_ISSUE_RATE,
20334         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
20335         (override_options): Handle scheduling for ColdFire V4 core.
20336         (m68k_expand_prologue): Emit stack_tie.
20337         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
20338         'OP_TYPE_FPN'.  Update all uses.
20339         (sched_guess_p): Remove.
20340         (sched_address_type): Handle symbolic addresses.
20341         (sched_get_operand): New static function.
20342         (sched_operand_type): Merge into sched_attr_op_type.
20343         (sched_attr_op_type): Handle FP registers, handle quick constants,
20344         update.
20345         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
20346         (m68k_sched_attr_size): Update.  Move logic to ...
20347         (sched_get_attr_size_int): New static function.
20348         (sched_get_opxy_mem_type): New static function.
20349         (m68k_sched_attr_op_mem): Update.
20350         (m68k_sched_attr_type2): Remove.
20351         (sched_cfv4_bypass_data): New static variable.
20352         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
20353         (m68k_sched_issue_rate): Implement scheduler hook.
20354         (struct _sched_ib: enabled_p): New field.
20355         (m68k_sched_variable_issue): Update.  Handle V4.
20356         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
20357         sched_dump_class_func_t, sched_dump_split_class,
20358         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
20359         sched_dump_dfa_class, m68k_sched_dump): Remove.
20360         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
20361         hook.
20362         (m68k_sched_init_global): Remove statisctics dumping, introduce
20363         sanity check that all instructions have pipeline reservations.  Handle
20364         ColdFire V4 core.
20365         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
20366         Handle ColdFire V4 core.
20367         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
20368         New static functions.
20369         (m68k_sched_address_bypass_p): New bypass predicate.
20370         (sched_get_indexed_address_scale): New static function.
20371         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
20372
20373         * cf.md: Update comments.
20374         (define_attr type2): Remove.  Use 'type' attribute instead.
20375         Update all uses.
20376         (cf_ib): Rename to cfv123_ib.  Update all uses.
20377         (cf_oep): Rename to cfv123_oep.  Update all uses.
20378         (cf_chr): Rename to cfv123_chr.  Update all uses.
20379         (cf_mem): Rename to cfv123_mem.  Update all uses.
20380         (cf_mac): Move to more appropriate place.
20381         (cfv123_guess): New automaton and cpu_unit.
20382         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
20383         Update uses of 'size' attribute.  Handle before reload scheduling.
20384         (cfv123_guess): New dummy reservation for unhandled instructions.
20385         (cfv4_*): Pipeline description of ColdFire V4 core.
20386         (ignore): New reservation to handle 'ignore' type.
20387
20388 2008-05-07  Ian Lance Taylor  <iant@google.com>
20389
20390         PR middle-end/36013
20391         * gimplify.c (find_single_pointer_decl_1): Don't look through
20392         indirections.
20393         (find_single_pointer_decl): Adjust comments.
20394
20395 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
20396
20397         PR middle-end/36137
20398         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
20399         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
20400
20401         PR middle-end/36106
20402         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
20403         integral type rather than floating point, then VIEW_CONVERT_EXPR
20404         to the floating point type.
20405
20406 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
20407
20408         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
20409         TFmode op0 to register.
20410
20411 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
20412
20413         * c-decl.c (grokdeclarator): Comment typo.
20414
20415 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
20416
20417         * tree-flow.h: Remove prototype for computed_goto_p.
20418         * tree-cfg.c (computed_goto_p): Make static.
20419
20420 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
20421
20422         PR target/35657
20423         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
20424         (contains_aligned_value_p): This.  Handle _Decimal128.
20425         (ix86_function_arg_boundary): Only align _Decimal128 to its
20426         natural boundary and handle it properly.
20427
20428 2008-05-06  Martin Jambor  <mjambor@suse.cz>
20429
20430         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
20431         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
20432         (ipcp_method_set_orig_node): Removed.
20433         (ipcp_cval_get_cvalue_type): Removed.
20434         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
20435         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
20436         (ipcp_cval_set_cvalue_type): Removed.
20437         (ipcp_cval_get_cvalue): Removed.
20438         (ipcp_cval_set_cvalue): Removed.
20439         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
20440         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
20441         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
20442         (ipcp_cval_meet): Renamed to ipa_lattice_meet
20443         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
20444         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
20445         (ipcp_get_ith_lattice): Changed parameters.
20446         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
20447         (ipcp_lattice_from_jfunc): Changed parameters.
20448         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
20449         (ipcp_method_cval_print): Added temporary variable info.
20450         (ipcp_redirect): Removed already unused local variable caller.
20451         (ipcp_redirect): New temporary variable orig_callee_info
20452         (ipcp_redirect): Removed newly unused local variable callee.
20453         (ipcp_redirect): Removed (a bit confusing) local variable type.
20454         (ipcp_insert_stage): Added local variable info.
20455         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
20456         renamed too
20457         (ipcp_formal_create): Removed.
20458         (ipcp_method_cval_set): Removed.
20459         (ipcp_propagate_stage): Renamed lattice variables.
20460         (ipcp_method_cval_set_cvalue_type): Removed.
20461         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
20462         (ipcp_print_all_lattices): Changed printed strings to refer to
20463         lattices rather than cvals.
20464         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
20465         (ipcp_propagate_const): Changed formal parameters.
20466         (build_const_val): Changed formal parameters.
20467         (ipcp_insert_stage): Removed useless variable cvalue
20468         (build_const_val): Changed formal parameters.
20469         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
20470         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
20471         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
20472         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
20473         (ipcp_print_func_profile_counts): Changed string from "method" to
20474         "function"
20475         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
20476         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
20477         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
20478         (ipcp_structures_print): Renamed to ipcp_print_all_structures
20479         (ipcp_profile_print): Renamed to ipcp_print_profile_data
20480         (ipcp_lat_is_const): Changed parameters and made inline.
20481         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
20482         (ipcp_redirect): Renamed to ipcp_need_redirect_p
20483         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
20484         the predicate condition directly
20485         (ipcp_propagate_stage): Added local variable args. Removed local
20486         variable callee.  (Both are mere code simplifications.)
20487         (ipcp_method_dont_insert_const): Renamed to
20488         ipcp_node_not_modifiable_p.
20489         (ipcp_node_not_modifiable_p): Made inline.
20490         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
20491         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
20492         (ipcp_print_all_lattices): Removed variable cvalue
20493         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
20494         Updated comments.
20495
20496 2008-05-06  Olivier Hainque  <hainque@adacore.com>
20497
20498         * tree-sra.c (try_instantiate_multiple_fields): Early return
20499         if field has POINTER_TYPE.
20500
20501 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
20502
20503         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
20504         by using 'q' specifier for instruction.
20505         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
20506
20507 2008-05-06  Anatoly Sokolov <aesok@post.ru>
20508
20509         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
20510         Change mode of zero_extract from QImode to HImode.
20511         (sign bit tests peepholes): (Ditto.).
20512
20513 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
20514
20515         * config/i386/mmx.md: Remove double backslashes from asm templates.
20516         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
20517         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20518         to handle nonimmediate operands.
20519         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
20520         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20521         to handle nonimmediate operands.
20522         (*mmx_<code>v2sf3_finite): New insn pattern.
20523         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
20524         (mmx_<code>v2sf3): New expander.  Use
20525         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20526         (mmx_<plusminus_insn><mode>3): New expander.  Use
20527         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20528         (*mmx_<plusminus_insn><mode>3): New insn pattern.
20529         (mmx_add<mode>3): Removed.
20530         (mmx_ssadd<mode>3): Ditto.
20531         (mmx_usadd<mode>3): Ditto.
20532         (mmx_sub<mode>3): Ditto.
20533         (mmx_sssub<mode>3): Ditto.
20534         (mmx_ussub<mode>3): Ditto.
20535         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
20536         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
20537         to handle nonimmediate operands.
20538         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
20539         insn pattern.
20540         (mmx_smulv4hi3_highpart): New expander.  Use
20541         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20542         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
20543         insn pattern.
20544         (mmx_umulv4hi3_highpart): New expander.  Use
20545         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20546         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
20547         (mmx_<code>v4hi3): New expander.  Use
20548         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20549         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
20550         (mmx_<code>v8qi3): New expander.  Use
20551         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20552         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
20553         (mmx_<code><mode>3): New expander.  Use
20554         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20555
20556 2008-05-05  Jan Hubicka  <jh@suse.cz>
20557
20558         PR tree-optimization/36118
20559         * passes.c (pass_init_dump_file): Fix dump header.
20560
20561 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20562
20563         PR middle-end/36141
20564         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
20565         VCE for function decls.
20566
20567 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
20568
20569         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
20570
20571 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
20572
20573         * config/i386/i386.md (sat_plusminus): New.
20574         (plusminus_insn): Likewise.
20575         (plusminus_mnemonic): Likewise.
20576         (addsub): Removed.
20577         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
20578         (*<addsub><mode>3_cc_overflow): Renamed to ...
20579         (*<plusminus_insn><mode>3_cc_overflow): This.
20580         (*<addsub>si3_zext_cc_overflow): Renamed to ...
20581         (*<plusminus_insn>si3_zext_cc_overflow): This.
20582
20583         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
20584         (<plusminus_insn><mode>3): This.
20585         (*<addsub><mode>3): Renamed to ...
20586         (*<plusminus_insn><mode>3): This.
20587         (<sse>_vm<addsub><mode>3): Renamed to ...
20588         (<sse>_vm<plusminus_insn><mode>3): This.
20589         (sse3_h<addsub>v4sf3): Renamed to ...
20590         (sse3_h<plusminus_insn>v4sf3): This.
20591         (sse3_h<addsub>v2df3): Renamed to ...
20592         (sse3_h<plusminus_insn>v2df3): This.
20593         (<plusminus_insn><mode>3): New.
20594         (*<plusminus_insn><mode>3): Likewise.
20595         (sse2_<plusminus_insn><mode>3): Likewise.
20596         (add<mode>): Removed.
20597         (*add<mode>3): Likewise.
20598         (sse2_ssadd<mode>3): Likewise.
20599         (sse2_usadd<mode>3): Likewise.
20600         (sub<mode>3): Likewise.
20601         (*sub<mode>3): Likewise.
20602         (sse2_sssub<mode>3): Likewise.
20603         (sse2_ussub<mode>3): Likewise.
20604
20605 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
20606
20607         * gthr-single.h: Add in required interface elements as per gthr.h.
20608         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
20609         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
20610         Generalize UNUSED macro.
20611         (__gthread_once): Add.
20612         (__gthread_key_create): Add.
20613         (__gthread_key_delete): Add.
20614         (__gthread_getspecific): Add.
20615         (__gthread_setspecific): Add.
20616
20617 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
20618
20619         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
20620         the same size types for the indirect reference on the rhs, then
20621         create a VCE.
20622
20623 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
20624
20625         * config/i386/i386.md
20626         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
20627         one insn template instead of template series.
20628         (*xordi_1_rex64): Ditto.
20629         (*xordi_2_rex64): Ditto.
20630
20631 2008-05-05  Ira Rosen  <irar@il.ibm.com>
20632
20633         PR tree-optimization/36119
20634         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
20635         in case of SLP.
20636
20637 2008-06-04  Jan Hubicka  <jh@suse.cz>
20638
20639         tree-optimization/36100
20640         * tree-pass.h (pass_O0_always_inline): Declare.
20641         * ipa-inline.c (inline_transform): Remove dead code.
20642         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
20643         pass_O0_always_inline): New.
20644         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
20645
20646 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
20647
20648         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
20649         mnemonic in this_param move for TARGET_64BIT.
20650
20651 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
20652
20653         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
20654         (*strmovsi_rex_1): Ditto.
20655         (*strsetsi_1): Ditto.
20656         (*strsetsi_rex_1): Ditto.
20657
20658         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
20659         adddicc expanders using SWI mode iterator.
20660
20661 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20662
20663         PR target/36121
20664         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
20665         argument handling.
20666
20667 2008-05-04  David S. Miller  <davem@davemloft.net>
20668
20669         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
20670         (sparc*-*-linux*): Use linux.h in tm_file.
20671         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
20672         compiler defaulting to 32-bit.
20673         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
20674         no longer needed.
20675         * config/sparc/linux.h: Remove definitions now obtained
20676         properly from linux.h
20677         * config/sparc/linux64.h: Likewise.
20678         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
20679         don't want this setting for 32-bit builds in a biarch compiler.
20680         * doc/install.texi: Add sparc-linux to list of targets
20681         supporting --enable-targets=all.
20682
20683 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
20684
20685         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
20686
20687 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
20688
20689         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
20690         after V4SI_FTYPE_V8HI.
20691         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
20692         case V4SI_FTYPE_V2DF.
20693
20694 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
20695
20696         * doc/invoke.texi (max-flow-memory-locations): Removed.
20697         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
20698
20699 2008-05-03  Richard Guenther  <rguenther@suse.de>
20700
20701         PR middle-end/34973
20702         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
20703
20704 2008-05-02  David S. Miller  <davem@davemloft.net>
20705
20706         * config.gcc (need_64bit_hwint): Document libcpp dependency.
20707
20708 2008-05-02  Simon Baldwin <simonb@google.com>
20709
20710         PR bootstrap/36108
20711         * c-common.h (warn_array_subscript_range): Removed.
20712         * c-common.c (warn_array_subscript_range): Ditto.
20713         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
20714         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
20715
20716 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
20717
20718         * config/i386/i386.c (ix86_special_builtin_type): New.
20719         (bdesc_special_args): Likewise.
20720         (ix86_expand_special_args_builtin): Likewise.
20721         (ix86_init_mmx_sse_builtins): Updated.
20722         (ix86_expand_builtin): Updated.
20723         (ix86_expand_store_builtin): Removed.
20724         (ix86_expand_unop_builtin): Likewise.
20725
20726         * config/i386/mm3dnow.h (__v2sf): Moved to ...
20727         * config/i386/mmintrin.h (__v2sf): Here.
20728
20729         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
20730         const __v2sf.
20731         (_mm_loadl_pi): Likewise.
20732         (_mm_storeh_pi): Replace __v2si with __v2sf.
20733         (_mm_storel_pi): Likewise.
20734
20735         * doc/extend.texi: Correct __builtin_ia32_loadhps,
20736         __builtin_ia32_loadlps, __builtin_ia32_storehps,
20737         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
20738         __builtin_ia32_loadlpd.
20739
20740 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
20741
20742         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
20743         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
20744         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
20745         (ix86_init_mmx_sse_builtins): Updated.
20746         (ix86_expand_args_builtin): Likewise.
20747         (ix86_expand_builtin): Likewise.
20748         (ix86_expand_unop1_builtin): Renamed to ...
20749         (ix86_expand_unop_vec_merge_builtin): This.
20750
20751 2008-05-01  Jan Hubicka  <jh@suse.cz>
20752
20753         PR bootstrap/36100
20754         * ipa-inline.c (inline_generate_summary): Make static.
20755         (inline_transform): Do not call inlining at -O0; make static.
20756         * passes.c (execute_todo): Add sanity check.
20757         (execute_one_ipa_transform_pass): Execute proper flags.
20758
20759 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
20760
20761         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
20762         (DECL_NONADDRESSABLE_P): Likewise.
20763         * alias.c (record_component_aliases): Fix comment.
20764
20765 2008-05-01  Simon Baldwin <simonb@google.com>
20766
20767         * c-common.h (warn_array_subscript_range): New function.
20768         * c-common.c (warn_array_subscript_range): Ditto.
20769         * tree-vrp.c (check_array_ref): Corrected code to agree with
20770         comment, ignoring only arrays of size 0 or size 1.
20771         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
20772
20773 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20774
20775         * config/i386/i386.c (ix86_builtin_type): Replace
20776         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
20777         (bdesc_args): Updated.
20778         (ix86_init_mmx_sse_builtins): Likewise.
20779         (ix86_expand_args_builtin): Likewise.
20780
20781         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
20782         with __v1di.
20783
20784         * doc/extend.texi: Correct __builtin_ia32_palignr.
20785
20786 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20787
20788         PR target/36095
20789         * config/i386/i386.c (bdesc_crc32): Removed.
20790         (ix86_expand_crc32): Likewise.
20791         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
20792         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
20793         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
20794         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
20795         UINT_FTYPE_UINT_UCHAR.
20796         (bdesc_args): Updated. Add crc32 builtins.
20797         (ix86_init_mmx_sse_builtins): Updated.
20798         (ix86_expand_args_builtin): Updated to support subreg.
20799
20800         * doc/extend.texi: Correct __builtin_ia32_crc32di.
20801
20802 2008-05-01  Jan Hubicka  <jh@suse.cz>
20803
20804         * tree-pass.h (opt_pass): Add IPA_PASS.
20805         (varpool_node, cgraph_node): Forward declare.
20806         (ipa_opt_pass): Define.
20807         (pass_ipa_inline): Turn into ipa_opt_pass.
20808         (pass_apply_inline): Remove.
20809         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
20810         (apply_inline): Turn into ....
20811         (inline_transform): ... this one.
20812         (inline_generate_summary): New function.
20813         (pass_apply_inline): Remove.
20814         * function.h (ipa_opt_pass): Forward declare structure; typedef;
20815         vector.
20816         (struct function): Add ipa_transforms_to_apply.
20817         * passes.c (register_one_dump_file): Work on IPA_PASS.
20818         (init_optimization_passes): Remove pass_inline_parameters and
20819         pass_apply_inline.
20820         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
20821         (execute_one_pass) ... here; apply transforms when possible.
20822         (add_ipa_transform_pass, execute_ipa_summary_asses,
20823         execute_one_ipa_transform_pass): New.
20824         (execute_ipa_pass_list): Update for IPA_PASS type.
20825
20826 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20827
20828         * config/i386/i386.c (ix86_builtin_type): Add
20829         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
20830         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
20831         (bdesc_args): Add SSE4a builtins.
20832         (ix86_init_mmx_sse_builtins): Updated.
20833         (ix86_expand_args_builtin): Likewise.
20834         (ix86_expand_builtin): Likewise.
20835
20836 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20837
20838         * config/i386/i386.c (ix86_builtin_type): Add
20839         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
20840         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
20841         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
20842         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
20843         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
20844         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
20845         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
20846         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
20847         and DI_FTYPE_DI_DI_INT.
20848         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
20849         (ix86_init_mmx_sse_builtins): Updated.
20850         (ix86_expand_args_builtin): Likewise.
20851         (ix86_expand_builtin): Likewise.
20852         (ix86_expand_binop_imm_builtin): Removed.
20853
20854         * doc/extend.texi: Correct __builtin_ia32_palignr128.
20855
20856 2008-04-30  Richard Guenther  <rguenther@suse.de>
20857
20858         PR tree-optimization/32921
20859         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
20860
20861 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
20862
20863         * config/arm/arm.c (arm_unwind_emit): Use
20864         crtl->all_throwers_are_sibcalls instead of
20865         cfun->all_throwers_are_sibcalls.
20866         (arm_output_fn_unwind): Likewise.
20867         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
20868         instead of cfun->uses_pic_offset_table.
20869         (frv_expand_prologue): Likewise.
20870         (frv_frame_pointer_required): Likewise.
20871         (frv_expand_fdpic_call): Likewise.
20872         (frv_emit_movsi): Likewise.
20873         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
20874         cfun->returns_pcc_struct instead of
20875         current_function_returns_pcc_struct.
20876         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
20877         instead of cfun->calls_eh_return.
20878         (m32c_pushm_popm): Likewise.
20879         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
20880         "extern" declaration.
20881
20882 2008-04-30  Richard Guenther  <rguenther@suse.de>
20883
20884         PR tree-optimization/21636
20885         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
20886         constant address.
20887         (evaluate_stmt): Print the likely value.
20888         (ccp_visit_stmt): Avoid excessive vertical spacing.
20889
20890 2008-04-30  Rafael Espíndola  <espindola@google.com>
20891
20892         * builtins.c (fold_call_expr): Return realret.
20893         * tree-ssa-threadedge.c
20894         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
20895         __builtin_object_size.
20896
20897 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
20898
20899         * gcc.c (wrapper_string): New variable.
20900         (insert_wrapper): New function.
20901         (execute): New option -wrapper.
20902         * doc/invoke.texi (Overall Options): New driver option -wrapper.
20903
20904 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
20905
20906         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
20907         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
20908         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
20909         from...
20910         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
20911         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
20912         config/rs6000/e500crtres64gprctr.asm,
20913         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
20914         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
20915         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
20916         config/rs6000/e500crtsav64gprctr.asm,
20917         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
20918         config/rs6000/e500crtsavg64gprctr.asm: New files.
20919         * config/rs6000/t-ppccomm: Add build rules for new files.
20920         (LIB2FUNCS_STATIC_EXTRA): Add new files.
20921         * config/rs6000/t-netbsd: Add build rules for new files.
20922         (LIB2FUNCS_STATIC_EXTRA): New variable.
20923         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
20924         (CRTSAVRES_DEFAULT_SPEC): Likewise.
20925         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
20926
20927 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
20928
20929         * config/i386/i386.c (ix86_builtin_type): Add
20930         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
20931         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
20932         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
20933         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
20934         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
20935         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
20936         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
20937         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
20938         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
20939         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
20940         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
20941         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
20942         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
20943         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
20944         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
20945         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
20946         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
20947         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
20948         V1DI_FTYPE_V2SI_V2SI.
20949         (bdesc_2arg): Moved to ...
20950         (bdesc_args): Here.
20951         (ix86_init_mmx_sse_builtins): Updated.
20952         (ix86_expand_args_builtin): Updated.  Take a pointer
20953         to const struct builtin_description.  Handle comparison
20954         builtin functions.
20955         (ix86_expand_sse_compare): Take a new argument for swapping operands.
20956         (ix86_expand_builtin): Updated.
20957
20958         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
20959         (ssse3_pmaddubsw128): This.
20960         (ssse3_pmaddubswv4hi3): Renamed to ...
20961         (ssse3_pmaddubsw): This.
20962
20963         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
20964         (__builtin_ia32_packssdw128): Likewise.
20965         (__builtin_ia32_packuswb128): Likewise.
20966         (__builtin_ia32_pmaddubsw): Likewise.
20967         (__builtin_ia32_pmaddubsw128): Likewise.
20968
20969 2008-04-30  Richard Guenther  <rguenther@suse.de>
20970
20971         PR tree-optimization/14847
20972         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
20973         (recognize_bits_test): Use it.
20974         (recognize_single_bit_test): Likewise.
20975
20976 2008-04-30  Martin Jambor  <mjambor@suse.cz>
20977
20978         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
20979         instead of setting number of formal parameters to zero.
20980         (ipcp_init_stage): Do not set the number of actual parameters to zero
20981         either.
20982         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
20983         which are called with variable number of arguments.
20984         (ipcp_insert_stage): Explicitely skipping all nodes which are
20985         called with variable number of arguments.
20986         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
20987         number of parameters.
20988
20989         * ipa-prop.h (struct ipa_node_params): Added flag
20990         called_with_var_arguments
20991         (ipa_set_param_count): Added.  Changed sole setter to use it.
20992         (ipa_get_param_count): Added.  All readers of param_count
20993         converted to use it instead.
20994         (ipa_set_called_with_variable_arg): Added.
20995         (ipa_is_called_with_var_arguments): Added.
20996         (ipa_get_ith_param): Added.  All readers of param_decls converted
20997         to use it instead.
20998         (ipa_set_cs_argument_count): Added, sole writer to argument_count
20999         changed to use it.
21000         (ipa_get_cs_argument_count): Added, all readers of argument_count
21001         changed to cal it.
21002         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
21003         to use it.
21004
21005         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
21006         (struct ipcp_lattice): Renamed cval_type to type
21007         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
21008
21009         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
21010         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
21011         (ipcp_insert_stage): Changed the type of variable cvalue to tree
21012         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
21013         (build_const_val): Changed the type of parameter cvalue to tree
21014         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
21015         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
21016
21017         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
21018         constant
21019
21020         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
21021         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
21022         (ipa_add_method): Renamed to ipa_push_func_to_list
21023         (ipa_remove_method): Renamed to ipa_pop_func_from_list
21024         (ipa_callsite_param_count): Removed.
21025         (ipa_callsite_param_count_set): Removed.
21026         (ipa_callsite_param): Removed.
21027         (ipa_callsite_callee): Removed.
21028         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
21029         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
21030         (ipa_method_formal_count): Removed.
21031         (ipa_method_formal_count_set): Removed.
21032         (ipa_method_get_tree): Removed.
21033         (ipa_method_tree_map_create): Removed.
21034         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
21035         (ipa_create_param_decls_array): Creates the array itself
21036         (ipa_create_param_decls_array): Temporary variable info instead of
21037         a few dereferences.
21038         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
21039         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
21040         (get_type): Removed.
21041         (ipa_jf_get_info_type): Removed.
21042         (ipa_node_create): Renamed to ipa_create_node_params
21043         (ipa_free): Renamed to ipa_free_all_node_params
21044         (ipa_nodes_create): Renamed to ipa_create_all_node_params
21045         (ipa_edges_create): Renamed to ipa_create_all_edge_args
21046         (ipa_edges_free): Renamed to ipa_free_all_edge_args
21047         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
21048         (ipa_free_all_node_params): Deallocation to jump_functions moved to
21049         ipa_free_all_edge_args
21050         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
21051         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
21052         (ipa_create_methodlist_node): Removed.
21053         (ipa_methodlist_method): Removed.
21054         (ipa_methodlist_method_set): Removed.
21055         (ipa_methodlist_next_method): Removed.
21056         (ipa_methodlist_next_method_set): Removed.
21057         (ipa_method_is_modified): Removed.
21058         (ipa_method_modify_create): Removed.
21059         (ipa_method_modify_init): Temporary variable info instead of a few
21060         dereferences.
21061         (ipa_detect_param_modifications): Temporary variable info instead of
21062         a few dereferences.
21063         (ipa_compute_jump_functions): Temporary variable info instead of
21064         a few dereferences.
21065         (ipa_method_modify_set): Removed.
21066         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
21067         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
21068         than craph_node as the first parameter.
21069         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
21070         (ipa_method_modify_init): Removed.
21071         (ipa_compute_jump_functions): Added a temp variable instead of
21072         repeatadly dereferencing the cgraph_edge.aux pointer
21073         (ipa_callsite_param_set_type): Removed.
21074         (ipa_compute_jump_functions): i renamed to index and moved to
21075         an inner block
21076         (ipa_callsite_param_set_info_type_formal): Removed.
21077         (ipa_callsite_param_set_info_type): Removed.
21078         (ipa_callsite_param_map_create): Removed.
21079         (ipa_callsite_tree): Removed.
21080         (ipa_callsite_caller): Removed.
21081         (ipa_pop_func_from_list): return_method removed to return_func
21082
21083         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
21084         prefixed all values with IPA_. Changed all users.
21085         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
21086         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
21087         and FORMAL_IPATYPE IPA_PASS_THROUGH.
21088         (union parameter_info): Renamed to jump_func_value.
21089         (union jump_func_value): Renamed value to constant
21090         (struct ipa_jump_func): Renamed info_type to value
21091         (struct ipa_node): Renamed to ipa_node_params
21092         (struct ipa_node_params): Renamed ipa_arg_num to param_count
21093         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
21094         (struct ipa_node_params): Renamed ipa_mod to modified_flags
21095         (struct ipa_edge): Renamed to ipa_edge_args
21096         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
21097         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
21098         (struct ipa_methodlist): Renamed to ipa_func_list
21099         (struct ipa_func_list): method_p renamed to node, next_method
21100         renamed to next
21101         (ipa_methodlist_p): Removed, switched all users to struct pointer
21102         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
21103
21104 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
21105
21106         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
21107         (rs6000_emit_epilogue): Use backchain to restore only when we
21108         have a large frame.  Make use of frame pointer to restore if we
21109         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
21110
21111 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
21112
21113         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
21114         Add mode to zero_extract.
21115         (sign bit tests peepholes): (Ditto.).
21116
21117 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21118
21119         * config/i386/i386.c (ix86_builtins): Replace Prescott New
21120         Instructions in comments with SSE3.
21121         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
21122         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
21123         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
21124         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
21125         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
21126         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
21127         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
21128         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
21129         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
21130         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
21131         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
21132         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
21133         (bdesc_sse_args): Renamed to ...
21134         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
21135         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
21136         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
21137         IX86_BUILTIN_FABSQ.
21138         (bdesc_1arg): Moved to ...
21139         (bdesc_args): Here.
21140         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
21141         Instructions in comments with SSE3.
21142         (ix86_expand_sse_operands_builtin): Renamed to ...
21143         (ix86_expand_args_builtin): This.  Updated.
21144         (ix86_expand_unop1_builtin): Update comments.
21145         (ix86_expand_builtin): Updated.
21146
21147 2008-04-29  Richard Guenther  <rguenther@suse.de>
21148
21149         PR tree-optimization/36078
21150         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
21151         Update virtual SSA form after cleaning up the CFG.
21152
21153 2008-04-29  Richard Guenther  <rguenther@suse.de>
21154
21155         PR middle-end/15255
21156         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
21157
21158 2008-04-29  Richard Guenther  <rguenther@suse.de>
21159
21160         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
21161         (compute_may_aliases): Do not call finalize_ref_all_pointers.
21162         (compute_flow_insensitive_aliasing): Do not treat
21163         PTR_IS_REF_ALL pointers special.
21164         (get_smt_for): Likewise.
21165         (may_alias_p): Re-structure.
21166         (is_escape_site): A ref-all pointer conversion is not an escape site.
21167         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
21168         PTR_IS_REF_ALL pointers special.
21169         * tree-ssa-structalias.h (struct alias_info): Remove
21170         ref_all_symbol_mem_tag field.
21171         (PTR_IS_REF_ALL): Remove.
21172
21173 2008-04-29  Richard Guenther  <rguenther@suse.de>
21174
21175         PR middle-end/36077
21176         * fold-const.c (extract_muldiv_1): In combining division constants
21177         make sure to never overflow.
21178
21179 2008-04-29  Nick Clifton  <nickc@redhat.com>
21180
21181         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
21182
21183 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21184
21185         PR bootstrap/35169
21186         * optc-gen.awk: Work around HP-UX/IA awk bug.
21187
21188 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
21189
21190         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
21191         2008-04-25 commit.
21192
21193 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
21194
21195         PR target/36073
21196         * config/i386/i386.md
21197         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
21198         Change operand 1 predicate to nonimmediate_operand.
21199
21200 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
21201
21202         PR debug/36060
21203         * dwarf2out.c (struct die_struct): Mark as chain_circular through
21204         die_sub field.
21205         * gengtype.c (walk_type, write_func_for_structure): Handle
21206         chain_circular.
21207         * doc/gty.texi: Document chain_circular.
21208
21209 2008-04-28  Richard Guenther  <rguenther@suse.de>
21210
21211         PR tree-optimization/36066
21212         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
21213         SCEV and loop.
21214
21215 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
21216
21217         PR target/36064
21218         * config/i386/i386.md
21219         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
21220         Use match_scratch instead of match_operand for operands 3 and 4.
21221
21222 2008-04-27  Richard Guenther  <rguenther@suse.de>
21223
21224         PR tree-optimization/18754
21225         PR tree-optimization/34223
21226         * tree-pass.h (pass_complete_unrolli): Declare.
21227         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
21228         loop size before and after unconditionally of UL_NO_GROWTH in effect.
21229         Rewrite loop into loop closed SSA form if it is not already.
21230         (tree_unroll_loops_completely): Re-structure to iterate over
21231         innermost loops with intermediate CFG cleanups.
21232         Unroll outermost loops only if requested or the code does not grow
21233         doing so.
21234         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
21235         loops are available.
21236         (tree_vectorize): Instead do so here.
21237         (tree_complete_unroll): Also unroll outermost loops.
21238         (tree_complete_unroll_inner): New function.
21239         (gate_tree_complete_unroll_inner): Likewise.
21240         (pass_complete_unrolli): New pass.
21241         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
21242         uses outside of the loop.
21243         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
21244         form if it is available.
21245         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
21246         * passes.c (init_optimization_passes): Schedule complete inner
21247         loop unrolling pass before the first CCP pass after final inlining.
21248
21249 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
21250
21251         * targhooks.h (default_emutls_var_fields,
21252         default_emutls_var_init): Declare.
21253         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
21254         * target.h (struct gcc_target): Add struct emutls member.
21255         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
21256         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
21257         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
21258         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
21259         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
21260         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
21261         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
21262         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
21263         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
21264         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
21265         emit debug information.
21266         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
21267         * varasm.c: Include targhooks.h.
21268         (emutls_object_section, emutls_tmpl_section): New.
21269         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
21270         (EMUTLS_SEPARATOR): New.
21271         (prefix_name): New.
21272         (get_emutls_object_name): New.
21273         (default_emutls_var_fields): New, broken out of ...
21274         (get_emutls_object_type): ... here.  Adjust to use target hooks.
21275         (get_emutls_init_templ_addr): Adjust to use target hooks.
21276         (emutls_decl): Adjust to use target hooks.
21277         (emutls_finish): Likewise.
21278         (default_emutls_var_init): New, broken out of ...
21279         (assemble_variable): ... here.  Adjust to use target hooks.
21280         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
21281         SECCAT_EMUTLS_TMPL.
21282         * c-common.c (handle_section_attribute): Prevent overriding
21283         sections for emulated tls with special sections.
21284         * config/i386/i386.c (x86_64_elf_select_section): Add
21285         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
21286         (x86_64_elf_unique_section): Likewise.
21287         * config/vxworks.c: Include tree.h.
21288         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
21289         (vxworks_override_options): Set TLS scheme.
21290         * doc/tm.texi (Emulated TLS): New node.
21291
21292 2008-04-26  Simon Baldwin <simonb@google.com>
21293
21294         PR c/35652
21295         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
21296         with propagated string constants.
21297
21298 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
21299
21300         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
21301         constraint for operand 2 when operand 0 is memory operand.
21302         (fix_truncdi_i387_with_temp): Use 'X' constraint for operand 4 when
21303         operand 0 is memory operand.
21304         (fix_trunc<mode>_i387_with_temp): Ditto.
21305         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
21306         operand 2 when operand 1 is memory operand.
21307         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
21308         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
21309         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
21310         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
21311         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
21312         operands 2,3 and 4 when operand 1 is memory operand.
21313         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
21314         is memory operand.
21315         (fistdi2_floor_with_temp): Ditto.
21316         (fist<mode>2_floor_with_temp): Ditto.
21317         (fistdi2_ceil_with_temp): Ditto.
21318         (fist<mode>2_ceil_with_temp): Ditto.
21319         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
21320
21321 2008-04-26  David Daney  <ddaney@avtrex.com>
21322
21323         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
21324         unspec_volitile.
21325         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
21326         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
21327         UNSPEC_UPDATE_GOT_VERSION): Renumber.
21328         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
21329         (compare_and_swap_12): New insn.
21330         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
21331         * config/mips/mips.c (mips_force_binary): New function.
21332         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
21333         (mips_expand_compare_and_swap_12): New function.
21334         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
21335
21336 2008-04-25  Jan Hubicka  <jh@suse.cz>
21337
21338         PR testsuite/35843
21339         * cfgexpand.c (pass_expand): Turn into RTL pass.
21340         * passes.c (execute_one_pass): Do pass typechecking after execution.
21341         * tree-pass.h (pass_expand): Turn into RTL pass.
21342
21343         * function.h (struct rtl_data): Move here fields
21344         accesses_prior_frames, calls_eh_return, saves_all_registers,
21345         has_nonlocal_goto, has_asm_statement, is_thunk,
21346         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
21347         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
21348         arg_pointer_save_area_init from struct function; turn into bool.
21349         (struct function): Move
21350         calls_eh_return, saves_all_registers, has_nonlocal_goto,
21351         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
21352         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
21353         tail_call_emit, arg_pointer_save_area_init
21354         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
21355         (current_function_returns_struct, current_function_returns_pcc_struct,
21356         current_function_calls_setjmp, current_function_calls_alloca,
21357         current_function_accesses_prior_frames,
21358         current_function_calls_eh_return, current_function_is_thunk,
21359         current_function_stdarg, current_function_profile,
21360         current_function_limit_stack, current_function_uses_pic_offset_table,
21361         current_function_uses_const_pool, current_function_has_nonlocal_label,
21362         current_function_saves_all_registers,
21363         current_function_has_nonlocal_goto,
21364         current_function_has_asm_statement): Remove accesor macros.
21365         * ra-conflict.c (global_conflicts): Update.
21366         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
21367         (suitable_for_tail_call_opt_p): Update.
21368         * builtins.c (expand_builtin_return_addr): Update.
21369         (expand_builtin_setjmp_setup): Update.
21370         (expand_builtin_nonlocal_goto): Update.
21371         * final.c (final_start_function): Update.
21372         (profile_function): Update.
21373         (leaf_function_p): Update.
21374         (only_leaf_regs_used): Update.
21375         * df-scan.c (df_get_exit_block_use_set): Update.
21376         * dojump.c (clear_pending_stack_adjust): Update.
21377         * tree-stdarg.c (gate_optimize_stdarg): Update.
21378         * gimple-low.c (lower_function_body): Update.
21379         * global.c (compute_regsets): Update.
21380         (global_alloc): Update.
21381         * dwarf2out.c (dwarf2out_begin_prologue): Update.
21382         * expr.c (expand_assignment): Update.
21383         * dse.c (dse_step0): Update.
21384         (dse_step1): Update.
21385         * c-decl.c (store_parm_decls): Update.
21386         * local-alloc.c (combine_regs): Update.
21387         (find_free_reg): Update.
21388         * function.c (assign_parms_augmented_arg_list): Update.
21389         (assign_parm_find_data_types): Update.
21390         (assign_parms): Update.
21391         (allocate_struct_function): Update.
21392         (expand_function_start): Update.
21393         (expand_function_end): Update.
21394         (get_arg_pointer_save_area): Update.
21395         (thread_prologue_and_epilogue_insns): Update.
21396         (rest_of_match_asm_constraints): Update.
21397         * stor-layout.c (variable_size): Update.
21398         * gcse.c (gcse_main): Update.
21399         (bypass_jumps): Update.
21400         * gimplify.c (gimplify_function_tree): Update.
21401         * calls.c (emit_call_1): Update.
21402         (expand_call): Update.
21403         * bt-load.c (compute_defs_uses_and_gen): Update.
21404         * except.c (sjlj_assign_call_site_values): Update.
21405         (sjlj_emit_function_enter): Update.
21406         (can_throw_external): Update.
21407         (set_nothrow_function_flags): Update.
21408         (expand_builtin_unwind_init): Update.
21409         (expand_eh_return): Update.
21410         (convert_to_eh_region_ranges): Update.
21411         (output_function_exception_table): Update.
21412         * emit-rtl.c (gen_tmp_stack_mem): Update.
21413         * cfgexpand.c (expand_used_vars): Update.
21414         (tree_expand_cfg): Update.
21415         * cfgcleanup.c (rest_of_handle_jump): Update.
21416         * explow.c (allocate_dynamic_stack_space): Update.
21417         * varasm.c (assemble_start_function): Update.
21418         (force_const_mem): Update.
21419         (mark_constant_pool): Update.
21420         * tree-optimize.c (tree_rest_of_compilation): Update.
21421         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
21422         * tree-cfg.c (notice_special_calls): Update.
21423         (is_ctrl_altering_stmt): Update.
21424         (tree_can_make_abnormal_goto): Update.
21425         (tree_purge_dead_abnormal_call_edges): Update.
21426         * config/alpha/predicates.md: Update.
21427         * config/alpha/alpha.c (alpha_sa_mask): Update.
21428         (alpha_sa_size): Update.
21429         (alpha_does_function_need_gp): Update.
21430         (alpha_expand_prologue): Update.
21431         (alpha_start_function): Update.
21432         (alpha_output_function_end_prologue): Update.
21433         (alpha_expand_epilogue): Update.
21434         * config/frv/frv.c (frv_stack_info): Update.
21435         (frv_expand_epilogue): Update.
21436         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
21437         (s390_register_info): Update.
21438         (s390_frame_info): Update.
21439         (s390_init_frame_layout): Update.
21440         (s390_can_eliminate): Update.
21441         (save_gprs): Update.
21442         * config/spu/spu.c (spu_split_immediate): Update.
21443         (need_to_save_reg): Update.
21444         (spu_expand_prologue): Update.
21445         (spu_expand_epilogue): Update.
21446         * config/sparc/sparc.md: Update.
21447         * config/sparc/sparc.c (eligible_for_return_delay): Update.
21448         (sparc_tls_got): Update.
21449         (legitimize_pic_address): Update.
21450         (sparc_emit_call_insn): Update.
21451         (sparc_expand_prologue): Update.
21452         (output_return): Update.
21453         (print_operand): Update.
21454         (sparc_function_ok_for_sibcall): Update.
21455         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
21456         * config/m32r/m32r.md: Update.
21457         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
21458         (m32r_compute_frame_size): Update.
21459         (m32r_expand_prologue): Update.
21460         (m32r_expand_epilogue): Update.
21461         (m32r_legitimize_pic_address): Update.
21462         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
21463         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21464         * config/i386/i386.c (ix86_frame_pointer_required): Update.
21465         (gen_push): Update.
21466         (ix86_save_reg): Update.
21467         (ix86_compute_frame_layout): Update.
21468         (ix86_expand_prologue): Update.
21469         (ix86_expand_epilogue): Update.
21470         * config/sh/sh.c (output_stack_adjust): Update.
21471         (calc_live_regs): Update.
21472         (sh5_schedule_saves): Update.
21473         (sh_expand_prologue): Update.
21474         (sh_expand_epilogue): Update.
21475         (sh_setup_incoming_varargs): Update.
21476         (sh_allocate_initial_value): Update.
21477         (sh_get_pr_initial_val): Update.
21478         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
21479         * config/sh/sh.md (label:): Update.
21480         * config/avr/avr.c (out_movhi_mr_r): Update.
21481         * config/crx/crx.h (enum): Update.
21482         * config/xtensa/xtensa.h (along): Update.
21483         * config/stormy16/stormy16.c Update.
21484         (xstormy16_compute_stack_layout): Update.
21485         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
21486         (fr30_expand_prologue): Update.
21487         * config/cris/cris.c (cris_conditional_register_usage): Update.
21488         (cris_reg_saved_in_regsave_area): Update.
21489         (cris_initial_frame_pointer_offset): Update.
21490         (cris_simple_epilogue): Update.
21491         (cris_expand_prologue): Update.
21492         (cris_expand_epilogue): Update.
21493         (cris_expand_pic_call_address): Update.
21494         (cris_asm_output_symbol_ref): Update.
21495         (cris_asm_output_label_ref): Update.
21496         * config/cris/cris.md Update.
21497         * config/iq2000/iq2000.c (compute_frame_size): Update.
21498         (iq2000_expand_epilogue): Update.
21499         * config/mt/mt.h (save_direction): Update.
21500         * config/mn10300/mn10300.c (mn10300_function_value): Update.
21501         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
21502         (ia64_secondary_reload_class): Update.
21503         * config/m68k/m68k.c (m68k_save_reg): Update.
21504         (m68k_expand_prologue): Update.
21505         (m68k_expand_epilogue): Update.
21506         (legitimize_pic_address): Update.
21507         * config/rs6000/rs6000.c (rs6000_got_register): Update.
21508         (first_reg_to_save): Update.
21509         (first_altivec_reg_to_save): Update.
21510         (compute_vrsave_mask): Update.
21511         (compute_save_world_info): Update.
21512         (rs6000_stack_info): Update.
21513         (spe_func_has_64bit_regs_p): Update.
21514         (rs6000_ra_ever_killed): Update.
21515         (rs6000_emit_eh_reg_restore): Update.
21516         (rs6000_emit_allocate_stack): Update.
21517         (rs6000_emit_prologue): Update.
21518         (rs6000_emit_epilogue): Update.
21519         (rs6000_output_function_epilogue): Update.
21520         (output_profile_hook): Update.
21521         (rs6000_elf_declare_function_name): Update.
21522         * config/rs6000/rs6000.h (rs6000_args): Update.
21523         * config/rs6000/rs6000.md: Update.
21524         * config/mcore/mcore.c (mcore_expand_prolog): Update.
21525         * config/arc/arc.c (arc_output_function_epilogue): Update.
21526         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
21527         * config/darwin.c (machopic_function_base_name): Update.
21528         * config/score/score3.c (score3_compute_frame_size): Update.
21529         (rpush): Update.
21530         (rpop): Update.
21531         (score3_epilogue): Update.
21532         * config/score/score7.c (score7_compute_frame_size): Update.
21533         (score7_prologue): Update.
21534         (score7_epilogue): Update.
21535         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
21536         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21537         * config/arm/arm.c (use_return_insn): Update.
21538         (require_pic_register): Update.
21539         (arm_load_pic_register): Update.
21540         (arm_compute_save_reg0_reg12_mask): Update.
21541         (arm_compute_save_reg_mask): Update.
21542         (thumb1_compute_save_reg_mask): Update.
21543         (output_return_instruction): Update.
21544         (arm_output_function_prologue): Update.
21545         (arm_output_epilogue): Update.
21546         (arm_get_frame_offsets): Update.
21547         (arm_expand_prologue): Update.
21548         (thumb_pushpop): Update.
21549         (thumb_exit): Update.
21550         (thumb1_expand_prologue): Update.
21551         (thumb1_expand_epilogue): Update.
21552         (arm_unwind_emit): Update.
21553         (arm_output_fn_unwind): Update.
21554         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
21555         * config/arm/arm.md: Update.
21556         * config/pa/pa.md: Update.
21557         * config/pa/pa.c (legitimize_pic_address): Update.
21558         (compute_frame_size): Update.
21559         (hppa_expand_prologue): Update.
21560         (hppa_expand_epilogue): Update.
21561         (borx_reg_operand): Update.
21562         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
21563         (HARD_REGNO_RENAME_OK): Update.
21564         * config/mips/mips.c (mips_global_pointer): Update.
21565         (mips_save_reg_p): Update.
21566         (mips_compute_frame_info): Update.
21567         (mips_frame_pointer_required): Update.
21568         (mips_expand_prologue): Update.
21569         (mips_expand_epilogue): Update.
21570         (mips_can_use_return_insn): Update.
21571         (mips_reorg_process_insns): Update.
21572         * config/v850/v850.c (compute_register_save_size): Update.
21573         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
21574         * config/mmix/mmix.c (along): Update.
21575         (mmix_expand_epilogue): Update.
21576         * config/bfin/bfin.c (legitimize_pic_address): Update.
21577         (must_save_p): Update.
21578         (stack_frame_needed_p): Update.
21579         (add_to_reg): Update.
21580         (bfin_expand_prologue): Update.
21581         * stmt.c (expand_asm_operands): Update.
21582         * reload1.c (reload): Update.
21583         (init_elim_table): Update.
21584
21585 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
21586
21587         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
21588
21589 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
21590
21591         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
21592         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
21593         (mov<mode>): Removed.
21594         (*movv4sf_internal): Likewise.
21595         (*movv2df_internal): Likewise.
21596
21597 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
21598
21599         * config.gcc (crx-*-elf): Remove deprecation.
21600
21601 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
21602
21603         * config/i386/cygming-crtend.c (register_frame_ctor): Register
21604         __gcc_deregister_frame with atexit.
21605         (deregister_frame_dtor): Remove.
21606
21607 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
21608             Nathan Sidwell  <nathan@codesourcery.com>
21609
21610         * config/rs6000/rs6000.opt (mspe): Remove Var property.
21611         (misel): Likewise.
21612         * config/rs6000/rs6000.h (rs6000_spe): Declare.
21613         (rs6000_isel): Likewise.
21614         * config/rs6000/rs6000.c (rs6000_spe): New variable.
21615         (rs6000_isel): New variable.
21616         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
21617
21618 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21619
21620         PR c++/35758
21621         * c-common.c (handle_vector_size_attribute): Call
21622         lang_hooks.types.reconstruct_complex_type instead of
21623         reconstruct_complex_type.
21624         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
21625         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
21626         * langhooks.h (struct lang_hooks_for_types): Add
21627         reconstruct_complex_type hook.
21628         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
21629         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
21630
21631 2008-04-24  Richard Guenther  <rguenther@suse.de>
21632
21633         * c-common.h (check_builtin_function_arguments): Declare.
21634         * c-common.c (validate_nargs): New function.
21635         (check_builtin_function_arguments): Likewise.
21636         * c-typeck.c (build_function_call): Call
21637         check_builtin_function_arguments.
21638         * builtins.c (fold_builtin_classify): Remove error reporting code.
21639         (fold_builtin_unordered_cmp): Likewise.
21640         (fold_builtin_1): Likewise.
21641         (fold_builtin_n): Likewise.
21642
21643 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21644
21645         PR tree-optimization/36008
21646         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
21647         the original op1, rather than delta by step.
21648
21649 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
21650             Sebastian Pop  <sebastian.pop@amd.com>
21651
21652         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
21653         eliminate_local_variables_stmt, eliminate_local_variables,
21654         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
21655         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
21656         of code delimited by two edges in the CFG.
21657         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
21658         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
21659         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
21660         the case of parallelisation of reductions.
21661         (expr_invariant_in_region_p): New.
21662
21663         * tree-flow.h (gather_blocks_in_sese_region): Declared.
21664         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
21665
21666 2008-04-24  Ira Rosen  <irar@il.ibm.com>
21667             Richard Guenther  <rguenther@suse.de>
21668
21669         PR tree-optimization/36034
21670         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
21671         incapable of dealing with loads with gaps.
21672
21673 2008-04-24  Rafael Espíndola  <espindola@google.com>
21674
21675         * tree-flow.h (vrp_evaluate_conditional): Change signature.
21676         * tree-ssa-propagate.c (fold_predicate_in): Update call to
21677         vrp_evaluate_conditional.
21678         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
21679         (vrp_evaluate_conditional): Split the cond argument.
21680         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
21681         (simplify_stmt_for_jump_threading): Update call to
21682         vrp_evaluate_conditional.
21683
21684 2008-04-24  Ira Rosen  <irar@il.ibm.com>
21685
21686         PR tree-optimization/35982
21687         * tree-vect-analyze.c (vect_check_interleaving): Check that the
21688         interleaved data-refs are of the same type.
21689
21690 2008-04-24  Danny Smith  <dannysmith@users.net>
21691
21692         * c-format.c (check_format_info_main): Use strncmp rather than a
21693         magic prefix to handle multichar length specs.
21694         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
21695         Don't prefix "I64" and "I32" with '\0'.
21696
21697 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21698
21699         PR target/36015
21700         * config/i386/i386.c (init_cumulative_args): Don't pass anything
21701         in registers for -m32 only if stdarg_p (fntype).
21702
21703 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
21704
21705         PR rtl-optimization/36006
21706         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
21707         temp to op0 in order to avoid invalid rtx sharing.
21708
21709 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
21710
21711         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
21712         check TREE_INVARIANT.
21713         * tree-gimple.c (is_gimple_address): New.
21714         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
21715         * tree-gimple.h (is_gimple_address): New.
21716         * tree.h (decl_address_invariant_p): New.
21717         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
21718         (build_string): Likewise.
21719         (decl_address_invariant_p): New, from is_gimple_invariant_address.
21720         (tree_invariant_p_1): Likewise.
21721         (save_expr): Use it.
21722         (tree_invariant_p): New.
21723         (skip_simple_arithmetic): Use it.
21724         (stabilize_reference_1): Use it.
21725         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
21726         simplify.
21727         (build1_stat): Drop code to compute TREE_INVARIANT.
21728         (build2_stat): Drop code to compute TREE_INVARIANT.
21729         (build3_stat): Drop code to compute TREE_INVARIANT.
21730         (build4_stat): Drop code to compute TREE_INVARIANT.
21731         (build5_stat): Drop code to compute TREE_INVARIANT.
21732         (build7_stat): Drop code to compute TREE_INVARIANT.
21733         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
21734         * tree.h (struct tree_base): Remove invariant_flag.
21735         (TREE_INVARIANT): Remove.
21736         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
21737         (fold_builtin_expect): Check TREE_CONSTANT.
21738         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
21739         * c-tree.h (c_expr_to_decl): Drop third parameter.
21740         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
21741         (build_c_cast): Don't set TREE_INVARIANT.
21742         (pop_init_level): Don't set TREE_INVARIANT.
21743         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
21744         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
21745         TREE_CONSTANT.
21746         (gimplify_init_constructor): Don't set TREE_INVARIANT.
21747         (gimplify_addr_expr): Adjust comment.
21748         * tree-mudflap.c (mf_build_string):
21749         * print-tree.c (print_node): Don't print TREE_INVARIANT.
21750         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
21751         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
21752         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
21753         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
21754         * langhooks.h (struct lang_hooks): Drop third parameter from
21755         expr_to_decl.
21756
21757 2008-04-23  Richard Guenther  <rguenther@suse.de>
21758
21759         PR tree-optimization/27799
21760         PR tree-optimization/32921
21761         PR tree-optimization/32624
21762         * tree-ssa-structalias.c (merge_smts_into): Only merge the
21763         SMTs aliases and the tag itself into the solution.
21764         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
21765         merge the points-to solution back into the SMT aliases.
21766         (may_alias_p): Use alias_set_subset_of instead of
21767         aliases_conflict_p.  A pointer which points to
21768         memory with alias set zero may access any variable.
21769
21770 2008-04-23  Richard Guenther  <rguenther@suse.de>
21771
21772         * alias.c (alias_set_subset_of): Correctly handle asking
21773         if zero is a subset of an alias set with zero child.
21774         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
21775         (compute_flow_insensitive_aliasing): Correctly walk all
21776         pointers.  Do not unnecessarily union sets.
21777
21778 2008-04-23  Richard Guenther  <rguenther@suse.de>
21779
21780         PR middle-end/36021
21781         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
21782
21783 2008-04-22  Tomas Bily  <tbily@suse.cz>
21784
21785         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
21786         unreachable case.
21787         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
21788         NON_LVALUE_EXPR.
21789         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21790         * tree-ssa-structalias.c (get_constraint_for): Likewise.
21791         * tree-inline.c (estimate_num_insns_1): Likewise.
21792         * varasm.c (const_hash_1, compare_constant, copy_constant)
21793         (compute_reloc_for_constant, output_addressed_constants): Likewise.
21794         * emit-rtl.c (component_ref_for_mem_expr)
21795         (set_mem_attributes_minus_bitpos): Likewise.
21796         * expr.c (highest_pow2_factor, expand_expr_real_1)
21797         (is_aligning_offset): Likewise.
21798         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
21799         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
21800         * dojump.c (do_jump): Likewise.
21801         * builtins.c (get_pointer_alignment, get_memory_rtx)
21802         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
21803         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
21804
21805 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
21806
21807         PR rtl-optimization/36017
21808         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
21809         expanding the library call.
21810
21811 2008-04-22  Ian Lance Taylor  <iant@google.com>
21812
21813         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
21814         than size_in_bytes.
21815
21816 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
21817
21818         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
21819         of LR/CTR moves for Power6.
21820
21821 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
21822
21823         PR middle-end/36003
21824         * passes.c (init_optimization_passes): Remove
21825         pass_fast_rtl_byte_dce.
21826
21827 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
21828
21829         PR target/29096
21830         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
21831         builtin functions to generate faster code.
21832         (_mm_cvtpu16_ps): Ditto.
21833         (_mm_cvtpi32x2_ps): Ditto.
21834
21835 2008-04-22  Nick Clifton  <nickc@redhat.com>
21836
21837         * common.opt (ftree-loop-distribution): Add Optimization
21838         attribute.
21839
21840         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
21841         (frv_expand_builtin_va_start): Likewise.
21842
21843         * config/arm/arm.c (thumb_find_work_register): Fix location of
21844         argument register count.
21845
21846 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
21847
21848         Support scheduling for ColdFire V1 and V3 microarchitecture.
21849         Improve scheduling of multiplication instructions.
21850
21851         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
21852         (mac): New instruction attribute.
21853         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
21854         (m68k_sched_mac): New variable.
21855         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
21856         Handle cfv1 and cfv3.
21857         (max_insn_size): New static variable.
21858         (struct _sched_ib): New type.
21859         (sched_ib): New static variable.
21860         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
21861         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
21862         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
21863         Update.
21864         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
21865         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
21866         new variables.  Update.
21867         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
21868         Add modeling of cfv3 instruction buffer.  Update.
21869         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
21870         * config/m68k/m68k.h (TUNE_CFV3): New macro.
21871         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
21872         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
21873         a particular reservation applies to.
21874         (type2): Reorganize attribute values.  Rename alu to alu_reg,
21875         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
21876         to mul_l and mul_w.
21877         (cf_ib_*): Simplify description of instruction buffer.
21878         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
21879         (cf_mem): Split into cf_mem1 and cf_mem2.
21880         (cf_v2_move_??): Rename to cfv12_alu_??.
21881         (cf_v2_move_l_??): Rename to cfv12_omove_??.
21882         (cf_v2_mul_??): Remove reservations.
21883         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
21884         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
21885         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
21886         appropriate place.
21887         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
21888         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
21889         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
21890         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
21891         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
21892         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
21893         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
21894         expansions of the above reservations for instructions of sizes
21895         1, 2 and 3 words.
21896
21897 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
21898
21899         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
21900
21901 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
21902
21903         * coverage.c: Include tree-pass.h.
21904         (coverage_counter_alloc): Print da_file_name to the dump file.
21905
21906 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
21907
21908         * sbitmap.c (sbitmap_range_empty_p): New function.
21909         * sbitmap.h (sbitmap_range_empty_p): New function.
21910         * bitmap.h: Now includes obstack.h.
21911
21912 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
21913             Kenneth Zadeck  <zadeck@naturalbridge.com>
21914
21915         * dbgcnt.def (ra_byte_scan): Added.
21916         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
21917         when the last hit happens for a counter.
21918         * timevar.def (TV_DF_BYTE_LR): New variable.
21919         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
21920         * passes.c (pass_fast_rtl_byte_dce): New pass.
21921         * fwprop.c (update_df): Added mode to call df_ref_create.
21922         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21923         DF_REF_EXTRACT_OFFSET.
21924         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
21925         DF_BYTE_LR_OUT, df_byte_lr): New macro.
21926         (df_mm): New enum.
21927         (df_ref_extract): Added mode field.
21928         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
21929         DF_REF_EXTRACT_OFFSET.
21930         (DF_REF_EXTRACT_MODE): New macro.
21931         (df_byte_lr_bb_info): New structure.
21932         (df_print_byte_regset, df_compute_accessed_bytes,
21933         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
21934         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
21935         df_byte_lr_simulate_uses,
21936         df_byte_lr_simulate_artificial_refs_at_top,
21937         df_byte_lr_simulate_artificial_refs_at_end,
21938         df_compute_accessed_bytes): New function.
21939         (df_ref_create): Add parameter.
21940         (df_byte_lr_get_bb_info): New inline function.
21941         * df-scan.c (df_ref_record, df_uses_record,
21942         df_ref_create_structure): Added mode parameter.
21943         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
21944         df_defs_record, df_uses_record, df_get_conditional_uses,
21945         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
21946         df_entry_block_defs_collect, df_exit_block_uses_collect):
21947         Added mode parameter to calls to df_ref_record, df_uses_record,
21948         df_ref_create_structure.
21949         (df_ref_equal_p, df_ref_compare): Added test for modes.
21950         (df_ref_create_structure): Added code to set mode.  Renamed
21951         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21952         DF_REF_EXTRACT_OFFSET.
21953         * df-core.c (df_print_byte_regset): New function.
21954         * df-byte-scan.c: New file.
21955         * df-problems.c (df_rd_transfer_function): Removed unnecessary
21956         calls to BITMAP_FREE.
21957         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
21958         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
21959         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
21960         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
21961         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
21962         df_byte_lr_local_compute, df_byte_lr_init,
21963         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
21964         df_byte_lr_transfer_function, df_byte_lr_free,
21965         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
21966         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
21967         df_byte_lr_simulate_uses,
21968         df_byte_lr_simulate_artificial_refs_at_top,
21969         df_byte_lr_simulate_artificial_refs_at_end): New function.
21970         * dce.c (byte_dce_process_block): New function.
21971         (dce_process_block): au is now passed in rather than computed
21972         locally.  Changed loops that look at artificial defs to not look
21973         for conditional or partial ones, because there never are any.
21974         (fast_dce): Now is able to drive byte_dce_process_block or
21975         dce_process_block depending on the kind of dce being done.
21976         (rest_of_handle_fast_dce): Add parameter to fast_dce.
21977         (rest_of_handle_fast_byte_dce): New function.
21978         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
21979         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
21980
21981 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
21982
21983         PR fortran/35019
21984         * gcc.h: Added fortran options that take arguments to
21985         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
21986         macros.
21987
21988 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
21989
21990         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
21991         scalarization if on the LHS and not a full access.
21992
21993 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21994
21995         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
21996
21997 2008-04-18  Rafael Espíndola  <espindola@google.com>
21998
21999         * tree-vrp.c (find_case_label_index): Fix the binary search.
22000         (find_case_label_range): New.
22001         (vrp_visit_switch_stmt): Use find_case_label_range.
22002         (simplify_switch_using_ranges): Use find_case_label_range.
22003
22004 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
22005
22006         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
22007         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
22008
22009 2008-04-18  Tom Tromey  <tromey@redhat.com>
22010
22011         PR libcpp/15500:
22012         * doc/cpp.texi (Implementation-defined behavior): Mention
22013         -finput-charset.
22014
22015 2008-04-18  Ian Lance Taylor  <iant@google.com>
22016
22017         * fold-const.c (pointer_may_wrap_p): New static function.
22018         (fold_comparison): Add another test for pointer overflow.  Use
22019         pointer_may_wrap_p to disable some false positives.
22020
22021 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
22022
22023         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
22024         (fname_as_string): Match updated cpp_interpret_string prototype.
22025         (fix_string_type): Support char16_t* and char32_t*.
22026         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
22027         derivative) nodes.  Register as builtin if C++0x.
22028         (c_parse_error): Support CPP_CHAR{16,32}.
22029         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
22030         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
22031         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
22032         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
22033         CTI_CHAR32_ARRAY_TYPE>: New elements.
22034         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
22035         char32_type_node, signed_char32_type_node, char16_array_type_node,
22036         char32_array_type_node): New defines.
22037         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
22038         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
22039         (lex_string): Support CPP_STRING{16,32}, match updated
22040         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
22041         (lex_charconst): Support CPP_CHAR{16,32}.
22042         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
22043         and CPP_STRING{16,32}.
22044
22045 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
22046
22047         PR bootstrap/35457
22048         * aclocal.m4: Regenerate.
22049         * configure: Regenerate.
22050
22051 2008-04-18  Jan Hubicka  <jh@suse.cz>
22052
22053         * except.c (dw2_size_of_call_site_table,
22054         sjlj_size_of_call_site_table): Use vector API for call_site_record.
22055
22056         * cgraphbuild.c (build_cgraph_edges): Update.
22057         * tree-pass.h: Update comment.
22058         * final.c (leaf_function_p): Update.
22059         (leaf_renumber_regs): Update.
22060         (rest_of_clean_state): Update.
22061         * omp-low.c (expand_omp_parallel): Update.
22062         * ipa-reference.c (analyze_function): Update.
22063         * reorg.c (find_end_label): Update.
22064         (optimize_skip): Update.
22065         (fill_simple_delay_slots): Update.
22066         (fill_simple_delay_slots): Update.
22067         (make_return_insns): Update.
22068         (dbr_schedule): Update.
22069         * gimple-low.c (record_vars_into): Update.
22070         * cfgbuild.c (make_edges): Update.
22071         * function.c (assign_stack_local): Update.
22072         (assign_parm_adjust_stack_rtl): Update.
22073         (locate_and_pad_parm): Update.
22074         (allocate_struct_function): Do not initialize stack_alignment_needed
22075         and preferred_stack_boundary here.
22076         (stack_protect_prologue): Update.
22077         (stack_protect_epilogue): Update.
22078         (expand_function_start): Initialize stack_alignment_needed,
22079         preferred_stack_boundary and max_jumptable_ents.
22080         (expand_function_end): Update.
22081         (free_after_compilation): Do not NULLify epilogue_delay_list.
22082         * function.h (struct rtl_data): Add stack_protect_guard,
22083         stack_alignment_needed,
22084         preferred_stack_boundary, epilogue_delay_list.
22085         (struct function): Remove value_histograms, stack_alignment_needed,
22086         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
22087         last_label_uid,
22088         unexpanded_var_list, stack_protect_guard.
22089         (current_function_epilogue_delay_list): Remove.
22090         * ipa-type-escape.c (analyze_function): Update.
22091         * gimplify.c (pop_gimplify_context): Update comment.
22092         * calls.c (expand_call): Update.
22093         (emit_library_call_value_1): Update.
22094         * except.c (set_nothrow_function_flags): Update.
22095         * cfgexpand.c (get_decl_align_unit): Update.
22096         (create_stack_guard): Update.
22097         (estimated_stack_frame_size): Update.
22098         (expand_used_vars): Update.
22099         (tree_expand_cfg): Free histogram earliers, init expansion variables.
22100         * explow.c (allocate_dynamic_stack_space): Update.
22101         * tree-ssa-live.c (remove_unused_locals): Update.
22102         * varasm.c (mark_constant_pool): Update.
22103         * tree-inline.c (remap_decls): Update.
22104         (initialize_cfun): Update.
22105         (declare_return_variable): Update.
22106         (inline_forbidden_p): Update.
22107         (expand_call_inline): Update.
22108         (declare_inline_vars): Update.
22109         (tree_function_versioning): Update.
22110         * tree-flow.h (value_histograms): New.
22111         (VALUE_HISTOGRAMS): New macro.
22112         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
22113         last_label_uid.
22114         * tree-cfg.c (set_bb_for_stmt): Update.
22115         (replace_by_duplicate_decl): Update.
22116         (move_block_to_fn): Update.
22117         (new_label_mapper): Update.
22118         (dump_function_to_file): Update.
22119         * ipa-struct-reorg.c (build_data_structure): Update.
22120         * cfgrtl.c (print_rtl_with_bb): Update.
22121         * reload1.c (reload): Update.
22122         (reload): Update.
22123         * config/i386/i386.c (setup_incoming_varargs_64,
22124         ix86_compute_frame_layout): Update.
22125         * config/arc/arc.c (arc_output_function_epilogue): Update.
22126
22127 2008-04-18  Marius Strobl <marius@FreeBSD.org>
22128
22129         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
22130         for FreeBSD as well.
22131         * gthr-posix95.h: Likewise.
22132
22133 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
22134
22135         PR rtl-optimization/35838
22136         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
22137         out the byte offset of the first subreg.
22138
22139 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
22140
22141         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
22142         to split_ti instead of three separate calls with single member arrays.
22143         (subti3 splitter): Ditto.
22144         (adddi3 splitter): Ditto with split_di.
22145         (subdi3 splitter): Ditto.
22146         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
22147         two separate calls with single member arrays.  Swap match_dup
22148         operands 1 and 2 to better fit into the array.
22149         (negdi2 splitter): Ditto with split_di.
22150         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
22151         two separate calls with single member arrays.  Swap match_dup operands
22152         6 and 7 to better fit into the array.
22153
22154 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
22155
22156         * config/i386/i386.c (sse_builtin_type): New.
22157         (bdesc_sse_args): Likewise.
22158         (bdesc_sse_3arg): Removed.
22159         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
22160         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
22161         IX86_BUILTIN_ROUNDPS.
22162         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
22163         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
22164         IX86_BUILTIN_ROUNDPS.
22165         (ix86_expand_sse_4_operands_builtin): Removed.
22166         (ix86_expand_sse_operands_builtin): New.
22167         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
22168         and CODE_FOR_sse4_1_roundps.
22169         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
22170         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
22171
22172 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
22173
22174         PR target/35907
22175         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
22176         regs before frame pop when needed.  If use_backchain_to_restore_sp
22177         then load backchain into a temp reg to restore vr and vrsave.  Add
22178         code to restore vr after frame pop if possible.
22179
22180 2008-04-17  Richard Guenther  <rguenther@suse.de>
22181
22182         * tree-vn.c (expressions_equal_p): Do not check type
22183         equality or compatibility before calling operand_equal_p.
22184         * fold-const.c (operand_equal_p): Check equivalence of
22185         integer constants before bailing out due to signedness or
22186         precision differences.
22187         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
22188         spurious differences in type qualification.  Ignore types
22189         for COMPONENT_REFs at all.
22190
22191 2008-04-17  Christian Bruel  <christian.bruel@st.com>
22192
22193         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
22194         msw_skip comparison.
22195
22196 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
22197
22198         PR c/35739
22199         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
22200         reg type.
22201
22202         PR tree-optimization/35899
22203         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
22204         rather than TREE_OPERAND.
22205
22206 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
22207
22208         PR target/35944
22209         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
22210         temporary registers.  Change operand predicate to general_operand.
22211         (remainderxf3): Ditto.
22212
22213 2008-04-16  Richard Guenther  <rguenther@suse.de>
22214
22215         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
22216         * tree-affine.c (aff_combination_expand): Look through some
22217         conversions.
22218
22219 2008-04-15  Doug Kwan  <dougkwan@google.com>
22220
22221         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
22222         for hex printing.
22223         * tree-pretty-print.c (dump_generic_node): Ditto.
22224         * final.c (output_addr_const): Ditto.
22225         * dwarf2out.c (output_cfi): Ditto.
22226         * c-pretty-print.c (pp_c_integer_constant): Ditto.
22227         * print-rtl.c (print_rtx): Ditto.
22228         * print-tree.c (print_node_brief, print_node): Ditto.
22229         * c-common.c (match_case_to_enum_1): Ditto.
22230         * sched-vis.c (print_value): Ditto.
22231         * config/i386/i386.c (print_operand): Cast to long unsigned int
22232         for hex printing.
22233
22234 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
22235         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
22236         MS Windows VirtualProtect function.
22237
22238 2008-04-15  Jan Hubicka  <jh@suse.cz>
22239
22240         * gengtype.c (write_root): Param_is argument is OK.
22241         * expr.c (expand_expr_real_1): Update call of get_exception_*.
22242         * function.h: Include varray.h
22243         (rtl_eh): New stucture based on except.c one.
22244         (call_site_record): New forward declaration and vector type.
22245         * calls.c (emit_call_1): Do not call
22246         note_current_region_may_contain_throw.
22247         * except.c (eh_status): Remove cur_region, try_region since they are
22248         unused.
22249         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
22250         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22251         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
22252         Remove call_site_data_used, call_site_data_size.
22253         Turn call_site_record into vector in function.h.
22254         (note_current_region_may_contain_throw): Remove.
22255         (get_exception_pointer, get_exception_filter): Do not take struct
22256         function argument; update.
22257         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
22258         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
22259         build_post_landing_pads, dw2_build_landing_pads,
22260         sjlj_assign_call_site_values, sjlj_mark_call_sites,
22261         sjlj_emit_function_enter, sjlj_emit_function_enter,
22262         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
22263         sjlj_build_landing_pads, finish_eh_generation,
22264         remove_exception_handler_label, remove_eh_handler,
22265         maybe_remove_eh_handler, add_reachable_handler,
22266         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
22267         add_action_record, collect_one_action_chain, add_call_site,
22268         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
22269         sjlj_output_call_site_table, output_function_exception_table,
22270         * except.h (note_current_region_may_contain_throw): Remove
22271         (get_exception_pointer, get_exception_filter): Do not take struct
22272         function argument.
22273         * Makefile.in (GTFILES): Put varargs before struct function.
22274
22275 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
22276
22277         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
22278         punt for STRING_CST.
22279         (get_constraint_for): Deal with STRING_CST here instead.
22280
22281 2008-04-15  Richard Guenther  <rguenther@suse.de>
22282
22283         * tree-ssa-propagate.c (substitute_and_fold): Substitute
22284         statements in a basic-block with a backward walk.  Do not
22285         substitute into dead statements but instead remove those.
22286
22287 2008-04-15  Richard Guenther  <rguenther@suse.de>
22288
22289         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
22290         to zero, thus disable creation of SFTs.
22291
22292 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
22293
22294         * tree-predcom.c (suitable_reference_p): Return false if the
22295         reference can throw.
22296
22297 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
22298
22299         PR c/35751
22300         * c-decl.c (finish_decl): If extern or static var has variable
22301         size, set TREE_TYPE (decl) to error_mark_node.
22302
22303 2008-04-15  Rafael Espíndola  <espindola@google.com>
22304
22305         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
22306         variable arg1.
22307
22308 2008-04-15  Richard Guenther  <rguenther@suse.de>
22309
22310         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
22311         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
22312         (visit_reference_op_load): Do walk vuse-vdef chains on
22313         vn_reference_lookup.
22314         (visit_reference_op_store): But do not here.
22315         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
22316         vn_reference_lookup.
22317         (vn_lookup_with_vuses): But do so here.
22318
22319 2008-04-14  Ian Lance Taylor  <iant@google.com>
22320
22321         * fold-const.c (fold_overflow_warning): Remove assertion.
22322
22323 2008-04-15  Ben Elliston  <bje@au.ibm.com>
22324
22325         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
22326         temp1 local variables.
22327
22328 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
22329
22330         PR target/35661
22331         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
22332         ".text.unlikely" section as executable.
22333
22334 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
22335
22336         * config/ia64/ia64.c (rtx_needs_barrier): Handle
22337         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
22338         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
22339         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
22340         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
22341         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
22342         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
22343
22344 2008-04-14  Ian Lance Taylor  <iant@google.com>
22345
22346         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
22347         * fold-const.c (fold_comparison): If appropriate, test
22348         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
22349         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
22350         reassociating a pointer type.
22351         * doc/invoke.texi (Optimize Options): Document that
22352         -fstrict-overflow applies to pointer wraparound.
22353
22354 2008-04-13  Jan Hubicka  <jh@suse.cz>
22355
22356         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
22357
22358 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
22359
22360         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
22361         we are going to "save the world".
22362
22363 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
22364
22365         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
22366         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
22367         operand 0 constraint, not "=".
22368
22369 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
22370
22371         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
22372
22373 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
22374
22375         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
22376         of size of positions_needed * CHAR_BIT.
22377
22378 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
22379
22380         PR middle-end/35897
22381         * dse.c (store_info): Change positions_needed to unsigned
22382         HOST_WIDE_INT.
22383         (lowpart_bitmask): New.
22384         (record_store): Cast to unsigned HOST_WIDE_INT for
22385         positions_needed.  Assert width <= size of positions_needed *
22386         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
22387         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
22388         lowpart_bitmask to set mask.
22389
22390 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
22391
22392         * config/bfin/constraints.md: New file.
22393         * config/bfin/bfin.md: Include it.
22394         (adddi3): Use satisfies_constraint functions instead of the old macros.
22395         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
22396         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
22397         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
22398         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
22399         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
22400         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
22401         EXTRA_CONSTRAINT): Delete.
22402         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
22403         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
22404         of the old macros.
22405         * config/bfin/bfin.c: Include "tm-constrs.h".
22406         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
22407         Use satisfies_constraint functions instead of the old macros.
22408         * doc/md.texi (Blackfin Constraints): Update file name reference.
22409
22410 2008-04-11  Richard Guenther  <rguenther@suse.de>
22411
22412         PR tree-optimization/35869
22413         * tree-vrp.c (execute_vrp): Move switch statement update after
22414         jump threading.  Schedule another cfg cleanup run.
22415
22416 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
22417
22418         PR c/35744
22419         * attribs.c (decl_attributes): Return early on errorneous node.
22420
22421 2008-04-10  Oleg Ryjkov  <olegr@google.com>
22422
22423         * tree.h (struct tree_base): Added a new flag default_def_flag.
22424         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
22425
22426 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
22427
22428         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
22429
22430 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22431
22432         PR target/35768
22433         * pa.md: Define mode iterator P.  Define mode attribute dwc.
22434         (dcacheflush): Update pattern to use iterator P and attribute dwc.
22435         (icacheflush): Likewise.
22436         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
22437         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
22438
22439 2008-04-11  Ben Elliston  <bje@au.ibm.com>
22440
22441         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
22442
22443 2008-04-10  Rafael Espíndola  <espindola@google.com>
22444
22445         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
22446         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
22447         (extract_range_from_expr): The same.
22448
22449 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
22450
22451         * config/mips/mips.md (GPR2): New mode iterator.
22452         (seq): Add comment.
22453         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
22454         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
22455         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
22456         Rewrite these to take two modes, the mode of comparison and the
22457         mode of the destination.
22458         * config/mips/mips.c (mips_expand_scc): Instead of having
22459         paradoxical subreg as destination, expand "narrowing" scc if mode
22460         of comparison is SI and target is requested in DI mode.
22461         (mips_emit_int_order_test): Update comment.  Make mode of
22462         comparison match CMP0 rather than TARGET.  When creating inverse
22463         target use mode of TARGET.
22464
22465 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
22466
22467         * gcov-dump.c (tag_summary): Only print summaries for the first
22468         GCOV_COUNTERS_SUMMABLE counters.
22469
22470 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
22471
22472         * config/i386/i386.md (absneg): New code iterator.
22473         (absnegprefix): New code attribute.
22474         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
22475         patterns using absneg code iterator.
22476         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
22477         using absneg code iterator.
22478         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
22479         *neg<mode>2 patterns using absneg code iterator.
22480         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22481         *negextendsfdf2 patterns using absneg code iterator.
22482         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
22483         *negextendsfxf2 patterns using absneg code iterator.
22484         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22485         *negextendsfdf2 patterns using absneg code iterator.
22486         * config/i386/sse.md (<code><mode>2): Macroize expander from
22487         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
22488
22489 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
22490
22491         * config/s390/s390.h: Remove the remains of the recent search
22492         & replace action of current_function_outgoing_args_size.
22493
22494 2008-04-10  Ira Rosen  <irar@il.ibm.com>
22495
22496         PR tree-optimization/35821
22497         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
22498         NEW_STMT_LIST is not NULL.
22499
22500 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
22501
22502         PR libstdc++/35597
22503         * toplev.c (process_options): Remove -ffunction-sections debugging
22504         warning.
22505
22506 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
22507
22508         PR middle-end/PR28690
22509         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
22510         than gen_rtx_fmt_ee to perform more canonicalizations.
22511
22512 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22513
22514         PR driver/35665
22515         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
22516
22517 2008-04-09  Richard Guenther  <rguenther@suse.de>
22518
22519         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
22520         (dump_function_to_file): Dump function arguments with types.
22521
22522 2008-04-08  Richard Guenther  <rguenther@suse.de>
22523
22524         * fold-const.c (fold_widened_comparison): Do not allow
22525         sign-changes that change the result.
22526
22527 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
22528
22529         PR target/35839
22530         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
22531         kinds of indirect references.
22532
22533 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
22534
22535         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
22536         GNU Fortran language string.
22537
22538 2008-04-08  Rafael Espíndola  <espindola@google.com>
22539
22540         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
22541         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
22542         * tree.h (tree_call_nonnegative_warnv_p): New.
22543
22544 2008-04-08  Jan Hubicka  <jh@suse.cz>
22545
22546         * function.c (free_after_compilation): Clear out regno_reg_rtx
22547         pointer.
22548
22549 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
22550
22551         Revert
22552         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
22553
22554         PR middle-end/PR28690
22555         * rtlanal.c (commutative_operand_precedence): Give SYMBOL_REF's the
22556         same precedence as REG_POINTER and MEM_POINTER operands.
22557
22558 2008-04-08  Richard Guenther  <rguenther@suse.de>
22559
22560         PR middle-end/35834
22561         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
22562         for adding index to base.
22563
22564 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
22565
22566         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
22567         (MINGW_ENABLE_EXECUTE_STACK): New.
22568         (IN_LIBGCC2): For libgcc include windows.h file for
22569         function declarations.
22570
22571 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
22572
22573         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
22574         and tem2 if tem1 is not a REG or MULT.
22575
22576 2008-04-08  Jan Hubicka  <jh@suse.cz>
22577
22578         * function.h (incomming_args): Break out of struct function.
22579         (function_subsections): Break out of struct function.
22580         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
22581         return_rtx and hard_reg_initial_vals from struct function.
22582         Kill inl_max_label_num.
22583         (current_function_pops_args, current_function_args_info,
22584         current_function_args_size, current_function_args_size,
22585         current_function_pretend_args_size,
22586         current_function_outgoing_args_size,
22587         current_function_internal_arg_pointer, current_function_return_rtx):
22588         Kill compatibility accestor macros.
22589         * builtins.c (expand_builtin_apply_args_1): Update.
22590         (expand_builtin_next_arg): Update.
22591         * df-scan.c (df_get_call_refs): Update.
22592         * dbxout.c (dbxout_function_end): Update.
22593         * dwarf2out.c (dwarf2out_switch_text_section): Update.
22594         (output_line_info): Update.
22595         (secname_for_decl): Update.
22596         (dwarf2out_var_location): Update.
22597         * function.c (free_after_compilation): Update.
22598         (assign_parm_find_stack_rtl): Update.
22599         (assign_parms): Update.
22600         (expand_dummy_function_end): Update.
22601         (expand_function_end): Update.
22602         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
22603         (expand_call): Update.
22604         (emit_library_call_value_1): Update.
22605         (store_one_arg): Update.
22606         * varasm.c (initialize_cold_section_name): Update.
22607         (unlikely_text_section): Update.
22608         (unlikely_text_section_p): Update.
22609         (assemble_start_function): Update.
22610         (assemble_end_function): Update.
22611         (default_section_type_flags): Update.
22612         (switch_to_section): Update.
22613         * integrate.c (set_decl_abstract_flags): Update.
22614         (get_hard_reg_initial_val): Update.
22615         (has_hard_reg_initial_val): Update.
22616         (allocate_initial_values): Update.
22617         * resource.c (init_resource_info): Update.
22618         * config/alpha/alpha.c (NUM_ARGS): Update.
22619         (direct_return): Update.
22620         (alpha_va_start): Update.
22621         (alpha_sa_size): Update.
22622         (alpha_initial_elimination_offset): Update.
22623         (alpha_expand_prologue): Update.
22624         (alpha_start_function): Update.
22625         (alpha_expand_epilogue): Update.
22626         (unicosmk_initial_elimination_offset):
22627         * config/alpha/alpha.md (call expander): Update.
22628         * config/s390/s390.c (s390_register_info): Update.
22629         (s390_register_info): Update.
22630         (s390_frame_info): Update.
22631         (s390_initial_elimination_offset): Update.
22632         (s390_build_builtin_va_list): Update.
22633         (s390_va_start): Update.
22634         * config/spu/spu.c (direct_return): Update.
22635         (spu_expand_prologue): Update.
22636         (spu_initial_elimination_offset): Update.
22637         (spu_build_builtin_va_list): Update.
22638         (spu_va_start): Update.
22639         * config/sparc/sparc.c (sparc_init_modes): Update.
22640         (sparc_compute_frame_size): Update.
22641         (function_value): Update.
22642         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
22643         * config/i386/i386.md (return expander): Update.
22644         * config/i386/i386.c (ix86_va_start): Update.
22645         (ix86_can_use_return_insn_p): Update.
22646         (ix86_compute_frame_layout): Update.
22647         (ix86_expand_epilogue): Update.
22648         * config/sh/sh.c (output_stack_adjust): Update.
22649         (calc_live_regs): Update.
22650         (sh_expand_prologue): Update.
22651         (sh_builtin_saveregs): Update.
22652         (sh_va_start): Update.
22653         (initial_elimination_offset): Update.
22654         (sh_allocate_initial_value): Update.
22655         (sh_function_ok_for_sibcall): Update.
22656         (sh_get_pr_initial_val): Update.
22657         * config/sh/sh.md (return expander): Update.
22658         * config/avr/avr.c (frame_pointer_required_p): UPdate.
22659         * config/crx/crx.c (crx_compute_frame): UPdate.
22660         (crx_initial_elimination_offset): UPdate.
22661         * config/xtensa/xtensa.c (compute_frame_size): Update
22662         (xtensa_builtin_saveregs): Update.
22663         (xtensa_va_start): Update.
22664         (order_regs_for_local_alloc): Update.
22665         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
22666         (xstormy16_expand_builtin_va_start): Update.
22667         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
22668         * config/m68hc11/m68hc11.md (return expanders): Update.
22669         * config/m68hc11/m68hc11.c (expand_prologue): Update.
22670         (expand_epilogue): Update.
22671         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
22672         (cris_simple_epilogue): Update.
22673         (cris_expand_prologue): Update.
22674         (cris_expand_epilogue): Update.
22675         * config/iq2000/iq2000.c (iq2000_va_start): Update.
22676         (compute_frame_size): Update.
22677         * config/mt/mt.c (mt_compute_frame_size): Update.
22678         * config/mn10300/mn10300.c (expand_prologue): Update.
22679         (expand_epilogue): Update.
22680         (initial_offset): Update.
22681         (mn10300_builtin_saveregs):
22682         * config/mn10300/mn10300.md (return expander): Update.
22683         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
22684         (ia64_initial_elimination_offset): Update.
22685         (ia64_initial_elimination_offset): Update.
22686         (ia64_expand_prologue): Update.
22687         * config/m68k/m68k.md (return expander): Update.
22688         * config/rs6000/rs6000.c (rs6000_va_start): Update.
22689         (rs6000_stack_info): Update.
22690         * config/mcore/mcore.c (layout_mcore_frame): Update.
22691         (mcore_expand_prolog): Update.
22692         * config/arc/arc.c (arc_compute_frame_size): Update.
22693         * config/score/score3.c (score3_compute_frame_size): Update.
22694         * config/score/score7.c (score7_compute_frame_size): Update.
22695         * config/arm/arm.c (use_return_insn): Update.
22696         (thumb_find_work_register): Update.
22697         (arm_compute_save_reg_mask): Update.
22698         (arm_output_function_prologue): Update.
22699         (arm_output_epilogue): Update.
22700         (arm_size_return_regs): Update.
22701         (arm_get_frame_offsets): Update.
22702         (arm_expand_prologue): Update.
22703         (thumb_exit): Update.
22704         (thumb_unexpanded_epilogue): Update.
22705         (thumb1_output_function_prologue): Update.
22706         * config/pa/pa.md (return expander): Update.
22707         * config/pa/pa.c (compute_frame_size): Update.
22708         (hppa_builtin_saveregs): Update.
22709         * config/mips/mips.c (mips_va_start): Update.
22710         (mips16_build_function_stub): Update.
22711         (mips_compute_frame_info): Update.
22712         (mips_restore_gp): Update.
22713         (mips_output_function_prologue): Update.
22714         (mips_expand_prologue): Update.
22715         * config/v850/v850.c (compute_frame_size): Update.
22716         (expand_prologue): * config/mmix/mmix.c (along): update.
22717         (mmix_initial_elimination_offset): update.
22718         (mmix_reorg): update.
22719         (mmix_use_simple_return): update.
22720         (mmix_expand_prologue): update.
22721         (mmix_expand_epilogue): Update.
22722         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
22723         (emit_link_insn): Update.
22724
22725 2008-04-08  Anatoly Sokolov <aesok@post.ru>
22726
22727         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
22728         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
22729         instructions.
22730         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
22731         atmega103 device.
22732
22733 2008-04-07  Jan Hubicka  <jh@suse.cz>
22734
22735         * function.h (rtl): Rename to x_rtl.
22736         (crtl): New define.
22737         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
22738         frame_offset, stack_check_probe_note, arg_pointer_save_area,
22739         used_temp_slots avail_temp_slots, temp_slot_level,
22740         nonlocal_goto_handler_labels): Update accesstors.
22741         (rtl): New global variable.
22742         (struct function): Move some fileds to rtl_data.
22743         (get_arg_pointer_save_area): Update prototype.
22744         * builtins.c (expand_builtin_setjmp_receiver): Update call of
22745         get_arg_pointer_save_area.
22746         * expr.c (init_expr): Update
22747         * function.c (get_frame_size): Update
22748         (assign_stack_local): Update
22749         (expand_function_end): Update.
22750         (get_art_pointer_save_area): Update
22751         * function.h
22752         * emit-rtl.c (rtl): Declare.
22753         (regno_reg_rtx): Declare.
22754         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
22755         Update.
22756         (gen_reg_rtx): Update.
22757         * varasm.c (n_deferred_constatns): Update accestor.
22758         (init_varasm_status): Do not allocate varasm_status.
22759         (force_const_mem, get_pool_size, output_constant_pool): Update.
22760         * stmt.c (force_label_rtx): Do not use x_ prefixes.
22761         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
22762         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
22763         * sparc/sparc.h (INIT_EXPANDERS): Update.
22764         * ia64/ia64.h (INIT_EXPANDERS): Update.
22765
22766 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
22767
22768         * reload.c (push_secondary_reload): Add missing break to for loop.
22769
22770 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
22771
22772         PR middle-end/PR28690
22773         * rtlanal.c: Update copyright years.
22774         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
22775         as REG_POINTER and MEM_POINTER operands.
22776         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
22777         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
22778         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
22779         * gcse.c: Update copyright years.
22780         (pre_delete): Call gen_reg_rtx_and_attrs.
22781         (hoist_code): Likewise.
22782         (build_store_vectors): Likewise.
22783         (delete_store): Likewise.
22784         * loop-invariant.c (move_invariant_reg): Likewise.
22785         Update copyright years.
22786
22787 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
22788
22789         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
22790         control string instead of quoted.
22791
22792 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
22793
22794         * doc/rtl.texi: Rewrite of subreg section.
22795
22796 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
22797
22798         PR/35842
22799         * config/i386/i386.c (legitimize_pic_address): Add treating
22800         of dllimport SYM_REF's.
22801         (legitimize_dllimport_symbol): Add prototype.
22802
22803 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22804
22805         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
22806         reference in constructor with non self-referential type.
22807
22808 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22809
22810         Removal of Return with Depressed Stack Pointer support
22811         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
22812         (ECF_SP_DEPRESSED): Likewise.
22813         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
22814         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
22815         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22816         (expand_call): Do not test ECF_SP_DEPRESSED.
22817         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22818         * function.c (keep_stack_depressed): Delete.
22819         (handle_epilogue_set): Likewise.
22820         (update_epilogue_consts): Likewise.
22821         (emit_equiv_load): Likewise.
22822         (thread_prologue_and_epilogue_insns): Remove support for Return with
22823         Depressed Stack Pointer.
22824         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22825
22826 2008-04-06  Richard Guenther  <rguenther@suse.de>
22827
22828         PR tree-optimization/35400
22829         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
22830         information from SSA_NAMEs.
22831
22832 2008-04-06  Anatoly Sokolov <aesok@post.ru>
22833
22834         * config/avr/avr.h (avr_mega_p): Remove declaration.
22835         (AVR_MEGA): Remove macro.
22836         * config/avr/avr.c (avr_mega_p): Remove variable.
22837         (avr_override_options): Remove inicializion of avr_mega_p.
22838         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22839         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22840         (avr_jump_mode): (Ditto.).
22841         (avr_output_progmem_section_asm_op): (Ditto.).
22842         (avr_asm_init_sections): (Ditto.).
22843         (avr_asm_init_sections): (Ditto.).
22844         (avr_rtx_costs): (Ditto.).
22845         * config/avr/avr.md: (Ditto.).
22846         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
22847         '__AVR_MEGA__'.
22848
22849 2008-04-06  Richard Guenther  <rguenther@suse.de>
22850
22851         PR tree-optimization/35842
22852         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
22853         is_gimple_invariant_address.
22854
22855 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
22856
22857         * gcc.c (default_compilers): Sync Fortran extensions list with
22858         that in fortran/lang-specs.h.
22859         * doc/invoke.texi: Likewise.
22860         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
22861         * dwarf2out.c (gen_compile_unit_die): Likewise.
22862
22863 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
22864
22865         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
22866
22867 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
22868
22869         PR target/12329
22870         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
22871         attribute is used for nested functions.
22872
22873 2008-04-05  Jan Hubicka  <jh@suse.cz>
22874
22875         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
22876
22877         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
22878         letter argument.
22879         (dump_files): Update.
22880         (enable_rtl_dump_file): Do not accept letter argument.
22881         * tree-pass.h (dump_file_info): Remove letter argument.
22882         * toplev.c (decode_d_option): Update -da handling.
22883         * toplev.h (enable_rtl_dump_file): Update prototype.
22884         * passes.c (register_one_dump_file): Do not accept IPA argument; work
22885         it out based on pass type.
22886         (register_dump_files_1): Likewise.
22887         (init_optimization_passes): Update register_one_dump_file calls.
22888         (execute_one_pass): Sanity check that IPA passes are called at IPA
22889         level and RTL passes at RTL level.
22890         (execute_pass_list): IPA pass can not be after or subpass of
22891         GIMPLE/RTL pass.
22892         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
22893         disallov RTL subpasses of IPA subpasses.
22894
22895 2008-04-05  Ben Elliston  <bje@au.ibm.com>
22896
22897         * tree-cfg.c (need_fake_edge_p): Return false for calls to
22898         builtins that return exactly once and do not throw. Cache call to
22899         call_expr_flags.
22900
22901 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
22902
22903         PR rtl-optimization/34916
22904         PR middle-end/35519
22905         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
22906         between instruction pairs.
22907
22908 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
22909
22910         * doc/invoke.texi: Document -mbitops for SH.
22911         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
22912         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
22913         * config/sh/sh.c (print_operand): Add %t operand code.
22914         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
22915         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
22916         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
22917         (extendqihi2): Likewise.
22918         (movqi_i): Likewise.
22919         (insv): Use bset, bclr and bst instructions for SH2A if possible.
22920         (extv): Use bld instruction for SH2A if possible.
22921         (extzv): Likewise.
22922         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
22923         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
22924         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
22925         (bset.b, bclr.b): Define peepholes.
22926         * config/sh/sh.opt (mbitops): New option.
22927
22928 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
22929
22930         PR target/35620
22931         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
22932         and view convert expression.
22933
22934 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
22935
22936         PR target/35364
22937         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
22938
22939 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
22940
22941         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
22942
22943         * config/i386/cpuid.h (bit_AES): New.
22944         (bit_PCLMUL): Likewise.
22945
22946         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
22947         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
22948         SSE2 if AES or PCLMUL is enabled.
22949         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
22950         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22951         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
22952         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
22953         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
22954         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
22955         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22956         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
22957         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
22958         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
22959         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
22960         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
22961         __builtin_ia32_aeskeygenassist128 and
22962         __builtin_ia32_pclmulqdq128.
22963         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
22964         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
22965         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
22966
22967         * config/i386/i386.h (TARGET_AES): New.
22968         (TARGET_PCLMUL): Likewise.
22969         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
22970
22971         * config/i386/i386.md (UNSPEC_AESENC): New.
22972         (UNSPEC_AESENCLAST): Likewise.
22973         (UNSPEC_AESDEC): Likewise.
22974         (UNSPEC_AESDECLAST): Likewise.
22975         (UNSPEC_AESIMC): Likewise.
22976         (UNSPEC_AESKEYGENASSIST): Likewise.
22977         (UNSPEC_PCLMUL): Likewise.
22978
22979         * config/i386/i386.opt (maes): New.
22980         (mpclmul): Likewise.
22981
22982         * config/i386/sse.md (aesenc): New pattern.
22983         (aesenclast): Likewise.
22984         (aesdec): Likewise.
22985         (aesdeclast): Likewise.
22986         (aesimc): Likewise.
22987         (aeskeygenassist): Likewise.
22988         (pclmulqdq): Likewise.
22989
22990         * config/i386/wmmintrin.h: New.
22991
22992         * doc/extend.texi: Document AES and PCLMUL built-in function.
22993
22994         * doc/invoke.texi: Document -maes and -mpclmul.
22995
22996 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
22997
22998         * function.c (free_after_parsing): Replace with
22999         cxx_push_function_context from C++ front-end.
23000         (allocate_struct_function): Don't call langhook.
23001         * langhooks.h (struct lang_hooks_for_functions): Delete.
23002         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
23003         member "function".
23004         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
23005         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
23006         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
23007         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
23008         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
23009         remove LANG_HOOKS_FUNCTION_INITIALIZER.
23010         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
23011
23012         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
23013         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
23014
23015 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
23016
23017         PR c/35440
23018         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
23019         for all types.
23020
23021 2008-04-04  Richard Guenther  <rguenther@suse.de>
23022
23023         PR middle-end/35823
23024         * fold-const.c (optimize_minmax_comparison): Use the correct
23025         type for the constant in the simplified comparison.
23026
23027 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
23028
23029         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
23030         Pass L2 size as "--param l2-cache-size" to the compiler.
23031         (decode_l2_cache): New function to decode L2 cache parameters using
23032         0x8000006 extended cpuid function.
23033         (detect_caches_amd): Determine parameters of L2 cache using
23034         decode_l2_caches function.
23035         (decode_caches_intel): Decode L2 cache parameters.
23036         (detect_caches_intel): Determine L2 cache parameters using
23037         decode_caches_intel and decode_l2_caches functions.
23038
23039 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
23040
23041         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
23042         secondary input reload for subword loads from the constant pool.
23043
23044 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
23045
23046         PR target/35713
23047         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
23048           constants of the appropriate size for runtime calculations.
23049
23050         PR c/35712
23051         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
23052           decimal-float literal constant zero.
23053
23054 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
23055
23056         PR c/35738
23057         * c-parser.c (c_parser_omp_atomic): Call
23058         default_function_array_conversion on the RHS.
23059
23060         PR middle-end/35818
23061         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
23062         call is_variable_sized if decl has incomplete type.
23063
23064 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
23065
23066         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
23067
23068 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
23069
23070         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
23071         iterators.
23072         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
23073         (sgt<u>): Merge sgt and sgtu into new expander.
23074         (sgt, sgtu): Remove expanders.
23075         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
23076         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
23077         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
23078         *sgtu_<mode>_mips16 into new pattern.
23079         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
23080         (sge<u>): Merge sge and sgeu into new expander.
23081         (sge, sgeu): Remove expanders.
23082         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
23083         new pattern.
23084         (*sge_<mode>, second *sge_<mode>): Remove patterns.
23085         (slt<u>): Merge slt and sltu into new expander.
23086         (slt, sltu): Remove expanders.
23087         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
23088         (*slt_<mode>, *sltu_<mode>): Remove patterns.
23089         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
23090         *sltu_<mode>_mips16 into new pattern.
23091         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
23092         (sle<u>): Merge sle and sleu into new expander.
23093         (sle, sleu): Remove expanders.
23094         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
23095         (*sle_<mode>, *sleu_<mode>): Remove patterns.
23096         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
23097         *sleu_<mode>_mips16 into new pattern.
23098         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
23099
23100 2008-04-03  Jan Hubicka  <jh@suse.cz>
23101
23102         PR tree-optimization/35795
23103         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
23104         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
23105         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
23106         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
23107         * score/score3.c (score3_output_mi_thunk): Likewise.
23108         * score/score7.c (score7_output_mi_thunk): Likewise.
23109         * mips/mips.c (mips_output_mi_thunk): Likewise.
23110
23111 2008-04-03  Richard Guenther  <rguenther@suse.de>
23112
23113         * tree-vrp.c (extract_range_from_unary_expr): Handle all
23114         conversions.  Simplify code.
23115
23116 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
23117
23118         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
23119
23120 2008-04-03  Tom Tromey  <tromey@redhat.com>
23121             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23122
23123         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
23124         * config/bfin/t-bfin-linux (generated_files): Add
23125         linux-sysroot-suffix.h.
23126         * doc/install.texi (Prerequisites): Require make 3.80.
23127         * doc/sourcebuild.texi (Front End Directory): Document new
23128         variable.
23129         * Makefile.in (generated_files): New variable.
23130         (ALL_HOST_OBJS): New variable.
23131         ($(ALL_HOST_OBJS)): New target.
23132
23133 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
23134
23135         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
23136         (remap_block): Call id->transform_lang_insert_block instead
23137         of langhook.
23138         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
23139         Set id.transform_lang_insert_block to NULL.
23140         (clone_body): Move to cp/optimize.c
23141         * tree-inline.h (struct copy_body_data): Change
23142         transform_lang_insert_block to function pointer.
23143         (copy_generic_body, copy_decl_no_change): Export.
23144         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
23145         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
23146         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
23147
23148         * c-tree.h (insert_block): Kill.
23149         * c-decl.c (insert_block): Kill.
23150
23151 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
23152
23153         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
23154         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
23155         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
23156         argument.
23157         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
23158         argument, call {push,pop}_function_context from here.
23159         * c-parser.c: Use c_{push,pop}_function_context.
23160
23161         * function.c (push_function_context_to): Move meat ...
23162         (push_function_context): ... here.  Simplify.
23163         * function.c (pop_function_context_from): Move meat ...
23164         (pop_function_context): ... here.  Simplify.
23165         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
23166         leave_nested).
23167         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
23168         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
23169         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
23170         * tree.h (push_function_context_to, pop_function_context_from): Remove.
23171
23172 2008-04-03  Ben Elliston  <bje@au.ibm.com>
23173
23174         * expmed.c (extract_force_align_mem_bit_field): Remove.
23175
23176 2008-04-03  Richard Guenther  <rguenther@suse.de>
23177
23178         PR middle-end/35800
23179         * expr.h (try_casesi): Adjust prototype.
23180         * expr.c (try_casesi): Take fallback label as extra parameter.
23181         Use that for gen_casesi if default_label is NULL.
23182         * stmt.c (expand_case): Pass fallback label to try_casesi,
23183         make sure to fill gaps with a fallback label if default_label
23184         is not present.
23185
23186 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
23187
23188         PR target/35801
23189         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
23190
23191 2008-04-03  Ben Elliston  <bje@au.ibm.com>
23192
23193         * expmed.c (extract_split_bit_field): Remove if (0) code.
23194         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
23195         (do_ds_constraint): Likewise.
23196
23197 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
23198
23199         * doc/cppopts.texi (-dU): Document.
23200         * c-common.h (flag_dump_macros): Update comment.
23201         * c-opts.c (handle_OPT_d): Handle -dU.
23202         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
23203         dump_queued_macros, cb_used_define, cb_used_undef): New.
23204         (init_pp_output): Handle -dU.
23205         (cb_line_change): Call dump_queued_macros.
23206         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
23207
23208 2008-04-02  Anatoly Sokolov <aesok@post.ru>
23209
23210         * config/avr/predicates.md (io_address_operand): New predicate.
23211         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
23212         * config/avr/avr.c (avr_io_address_p): Remove function.
23213         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
23214         'avr_io_address_p' function.
23215         (out_movhi_r_mr): (Ditto.).
23216         (out_movqi_mr_r): (Ditto.).
23217         (out_movhi_mr_r): (Ditto.).
23218         (avr_address_cost): (Ditto.).
23219
23220 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
23221
23222         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
23223         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
23224         in 32bit mode when XMM registers are available to avoid store
23225         forwarding stalls.
23226         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
23227         corresponding post-reload splitters.
23228
23229 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
23230
23231         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
23232         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
23233         __builtin_ia32_roundss.
23234         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
23235         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
23236         __builtin_ia32_roundss.
23237         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
23238         IX86_BUILTIN_SHUFPD here.
23239
23240 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
23241
23242         * config/i386/i386.md (plogic): New.
23243         (plogicprefix): Likewise.
23244
23245         * config/i386/mmx.md (mmx_<code><mode>3): New.
23246         (mmx_and<mode>3): Removed.
23247         (mmx_ior<mode>3): Likewise.
23248         (mmx_xor<mode>3): Likewise.
23249
23250         * config/i386/sse.md (<code><mode>3): New.
23251         (*<code><mode>3): Likewise.
23252         (*<code><mode>3): Likewise.
23253         (<code><mode>3): Likewise.
23254         (*sse_<code><mode>3): Likewise.
23255         (*sse2_<code><mode>3): Likewise.
23256         (<code>tf3): Likewise.
23257         (*<code>tf3): Likewise.
23258         (and<mode>3): Likewise.
23259         (*and<mode>3): Likewise.
23260         (ior<mode>3): Removed.
23261         (*ior<mode>3): Likewise.
23262         (xor<mode>3): Likewise.
23263         (*xor<mode>3): Likewise.
23264         (*and<mode>3): Likewise.
23265         (*ior<mode>3): Likewise.
23266         (*xor<mode>3): Likewise.
23267         (and<mode>3): Likewise.
23268         (*sse_and<mode>3): Likewise.
23269         (*sse2_and<mode>3): Likewise.
23270         (andtf3): Likewise.
23271         (*andtf3): Likewise.
23272         (ior<mode>3): Likewise.
23273         (*sse_ior<mode>3): Likewise.
23274         (*sse2_ior<mode>3): Likewise.
23275         (iortf3): Likewise.
23276         (*iortf3): Likewise.
23277         (xor<mode>3): Likewise.
23278         (*sse_xor<mode>3): Likewise.
23279         (*sse2_xor<mode>3): Likewise.
23280         (xortf3): Likewise.
23281         (*xortf3): Likewise.
23282
23283 2008-04-02  Richard Guenther  <rguenther@suse.de>
23284
23285         PR tree-optimization/14495
23286         PR tree-optimization/34793
23287         * tree-vrp.c (struct switch_update): New structure.
23288         (to_remove_edges, to_update_switch_stmts): New VECs.
23289         (simplify_switch_using_ranges): New function.  Remove not taken
23290         case labels and edges.
23291         (simplify_stmt_using_ranges): Call it.
23292         (identify_jump_threads): Mark edges we have queued for removal
23293         so we don't thread them.
23294         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
23295         case label vector.
23296         * tree-cfg.c (group_case_labels): Deal with missing default label.
23297         (tree_verify_flow_info): Allow missing default label.
23298         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
23299         (emit_case_nodes): Likewise.
23300         (expand_case): Do not rely on the default label to be present.
23301         * expr.c (try_casesi): Deal with NULL default_label.
23302         (do_tablejump): Likewise.
23303
23304 2008-04-02  Richard Guenther  <rguenther@suse.de>
23305
23306         PR tree-optimization/14495
23307         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
23308         SWITCH_EXPR here ...
23309         (vrp_visit_switch_stmt): ... but here (new function).
23310         (find_case_label_index): New helper function.
23311         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
23312
23313 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23314
23315         * fwprop.c: Fix ISO-C99ism.
23316
23317 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23318
23319         PR bootstrap/35752
23320         * Makefile.in (objdir): Set it here.
23321         * configure.ac: Not here.  Find dynamic linker characteristics.
23322         * exec-tool.in: Use them.
23323         * aclocal.m4: Regenerate.
23324         * configure: Regenerate.
23325
23326 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23327
23328         * expr.c (expand_var): Delete it.
23329         * expr.h (expand_var): Delete prototype.
23330         * function.c (expand_function_start): Use expand_decl instead.
23331         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
23332         langhook.
23333
23334 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
23335
23336         PR rtl-optimization/35542
23337         * fwprop.c (forward_propagate_and_simplify): Replace
23338         loc_reg_mentioned_in_p with reg_mentioned_p.
23339
23340 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23341
23342         PR rtl-optimization/35281
23343         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
23344         (propagate_rtx_1): Handle PR_HANDLE_MEM.
23345         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
23346         (varying_mem_p): Move above propagate_rtx.
23347         (all_uses_available_at): Do not check MEMs.
23348
23349 2008-04-02  Rafael Espíndola  <espindola@google.com>
23350
23351         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
23352         (register_edge_assert_for_2): Split the cond argument.
23353         (register_edge_assert_for_1): Adjust for the change in
23354         register_edge_assert_for_2.
23355         (register_edge_assert_for): Split the cond argument.
23356         (find_switch_asserts): Adjust for the change in
23357         register_edge_assert_for.
23358
23359 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
23360
23361         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
23362         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
23363         offsets for 64-bit mingw.
23364         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
23365         abi for x86_64-pc-mingw.
23366
23367 2008-04-02  Richard Guenther  <rguenther@suse.de>
23368
23369         * tree-vrp.c (extract_range_from_assert): Make sure to not
23370         produce range min/max with TREE_OVERFOW set.
23371         If merging a anti-range and a range keep the anti-range if
23372         the range covers all values of the type.
23373         (register_edge_assert_for_2): Only allow sign-changing
23374         conversions in detecting canonical range checks.  Also
23375         register an assert for the unsigned name if useful.
23376
23377         PR tree-optimization/35787
23378         * tree-vrp.c (vrp_val_max): New function.
23379         (vrp_val_min): Likewise.
23380         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
23381         (vrp_val_is_min): Likewise.
23382         (supports_overflow_infinity): Use vrp_val_{min,max}.
23383         (negative_overflow_infinity): Likewise.
23384         (positive_overflow_infinity): Likewise.
23385         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
23386         (is_positive_overflow_infinity): Likewise.
23387         (is_overflow_infinity): Likewise.
23388         (avoid_overflow_infinity): Use vrp_val_{min,max} and
23389         vrp_val_is_{min,max}.
23390         (set_and_canonicalize_value_range): Canonicalize anti-ranges
23391         to ranges if possible.  Avoid empty ranges.
23392
23393 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23394
23395         PR middle-end/35705
23396         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
23397         the expression is a function address.
23398
23399 2008-04-01  George Helffrich  <george@gcc.gnu.org>
23400
23401         PR fortran/35154, fortran/23057
23402         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
23403         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
23404         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
23405         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
23406         in common.
23407         (dbxout_syms): Check for COMMON-based symbol and wrap in
23408         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
23409         in bracket for efficiency.
23410
23411         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
23412         using DW_TAG_common_block + member offset.
23413         (add_pubname_string): New function.
23414         (dw_expand_expr): New function to find block name and offset for
23415         COMMON var.
23416         (common_check): New function to check whether symbol in Fortran COMMON.
23417         (gen_variable_die): If COMMON, use DW_TAG_common_block.
23418
23419 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
23420
23421         PR c/35436
23422         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
23423
23424 2008-04-02  Ben Elliston  <bje@au.ibm.com>
23425
23426         * config/v850/v850.md (casesi): Remove if (0) code.
23427         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
23428         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
23429
23430 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
23431
23432         * config/i386/i386.md (rex64suffix): New mode attribute.
23433         (floathi<mode>2): Disable expander for SSE math.
23434         (*floathi<mode>2_1): New insn insn_and_split pattern.
23435         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
23436         corresponding post-reload splitters.
23437         (*floathi<mode>2_i387): New macroized insn pattern.
23438         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
23439         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
23440         insn_and_split pattern.
23441         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
23442         New macroized instruction patterns and corresponding post-reload
23443         splitters.
23444         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
23445         and corresponding post-reload splitters.
23446         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
23447         New macroized instruction patterns.
23448         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
23449         macroized instruction patterns and corresponding post-reload splitters.
23450         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
23451         corresponding post-reload splitters.
23452         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
23453         New macroized instruction patterns.
23454         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
23455         corresponding post-reload splitters.
23456         (*floatsi<mode>2_i387): New macroized instruction patterns.
23457
23458 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
23459
23460         * config/i386/i386.md (smaxmin): New.
23461         (umaxmin): Likewise.
23462         (maxminiprefix): Likewise.
23463         (maxminfprefix): Likewise.
23464         (<code><mode>3): Likewise.
23465         (smin<mode>3): Removed.
23466         (smax<mode>3): Likewise.
23467
23468         * config/i386/mmx.md (mmx_<code>v2sf3): New.
23469         (mmx_<code>v4hi3): Likewise.
23470         (mmx_<code>v8qi3): Likewise.
23471         (mmx_smaxv2sf3): Removed.
23472         (mmx_sminv2sf3): Likewise.
23473         (mmx_umaxv8qi3): Likewise.
23474         (mmx_smaxv4hi3): Likewise.
23475         (mmx_uminv8qi3): Likewise.
23476         (mmx_sminv4hi3): Likewise.
23477
23478         * config/i386/sse.md (<addsub><mode>3): New.
23479         (*<addsub><mode>3): Likewise.
23480         (<sse>_vm<addsub><mode>3): Likewise.
23481         (<maxmin><mode>3): Likewise.
23482         (*<maxmin><mode>3_finite): Likewise.
23483         (*<maxmin><mode>3): Likewise.
23484         (<sse>_vm<maxmin><mode>3): Likewise.
23485         (sse3_h<addsub>v4sf3): Likewise.
23486         (sse3_h<addsub>v2df3): Likewise.
23487         (<maxmin>v16qi3): Likewise.
23488         (*<maxmin>v16qi3): Likewise.
23489         (<maxmin>v8hi3): Likewise.
23490         (*<maxmin>v8hi3): Likewise.
23491         (*sse4_1_<maxmin><mode>3): Likewise.
23492         (*sse4_1_<maxmin><mode>3): Likewise.
23493         (add<mode>3): Removed.
23494         (*add<mode>3): Likewise.
23495         (<sse>_vmadd<mode>3): Likewise.
23496         (sub<mode>3): Likewise.
23497         (*sub<mode>3): Likewise.
23498         (<sse>_vmsub<mode>3): Likewise.
23499         (smin<mode>3): Likewise.
23500         (*smin<mode>3_finite): Likewise.
23501         (*smin<mode>3): Likewise.
23502         (<sse>_vmsmin<mode>3): Likewise.
23503         (smax<mode>3): Likewise.
23504         (*smax<mode>3_finite): Likewise.
23505         (*smax<mode>3): Likewise.
23506         (<sse>_vmsmax<mode>3): Likewise.
23507         (sse3_haddv4sf3): Likewise.
23508         (sse3_haddv2df3): Likewise.
23509         (sse3_hsubv4sf3): Likewise.
23510         (sse3_hsubv2df3): Likewise.
23511         (umaxv16qi3): Likewise.
23512         (*umaxv16qi3): Likewise.
23513         (smaxv8hi3): Likewise.
23514         (*smaxv8hi3): Likewise.
23515         (*sse4_1_smax<mode>3): Likewise.
23516         (*sse4_1_umax<mode>3): Likewise.
23517         (uminv16qi3): Likewise.
23518         (*uminv16qi3): Likewise.
23519         (sminv8hi3): Likewise.
23520         (*sminv8hi3): Likewise.
23521         (*sse4_1_smin<mode>3): Likewise.
23522         (*sse4_1_umin<mode>3): Likewise.
23523
23524 2008-04-01  Rafael Espíndola  <espindola@google.com>
23525
23526         * tree-cfg.c (verify_expr): remove in_phi.
23527         (verify_stmt): Don't call walk_tree with verify_expr. Use
23528         is_gimple_min_invariant instead of is_gimple_val.
23529
23530 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
23531
23532         * doc/include/gpl_v3.texi: Update for manpage generation.
23533         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
23534         gpl.texi.
23535         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
23536         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
23537         gpl_v3.texi instead of gpl.texi.
23538         (gpl.pod): New.
23539
23540 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
23541
23542         PR pch/13675
23543         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
23544
23545 2008-04-01  Rafael Espíndola  <espindola@google.com>
23546
23547         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
23548         (extract_code_and_val_from_cond): Use
23549         extract_code_and_val_from_cond_with_ops.
23550
23551 2008-04-01  Jan Hubicka  <jh@suse.cz>
23552
23553         * function.c (free_after_compilation): Free epilogue_delay_list.
23554         (prepare_function_start): Assert that previous compilation was freed.
23555
23556 2008-04-01  Jan Hubicka  <jh@suse.cz>
23557             Jim Wilson  <wilson@tuliptree.org>
23558             Andreas Tobler <andreast@gcc.gnu.org>
23559
23560         PR middle-end/35781
23561         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
23562         rtl.emit instead cfun->emit.
23563         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
23564         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
23565
23566 2008-04-01  Ben Elliston  <bje@au.ibm.com>
23567
23568         * doc/c-tree.texi (Function Basics): Fix grammatical error.
23569
23570 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
23571
23572         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
23573         New options
23574         (fprofile-use): Add var flag_profile_use
23575         * coverage.c (coverage_begin_output): Do not open a gcno file for
23576         output only if -ftest-coverage is set.
23577         Do not add getpwd() to gcda file path.
23578         (build_gcov_info): Check the new flag
23579         flag_profile_datafile_relative_path.
23580         (coverage_init): Use profile_data_prefix.
23581         Read profile counter only if flag_profile_use is set.
23582         * opts.c (common_handle_option): New option fprofile-use=,
23583         fprofile-dir=, fprofile-generate=.
23584         * toplev.c (profile_data_prefix): New variable definition.
23585         * toplev.h (profile_data_prefix): New declaration.
23586         * doc/invoke.tex (Option Summary, Optimization Options):
23587         Add new options.
23588
23589 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
23590
23591         * varasm.c (output_constant_pool_1): In LABEL_REF check,
23592         use tmp consistently.
23593
23594         PR target/35695
23595         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
23596         * config/ia64/ia64.c (rtx_needs_barrier): Handle
23597         UNSPEC_FR_RECIP_APPROX_RES.
23598         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
23599
23600 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
23601
23602         PR c/35750
23603         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
23604
23605 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23606
23607         PR middle-end/30186
23608         * fold-const.c (fold_indirect_ref_1): Support accessing non first
23609         element of the vector via a pointer.
23610
23611 2008-03-31  Ian Lance Taylor  <iant@google.com>
23612
23613         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
23614
23615 2008-03-31  Jan Hubicka  <jh@suse.cz>
23616
23617         * builtins.c (expand_builtin_setjmp_receiver): Update call of
23618         get_arg_pointer_save_area.
23619         * expr.c (init_expr): Just clear out rtl.expr.
23620         * function.c (free_after_compilation): Clear out whole RTL structure.
23621         (get_func_frame_size): Merge into ...
23622         (get_frame_size): ... this one.
23623         (assign_stack_local_1): Merge into ...
23624         (assign_stack_local): ... this one.
23625         (expand_function_end): Update call of get_arg_pointer_save_area.
23626         (get_art_pointer_save_area): Remove cfun argument.
23627         * function.h (emit_status): regno_pointer_align does not need length
23628         attribute. Move x_regno_reg_rtx to ...
23629         (regno_reg_rtx): ... new global array.
23630         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
23631         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
23632         apply_args_value, forced_labels, stack_pointer_delta):
23633         Update accestors.
23634         (struct varasm_status): Move here from varasm.c
23635         (struct rtl_data): New. Move here some fields from struct function.
23636         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
23637         frame_offset, stack_check_probe_note, arg_pointer_save_area,
23638         used_temp_slots avail_temp_slots, temp_slot_level,
23639         nonlocal_goto_handler_labels): Update accesstors.
23640         (rtl): New global variable.
23641         (struct function): Move some fileds to rtl_data.
23642         (get_arg_pointer_save_area): Update prototype.
23643         * emit-rtl.c (rtl): Declare.
23644         (regno_reg_rtx): Declare.
23645         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
23646         Update.
23647         (gen_reg_rtx): Update.
23648         (init_virtual_regs): Do not tate emit_status argument.
23649         (init_emit): Do not allocate emit.
23650         * varasm.c (varasm_statuc): Move to function.h.
23651         (n_deferred_constatns): Update accestor.
23652         (init_varasm_status): Do not allocate varasm_status.
23653         (force_const_mem, get_pool_size, output_constant_pool): Update.
23654         * stmt.c (force_label_rtx): Do not use x_ prefixes.
23655         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
23656
23657 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
23658
23659         PR rtl-optimization/35729
23660         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
23661         references.
23662
23663 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
23664
23665         PR target/32000
23666         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
23667         load/store if memory is unaligned.
23668         (*movti_rex64): Likewise.
23669
23670         * config/i386/predicates.md (misaligned_operand): New.
23671
23672 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
23673
23674         PR tree-opt/35431
23675         * tree-ssa-phiopt.c (conditional_replacement): Return early for
23676         complex types.
23677
23678 2008-03-31  Jan Beulich  <jbeulich@novell.com>
23679
23680         * config/ia64/constraints.md: Add 'j' constraint.
23681         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
23682         (movdi_internal): Likewise.
23683
23684 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
23685
23686         PR c/35748
23687         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
23688
23689 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
23690
23691         PR target/35757
23692         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
23693         proper error message for the third argument on blendpd and
23694         blendps.
23695
23696         * config/i386/sse.md (blendbits): New.
23697         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
23698
23699 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
23700
23701         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
23702
23703 2008-03-30  Richard Guenther  <rguenther@suse.de>
23704
23705         PR middle-end/31023
23706         * fold-const.c (fold_sign_changed_comparison): Do leave
23707         conversions to base-types alone.
23708
23709 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23710
23711         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
23712         the link register if one altivec register is be saved.
23713
23714 2008-03-30  Ben Elliston  <bje@au.ibm.com>
23715
23716         * final.c (final_scan_insn): Remove if (0) code.
23717
23718 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
23719
23720         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
23721
23722 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
23723
23724         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
23725         of V4SFmode to ix86_binary_operator_ok.
23726
23727 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
23728
23729         * config/i386/i386.c (override_options): Initialize
23730         ix86_veclib_handler to ix86_veclibabi_svml when
23731         -mveclibabi=svml is used.
23732         (ix86_veclibabi_svml): New function for SVML ABI style
23733         vectorization support.
23734         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
23735
23736 2008-03-28  Rafael Espíndola  <espindola@google.com>
23737
23738         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
23739         (tree_binary_nonnegative_warnv_p): Make it public.
23740         (tree_single_nonnegative_warnv_p): Make it public.
23741         (tree_invalid_nonnegative_warnv_p): Make it public.
23742         (tree_unary_nonzero_warnv_p): Make it public.
23743         (tree_binary_nonzero_warnv_p): Make it public
23744         (tree_single_nonzero_warnv_p): Make it public.
23745         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
23746         (extract_range_from_binary_expr): Split the expr argument.
23747         (extract_range_from_unary_expr): Split the expr argument.
23748         (extract_range_from_comparison): Split the expr argument.
23749         (extract_range_from_expr): Use the new aux functions.
23750         (vrp_evaluate_conditional_warnv): Use
23751         vrp_evaluate_conditional_warnv_with_ops.
23752         * tree.h (tree_unary_nonzero_warnv_p): Declare.
23753         (tree_binary_nonzero_warnv_p): Declare.
23754         (tree_single_nonzero_warnv_p): Declare.
23755         (tree_expr_nonzero_warnv_p): Declare.
23756         (tree_unary_nonnegative_warnv_p): Declare.
23757         (tree_binary_nonnegative_warnv_p): Declare.
23758         (tree_single_nonnegative_warnv_p): Declare.
23759         (tree_invalid_nonnegative_warnv_p): Declare.
23760
23761 2008-03-28  Richard Guenther  <rguenther@suse.de>
23762
23763         PR tree-optimization/30317
23764         PR tree-optimization/30911
23765         PR tree-optimization/34793
23766         * tree-vrp.c (set_and_canonicalize_value_range): New function.
23767         (struct assert_locus_d): New member EXPR.
23768         (register_new_assert_for): Add EXPR parameter to support
23769         ASSERT_EXPR <name, expr OP limit>.
23770         (register_edge_assert_for_1): Adjust callers.
23771         (find_assert_locations): Likewise.
23772         (process_assert_insertions_for): Build condition from expression.
23773         (extract_range_from_assert): Handle ASSERT_EXPRs
23774         of the form ASSERT_EXPR <name, expr OP limit>.
23775         (register_edge_assert_for_2): New helper registering
23776         asserts for comparisons.  Recognize range tests of the form
23777         (unsigned)i - CST1 OP CST2.
23778         (register_edge_assert_for_1): Use it.
23779         (register_edge_assert_for): Likewise.
23780         (needs_overflow_infinity): Integer sub-types
23781         do not need overflow infinities.
23782         (vrp_val_is_max): The extreme values of integer sub-types
23783         are those of the base type.
23784         (vrp_val_is_min): Likewise.
23785         * tree.def (ASSERT_EXPR): Document extra allowed conditional
23786         expressions.
23787
23788 2008-03-28  Nick Clifton  <nickc@redhat.com>
23789
23790         PR target/31110
23791         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
23792         Return GENERAL_REGS for stack adjustment reloads.
23793
23794 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23795
23796         PR target/31334
23797         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
23798         const_vector when all the vectors are constant.
23799
23800 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
23801
23802         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
23803         comparisons.
23804         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
23805         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
23806         (scc_sf): New.
23807         (s<code>_sf): Use new scc_sf attribute for opcode names.
23808
23809 2008-03-27  Tom Tromey  <tromey@redhat.com>
23810
23811         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
23812         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
23813         config/spu/t-spu-elf, config/i386/t-interix,
23814         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
23815         config/i386/x-darwin, config/i386/x-mingw32,
23816         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
23817         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
23818         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
23819         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
23820         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
23821         config/rs6000/x-darwin, config/rs6000/t-rs6000,
23822         config/score/t-score-elf, config/arm/t-strongarm-pe,
23823         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
23824         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
23825         Revert automatic dependency patch.
23826
23827 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
23828
23829         PR target/35657
23830         * config/i386/i386.c (ix86_function_arg_boundary): Align
23831         decimal floating point to its natural boundary.
23832
23833 2008-03-27  Richard Guenther  <rguenther@suse.de>
23834
23835         PR middle-end/35716
23836         * fold-const.c (fold_comparison): Restrict distinct decl
23837         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
23838         solely rely on operand_equal_p.
23839
23840 2008-03-27  Richard Guenther  <rguenther@suse.de>
23841
23842         PR c/32511
23843         * c-common.c (handle_weak_attribute): Reject combination of
23844         weak and inline.
23845
23846 2008-03-27  Richard Guenther  <rguenther@suse.de>
23847
23848         PR tree-optimization/32810
23849         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
23850         conversions from DECL_INITIAL.
23851         (fold_const_aggregate_ref): Likewise from constructor elements.
23852
23853 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
23854
23855         * tree-affine.h (aff_combination_expand): Declare.
23856         (get_inner_reference_aff): Likewise.
23857         * tree-affine.c (aff_combination_expand): Split out from
23858         tree_to_aff_combination_expand.
23859         (get_inner_reference_aff): New function.
23860         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
23861         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
23862         (struct lim_aux_data): sm_done field removed.
23863         (mem_ref_loc_p, mem_ref_locs_p): New types.
23864         (struct mem_ref): Added id, stored, accesses_in_loop,
23865         indep_loop, dep_loop, indep_ref, dep_ref fields.
23866         Removed is_stored, locs and next fields.
23867         (memory_accesses): New variable.
23868         (movement_possibility): Do not allow moving statements
23869         that store to memory.
23870         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
23871         New functions.
23872         (determine_max_movement): For statements with memory references,
23873         find the outermost loop in that the reference is independent.
23874         (move_computations_stmt): Mark the virtual operands for renaming.
23875         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
23876         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
23877         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
23878         add_vop_ref_mapping, create_vop_ref_mapping_loop,
23879         create_vop_ref_mapping, analyze_memory_references,
23880         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
23881         get_all_locs_in_loop, ref_always_accessed_p,
23882         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
23883         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
23884         store_motion_loop, store_motion): New functions.
23885         (struct vop_to_refs_elt): New type.
23886         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
23887         memref_hash, memref_eq, hoist_memory_references): Rewritten.
23888         (schedule_sm): Replaced by...
23889         (execute_sm): ... this.
23890         (determine_lsm_ref, hoist_memory_references,
23891         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
23892         find_more_ref_vops, free_mem_ref, free_mem_refs,
23893         determine_lsm_loop, determine_lsm): Removed.
23894         (tree_ssa_lim_finalize): Free data structures used by store motion.
23895         (tree_ssa_lim): Call analyze_memory_references.  Use
23896         store_motion instead of determine_lsm.
23897
23898 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
23899
23900         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
23901         rename tmake_file to m68hc11/t-m68hc11.
23902         (mcore): Set inhibit_libc to true.
23903         * config.host (alpha*-dec-*vms*): Set extra_programs.
23904         (interix3*): Don't use host_xmake_file.
23905         * configure.ac: Let config.gcc override inhibit_libc.
23906         * configure: Regenerate.
23907
23908         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
23909         * config/t-openbsd-thread: Remove commented out lines.
23910
23911         * config/x-interix: Remove.
23912
23913         * config/m68hc11/t-m68hc11-gas: Rename to...
23914         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
23915
23916         * config/mcore/t-mcore: Remove T_CFLAGS.
23917         * config/mcore/t-mcore-pe: Likewise.
23918
23919 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
23920
23921         * configure.ac: Replace custom __GNU_SOURCE test with
23922         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
23923         * aclocal.m4: Regenerate.
23924         * configure: Regenerate.
23925         * config.in: Regenerate.
23926
23927 2008-03-27  Richard Guenther  <rguenther@suse.de>
23928
23929         * fold-const.c (target.h): Include.
23930         (fold_comparison): Fold comparison of addresses of decls
23931         that bind locally or of constants.  Consolidate address folding code.
23932         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
23933         results from fold_binary_to_constant.
23934         (compare_values_warnv): Likewise.
23935
23936 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
23937
23938         PR middle-end/35429
23939         * fold-const.c (fold_truthop): Check for integeral types when folding
23940         a == 0 && b == 0 and a != 0 || b != 0 .
23941
23942 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
23943
23944         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
23945
23946 2008-03-26  Andreas Schwab  <schwab@suse.de>
23947
23948         * doc/invoke.texi: Fix use of @item vs. @itemx.
23949
23950 2008-03-26  Tom Tromey  <tromey@redhat.com>
23951
23952         * Makefile.in (build/gensupport.o, build/print-rtl.o,
23953         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
23954         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
23955         build/gencodes.o, build/genconditions.o, build/genconfig.o,
23956         build/genconstants.o, build/genemit.o, build/genextract.o,
23957         build/genflags.o, build/genmddeps.o, build/genopinit.o,
23958         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
23959         options.h.
23960
23961 2008-03-26  Richard Guenther  <rguenther@suse.de>
23962
23963         Revert
23964         2008-03-26  Richard Guenther  <rguenther@suse.de>
23965
23966         * fold-const.c (target.h): Include.
23967         (fold_comparison): Fold comparison of addresses of two decls
23968         that bind locally.  Consolidate address folding code.
23969
23970 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23971
23972         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
23973         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
23974         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
23975         dconstsqrt2, dconstthird, dconste and/or dconst10.
23976         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
23977         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
23978         dconstsqrt2, dconste): Delete.
23979         (init_emit_once): Likewise.  Simplify initializing dconstm1.
23980         Constify variable.
23981         * real.c (get_real_const): New.
23982         * real.h (dconst3, dconst10, dconstm2, dconstthird,
23983         dconstsqrt2, dconste): Delete.
23984         (real_value_const, get_real_const): New.
23985
23986 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
23987
23988         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
23989
23990         * config/i386/i386.c (ix86_function_arg_boundary): Check
23991         BIGGEST_ALIGNMENT instead of 128.
23992         (setup_incoming_varargs_64): Likewise.
23993
23994 2008-03-26  Tom Tromey  <tromey@redhat.com>
23995
23996         * Makefile.in (DEPFILES): Add missing '/'.
23997
23998 2008-03-26  Richard Guenther  <rguenther@suse.de>
23999
24000         * fold-const.c (target.h): Include.
24001         (fold_comparison): Fold comparison of addresses of two decls
24002         that bind locally.  Consolidate address folding code.
24003
24004 2008-03-26  Nick Clifton  <nickc@redhat.com>
24005
24006         PR target/31232
24007         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
24008         not allow INT+INT as a legitimate addressing mode.
24009
24010 2008-03-26  Richard Guenther  <rguenther@suse.de>
24011
24012         * tree-flow.h (widen_bitfield): Remove declaration.
24013         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
24014         (widen_bitfield): Remove function.
24015         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
24016         code.
24017
24018 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24019
24020         PR target/31558
24021         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
24022         error_mark_node's.
24023
24024 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
24025
24026         PR rtl-optimization/35232
24027         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
24028         (forget_old_reloads_1, forget_marked_reloads): Don't clear
24029         reg_reloaded_call_part_clobbered here.
24030         (reload_regs_reach_end_p): New function.
24031         (reload_reg_rtx_for_input): New variable.
24032         (reload_reg_rtx_for_output): Likewise.
24033         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
24034         when reassigning a pseudo register.  Load reloadreg from
24035         reload_reg_rtx_for_input, moving the mode and register
24036         calculation to...
24037         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
24038         instead of the original when deciding whether an input reload
24039         would be a no-op or whether an output reload can be deleted.
24040         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
24041         when setting up new_spill_reg_store.  Load it from
24042         reload_reg_rtx_for_output, moving the mode and register
24043         calculation to...
24044         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
24045         instead of the original when deciding whether an output reload
24046         would be a no-op.  Do the same when modifying insn notes.
24047         Use rtx_equal_p instead of == to compare the registers.
24048         (inherit_piecemeal_p): Take a mode and two register numbers
24049         as argument.
24050         (emit_reload_insns): Clear new_spill_reg_store for every hard
24051         register in the reload register.  Remove spill registers
24052         from reg_reloaded_valid before considering whether to record
24053         inheritance information for them.  Use reload_reg_rtx_for_output
24054         instead of reg_rtx when recording output reloads.  Use
24055         reload_reg_rtx_for_input instead of reg_rtx when recording
24056         input reloads.  Set or clear reg_reloaded_call_part_clobbered
24057         at the same time as setting reg_reloaded_valid.
24058         (delete_output_reload): Add a new_reload_reg parameter and use it
24059         instead of rld[j].reg_rtx.
24060         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
24061         calls accordingly.
24062
24063 2008-03-25  Tom Tromey  <tromey@redhat.com>
24064
24065         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
24066         (build/genattr.o): Likewise.
24067         (build/genattrtab.o): Likewise.
24068         (build/gencodes.o): Likewise.
24069         (build/genconfig.o): Likewise.
24070         (build/genconstants.o): Likewise.
24071         (build/genemit.o): Likewise.
24072         (build/genextract.o): Likewise.
24073         (build/genflags.o): Likewise.
24074
24075 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
24076
24077         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
24078         instead of size_int for integer types.
24079         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
24080         to match type of MINUS_EXPR.
24081
24082 2008-03-25  Tom Tromey  <tromey@redhat.com>
24083
24084         * configure: Rebuilt.
24085         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
24086         Makefile.
24087
24088 2008-03-25  Tom Tromey  <tromey@redhat.com>
24089
24090         * config/x-solaris (host-solaris.o): Update.
24091         * config/x-linux (host-linux.o): Update.
24092         * config/x-hpux (host-hpux.o): Update.
24093         * config/x-darwin (host-darwin.o): Update.
24094         * config/v850/t-v850e (v850-c.o): Update.
24095         * config/v850/t-v850 (v850-c.o): Update.
24096         * config/t-vxworks (vxworks.o): Update.
24097         * config/t-sol2 (sol2-c.o, sol2.o): Update.
24098         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
24099         * config/spu/t-spu-elf (spu-c.o): Update.
24100         (spu.o): Remove.
24101         * config/sh/t-symbian (sh-c.o): Update.
24102         (symbian.o): Update.
24103         * config/sh/t-sh (sh-c.o): Update.
24104         * config/score/t-score-elf (score7.o, score3.o): Update.
24105         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
24106         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
24107         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
24108         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
24109         (rs6000.o): Remove.
24110         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
24111         * config/m32c/t-m32c (m32c-pragma.o): Update.
24112         * config/ia64/t-ia64 (ia64-c.o): Update.
24113         * config/i386/x-mingw32 (host-mingw32.o): Update.
24114         * config/i386/x-i386 (driver-i386.o): Update.
24115         * config/i386/x-darwin (host-i386-darwin.o): Update.
24116         * config/i386/x-cygwin (host-cygwin.o): Update.
24117         * config/i386/t-nwld (nwld.o): Update.
24118         * config/i386/t-netware (netware.o): Update.
24119         * config/i386/t-interix (winnt.o): Update.
24120         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
24121         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
24122         msformat-c.o): Update.
24123         * config/bfin/t-bfin-linux (generated_files): Add
24124         linux-sysroot-suffix.h.
24125         * config/arm/t-wince-pe (pe.o): Update.
24126         * config/arm/t-strongarm-pe (pe.o): Update.
24127         * config/arm/t-pe (pe.o): Update.
24128         * config/arm/t-arm (arm-c.o): Update.
24129         * doc/install.texi (Prerequisites): Require make 3.80.
24130         * Makefile.in: Remove .o targets.
24131         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
24132         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
24133         (simple_generated_h, simple_generated_c): Move earlier.
24134         (generated_files): New variable.
24135         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
24136         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
24137         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
24138         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
24139         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
24140         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
24141         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
24142         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
24143         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
24144         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
24145         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
24146         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
24147         (.c.o): Remove.
24148         (COMPILE.base, COMPILE): New variables.
24149         (%.o): New pattern rule.
24150         (ALL_HOST_OBJS): New variable.
24151         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
24152         (dummy-checksum.o, cc1-checksum.o): Remove.
24153         (DRIVER_SHLIB): New variable.
24154         (DRIVER_DEFINES): Use it.
24155         (gencondmd.c): Move out of build/.
24156         (s-conditions): Update.
24157         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
24158         (ALL_BUILD_OBJS): Likewise.
24159         (build/%.o): Use BUILDCOMPILE.
24160         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
24161         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
24162         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
24163         build/gencheck.o, build/gencodes.o, build/genconditions.o,
24164         build/genconfig.o, build/genconstants.o, build/genemit.o,
24165         build/genextract.o, build/genflags.o, build/genmddeps.o,
24166         build/genopinit.o, build/genoutput.o, build/genpeep.o,
24167         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
24168         build/gen-protos.o, build/scan.o, build/fix-header.o,
24169         build/scan-decls.o): Simplify.
24170         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
24171         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
24172         prefix.o, toplev.o): Reduce to variable setting.
24173         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
24174         ($(out_object_file), gcc-options.o): New targets.
24175         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
24176         * configure: Rebuilt.
24177         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
24178         * doc/sourcebuild.texi (Front End Directory): Document new variable.
24179
24180 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
24181
24182         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
24183         complain when we hit an error, return ERROR_MARK_NODE.
24184
24185 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
24186
24187         * config/sh/constraints.md (Pso, Psz): New constraints.
24188         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
24189         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
24190
24191 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
24192
24193         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
24194         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
24195
24196 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
24197
24198         * config/sh/sh.md (prefetch): Add condition for SH2A target.
24199         (prefetch_sh2a): New.
24200
24201 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
24202             Naveen.H.S  <naveen.hs@kpitcummins.com>
24203
24204         * config/sh/constraints.md (I28): New constraint.
24205         * config/sh/sh.c (broken_move): Add support for movi20s.
24206         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
24207
24208 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
24209             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
24210             Naveen.H.S  <naveen.hs@kpitcummins.com>
24211
24212         * config/sh/sh.c (SH_ATTRIBUTES): Define.
24213         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
24214         (print_operand): Handle resbank in %@ operand code.
24215         (sh_encode_section_info): New.
24216         (push_regs): Add conditions for resbank.
24217         (sh_expand_epilogue): Likewise.
24218         (sh_insert_attributes): Likewise.
24219         (sh_attribute_table): Likewise.
24220         (sh_handle_resbank_handler_attribute): New.
24221         (sh2a_handle_function_vector_handler_attribute): New.
24222         (sh2a_is_function_vector_call): New.
24223         (sh2a_get_function_vector_number): New.
24224         (sh2a_function_vector_p): New.
24225         (sh_cfun_resbank_handler_p): New.
24226         * config/sh/sh.md (calli): Emit jsr/n if possible.
24227         (calli_tbr_rel): New.
24228         (calli_pcrel): Emit jsr/n if possible.
24229         (return_i): Emit rts/n if possible.
24230         (call_valuei_tbr_rel): New.
24231         (call_valuei_pcrel): Add condition for SH2A target.
24232         (call_value): Likewise.
24233         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
24234         (sh2a_get_function_vector_number): Likewise.
24235         (sh2a_is_function_vector_call): Likewise.
24236         * doc/extend.texi: Document TBR relative addressing of SH2A.
24237         (resbank): Add description for SH2A.
24238
24239 2008-03-24  Richard Guenther  <rguenther@suse.de>
24240
24241         PR c/22371
24242         * gimplify.c (gimplify_modify_expr): For frontend type-correct
24243         pointer assignments change conversions according to middle-end rules.
24244         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
24245         * configure.ac: Include type checking in yes.
24246         * configure: Regenerate.
24247
24248 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24249
24250         * diagnostic.c (diagnostic_count_diagnostic): Delete.
24251         (diagnostic_report_diagnostic): Update. Handle ICEs here.
24252
24253 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
24254
24255         * gthr-vxworks.h (UNUSED): Define.
24256
24257 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
24258
24259         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
24260
24261 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
24262
24263         * doc/extend.texi (Function Attributes): Add missing comma in the
24264         example of the "alloc_size" attribute.
24265
24266 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
24267
24268         Revert:
24269         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
24270
24271         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24272         32bit host.
24273
24274         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
24275
24276         PR target/35496
24277         * stor-layout.c (update_alignment_for_field): Set minimum alignment
24278         of the underlying type of a MS bitfield layout to the natural
24279         alignment of the type.
24280
24281         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
24282
24283         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
24284         to their natural alignment to avoid store forwarding stalls.
24285
24286 2008-03-22  Richard Guenther  <rguenther@suse.de>
24287
24288         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
24289         For PHI nodes verify the address is invariant.
24290         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
24291         (get_symbol_constant_value): Use is_gimple_min_invariant.
24292         (maybe_fold_stmt_indirect): Likewise.
24293
24294 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
24295
24296         PR rtl-optimization/33927
24297         * Makefile.in (dse.o): Depend on $(TM_P_H).
24298         * expr.h (extract_low_bits): Declare.
24299         * expmed.c (extract_low_bits): New function.
24300         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
24301         * dse.c: Include tm_p.h.
24302         (find_shift_sequence): Remove the read_reg argument and return the
24303         read value.  Emit the instructions instead of returning them.
24304         Iterate on new_mode rather than calculating it each time.
24305         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
24306         source to NEW_MODE and extract_low_bits to convert the shifted
24307         value to READ_MODE.
24308         (replace_read): Allow the load and store to have different mode
24309         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
24310         or extraction instructions before trying the replacement.  Update
24311         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
24312
24313 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
24314
24315         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
24316         to their natural alignment to avoid store forwarding stalls.
24317
24318 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24319
24320         PR target/27946
24321         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
24322         encouraging but not allowing gprs for input;
24323         change the input constraint to !f#r.
24324         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
24325         gprs for output;
24326         change the output constraint to !f#r.
24327
24328 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
24329
24330         PR target/13958
24331         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
24332         corresponding post-reload splitters.
24333         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
24334         when x87 FP math is selected.
24335         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
24336         New function prototype.
24337         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
24338         unreachable function to ease macroization of insn patterns.
24339
24340 2008-03-21  Martin Jambor  <mjambor@suse.cz>
24341
24342         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
24343         reference dumps if ddr is NULL or dependence is unknown.
24344
24345 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24346
24347         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
24348         unsigned extension into account.
24349         (ATOMIC_COMPARE_AND_SWAP): Likewise.
24350         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
24351         Do computations on a scratch register.
24352
24353 2008-03-21  Richard Guenther  <rguenther@suse.de>
24354
24355         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
24356         Use is_gimple_min_invariant instead of TREE_INVARIANT.
24357         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
24358         * tree-ssa-dom.c (record_equality): Likewise.
24359         * tree-inline.c (copy_body_r): Likewise.
24360         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
24361         TREE_INVARIANT.
24362
24363 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24364
24365         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
24366         as 'delete_unused' argument.
24367
24368 2008-03-20  Richard Guenther  <rguenther@suse.de>
24369
24370         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
24371         special casing of constant qualifiers.
24372         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
24373         care about them in general.
24374         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
24375         regardless of their type.
24376         (fold_stmt_r): Forcefully fold *& if we end up with that.
24377
24378 2008-03-20  Paul Brook  <paul@codesourcery.com>
24379
24380         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
24381         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
24382         linker flags.
24383         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
24384         definition.
24385         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
24386         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
24387
24388 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
24389
24390         * common.opt (Wmudflap): New option.
24391         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
24392         (mx_register_decls): Likewise.
24393         (mudflap_finish_file): Likewise.
24394         * doc/invoke.texi: Document -Wno-mudflap.
24395
24396 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
24397
24398         * c-format.c (replace_format_name_to_system_name): New.
24399         (cmp_attribs): New.
24400         (convert_format_name_to_system_name): New.
24401         (decode_format_attr): Add use of convert_format_name_to_system_name.
24402         (format_types_orig): Add gnu_ prefix to names.
24403         (check_format_info_main): Special treating of \0 escaped names for
24404         supporting multi-character format specifiers as I32, I64.
24405         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
24406         (gnu_target_overrides_format_attributes): New.
24407         * c-format.h: Add structure target_ovr_attr to hold
24408         system specific formatter names.
24409         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
24410         msformat-c.o file to c_target_objs and cxx_target_objs.
24411         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
24412         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
24413         (TARGET_N_FORMAT_TYPES): New.
24414         * config/i386/msformat-c.c: New.
24415         * config/i386/t-cygming: Add build rule for msformat-c.o.
24416         * doc/extend.texi: Add new format names gnu_* and ms_* and
24417         further details.
24418         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
24419
24420 2008-03-20  Ira Rosen  <irar@il.ibm.com>
24421
24422         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
24423         optimizations turned on under -O3.
24424         (ftree-vectorize): Add that the flag is turned on with -O3.
24425
24426 2008-03-20  Ben Elliston  <bje@au.ibm.com>
24427
24428         * regmove.c (try_auto_increment): Fix spelling error in comment.
24429         * final.c (final_scan_insn): Likewise.
24430
24431 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
24432
24433         PR target/14552
24434         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
24435         allocator preferences for "y" and "r" class registers.
24436         ("*mov<mode>_internal"): Ditto.
24437         ("*movv2sf_internal_rex64"): Ditto.
24438         ("*movv2sf_internal"): Ditto.
24439
24440 2008-03-19  Michael Matz  <matz@suse.de>
24441
24442         PR middle-end/35616
24443         * calls.c (expand_call): Check overlap of arguments with call
24444         address for sibcalls.
24445
24446 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
24447
24448         PR target/35496
24449         * stor-layout.c (update_alignment_for_field): Set minimum alignment
24450         of the underlying type of a MS bitfield layout to the natural
24451         alignment of the type.
24452
24453 2008-03-19  Jan Hubicka  <jh@suse.cz>
24454
24455         PR other/35094
24456         * toplev.c (decode_d_option): Handle all CPP flags.
24457         * tree-vrp.c: Update tree_pass descriptors.
24458         * regrename.c: Update tree_pass descriptors.
24459         * fwprop.c: Update tree_pass descriptors.
24460         * doc/invoke.texi: Remove documentation of dropped -d? flags.
24461         * tree-into-ssa.c: Update tree_pass descriptors.
24462         * tree-dump.c: Update tree_pass descriptors.
24463         * tree-complex.c: Update tree_pass descriptors.
24464         * tree-dump.h: Update tree_pass descriptors.
24465         * see.c: Update tree_pass descriptors.
24466         * cgraphbuild.c: Update tree_pass descriptors.
24467         * tracer.c: Update tree_pass descriptors.
24468         * tree-loop-distribution.c: Update tree_pass descriptors.
24469         * cgraph.c: Update tree_pass descriptors.
24470         * postreload-gcse.c: Update tree_pass descriptors.
24471         * postreload.c: Update tree_pass descriptors.
24472         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
24473         * tree-tailcall.c: Update tree_pass descriptors.
24474         * tree-pass.h (tree_opt_pass): Rename to ...
24475         (opt_pass) ... this one; add "type" field and remove letter field.
24476         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
24477         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
24478         all_lowering_passes): Update declaration.
24479         * ipa-cp.c: Update tree_pass descriptors.
24480         * final.c: Update tree_pass descriptors.
24481         * omp-low.c: Update tree_pass descriptors.
24482         * tree-ssa-dse.c: Update tree_pass descriptors.
24483         * ipa-reference.c: Update tree_pass descriptors.
24484         * tree-ssa-uncprop.c: Update tree_pass descriptors.
24485         * auto-inc-dec.c: Update tree_pass descriptors.
24486         * reorg.c: Update tree_pass descriptors.
24487         * cgraphunit.c: Update tree_pass descriptors.
24488         * tree-ssa-copyrename.c: Update tree_pass descriptors.
24489         * tree-ssa-ccp.c: Update tree_pass descriptors.
24490         * df-core.c: Update tree_pass descriptors.
24491         * mode-switching.c: Update tree_pass descriptors.
24492         * tree-nomudflap.c: Update tree_pass descriptors.
24493         * modulo-sched.c: Update tree_pass descriptors.
24494         * ipa-pure-const.c: Update tree_pass descriptors.
24495         * cse.c: Update tree_pass descriptors.
24496         * web.c: Update tree_pass descriptors.
24497         * tree-stdarg.c: Update tree_pass descriptors.
24498         * tree-ssa-math-opts.c: Update tree_pass descriptors.
24499         * tree-ssa-dom.c: Update tree_pass descriptors.
24500         * tree-nrv.c: Update tree_pass descriptors.
24501         * tree-ssa-alias.c: Update tree_pass descriptors.
24502         * loop-init.c: Update tree_pass descriptors.
24503         * gimple-low.c: Update tree_pass descriptors.
24504         * ipa-inline.c: Update tree_pass descriptors.
24505         * tree-ssa-sink.c: Update tree_pass descriptors.
24506         * global.c: Update tree_pass descriptors.
24507         * ifcvt.c: Update tree_pass descriptors.
24508         * jump.c: Update tree_pass descriptors.
24509         * predict.c: Update tree_pass descriptors.
24510         * tree-ssa-loop.c: Update tree_pass descriptors.
24511         * recog.c: Update tree_pass descriptors.
24512         * dse.c: Update tree_pass descriptors.
24513         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
24514         * tree-eh.c: Update tree_pass descriptors.
24515         * regmove.c: Update tree_pass descriptors.
24516         * local-alloc.c
24517         * function.c: Update tree_pass descriptors.
24518         * tree-vectorizer.c: Update tree_pass descriptors.
24519         * gcse.c: Update tree_pass descriptors.
24520         * ipa-type-escape.c: Update tree_pass descriptors.
24521         * tree-if-conv.c: Update tree_pass descriptors.
24522         * init-regs.c: Update tree_pass descriptors.
24523         * ipa.c: Update tree_pass descriptors.
24524         * tree-ssa-phiopt.c: Update tree_pass descriptors.
24525         * rtl-factoring.c: Update tree_pass descriptors.
24526         * lower-subreg.c: Update tree_pass descriptors.
24527         * bt-load.c: Update tree_pass descriptors.
24528         * tree-dfa.c: Update tree_pass descriptors.
24529         * except.c: Update tree_pass descriptors.
24530         * emit-rtl.c: Update tree_pass descriptors.
24531         * cfgexpand.c: Update tree_pass descriptors.
24532         * tree-cfgcleanup.c: Update tree_pass descriptors.
24533         * cfgcleanup.c: Update tree_pass descriptors.
24534         * tree-ssa-pre.c: Update tree_pass descriptors.
24535         * tree-sra.c: Update tree_pass descriptors.
24536         * tree-mudflap.c: Update tree_pass descriptors.
24537         * tree-ssa-copy.c: Update tree_pass descriptors.
24538         * cfglayout.c: Update tree_pass descriptors.
24539         * tree-ssa-forwprop.c: Update tree_pass descriptors.
24540         * tree-ssa-dce.c: Update tree_pass descriptors.
24541         * tree-ssa.c: Update tree_pass descriptors.
24542         * regclass.c: Update tree_pass descriptors.
24543         * integrate.c: Update tree_pass descriptors.
24544         * tree-optimize.c: Update tree_pass descriptors.
24545         * tree-ssa-phiprop.c: Update tree_pass descriptors.
24546         * tree-object-size.c: Update tree_pass descriptors.
24547         * combine.c: Update tree_pass descriptors.
24548         * tree-outof-ssa.c: Update tree_pass descriptors.
24549         * bb-reorder.c: Update tree_pass descriptors.
24550         * stack-ptr-mod.c: Update tree_pass descriptors.
24551         * var-tracking.c: Update tree_pass descriptors.
24552         * tree-profile.c: Update tree_pass descriptors.
24553         * tree-vect-generic.c: Update tree_pass descriptors.
24554         * reg-stack.c: Update tree_pass descriptors.
24555         * sched-rgn.c: Update tree_pass descriptors.
24556         * tree-ssa-structalias.c: Update tree_pass descriptors.
24557         * tree-cfg.c: Update tree_pass descriptors.
24558         * passes.c (current_pass): Update declaration.
24559         (finish_optimization_passes): Update.
24560         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
24561         (register_one_dump_file, register_dump_files_1, next_pass_1):
24562         Update arguments.
24563         (init_optimization_passes): Update handling of new types.
24564         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
24565         * ipa-struct-reorg.c: Update tree_pass descriptors.
24566         * tree-ssa-reassoc.c: Update tree_pass descriptors.
24567         * combine-stack-adj.c: Update tree_pass descriptors.
24568         * cfgrtl.c: Update tree_pass descriptors.
24569         * dce.c: Update tree_pass descriptors.
24570         * tree-ssanames.c: Update tree_pass descriptors.
24571
24572 2008-03-19  Richard Guenther  <rguenther@suse.de>
24573
24574         PR middle-end/35609
24575         * tree-ssa.c (walk_data): New structure.
24576         (warn_uninitialized_var): If not always_executed warn with "maybe"
24577         instead of "is".
24578         (execute_early_warn_uninitialized): Compute post-dominators.
24579         Initialize always_executed before processing each basic block.
24580
24581 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
24582
24583         PR target/35504
24584         * config/i386/i386.c (x86_this_parameter): Calculate correct location
24585         of "this" pointer when "regparm = N" or "fastcall" is in effect.
24586
24587 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24588
24589         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
24590
24591 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
24592
24593         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
24594         is true.
24595         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
24596         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
24597         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
24598         target after ignore has been set, and move there also the commputation
24599         of subtarget and original_target.
24600         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
24601         (LANG_HOOKS_INITIALIZER): Remove it.
24602         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
24603
24604 2008-03-18  Richard Guenther  <rguenther@suse.de>
24605
24606         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
24607         found an expression with constants, note that in the VN for the lhs.
24608         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
24609         fold them to constants if possible.  Run cleanup_cfg if done so.
24610         (execute_pre): Return todo.
24611         (do_pre): Likewise.
24612         (execute_fre): Likewise.
24613         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
24614         of constants.
24615         (get_prop_source_stmt): Look through pointer conversions.
24616
24617 2008-03-18  Jan Hubicka  <jh@suse.cz>
24618
24619         * tree-pretty-print.c: Include predict.h.
24620         (dump_generic_node): Dump predictor.
24621         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
24622         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
24623         * gimple-low.c (lower_stmt): Likewise.
24624         * expr.c (expand_expr_real): Likewise.
24625         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
24626         them.
24627         (build_predict_expr, build_predict_expr): New.
24628         * predict.h (predictor_name, build_predict_expr): Update.
24629         * c-typeck.c (c_finish_bc_stmt): Add prediction.
24630         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
24631         * predict.def (PRED_CONTINUE): Update hitrate.
24632         * tree.def (PREDICT_EXPR): Define.
24633         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
24634         do not handle BIND_EXPR.
24635         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
24636         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
24637         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
24638         operands.
24639
24640 2008-03-18  Michael Matz  <matz@suse.de>
24641
24642         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
24643
24644 2008-03-18  Richard Guenther  <rguenther@suse.de>
24645
24646         * tree-gimple.h (is_gimple_invariant_address): Declare.
24647         (is_gimple_constant): Likewise.
24648         * tree-gimple.c (is_gimple_constant): New function.
24649         (is_gimple_invariant_address): Likewise.
24650         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
24651         and is_gimple_invariant_address.
24652         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
24653         previous change.
24654         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
24655         an addressable base.
24656
24657 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
24658
24659         PR middle-end/35611
24660         * gimplify.c (gimplify_expr): Gimplify second operand of
24661         OMP_ATOMIC_LOAD.
24662
24663 2008-03-17  Richard Guenther  <rguenther@suse.de>
24664
24665         PR tree-optimization/19637
24666         * fold-const.c (fold_unary): Remove restrictions of removing
24667         intermediate pointer-conversions (P2)(P1)P0.
24668         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
24669         conversion to void pointer.
24670         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
24671
24672 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
24673
24674         PR debug/31510
24675         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
24676         emulated thread local variables.
24677
24678 2008-03-16  Richard Guenther  <rguenther@suse.de>
24679
24680         PR middle-end/35607
24681         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
24682         expand TREE_INVARIANT operations that are not gimple invariant.
24683
24684 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
24685
24686         * doc/extend.texi (Alignment): Say that the ABI controls
24687         the __alignof__ for non-strict-alignment targets rather
24688         than being a recommendation.
24689
24690 2008-03-15  Paul Brook  <paul@codesourcery.com>
24691
24692         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
24693         annotations.
24694         (arm_output_fn_unwind): Mark functions that can not be unwound.
24695
24696 2008-03-15  Paul Brook  <paul@codesourcery.com>
24697
24698         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
24699         extension instructions.
24700
24701 2008-03-15  Richard Guenther  <rguenther@suse.de>
24702
24703         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
24704         and fold constant aggregate refs.
24705         (fold_const_aggregate_ref): Handle string constants
24706         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
24707         (evaluate_stmt): Simplify now that ccp_fold folds constant
24708         aggregate refs.
24709
24710 2008-03-15  Paul Brook  <paul@codesourcery.com>
24711
24712         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
24713         (extzv): Use gen_extzv_t2.
24714         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
24715
24716 2008-03-15  Richard Guenther  <rguenther@suse.de>
24717
24718         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
24719         (fold_const_aggregate_ref): Likewise.
24720         (get_value): Return NULL if we don't have any values.
24721         (ccp_finalize): Set const_val to NULL after freeing it.
24722         * tree-flow.h (get_symbol_constant_value): Declare.
24723         (fold_const_aggregate_ref): Likewise.
24724         * tree-ssa-sccvn.c (try_to_simplify): Use them.
24725
24726 2008-03-15  Richard Guenther  <rguenther@suse.de>
24727
24728         PR middle-end/35593
24729         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
24730         to not produce negative array indices if not allowed.  Add
24731         parameter to indicate that.
24732         (maybe_fold_offset_to_component_ref): Allow negative array
24733         indices only for the first member of a structure.
24734         (maybe_fold_offset_to_reference): Allow negative array indices.
24735         (maybe_fold_stmt_addition): Likewise.
24736
24737 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
24738             Anatoly Sokolov <aesok@post.ru>
24739
24740         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
24741         (avr_arch): Add ARCH_AVR6.
24742         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
24743         (initial_elimination_offset): Initialize and use 'avr_pc_size'
24744         instead of fixed value 2.
24745         (print_operand_address): Use gs() asm specifier instead of pm().
24746         (avr_assemble_integer): (Ditto.).
24747         (avr_output_addr_vec_elt): (Ditto.).
24748         (print_operand): Handle "!" code.
24749         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
24750         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
24751         (AVR_HAVE_EIJMP_EICALL): Define.
24752         (AVR_3_BYTE_PC): Redefine.
24753         (AVR_2_BYTE_PC): (Ditto.).
24754         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
24755         (LINK_SPEC): Add atmega2560 and atmega2561.
24756         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
24757         (crtm2561.o).
24758         * config/avr/avr.md (call_insn): Use eicall instead of icall
24759         for 3 byte PC devices.
24760         (call_value_insn): (Ditto.).
24761         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
24762         (indirect_jump): Use only for for 2 byte PC devices.
24763         (*tablejump): (Ditto.).
24764         (*indirect_jump_avr6): Add insn.
24765         (*tablejump_rjmp): Don't use for 3 byte PC devices.
24766         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
24767         instead of ijmp for 3 byte PC devices.
24768         (__tablejump2__): (Ditto.).
24769         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
24770         (MULITLIB_DIRNAMES): (Ditto.).
24771         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
24772
24773 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
24774
24775         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
24776         "sse2_umulsidi3".  Use V1DI mode for operand 0.
24777         ("mmx_psadbw"): Use V1DI mode for operand 0.
24778         * config/i386/i386-modes.def (V1SI): New vector mode.
24779         * config/i386/i386.c (struct builtin_description)
24780         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
24781         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
24782         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
24783         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
24784         v1di_ftype_v8qi_v8qi type.
24785         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
24786
24787         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
24788         __builtin_ia32_pmuludq]: Fix the mode of return value.
24789
24790 2008-03-15  Richard Guenther  <rguenther@suse.de>
24791
24792         PR middle-end/35595
24793         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
24794         being a PHI_NODE.
24795
24796 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
24797
24798         * doc/invoke.texi (Option Summary, Xtensa Options): Document
24799         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
24800         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
24801         unless TARGET_SERIALIZE_VOLATILE is enabled.
24802         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
24803         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
24804         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
24805
24806 2008-03-14  Richard Guenther  <rguenther@suse.de>
24807
24808         PR tree-optimization/34172
24809         * tree-flow.h (refs_may_alias_p): Declare.
24810         (get_single_def_stmt): Likewise.
24811         (get_single_def_stmt_from_phi): Likewise.
24812         (get_single_def_stmt_with_phi): Likewise.
24813         * tree-dfa.c (refs_may_alias_p): New function.
24814         (get_single_def_stmt): Likewise.
24815         (get_single_def_stmt_from_phi): Likewise.
24816         (get_single_def_stmt_with_phi): Likewise.
24817         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
24818         (vn_reference_lookup_1): New helper function.
24819         (vn_reference_lookup): Walk the virtual use-def chain to
24820         continue searching for a match if the def does not alias the
24821         reference we are looking for.
24822
24823 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
24824
24825         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
24826         archive and Perzl.  Update The Written Word listing.
24827
24828 2008-03-14  Richard Guenther  <rguenther@suse.de>
24829
24830         PR tree-optimization/34043
24831         PR tree-optimization/33989
24832         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
24833         when doing FRE.
24834         (bitmap_find_leader): Use extra argument to verify dominance
24835         relationship inside a basic-block.
24836         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
24837         (find_leader_in_sets): Adjust.
24838         (create_component_ref_by_pieces): Take extra argument for
24839         dominance check, handle lookup failures.
24840         (find_or_generate_expression): Likewise.
24841         (create_expression_by_pieces): Likewise.
24842         (insert_into_preds_of_block): Adjust.
24843         (create_value_expr_from): If asked for, verify all operands
24844         are in the blocks AVAIL_OUT set.
24845         (make_values_for_stmt): Check for SSA_NAMEs that are life
24846         over an abnormal edge.
24847         (compute_avail): Remove such check.
24848         (do_SCCVN_insertion): New function.
24849         (eliminate): If we do not find a leader suitable for replacement
24850         insert a replacement expression from SCCVN if available.
24851         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
24852         (struct vn_ssa_aux): Add needs_insertion flag.
24853         * tree-ssa-sccvn.c (may_insert): New global flag.
24854         (copy_reference_ops_from_ref): Value-number union member access
24855         based on its size, not type and member if insertion is allowed.
24856         (visit_reference_op_load): For a weak match from union type
24857         punning lookup a view-converted value and insert a SSA_NAME
24858         for that value if that is not found.
24859         (visit_use): Make dumps shorter.  Do not disallow value numbering
24860         SSA_NAMEs that are life over an abnormal edge to constants.
24861         (free_scc_vn): Release inserted SSA_NAMEs.
24862         (run_scc_vn): New flag to specify whether insertion is allowed.
24863         Process SSA_NAMEs in forward order.
24864         * tree-ssa-loop-im.c (for_each_index): Handle invariant
24865         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
24866         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
24867         pointer type to/from integral types that do not change the
24868         precision to regular conversions.
24869
24870 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
24871
24872         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24873         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24874         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
24875         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
24876         input arguments and the mode of return value.  Built-in functions
24877         that operate on whole 64-bit MMX register now use V1DI mode.
24878
24879 2008-03-13  Alon Dayan  <alond@il.ibm.com>
24880             Olga Golovanevsky  <olga@il.ibm.com>
24881
24882         PR tree-optimization/35041
24883         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
24884         to locate the right position in a statement.
24885
24886 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
24887
24888         PR target/34000
24889         PR target/35553
24890         * config/i386/xmmintrin.h:  Change all static inline functions to
24891         extern inline and add __gnu_inline__ attribute.
24892         * config/i386/bmintrin.h: Ditto.
24893         * config/i386/smmintrin.h: Ditto.
24894         * config/i386/tmmintrin.h: Ditto.
24895         * config/i386/mmintrin-common.h: Ditto.
24896         * config/i386/ammintrin.h: Ditto.
24897         * config/i386/emmintrin.h: Ditto.
24898         * config/i386/pmmintrin.h: Ditto.
24899         * config/i386/mmintrin.h: Ditto.
24900         * config/i386/mm3dnow.h: Ditto.
24901
24902 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
24903
24904         PR middle-end/35185
24905         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
24906         (lower_omp_2): New function.
24907         (lower_omp_1, lower_omp): Rewritten.
24908
24909 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
24910
24911         PR 35054
24912         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
24913         with the phrase "Microsoft Windows compilers".
24914         (Push/Pop Macro Pragmas): New subsection. Document
24915         #pragma push_macro and pragma pop_macro.
24916
24917 2008-03-12  Paul Brook  <paul@codesourcery.com>
24918
24919         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
24920
24921 2008-03-12  Paul Brook  <paul@codesourcery.com>
24922
24923         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
24924         (thumb2_alusi3_short): Exclude PLUS and MINUS.
24925         (thumb2_addsi_shortim): Rename ...
24926         (thumb2_addsi_short): ... to this.  Allow register operands.
24927         (thumb2_subsi_short): New pattern.
24928         (thumb2_one_cmplsi2_short,
24929         thumb2_negsi2_short): New patterns and peepholes.
24930
24931 2008-03-12  Paul Brook  <paul@codesourcery.com>
24932
24933         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
24934
24935 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
24936
24937         * config/i386/i386.md (int_cond): New code iterator.
24938         (fp_cond): Ditto.
24939         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
24940         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
24941         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
24942         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
24943         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
24944         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
24945         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
24946         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
24947
24948 2008-03-12  Paul Brook  <paul@codesourcery.com>
24949
24950         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
24951         instead of {arm,thumb}_compute_save_reg_mask.
24952         (output_return_instruction): Ditto.
24953         (thumb_unexpanded_epilogue): Ditto.
24954         (thumb1_expand_prologue): Ditto.
24955         (thumb1_output_function_prologue): Ditto.
24956         (arm_set_return_address): Ditto.
24957         (thumb_set_return_address): Ditto.
24958         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
24959         regs to achieve stack alignment.
24960         (thumb1_compute_save_reg_mask): Fix compiler warning.
24961         (arm_output_epilogue): Use offsets->saved_regs_mask.
24962         Adjust stack pointer by poping call clobered registers.
24963         (arm_expand_prologue): Use offsets->saved_regs_mask.
24964         Adjust stack pointer by pushing extra registers.
24965         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
24966
24967 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
24968
24969         PR tree-opt/35422
24970         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
24971         conversion to the operands of a multiplication.
24972
24973 2008-03-12  Richard Guenther  <rguenther@suse.de>
24974
24975         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
24976         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
24977         * timevar.def (TV_TREE_PHIPROP): Add.
24978         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
24979         pass description.  Use TV_TREE_PHIPROP.
24980         * tree-ssa-forwprop.c: Remove phiprop code.
24981
24982 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
24983
24984         PR middle-end/35549
24985         * omp-low.c (maybe_lookup_decl): Constify first argument.
24986         (use_pointer_for_field): Change last argument from bool to
24987         omp_context *.  Disallow shared copy-in/out in nested
24988         parallel if decl is shared in outer parallel too.
24989         (build_outer_var_ref, scan_sharing_clauses,
24990         lower_rec_input_clauses, lower_copyprivate_clauses,
24991         lower_send_clauses, lower_send_shared_vars): Adjust callers.
24992
24993 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
24994             Ira Rosen  <irar@il.ibm.com>
24995
24996         * tree-vectorizer.c (free_stmt_vec_info): New function.
24997         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
24998         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
24999         * tree-vectorizer.h (free_stmt_vec_info): Declare.
25000         * tree-vect-transform.c (vectorizable_conversion): Free
25001         vec_oprnds0 if it was allocated.
25002         (vect_permute_store_chain): Remove unused VECs.
25003         (vectorizable_store): Free VECs that are allocated in the..
25004         function.
25005         (vect_transform_strided_load, vectorizable_load): Likewise.
25006         (vect_remove_stores): Simplify the code.
25007         (vect_transform_loop): Move code to vect_remove_stores().
25008         Call vect_remove_stores() and free_stmt_vec_info().
25009
25010 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25011
25012         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
25013         TARGET_HPUX.  Revise comment.
25014         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
25015         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
25016         Use sr4 variant of `be' instruction when not generating PIC code.
25017         (attr_length_call): Adjust for above change.
25018
25019 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25020
25021         * ipa-reference.c (static_execute): Remove module_statics_const and
25022         associated setting code.
25023
25024 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
25025
25026         PR target/35540
25027         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
25028         predicate for operand 1.
25029         (paritysi2_cmp): Use register_operand predicate for operand 2.
25030         Use earlyclobber modifier for operand 1.  Remove support for
25031         memory operands.
25032         (paritydi2_cmp): Use register_operand predicate for operand 3.
25033         Use earlyclobber modifier for operand 1.  Remove support for
25034         memory operands.
25035
25036 2008-03-11  Paul Brook  <paul@codesourcery.com>
25037             Vladimir Prus  <vladimir@codesourcery.com>
25038
25039         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
25040         (arm_compute_save_reg0_reg12_mask): Always
25041         check if register 11 must be saved.  Always safe hard frame pointer
25042         when frame_pointer_needeed.
25043         (arm_compute_save_reg_mask): Save IP and PC
25044         only with apcs frames.
25045         (arm_output_epilogue): Adjust Thumb2 codepath to
25046         be also invoked and work for ARM non-apcs frames.
25047         (arm_expand_prologue): Don't bother saving IP
25048         for non-apcs frame, since it's not clobbered by
25049         prologue code.  Implement non-apcs frame
25050         layout.
25051
25052 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
25053
25054         PR rtl-optimization/35281
25055         * expr.c (convert_move): Use a new pseudo for the intermediate
25056         from_mode->word_mode result.
25057
25058 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
25059
25060         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
25061         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
25062         * toplev.c (compile_file): Don't call it.
25063
25064 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
25065
25066         PR middle-end/35526
25067         * expr.c (store_expr): Call emit_block_move if the mode
25068         of "temp" RTX is BLKmode.
25069
25070 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25071             Richard Guenther  <rguenther@suse.de>
25072
25073         PR tree-optimization/31358
25074         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
25075         the step with a NULL_TREE.
25076         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
25077         to sizetype if type is a pointer type.
25078         (add_candidate_1): Don't convert the base and step to
25079         the generic type if the orginal type is a pointer type.
25080         (add_iv_value_candidates): Use sizetype for the step
25081         if type is a pointer type.
25082         (cand_value_at): Likewise.
25083         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
25084         for pointer types.
25085         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
25086         Don't convert the tem affine to the type.
25087         (add_elt_to_tree): Use sizetype for the step if a pointer.
25088         Use POINTER_PLUS_EXPR for pointers.
25089         (aff_combination_to_tree): Use sizetype for the step if a
25090         pointer.
25091
25092 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
25093
25094         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
25095         Remove commutativity hint.
25096
25097 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
25098
25099         PR c/35438
25100         PR c/35439
25101         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
25102         errorneous type.  Check that v is a VAR_DECL.
25103
25104         PR middle-end/35099
25105         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
25106
25107 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
25108
25109         PR tree-optimization/35494
25110         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
25111         may be overriden at link and run time.
25112
25113 2008-03-10  Richard Guenther  <rguenther@suse.de>
25114
25115         PR tree-optimization/34677
25116         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
25117         (poolify_tree): Likewise.
25118         (modify_expr_template): Likewise.
25119         (poolify_modify_stmt): Likewise.
25120         (insert_fake_stores): Handle all component-ref style stores
25121         in addition to INDIRECT_REF.  Also handle complex types.
25122         Do not poolify the inserted load.
25123         (realify_fake_stores): Do not rebuild the tree but only
25124         make it a SSA_NAME copy.
25125         (init_pre): Remove initialzation of modify_expr_template.
25126         Do not allocate modify_expr_node_pool.
25127         (fini_pre): Do not free modify_expr_node_pool.
25128
25129 2008-03-10  Paul Brook  <paul@codesourcery.com>
25130
25131         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
25132         to avoid conflicts.
25133
25134 2008-03-10  Paul Brook  <paul@codesourcery.com>
25135             Mark Shinwell  <shinwell@codesourcery.com>
25136
25137         * config/arm/cortex-r4.md: New.
25138         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
25139         insn attributes.
25140         * config/arm/arm.md: Include cortex-r4.md.
25141         (insn): Add smmls, sdiv and udiv values.
25142         (generic_sched): Don't use generic scheduling for Cortex-R4.
25143         (arm_issue_rate): New function.
25144         (TARGET_SCHED_ISSUE_RATE): Define.
25145
25146 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
25147
25148         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
25149
25150 2008-03-10  Richard Guenther  <rguenther@suse.de>
25151
25152         * tree-ssa-pre.c (get_sccvn_value): Simplify.
25153         (compute_avail): Do not add stmt uses to AVAIL_OUT.
25154
25155 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
25156
25157         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
25158         Set default to true.
25159
25160 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25161
25162         * c.opt (Wsynth): Deprecate.
25163         * doc/invoke.texi (Option Summary, Warning Options): Document
25164         -Wno-format-contains-nul.
25165
25166 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
25167
25168         PR target/35496
25169         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
25170         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
25171
25172 2008-03-09  Ira Rosen  <irar@il.ibm.com>
25173
25174         * config/rs6000/rs6000.c (builtin_description): Rename vector
25175         left shift operations.
25176         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
25177         (altivec_vsl<VI_char>): Rename to ...
25178         (ashl<mode>3): ... new name.
25179         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
25180         gen_ashlv4si3.
25181         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
25182
25183 2008-03-08  Richard Guenther  <rguenther@suse.de>
25184
25185         * coverage.h (tree_coverage_counter_addr): Declare.
25186         * coverage.c (tree_coverage_counter_addr): New function.
25187         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
25188         before using again.
25189         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
25190         (tree_gen_one_value_profiler): Likewise.
25191         (tree_gen_ic_profiler): Likewise.
25192         (tree_gen_average_profiler): Likewise.
25193         (tree_gen_ior_profiler): Likewise.
25194
25195 2008-03-08  Richard Guenther  <rguenther@suse.de>
25196
25197         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
25198         (vn_binary_op_insert): Likewise.
25199         (vn_unary_op_lookup): Likewise.
25200         (vn_unary_op_insert): Likewise.
25201         (vn_nary_op_lookup): Declare.
25202         (vn_nary_op_insert): Likewise.
25203         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
25204         and binary hashes, use a single obstack for unary_op_pool
25205         and binary_op_pool.
25206         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
25207         a single struct vn_nary_op_s.  Store tree code length and
25208         a variable number of operands.
25209         (struct vn_reference_op_struct): Remove unused op2.
25210         (vn_reference_op_eq): Do not compare op2.
25211         (vn_reference_op_compute_hash): Do not compute hash of op2.
25212         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
25213         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
25214         with vn_nary_op_compute_hash.
25215         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
25216         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
25217         vn_nary_op_lookup.
25218         (vn_unary_op_insert, vn_binary_op_insert): Replace with
25219         vn_nary_op_insert.
25220         (visit_unary_op): Call nary functions.
25221         (visit_binary_op): Likewise.
25222         (process_scc): Adjust for struct vn_tables_s changes.
25223         (allocate_vn_table): Likewise.
25224         (free_vn_table): Likewise.
25225         * tree-vn.c (vn_add): Call nary functions.
25226         (vn_lookup): Likewise.
25227
25228 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
25229
25230         PR target/35498
25231         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
25232         wdst back after sync_compare_and_swapqhi_internal.
25233
25234 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
25235
25236         PR target/22152
25237         * config/i386/i386-modes.def (V1DI): New vector mode.
25238         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
25239         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
25240         (MMXMODE248): Ditto.
25241         (MMXMODE): Add V1DI mode.
25242         (mmxvecsize): Change DI mode to V1DI mode.
25243         ("mov<mode>): Use MMXMODEI8 mode iterator.
25244         ("*mov<mode>_internal_rex64"): Ditto.
25245         ("*mov<mode>_internal"): Ditto.
25246         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
25247         ("mmx_sub<mode>3"): Ditto.
25248         ("mmx_adddi3"): Remove insn pattern.
25249         ("mmx_subdi3"): Ditto.
25250         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
25251         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
25252         ("mmx_ashl<mode>3"): Ditto.
25253         ("mmx_lshrdi3"): Remove insn pattern.
25254         ("mmx_ashldi3"): Ditto.
25255         * config/i386/i386.c (classify_argument): Handle V1DImode.
25256         (function_arg_advance_32): Ditto.
25257         (function_arg_32): Ditto.
25258         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
25259         mmx_addv1di3 insn pattern.
25260         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
25261         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
25262         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
25263         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
25264         Remove definitions of built-in functions.
25265         (V1DI_type_node): New node.
25266         (v1di_ftype_v1di_int): Ditto.
25267         (v1di_ftype_v1di_v1di): Ditto.
25268         (v2si_ftype_v2si_si): Ditto.
25269         (v4hi_ftype_v4hi_di): Remove node.
25270         (v2si_ftype_v2si_di): Ditto.
25271         (ix86_init_mmx_sse_builtins): Handle V1DImode.
25272         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
25273         Redefine builtins using def_builtin_const with *_ftype_*_int node.
25274         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
25275         Add new builtins using def_builtin_const.
25276         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
25277         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
25278         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
25279         * config/i386/mmintrin.h (__v1di): New typedef.
25280         (_mm_add_si64): Cast arguments to __v1di type.
25281         (_mm_sub_si64): Ditto.
25282         (_mm_sll_pi16): Cast __count to __v4hi type.
25283         (_mm_sll_pi32): Cast __count to __v2si type.
25284         (_mm_sll_si64): Cast arguments to __v1di type.
25285         (_mm_srl_pi16): Cast __count to __v4hi type.
25286         (_mm_srl_pi32): Cast __count to __v2si type.
25287         (_mm_srl_si64): Cast arguments to __v1di type.
25288         (_mm_sra_pi16): Cast __count to __v4hi type.
25289         (_mm_sra_pi32): Cast __count to __v2si type.
25290         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
25291         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
25292         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
25293         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
25294         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
25295         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
25296         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
25297         (_mm_srai_pi32): Use __builtin_ia32_psradi.
25298         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
25299         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
25300         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
25301         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
25302
25303 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
25304
25305         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
25306
25307 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
25308
25309         PR target/35373
25310         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
25311         reg+const addressing for Altivec modes.  Don't generate reg+reg
25312         addressing for TFmode or TDmode quantities.
25313
25314 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
25315
25316         * c-common.c (vector_types_convertible_p): Call langhook
25317         instead of comptypes.
25318
25319 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25320
25321         PR tree-opt/35402
25322         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
25323         integral and scalar float variables which have a
25324         NULL DECL_INITIAL.
25325
25326 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
25327
25328         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
25329         dwarf_register_span hook when emitting unwind information for
25330         register-to-memory saves.
25331         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
25332         (rs6000_frame_related): Remove call to spe_synthesize_frame.
25333
25334 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
25335
25336         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
25337         for the same VAR_DECL.
25338
25339 2008-03-06  Tom Tromey  <tromey@redhat.com>
25340
25341         * treelang: Delete.
25342         * doc/standards.texi (Standards): Don't mention treelang.
25343         * doc/invoke.texi (Overall Options): Don't mention treelang.
25344         * doc/install.texi (Prerequisites): Don't mention bison or
25345         treelang.
25346         (Configuration): Don't mention treelang.
25347         (Building): Likewise.
25348         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
25349
25350 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
25351
25352         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
25353         word-extractions out of a multi-word object.
25354
25355 2008-03-06  Richard Guenther  <rguenther@suse.de>
25356
25357         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
25358         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
25359         result type and precision.
25360         * expr.c (get_inner_reference): Set unsignedp based on the result
25361         type of BIT_FIELD_REF.
25362         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
25363         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
25364         (try_instantiate_multiple_fields): Likewise.  Use the correct type
25365         for BIT_FIELD_REF.
25366         (sra_build_assignment): Likewise.
25367         (sra_build_elt_assignment): Likewise.
25368         (sra_explode_bitfield_assignment): Likewise.
25369         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
25370         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
25371         set BIT_FIELD_REF_UNSIGNED.
25372         (vectorizable_load): Likewise.
25373
25374 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
25375
25376         * cse.c (cse_extended_basic_block): Invalidate artificial defs
25377         at bb start.
25378
25379 2008-03-06  Richard Guenther  <rguenther@suse.de>
25380
25381         * alias.c (struct alias_set_entry): Move has_zero_child field
25382         to pack with alias_set.
25383
25384 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
25385
25386         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
25387         32bit host.
25388
25389 2008-03-05  Ian Lance Taylor  <iant@google.com>
25390
25391         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
25392
25393 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
25394
25395         * fwprop.c (update_df): Support width and offset parameters of
25396         df_ref_create.
25397         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
25398         global_conflicts): Change DF_REF_EXTRACT to either
25399         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25400         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25401         * df-scan.c (df_ref_record, df_defs_record,
25402         df_ref_create_structure, df_def_record_1, df_uses_record,
25403         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
25404         df_bb_refs_collect, df_entry_block_defs_collect,
25405         df_exit_block_uses_collect): Support new width and offset fields.
25406         (ref_extract_pool): New storage pool.
25407         (df_free_ref): New function.
25408         (df_reg_chain_unlink, df_free_collection_rec,
25409         df_sort_and_compress_refs): Call df_free_ref.
25410         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
25411         of df_ref_extract.
25412         (df_ref_create_structure): Allocate df_ref_extract if offset and
25413         width fields are used.
25414         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
25415         (df_uses_record): Get offset and width from ZERO_EXTRACT
25416         and SIGN_EXTRACT.
25417         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
25418         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25419         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25420         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
25421         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25422         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25423         (df_ref_extract): New structure.
25424         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
25425         (df_ref_create): Add width and offset parameters.
25426
25427 2008-03-05  Richard Guenther  <rguenther@suse.de>
25428
25429         * tree-ssa-structalias.c (get_constraint_for_component_ref):
25430         Use ranges_overlap_p.
25431         (offset_overlaps_with_access): Rename
25432         to ranges_overlap_p and move ...
25433         * tree-flow-inline.h (ranges_overlap_p): ... here.
25434
25435         * tree.h (get_inner_reference, handled_component_p): Update
25436         comments.
25437
25438         * tree.h (record_component_aliases, get_alias_set,
25439         alias_sets_conflict_p, alias_sets_must_conflict_p,
25440         objects_must_conflict_p): Move declarations ...
25441         * alias.h (record_component_aliases, get_alias_set,
25442         alias_sets_conflict_p, alias_sets_must_conflict_p,
25443         objects_must_conflict_p): ... here.
25444         Include coretypes.h.
25445         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
25446
25447 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
25448
25449         * cfg.c: Include tree-flow.h.
25450         (remove_edge_raw): Call redirect_edge_var_map_clear.
25451         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
25452         * tree-flow-inline.h (redirect_edge_var_map_def): New.
25453         (redirect_edge_var_map_result): New.
25454         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
25455         PENDING_STMT use with redirect_edge_var_map_*.
25456         * tree-ssa.c (edge_var_maps): New definition.
25457         (redirect_edge_var_map_add): New.
25458         (redirect_edge_var_map_clear): New.
25459         (redirect_edge_var_map_dup): New.
25460         (redirect_edge_var_map_vector): New.
25461         (redirect_edge_var_map_destroy): New.
25462         (ssa_redirect_edge): Replace PENDING_STMT use with
25463         redirect_edge_var_map_*.
25464         (flush_pending_stmts): Same.
25465         (delete_tree_ssa): Destroy edge var map.
25466         * tree-flow.h (struct _edge_var_map): New.
25467         Define edge_var_map vector type.
25468         Declare redirect_edge_var_map_* prototypes.
25469         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
25470         * tree-cfg.c (reinstall_phi_args): Replace
25471         PENDING_STMT use with redirect_edge_var_map_*.
25472
25473 2008-03-05  Richard Guenther  <rguenther@suse.de>
25474
25475         PR tree-optimization/35472
25476         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
25477         whose single use_stmt has a overlapping set of loaded and
25478         stored symbols as that use_stmt might be a noop assignment then.
25479
25480 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
25481
25482         * gthr-rtems.h: Implement __gthread_mutex_destroy.
25483
25484 2008-03-05  Richard Guenther  <rguenther@suse.de>
25485
25486         PR c++/35336
25487         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
25488         should be constants.
25489         * tree-cfg.c (verify_expr): Verify it.
25490         * fold-const.c (fold_truthop): Remove code generating
25491         BIT_FIELD_REFs of structure bases.
25492         (fold_binary): Likewise.
25493         (fold_ternary): Position and size of BIT_FIELD_REFs are
25494         always host integers.
25495         (make_bit_field_ref): Remove.
25496         (optimize_bit_field_compare): Remove.
25497         (all_ones_mask_p): Remove.
25498
25499 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
25500
25501         PR gcc/33009
25502         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
25503         (split_block_and_df_analyze): New. Split basic block and rebuild
25504         dataflow.
25505         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
25506         SPLIT_BLOCK.
25507         (split_pattern_seq): Likewise.
25508         (erase_matching_seqs): Likewise.
25509         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
25510
25511 2008-03-04  Geoff Keating  <geoffk@apple.com>
25512
25513         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
25514         declaration and code.
25515         (tree_invalid_nonnegative_warnv_p): Likewise.
25516
25517 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
25518
25519         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
25520         examples.  Truncate option-names then causing overfull hbox.
25521
25522 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25523
25524         PR target/35222
25525         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
25526         on hpux10.
25527         * configure: Rebuilt.
25528
25529 2008-03-04  Rafael Espíndola  <espindola@google.com>
25530
25531         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
25532         (tree_unary_nonnegative_warnv_p): New.
25533         (tree_binary_nonnegative_warnv_p): New.
25534         (tree_single_nonnegative_warnv_p): New.
25535         (tree_invalid_nonnegative_warnv_p): New.
25536         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
25537
25538 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25539
25540         PR 28322
25541         * opts.c (handle_option): Postpone 'unknown option' errors only for
25542         warning options.
25543
25544 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
25545
25546         PR target/35453
25547         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
25548         (_SIDD_XXX): This.
25549
25550 2008-03-04  Rafael Espíndola  <espindola@google.com>
25551
25552         * fold-const.c (tree_unary_nonzero_warnv_p): New.
25553         (tree_binary_nonzero_warnv_p): New.
25554         (tree_single_nonzero_warnv_p): New.
25555         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
25556
25557 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
25558
25559         PR middle-end/35456
25560         * fold-const.c (fold_cond_expr_with_comparison): Prevent
25561         transformations for modes that have signed zeros.
25562         * ifcvt.c (noce_try_abs): Ditto.
25563
25564 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
25565
25566         * config/i386/i386.c (override_options): Force
25567         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
25568
25569 2008-03-04  Jan Hubicka  <jh@suse.cz>
25570
25571         PR c++/35262
25572         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
25573         in last commit.
25574
25575 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
25576
25577         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
25578         label to probe the stack.
25579
25580 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
25581
25582         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
25583         (__gthr_win32_mutex_destroy): Declare.
25584         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
25585         __gthr_win32_mutex_destroy.
25586         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
25587
25588 2008-03-03  Jan Hubicka  <jh@suse.cz>
25589
25590         PR c++/35262
25591         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
25592         aggressive on inlining cold calls.
25593
25594 2008-03-03  Richard Guenther  <rguenther@suse.de>
25595
25596         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
25597         struct copies into the expression table.
25598         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
25599         (try_to_simplify): Likewise.
25600         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
25601         integral and pointer arguments which do not change the
25602         precision to NOP_EXPRs.
25603         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
25604         VIEW_CONVERT_EXPR case.
25605
25606 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
25607
25608         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
25609         defined in a loop at depth 0 is invariant.
25610         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
25611         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
25612         be called at loop depth 0.
25613
25614 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
25615
25616         PR driver/35420
25617         * gcc.c (process_command): Update copyright notice dates.
25618         * gcov.c (print_version): Likewise.
25619         * gcov-dump.c (print_version): Likewise.
25620         * mips-tfile.c (main): Likewise.
25621         * mips-tdump.c (main): Likewise.
25622
25623 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25624
25625         PR 24924
25626         * c-common.c (flag_permissive): Delete.
25627         (constant_expression_warnings): Check flags first.
25628         (constant_expression_error): New.
25629         * c-common.h (flag_permissive): Delete.
25630         (constant_expression_error): Declare.
25631         * flags.h (flag_permissive): Declare. Update description.
25632         * diagnostic.c (pedwarn): Update.
25633         (permerror): New.
25634         * diagnostic.h (pedantic_error_kind): Rename as pedantic_warning_kind.
25635         (permissive_error_kind): New.
25636         * toplev.c (flag_permissive): Define. Update description.
25637         * toplev.h (permissive_error_kind): Declare.
25638         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
25639         (pedwarn_c90): Use pedantic_warning_kind.
25640         * c-opts.c (c_common_post_options): flag_permissive does not affect
25641         flag_pedantic_errors.
25642
25643 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
25644
25645         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
25646         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
25647         __absvsi2, __absvDI2): Use unsigned arithmetic.
25648
25649 2008-03-02  Andi Kleen  <ak@suse.de>
25650             Richard Guenther  <rguenther@suse.de>
25651
25652         * struct-equiv.c: Remove file.
25653         * cfg_cleanup.c (condjump_equiv_p): Remove.
25654         * Makefile.in (OBJS-common): Remove struct-equiv.o.
25655         (struct-equiv.o): Remove rule.
25656         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
25657         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
25658         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
25659
25660 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25661
25662         * ifcvt.c (noce_process_if_block): Try to handle only the then
25663         block if the else block exists but isn't suitable.
25664
25665 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
25666
25667         PR gcc/35063
25668         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
25669         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
25670         regression from previous patch.
25671
25672 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
25673
25674         PR gcc/35063
25675         * gthr.h: Add __gthread_mutex_destroy as a function that must be
25676         implemented.
25677         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
25678         * gthr-single.h (__gthread_mutex_destroy): Likewise.
25679         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
25680         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
25681         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
25682         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
25683         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
25684         (__gthread_mutex_destroy_function): Rename to
25685         __gthread_mutex_destroy.
25686         * gthr-dce.h (__gthread_mutex_destroy): Call
25687         pthread_mutex_destroy.
25688         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
25689         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
25690         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
25691
25692 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25693
25694         * df-scan.c (df_ref_chain_change_bb): Simplify.
25695         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
25696         set_block_for_insn if there's any change.
25697         * df.h ((df_insn_change_bb): Fix prototype.
25698         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
25699         df_insn_change_bb, don't call set_block_for_insn.
25700         * emit-rtl.c (reorder_insns): Likewise.
25701         * haifa-sched.c (move_insn): Likewise.
25702
25703 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25704
25705         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
25706
25707 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25708
25709         * tree-flow-inline.h (next_readonly_imm_use): Return
25710         NULL_USE_OPERAND_P after the end.
25711
25712 2008-03-01  Richard Guenther  <rguenther@suse.de>
25713
25714         PR tree-optimization/35411
25715         * tree-sra.c (sra_build_assignment): Split conversion to
25716         final type to a separate statement if we are not assigning
25717         to a register.
25718
25719 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
25720
25721         * fold-const.c (fold_convertible_p): Correct the logic to follow
25722         that in fold_convert().
25723
25724 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
25725
25726         PR c++/35315
25727         * tree-inline.c (build_duplicate_type): When we make a
25728         duplicate type, make it unique in the canonical types system.
25729
25730 2008-02-29  Tom Tromey  <tromey@redhat.com>
25731
25732         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
25733         input_file_stack_history, input_file_stack_restored): Remove.
25734         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25735         * input.h (struct file_stack): Remove.
25736         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25737         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
25738         Likewise.
25739         * diagnostic.h (struct diagnostic_context) <last_module>: Change
25740         type.
25741         (diagnostic_last_module_changed): Add 'map' argument.
25742         (diagnostic_set_last_function): Likewise.
25743         * diagnostic.c (undiagnostic_report_current_module): Iterate using
25744         line map, not input_file_stack.
25745         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
25746
25747 2008-02-29  Paul Brook  <paul@codesourcery.com>
25748
25749         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
25750
25751 2008-02-29  Paul Brook  <paul@codesourcery.com>
25752
25753         * config/arm/ieee754-df.S (muldf3): Use RET macros.
25754
25755 2008-02-29  Richard Guenther  <rguenther@suse.de>
25756
25757         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
25758         vn_lookup_or_add.
25759         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
25760         value for comparing for a store match.
25761         (simplify_unary_expression): Do nothing for SSA_NAMEs.
25762         (try_to_simplify): Do not do a full-blown reference lookup.
25763
25764 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
25765
25766         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
25767         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
25768
25769         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
25770
25771 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
25772
25773         * tree-loop-linear.c (try_interchange_loops): Compare memory access
25774         strides against cache sizes.
25775
25776 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
25777
25778         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
25779         constant to fpul.
25780
25781 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
25782
25783         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
25784         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
25785         is smaller than the original promoted value.
25786         (simplify_subreg): If OP is a SUBREG, try to preserve its
25787         SUBREG_PROMOTED_VAR_P information.
25788
25789 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
25790
25791         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
25792         (VN_INFO_GET): Allocate new objects on the obstack.
25793         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
25794         for rpo_numbers_temp, for consistency.
25795         (free_scc_vn): Free the obstack.
25796
25797 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
25798
25799         * doc/invoke.texi: Document -ftree-loop-distribution.
25800         * tree-loop-distribution.c: New.
25801         * tree-pass.h (pass_loop_distribution): New.
25802         * graphds.h (struct graph): Add htab_t indices.
25803         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
25804         * tree-vectorizer.c (rename_variables_in_loop): Extern.
25805         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
25806         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
25807         * tree-data-ref.c (debug_data_dependence_relations): New.
25808         (dump_data_dependence_relation): Also print data references.
25809         (free_data_ref): Extern.
25810         (same_access_functions): Moved...
25811         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
25812         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25813         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
25814         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
25815         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
25816         (stmts_from_loop): Skip LABEL_EXPR.
25817         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
25818         New.
25819         (build_rdg): Initialize rdg->indices htab.
25820         (free_rdg, stores_from_loop, ref_base_address,
25821         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
25822         have_similar_memory_accesses_1, ref_base_address_1,
25823         remove_similar_memory_refs): New.
25824         * tree-data-ref.h: Depend on tree-chrec.h.
25825         (debug_data_dependence_relations, free_data_ref): Declared.
25826         (same_access_functions): ... here.
25827         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
25828         New.
25829         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
25830         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
25831         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
25832         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25833         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
25834         rdg_vertex_for_stmt): Declared.
25835         (struct rdg_edge): Add level.
25836         (RDGE_LEVEL): New.
25837         (free_rdg, stores_from_loop, remove_similar_memory_refs,
25838         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
25839         Declared.
25840         (rdg_has_similar_memory_accesses): New.
25841         * tree-vect-analyze.c: Remove unused static decls.
25842         * lambda.h (dependence_level): New.
25843         * common.opt (ftree-loop-distribution): New.
25844         * tree-flow.h (mark_virtual_ops_in_bb,
25845         slpeel_tree_duplicate_loop_to_edge_cfg,
25846         rename_variables_in_loop): Declared.
25847         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
25848         (OBJS-common): Add tree-loop-distribution.o.
25849         (tree-loop-distribution.o): New rule.
25850         * tree-cfg.c (mark_virtual_ops_in_bb): New.
25851         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
25852         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
25853
25854 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
25855
25856         PR target/33963
25857         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
25858         other than structures and unions.
25859
25860 2008-02-28  Richard Guenther  <rguenther@suse.de>
25861
25862         Revert:
25863         2008-02-26  Richard Guenther  <rguenther@suse.de>
25864
25865         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25866         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25867         (lookup_decl_from_uid): Declare.
25868         (remove_decl_from_map): Likewise.
25869         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25870         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25871         (decl_for_uid_map): New global hashtable mapping DECL_UID
25872         to the decl tree.
25873         (init_ttree): Allocate it.
25874         (insert_decl_to_uid_decl_map): New helper function.
25875         (make_node_stat): Insert new decls into the map.
25876         (copy_node_stat): Likewise.
25877         (lookup_decl_from_uid): New function.
25878         (remove_decl_from_map): Likewise.
25879         (print_decl_for_uid_map_statistics): New helper.
25880         (dump_tree_statistics): Call it.
25881
25882         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25883         (referenced_var_iterator): Adjust.
25884         (FOR_EACH_REFERENCED_VAR): Adjust.
25885         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25886         (num_referenced_vars): Adjust.
25887         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25888         (first_referenced_var): Remove.
25889         (end_referenced_vars_p): Likewise.
25890         (next_referenced_var): Likewise.
25891         (referenced_var_iterator_set): New helper function.
25892         * tree-dfa.c (referenced_var_lookup): Adjust.
25893         (referenced_var_check_and_insert): Likewise.
25894         (remove_referenced_var): Likewise.
25895         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25896         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25897         (verify_call_clobbering): Likewise.
25898         (verify_memory_partitions): Likewise.
25899         (init_tree_ssa): Allocate bitmap instead of hashtable for
25900         referenced_vars.
25901         (delete_tree_ssa): Adjust.
25902         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25903         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25904         (compute_tag_properties): Likewise.
25905         (set_initial_properties): Likewise.
25906         (find_partition_for): Likewise.
25907         (update_reference_counts): Likewise.
25908         (dump_may_aliases_for): Likewise.
25909         * tree-ssa-operands.c (add_virtual_operand): Likewise.
25910         (add_call_clobber_ops): Likewise.
25911         (add_call_read_ops): Likewise.
25912         (get_asm_expr_operands): Likewise.
25913         * tree-into-ssa.c (dump_decl_set): Likewise.
25914         (update_ssa): Likewise.
25915         * tree-sra.c (scan_function): Likewise.
25916         (decide_instantiations): Likewise.
25917         (scalarize_parms): Likewise.
25918         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25919         (dsa_named_for): Likewise.
25920         * tree-ssa-structalias.c (update_alias_info): Likewise.
25921         (merge_smts_into): Likewise.
25922
25923 2008-02-27  David Daney  <ddaney@avtrex.com>
25924
25925         PR target/34409
25926         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
25927         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
25928         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
25929         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
25930         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
25931
25932 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
25933
25934         PR target/25477
25935         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
25936         (BUILT_IN_NEXTTOWARD): Remove.
25937         (BUILT_IN_NEXTTOWARDF): Ditto.
25938         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
25939         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
25940
25941 2008-02-27  Tom Tromey  <tromey@redhat.com>
25942
25943         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
25944         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
25945
25946 2008-02-27  Jan Beulich  <jbeulich@novell.com>
25947
25948         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
25949         update the respective field on newdecl.
25950
25951 2008-02-27  Revital Eres  <eres@il.ibm.com>
25952
25953         PR rtl-optimization/34999
25954         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
25955         crossing edges that ends with a call insn.
25956         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
25957         call insn and clear the EDGE_CROSSING flag of the crossing edge
25958         when fixing fallthru edges.
25959
25960 2008-02-27  Richard Guenther  <rguenther@suse.de>
25961
25962         PR middle-end/35390
25963         * fold-const.c (fold_unary): Return the correct argument,
25964         converted to the result type.
25965
25966 2008-02-27  Richard Guenther  <rguenther@suse.de>
25967
25968         PR middle-end/34971
25969         * expr.c (expand_expr_real_1): Assert on rotates that operate
25970         on partial modes.
25971         * fold-const.c (fold_binary): Use the types precision, not the
25972         bitsize of the mode if folding rotate expressions.  Build rotates
25973         only for full modes.
25974
25975 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
25976
25977         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
25978         and CPP_PRAGMA_EOL.
25979         * c-pragma.c (pragma_ns_name): New typedef.
25980         (registered_pp_pragmas): New variable.
25981         (c_pp_lookup_pragma): New function.
25982         (c_register_pragma_1): If flag_preprocess_only, do nothing
25983         for non-expanded pragmas, for expanded ones push pragma's
25984         namespace and name into registered_pp_pragmas vector.
25985         (c_invoke_pragma_handler): Register OpenMP pragmas even when
25986         flag_preprocess_only, don't register GCC pch_preprocess
25987         pragma if flag_preprocess_only.
25988         * c-opts.c (c_common_init): Call init_pragma even if
25989         flag_preprocess_only.
25990         * c-pragma.c (c_pp_lookup_pragma): New prototype.
25991         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
25992         cpp_register_pragma if flag_preprocess_only.
25993
25994 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25995
25996         PR c/28800
25997         * c-parser.c (c_parser_translation_unit): Warn for empty
25998         translation unit, not empty source file.
25999
26000 2008-02-26  Paul Brook  <paul@codesourcery.com>
26001
26002         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
26003         operand for Thumb-2.
26004         * config/arm/arm.h (reg_class): Add CORE_REGS.
26005         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
26006         (BASE_REG_CLASS): Use CORE_REGS.
26007         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
26008         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
26009         (REGNO_OK_FOR_INDEX_P): Exclude SP.
26010         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
26011         ARM_REGNO_OK_FOR_INDEX_P.
26012         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
26013         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
26014         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
26015         (ldm/stm peepholes): Ditto.
26016         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
26017         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
26018         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
26019         * config/arm/constraints.md: Enable "k" constraint on ARM.
26020
26021 2008-02-27  Ben Elliston  <bje@au.ibm.com>
26022
26023         * config/rs6000/rs6000.c: Annotate cache line size field in all
26024         instances of struct processor_costs.
26025
26026 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
26027
26028         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
26029         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
26030         jump_bypass): New counters.
26031         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
26032         * dce.c (gate_ud_dce): Same.
26033         (gate_fast_dce): Same.
26034         * dse.c (gate_dse1): New function.
26035         (gate_dse2): New function.
26036         (gate_dse): Merge results of new gate functions.
26037         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
26038         (gate_handle_jump_bypass): Add dbg_cnt.
26039         (gate_handle_gcse): Add dbg_cnt.
26040         * ifcvt.c (gate_handle_if_conversion): Same.
26041         (gate_handle_if_after_combine): Same.
26042         (gate_handle_if_after_reload): Same.
26043         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
26044
26045 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
26046
26047         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
26048         line sizes.
26049         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
26050
26051 2008-02-26  Jason Merrill  <jason@redhat.com>
26052
26053         PR c++/35315
26054         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
26055         alone if it's the naming decl for the type's main variant.
26056
26057 2008-02-26  Tom Tromey  <tromey@redhat.com>
26058
26059         * system.h (USE_MAPPED_LOCATION): Poison.
26060         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
26061         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
26062         (make_goto_expr_edges): Likewise.
26063         (remove_bb): Likewise.
26064         (execute_warn_function_return): Likewise.
26065         * basic-block.h (struct edge_def) <goto_locus>: Change type to
26066         location_t.
26067         * c-common.c (fname_decl): Remove old location code.
26068         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
26069         location code.
26070         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
26071         variant.
26072         (ASM_INPUT_SOURCE_LOCATION): Likewise.
26073         (gen_rtx_ASM_INPUT): Likewise.
26074         (gen_rtx_ASM_INPUT_loc): Likewise.
26075         (get_rtx_asm_OPERANDS): Remove.
26076         * cfglayout.c (insn_locators_alloc): Remove old location code.
26077         (set_curr_insn_source_location): Likewise.
26078         (curr_insn_locator): Likewise.
26079         * print-tree.c (print_node): Remove old location code.
26080         * tree-mudflap.c (mf_varname_tree): Remove old location code.
26081         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
26082         * cfgexpand.c (expand_gimple_cond_expr): Don't use
26083         location_from_locus.
26084         (construct_exit_block): Remove old location code.
26085         * emit-rtl.c (force_next_line_note): Remove old location code.
26086         * profile.c (branch_prob): Remove old location code.
26087         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
26088         LOC_LINE): Remove old-location variants.
26089         * langhooks.c (lhd_print_error_function): Remove old location
26090         code.
26091         * configure, config.in: Rebuilt.
26092         * configure.ac (--enable-mapped-location): Remove.
26093         * c-decl.c (c_init_decl_processing): Remove old location code.
26094         (finish_function): Likewise.
26095         * recog.c (decode_asm_operands): Remove old location code.
26096         * c-pch.c (c_common_read_pch): Remove old location code.
26097         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
26098         variants.
26099         * gimple-low.c (lower_function_body): Remove old location code.
26100         * toplev.c (unknown_location): Remove.
26101         (push_srcloc): Remove old-location variant.
26102         (process_options): Remove old location code.
26103         (lang_dependent_init): Likewise.
26104         * input.h (UNKNOWN_LOCATION): Move definition.
26105         (location_t): Undeprecate.
26106         (source_locus): Remove.
26107         (location_from_locus): Remove.
26108         (struct location_s): Remove.
26109         Remove all old-location code.
26110         (input_line, input_filename): Remove.
26111         * final.c (final_scan_insn): Remove old location code.
26112         * diagnostic.c (diagnostic_build_prefix): Remove
26113         USE_MAPPED_LOCATION test.
26114         * tree.h (gimple_stmt) <locus>: Now a location_t.
26115         (tree_exp) <locus>: Likewise.
26116         (DECL_IS_BUILTIN): Remove old-location variant.
26117         (annotate_with_file_line, annotate_with_locus): Likewise.
26118         (expr_locus, set_expr_locus): Update.
26119         * tree.c (build1_stat): Remove old location code.
26120         (last_annotated_node): Remove.
26121         (annotate_with_file_line): Remove old-location variant.
26122         (annotate_with_locus): Likewise.
26123         (expr_location): Remove old location code.
26124         (set_expr_location): Likewise.
26125         (expr_has_location): Likewise.
26126         (expr_locus): Likewise.
26127         (set_expr_locus): Likewise.
26128         (expr_filename): Don't use location_from_locus.
26129         (expr_lineno): Likewise.
26130         * rtl-error.c (location_for_asm): Remove old location code.
26131         * c-lex.c (cb_line_change): Remove old location code.
26132         (fe_file_change): Likewise.
26133         (cb_def_pragma): Likewise.
26134         (c_lex_with_flags): Likewise.
26135         * gengtype.c (do_typedef): Don't special-case location types.
26136         (define_location_structures): Remove.
26137         (main): Don't call define_location_structures.
26138         * tree-pretty-print.c (dump_implicit_edges): Remove old location
26139         code.
26140
26141 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26142
26143         PR 26264
26144         * builtins.def (BUILT_IN_STDARG_START): Remove.
26145         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
26146         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
26147         * tree-inline.c (inline_forbidden_p_1): Likewise.
26148
26149 2008-02-26  Richard Guenther  <rguenther@suse.de>
26150
26151         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26152         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26153         (lookup_decl_from_uid): Declare.
26154         (remove_decl_from_map): Likewise.
26155         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26156         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26157         (decl_for_uid_map): New global hashtable mapping DECL_UID
26158         to the decl tree.
26159         (init_ttree): Allocate it.
26160         (insert_decl_to_uid_decl_map): New helper function.
26161         (make_node_stat): Insert new decls into the map.
26162         (copy_node_stat): Likewise.
26163         (lookup_decl_from_uid): New function.
26164         (remove_decl_from_map): Likewise.
26165         (print_decl_for_uid_map_statistics): New helper.
26166         (dump_tree_statistics): Call it.
26167
26168         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26169         (referenced_var_iterator): Adjust.
26170         (FOR_EACH_REFERENCED_VAR): Adjust.
26171         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26172         (num_referenced_vars): Adjust.
26173         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26174         (first_referenced_var): Remove.
26175         (end_referenced_vars_p): Likewise.
26176         (next_referenced_var): Likewise.
26177         (referenced_var_iterator_set): New helper function.
26178         * tree-dfa.c (referenced_var_lookup): Adjust.
26179         (referenced_var_check_and_insert): Likewise.
26180         (remove_referenced_var): Likewise.
26181         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26182         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26183         (verify_call_clobbering): Likewise.
26184         (verify_memory_partitions): Likewise.
26185         (init_tree_ssa): Allocate bitmap instead of hashtable for
26186         referenced_vars.
26187         (delete_tree_ssa): Adjust.
26188         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26189         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26190         (compute_tag_properties): Likewise.
26191         (set_initial_properties): Likewise.
26192         (find_partition_for): Likewise.
26193         (update_reference_counts): Likewise.
26194         (dump_may_aliases_for): Likewise.
26195         * tree-ssa-operands.c (add_virtual_operand): Likewise.
26196         (add_call_clobber_ops): Likewise.
26197         (add_call_read_ops): Likewise.
26198         (get_asm_expr_operands): Likewise.
26199         * tree-into-ssa.c (dump_decl_set): Likewise.
26200         (update_ssa): Likewise.
26201         * tree-sra.c (scan_function): Likewise.
26202         (decide_instantiations): Likewise.
26203         (scalarize_parms): Likewise.
26204         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26205         (dsa_named_for): Likewise.
26206         * tree-ssa-structalias.c (update_alias_info): Likewise.
26207         (merge_smts_into): Likewise.
26208
26209 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26210
26211         PR 34351
26212         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
26213         * c-opts.c (c_common_handle_option): Wall enables
26214         Wvolatile-register-var.
26215         * common.opt: Move Wvolatile-register-var to...
26216         * c.opt: ...here.
26217
26218 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26219
26220         * common.opt (Wlarger-than=): New.
26221         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
26222         -Wlarger-than=.
26223         * opts.c (common_handle_option): Handle -Wlarger-than=.
26224         * optc-gen.awk: Likewise.
26225         * opth-gen.awk: Likewise.
26226         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
26227         * tree-optimize.c (tree_rest_of_compilation): Likewise.
26228
26229 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26230
26231         * c-common.c (match_case_to_enum_1): Add appropriate
26232         OPT_W* parameter to warning.
26233         (c_do_switch_warnings): Likewise.
26234         * c-typeck.c (warning_init): Add one more parameter following
26235         'warning' function.
26236         (push_init_level): Update call to warning_init.
26237         (pop_init_level): Likewise.
26238         (add_pending_init): Likewise.
26239         (output_init_element: Likewise.
26240
26241 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26242
26243         PR 28322
26244         * toplev.c (toplev_main): If there are warnings or error, print
26245         errors for ignored options.
26246         * opts.c (ignored_options): New static variable.
26247         (postpone_unknown_option_error): New.
26248         (print_ignored_options): New.
26249         (handle_option): Postpone errors for unknown -Wno-* options.
26250         * opts.h (print_ignored_options): Declare.
26251
26252 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
26253
26254         * config/mips/mips.md (loadgp_blockage, blockage): Change type
26255         to "ghost".
26256
26257 2008-02-25  Richard Guenther  <rguenther@suse.de>
26258
26259         Revert:
26260         2008-02-25  Richard Guenther  <rguenther@suse.de>
26261
26262         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26263         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26264         (lookup_decl_from_uid): Declare.
26265         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26266         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26267         (decl_for_uid_map): New global hashtable mapping DECL_UID
26268         to the decl tree.
26269         (init_ttree): Allocate it.
26270         (insert_decl_to_uid_decl_map): New helper function.
26271         (make_node_stat): Insert new decls into the map.
26272         (copy_node_stat): Likewise.
26273         (lookup_decl_from_uid): New function.
26274         (print_decl_for_uid_map_statistics): New helper.
26275         (dump_tree_statistics): Call it.
26276
26277         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26278         (referenced_var_iterator): Adjust.
26279         (FOR_EACH_REFERENCED_VAR): Adjust.
26280         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26281         (num_referenced_vars): Adjust.
26282         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26283         (first_referenced_var): Remove.
26284         (end_referenced_vars_p): Likewise.
26285         (next_referenced_var): Likewise.
26286         (referenced_var_iterator_set): New helper function.
26287         * tree-dfa.c (referenced_var_lookup): Adjust.
26288         (referenced_var_check_and_insert): Likewise.
26289         (remove_referenced_var): Likewise.
26290         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26291         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26292         (verify_call_clobbering): Likewise.
26293         (verify_memory_partitions): Likewise.
26294         (init_tree_ssa): Allocate bitmap instead of hashtable for
26295         referenced_vars.
26296         (delete_tree_ssa): Adjust.
26297         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26298         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26299         (compute_tag_properties): Likewise.
26300         (set_initial_properties): Likewise.
26301         (find_partition_for): Likewise.
26302         (update_reference_counts): Likewise.
26303         (dump_may_aliases_for): Likewise.
26304         * tree-ssa-operands.c (add_virtual_operand): Likewise.
26305         (add_call_clobber_ops): Likewise.
26306         (add_call_read_ops): Likewise.
26307         (get_asm_expr_operands): Likewise.
26308         * tree-into-ssa.c (dump_decl_set): Likewise.
26309         (update_ssa): Likewise.
26310         * tree-sra.c (scan_function): Likewise.
26311         (decide_instantiations): Likewise.
26312         (scalarize_parms): Likewise.
26313         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26314         (dsa_named_for): Likewise.
26315         * tree-ssa-structalias.c (update_alias_info): Likewise.
26316         (merge_smts_into): Likewise.
26317
26318 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
26319
26320         PR fortran/29549
26321         * doc/invoke.texi (-fcx-limited-range): Document new option.
26322         * toplev.c (process_options): Handle -fcx-fortran-rules.
26323         * common.opt: Add documentation for -fcx-fortran-rules.
26324
26325 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
26326
26327         PR c/35162
26328         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
26329         actual behaviour and C99.
26330
26331 2008-02-26  Ben Elliston  <bje@au.ibm.com>
26332
26333         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
26334         (ASM_CPU_POWER6_SPEC): Likewise.
26335         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
26336         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
26337         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
26338
26339 2008-02-25  Richard Guenther  <rguenther@suse.de>
26340
26341         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26342         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26343         (lookup_decl_from_uid): Declare.
26344         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26345         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26346         (decl_for_uid_map): New global hashtable mapping DECL_UID
26347         to the decl tree.
26348         (init_ttree): Allocate it.
26349         (insert_decl_to_uid_decl_map): New helper function.
26350         (make_node_stat): Insert new decls into the map.
26351         (copy_node_stat): Likewise.
26352         (lookup_decl_from_uid): New function.
26353         (print_decl_for_uid_map_statistics): New helper.
26354         (dump_tree_statistics): Call it.
26355
26356         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26357         (referenced_var_iterator): Adjust.
26358         (FOR_EACH_REFERENCED_VAR): Adjust.
26359         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26360         (num_referenced_vars): Adjust.
26361         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26362         (first_referenced_var): Remove.
26363         (end_referenced_vars_p): Likewise.
26364         (next_referenced_var): Likewise.
26365         (referenced_var_iterator_set): New helper function.
26366         * tree-dfa.c (referenced_var_lookup): Adjust.
26367         (referenced_var_check_and_insert): Likewise.
26368         (remove_referenced_var): Likewise.
26369         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26370         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26371         (verify_call_clobbering): Likewise.
26372         (verify_memory_partitions): Likewise.
26373         (init_tree_ssa): Allocate bitmap instead of hashtable for
26374         referenced_vars.
26375         (delete_tree_ssa): Adjust.
26376         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26377         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26378         (compute_tag_properties): Likewise.
26379         (set_initial_properties): Likewise.
26380         (find_partition_for): Likewise.
26381         (update_reference_counts): Likewise.
26382         (dump_may_aliases_for): Likewise.
26383         * tree-ssa-operands.c (add_virtual_operand): Likewise.
26384         (add_call_clobber_ops): Likewise.
26385         (add_call_read_ops): Likewise.
26386         (get_asm_expr_operands): Likewise.
26387         * tree-into-ssa.c (dump_decl_set): Likewise.
26388         (update_ssa): Likewise.
26389         * tree-sra.c (scan_function): Likewise.
26390         (decide_instantiations): Likewise.
26391         (scalarize_parms): Likewise.
26392         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26393         (dsa_named_for): Likewise.
26394         * tree-ssa-structalias.c (update_alias_info): Likewise.
26395         (merge_smts_into): Likewise.
26396
26397 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
26398
26399         PR target/35258
26400         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
26401         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
26402         * alias.h (nonoverlapping_memrefs_p): Likewise.
26403
26404 2008-02-25  Jan Beulich  <jbeulich@novell.com>
26405
26406         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
26407         * config/i386/netware-libgcc.exp: Add __bswap?i2,
26408         __emultls_get_address, __emultls_register_common,
26409         __floatundi?f, and _Unwind_GetIPInfo.
26410         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
26411         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
26412         (gen_regparm_prefix): Likewise.
26413         (i386_nlm_encode_section_info): Sync with
26414         config/i386/winnt.c:i386_pe_encode_section_info().
26415         (i386_nlm_maybe_mangle_decl_assembler_name): New.
26416         i386_nlm_mangle_decl_assembler_name): New.
26417         (netware_override_options): New.
26418         * config/i386/netware.h (netware_override_options): Declare.
26419         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
26420         (i386_nlm_mangle_decl_assembler_name): Declare.
26421         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
26422
26423 2008-02-25  Ben Elliston  <bje@au.ibm.com>
26424
26425         PR other/32948
26426         * c-decl.c (grokdeclarator): Remove unused local variables
26427         `typedef_type' and `type_as_written'.
26428         * bb-reorder.c
26429         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
26430         unused local variable `has_hot_blocks'.
26431         (fix_crossing_conditional_branches): Remove unused local variable
26432         `prev_bb'.
26433
26434 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
26435
26436         PR middle-end/19984
26437         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
26438         using DEF_C99_BUILTIN.
26439         (BUILT_IN_NANF): Ditto.
26440         (BUILT_IN_NANL): Ditto.
26441
26442 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
26443             Revital Eres  <eres@il.ibm.com>
26444
26445         * modulo-sched.c (calculate_must_precede_follow): Address TODO
26446         regarding the order of two dependent insns in the same row.
26447
26448 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
26449
26450         * stor-layout.c (layout_decl): Do not bump the alignment of a
26451         bit-field to more than byte alignment if it is packed.
26452
26453 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
26454
26455         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
26456         e300c2 and e300c3.
26457
26458 2008-02-24  Diego Novillo  <dnovillo@google.com>
26459
26460         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
26461
26462         PR 33738
26463         * tree-vrp.c (vrp_evaluate_conditional): With
26464         -Wtype-limits, emit a warning when comparing against a
26465         constant outside the natural range of OP0's type.
26466         * c.opt (Wtype-limits): Move ...
26467         * common.opt (Wtype-limits): ... here.
26468
26469 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
26470
26471         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
26472         * config/rs6000/e300c2c3.md: New file.
26473         * config/rs6000/rs6000.c (processor_costs): Add new costs for
26474         e300c2 and e300c3.
26475         (rs6000_override_options): Add e300c2 and e300c3 cases to
26476         processor_target_table. Do not allow usage of Altivec or Spe
26477         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
26478         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
26479         * config/rs6000/rs6000.h (processor_type): Add
26480         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
26481         (ASM_CPU_SPEC): Add e300c2 and e300c3.
26482         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
26483         and ppce300c3. Include e300c2c3.md.
26484
26485 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
26486
26487         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
26488         instead of TARGET_STRICT_ALIGN.
26489
26490 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
26491
26492         * explow.c (memory_address): Assert that the generated address is
26493         valid.
26494
26495 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
26496
26497         PR target/25477
26498         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
26499         * config/darwin-ppc-ldouble-patch.def: New file.
26500         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
26501         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
26502         SUBTARGET_INIT_BUILTINS if defined.
26503         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
26504         New functions.
26505
26506 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26507
26508         PR rtl-opt/33512
26509         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
26510         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
26511
26512 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26513
26514         PR pch/35027
26515         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
26516         file" warning condtional on -Winvalid-PCH.
26517
26518 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
26519
26520         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
26521
26522 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
26523
26524         PR target/22076
26525         PR target/34256
26526         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
26527         prevent reload from using MMX registers.
26528         (*mov<mode>_internal): Ditto.
26529         (*movv2sf_internal_rex64): Ditto.
26530         (*movv2sf_internal): Ditto.
26531
26532 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26533
26534         PR documentation/31569
26535         * doc/install.texi2html: Use makeinfo --no-number-sections.
26536
26537 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26538
26539         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
26540         ensure that we can address an entire entity > 8 bytes.  Don't
26541         generate reg+reg addressing for such data.
26542
26543 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26544
26545         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
26546         strings when optimizing for size, unless the target cares about
26547         alignment.
26548
26549 2008-02-22  Tom Tromey  <tromey@redhat.com>
26550
26551         * regclass.c (current_pass): Remove declaration.
26552
26553 2008-02-22  Anatoly Sokolov <aesok@post.ru>
26554
26555         * config/avr/libgcc.S (__RAMPZ__): Define.
26556         (__do_copy_data): Add for devices with 128KB code memory.
26557
26558 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26559
26560         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
26561         Use spe_abi.
26562         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
26563
26564 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
26565
26566         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
26567         GENNONACR_REGS.
26568
26569 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26570
26571         PR c/19999
26572         * c-typeck.c (build_binary_op): Warn about floating point
26573         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
26574
26575 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
26576
26577         PR target/34526
26578         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
26579         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
26580         add vrsave.
26581         (rs6000_override_options): Set altivec_abi as default, not override,
26582         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
26583         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
26584         is used; use new member spe_abi.
26585         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
26586         spe_abi and altivec_abi.
26587
26588 2008-02-22  Tomas Bily  <tbily@suse.cz>
26589
26590         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
26591
26592 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26593
26594         PR bootstrap/35273
26595         * config.build (build_file_translate): Set to `CMD //c' only if
26596         it works.
26597         * Makefile.in (build_file_translate): Improve comment.
26598
26599 2008-02-21  Jan Hubicka  <jh@suse.cz>
26600
26601         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
26602         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
26603         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
26604
26605 2008-02-21  Michael Matz  <matz@suse.de>
26606
26607         PR target/35264
26608         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
26609
26610 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
26611
26612         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
26613         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
26614         as insn constraint.
26615         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
26616         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
26617         SSE_VEC_FLOAT_MODE_P as insn constraint.
26618         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
26619         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
26620         sse4a_movntdf using MODEF mode iterator.
26621         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
26622         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
26623         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
26624         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
26625         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
26626         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
26627         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
26628
26629 2008-02-21  Richard Guenther  <rguenther@suse.de>
26630
26631         * tree.def (PAREN_EXPR): New tree code.
26632         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
26633         and PAREN_EXPR.
26634         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
26635         * expr.c (expand_expr_real_1): Likewise.
26636         * tree-inline.c (estimate_num_insns_1): Likewise.
26637         * tree-complex.c (expand_complex_move): Likewise.
26638         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
26639         as plain x.
26640
26641 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
26642
26643         PR target/35225
26644         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
26645
26646 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
26647
26648         PR target/35190
26649         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
26650
26651         * config/sh/sh.c (find_barrier): Don't go past
26652         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
26653
26654 2008-02-20  DJ Delorie  <dj@redhat.com>
26655
26656         * config/h8300/h8300.md (insv): Force source operand to be a register.
26657
26658         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
26659         as a jump, not as a plain insn.
26660
26661 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
26662
26663         * doc/invoke.texi (Warning Options): Add new option
26664         -Wframe-larger-than=.
26665         (-Wframe-larger-than): Document.
26666
26667         * flags.h (warn_frame_larger_than, frame_larger_than_size):
26668         Add declarations for new option variables.
26669
26670         * final.c (final_start_function): Check the frame size
26671         before emission and issue a Wframe-larger-than warning.
26672
26673         * opts.c (warn_frame_larger_than, frame_larger_than_size):
26674         Add definitions for new option variables.
26675         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
26676
26677         * common.opt (Wframe-larger-than=): New option.
26678
26679 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
26680
26681         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
26682         (<sse>_div<mode>3): Ditto.
26683         (<sse>_vmdiv<mode>3): Ditto.
26684         (<sse>_vmsqrt<mode>2): Ditto.
26685         (*smax<mode>3): Ditto.
26686         (sse5_frcz<mode>2): Ditto.
26687         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
26688         as insn constraint.
26689
26690 2008-02-20  Richard Guenther  <rguenther@suse.de>
26691
26692         PR middle-end/35265
26693         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
26694         be happy with INTEGRAL_TYPE_P.
26695
26696 2008-02-20  Richard Guenther  <rguenther@suse.de>
26697
26698         * fold-const.c (split_tree): Associate floatig-point expressions
26699         if flag_associative_math is set.
26700
26701 2008-02-20  Richard Guenther  <rguenther@suse.de>
26702
26703         * tree.h (fold_real_zero_addition_p): Declare.
26704         * fold-const.c (fold_real_zero_addition_p): Export.
26705         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
26706         floating-point operations with zero and one.
26707
26708 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
26709
26710         * doc/install.texi: Correct references to CFLAGS, replacing them
26711         with BOOT_CFLAGS.  Document flags used during bootstrap for
26712         target libraries.
26713
26714 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
26715
26716         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
26717         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
26718         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
26719         insn constraint.
26720         (smin<mode>3): Ditto from similar patterns.
26721         (smax<mode>3): Ditto.
26722         (*ieee_smin<mode>3): Ditto.
26723         (*ieee_smax<mode>3): Ditto.
26724         * config/i386/sse.md (sse): New mode attribute.
26725         (mov<mode>): Macroize expander from movv4sf and movv2df using
26726         SSEMODEF2P mode iterator.
26727         (<sse>_movnt<mode>): Ditto from similar patterns. Use
26728         SSE_VEC_FLOAT_MODE_P as insn constraint.
26729         (storent<mode>): Ditto.
26730         (storent<mode>): Macroize expander from storentsf and storentdf using
26731         MODEF mode iterator.
26732         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
26733         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
26734         (abs<mode>2): Ditto from similar patterns.
26735         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
26736         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
26737         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
26738         (<sse>_vmsqrt<mode>2): Ditto.
26739         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
26740         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
26741         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
26742         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
26743         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
26744         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
26745         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
26746         insn constraint.
26747         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
26748         iterator and SSE_FLOAT_MODE_P as insn constraint.
26749         (<sse>_ucomi): Ditto from similar patterns.
26750         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
26751         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
26752         SSE_VEC_FLOAT_MODE_P as insn constraint.
26753         (vcond<mode>): Ditto from similar patterns.
26754         (and<mode>3, *and<mode>3): Ditto.
26755         (<sse>_nand<mode>3): Ditto.
26756         (ior<mode>3, *ior<mode>3): Ditto.
26757         (xor<mode>3, *xor<mode>3): Ditto.
26758         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
26759         iterator and SSE_FLOAT_MODE_P as insn constraint.
26760         (*nand<mode>3): Ditto from similar patterns.
26761         (*ior<mode>3): Ditto.
26762         (*xor<mode>3): Ditto.
26763
26764 2008-02-20  Ira Rosen  <irar@il.ibm.com>
26765
26766         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
26767         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
26768         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
26769
26770 2008-02-19  Jan Hubicka  <jh@suse.cz>
26771
26772         * predict.c (tree_bb_level_predictions): Remove variable next
26773         mistakely introduced by previous commit.
26774
26775 2008-02-19  Jan Hubicka  <jh@suse.cz>
26776
26777         * predict.c (predict_paths_leading_to): Rewrite.
26778         (predict_paths_for_bb): New.
26779         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
26780
26781 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26782
26783         PR bootstrap/35218
26784         * Makefile.in (build_file_translate): New.
26785         (gcc-vers.texi): Use it for translating $(abs_srcdir).
26786         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
26787         * configure.ac (build_file_translate): Substitute it.
26788         * configure: Regenerate.
26789
26790 2008-02-19  Jan Hubicka  <jh@suse.cz>
26791
26792         PR rtl-optimization/34408
26793         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
26794         invalid sharing.
26795
26796 2008-02-19  Jan Hubicka  <jh@suse.cz>
26797
26798         PR middle-end/28779
26799         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
26800         call_expr.
26801
26802 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
26803
26804         PR Ada/35186
26805         * config/i386/i386-modes.def: Revert the last DI alignment
26806         change until Ada people can look into it.
26807
26808 2008-02-19  Nick Clifton  <nickc@redhat.com>
26809
26810         * opts.c (print_specific_help): Fix typo in --help text.
26811
26812 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
26813
26814         PR target/35239
26815         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
26816         32-bit inline asm without asm alternatives for host GCC < 3.0.
26817
26818 2008-02-19  Richard Guenther  <rguenther@suse.de>
26819
26820         PR tree-optimization/34989
26821         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
26822         Allow propagation to INDIRECT_REF if we can simplify only.
26823
26824 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26825
26826         * c-common.c (warn_for_collisions_1): Use appropriate option when
26827         warning.
26828
26829 2008-02-19  Nick Clifton  <nickc@redhat.com>
26830
26831         PR other/31349
26832         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
26833         (handle_options): Fix indentation.
26834         (print_filtered_help): If no language-specific options were
26835         displayed tell the user how to list all the options supported by
26836         the language's front-end.
26837         (print_specific_help): Fix indentation and remove duplicate line.
26838         (common_handle_option): Handle the -v option.
26839         For --help enable the display of undocumented options if the -v
26840         switch has been included on the command line.
26841         For --help= check for overlaps in the arguments between the option
26842         classes and the language names and issue a warning when they
26843         cannot be disambiguated.
26844         * c.opt (v): Pass on to the common option handler.
26845
26846 2008-02-19  Revital Eres  <eres@il.ibm.com>
26847
26848         * modulo-sched.c (sms_schedule): Change dump message when
26849         create_ddg function fails.
26850         (try_scheduling_node_in_cycle): Rename row to cycle.
26851         (print_partial_schedule): Rename CYCLE to ROW.
26852
26853 2008-02-19  Christian Bruel  <christian.bruel@st.com>
26854             Zdenek Dvorak  <ook@ucw.cz>
26855
26856         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
26857
26858 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
26859
26860         PR target/33555
26861         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
26862         (*x86_movdicc_0_m1_se): Ditto.
26863
26864 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
26865
26866         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
26867         (CMPtype): Define as __gcc_CMPtype.
26868         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
26869         (CMPtype): Define as __gcc_CMPtype.
26870
26871 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
26872
26873         Support valgrind 3.3 for --enable-checking=valgrind.
26874         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
26875         here.
26876         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
26877         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
26878         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
26879         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
26880         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
26881         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
26882         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
26883         respectively.
26884         * ggc-zone.c: Similar.
26885         * ggc-page.c: Similar.
26886
26887 2008-02-19  Paul Brook  <paul@codesourcery.com>
26888
26889         PR target/35071
26890         * config/arm/ieee754-df.S: Fix do_it typo.
26891         * config/arm/ieee754-sf.S: Fix do_it typo.
26892
26893 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
26894
26895         PR target/35189
26896         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
26897         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
26898         (OPTION_MASK_ISA_SSE_SET): Likewise.
26899         (OPTION_MASK_ISA_SSE2_SET): Likewise.
26900         (OPTION_MASK_ISA_SSE3_SET): Likewise.
26901         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
26902         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
26903         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
26904         (OPTION_MASK_ISA_SSE4_SET): Likewise.
26905         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
26906         (OPTION_MASK_ISA_SSE5_SET): Likewise.
26907         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
26908         (OPTION_MASK_ISA_MMX_UNSET): Updated.
26909         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
26910         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
26911         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
26912         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
26913         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
26914         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
26915         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
26916         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
26917         (OPTION_MASK_ISA_SSE4): Removed.
26918         (ix86_handle_option): Turn on bits in ix86_isa_flags and
26919         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
26920         (override_options): Don't turn on implied SSE/MMX bits in
26921         ix86_isa_flags.
26922
26923 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
26924
26925         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
26926         32bit host.
26927
26928 2008-02-18  Joey Ye  <joey.ye@intel.com>
26929
26930         PR middle-end/34921
26931         * tree-nested.c (insert_field_into_struct): Set type alignment
26932         to field alignment if the former is less than the latter.
26933
26934 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
26935
26936         * BASE-VER: Set to 4.4.0.
26937
26938 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26939
26940         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
26941         * doc/cfg.texi: Likewise.
26942         * doc/extend.texi: Likewise.
26943         * doc/gty.texi: Likewise.
26944         * doc/invoke.texi: Likewise.
26945         * doc/loop.texi: Likewise.
26946         * doc/md.texi: Likewise.
26947         * doc/passes.texi: Likewise.
26948         * doc/rtl.texi: Likewise.
26949         * doc/sourcebuild.texi: Likewise.
26950         * doc/tm.texi: Likewise.
26951         * doc/tree-ssa.texi: Likewise.
26952
26953 2008-02-17  Richard Guenther  <rguenther@suse.de>
26954
26955         PR middle-end/35227
26956         * tree-complex.c (init_parameter_lattice_values): Handle parameters
26957         without default definition.
26958
26959 2008-02-17  Richard Guenther  <rguenther@suse.de>
26960
26961         PR tree-optimization/35231
26962         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
26963         if A | B != 1.
26964
26965 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
26966
26967         Revert:
26968         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26969         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
26970         libgcc_cmp_return mode.
26971
26972 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26973
26974         PR c/28368
26975         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
26976
26977 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
26978
26979         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
26980         multilibs.
26981
26982 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26983
26984         * doc/c-tree.texi: Use `@.' where appropriate.
26985         * doc/extend.texi: Likewise.
26986         * doc/install.texi: Likewise.
26987         * doc/invoke.texi: Likewise.
26988         * doc/loop.texi: Likewise.
26989         * doc/makefile.texi: Likewise.
26990         * doc/md.texi: Likewise.
26991         * doc/passes.texi: Likewise.
26992         * doc/standards.texi: Likewise.
26993         * doc/tm.texi: Likewise.
26994
26995 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
26996
26997         PR middle-end/35196
26998         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
26999         in entry_bb.
27000         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
27001         rather than in entry_bb.
27002
27003 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
27004
27005         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
27006         libgcc_cmp_return mode.
27007
27008 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
27009
27010         PR middle-end/35130
27011         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
27012         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
27013
27014 2008-02-15  Richard Guenther  <rguenther@suse.de>
27015             Zdenek Dvorak  <ook@ucw.cz>
27016
27017         PR tree-optimization/35164
27018         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
27019         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
27020         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
27021         Only propagate addresses which do not have abnormal SSA_NAMEs
27022         in their operands.
27023
27024 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
27025
27026         PR target/35088
27027         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
27028
27029 2008-02-15  Jan Hubicka  <jh@suse.cz>
27030
27031         PR middle-end/35149
27032         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
27033
27034 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
27035
27036         PR middle-end/34621
27037         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
27038         when calculating alignment_pad.
27039
27040 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
27041
27042         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
27043         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
27044         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
27045         and STACK_BOUNDARY define.
27046
27047 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
27048
27049         PR preprocessor/35061
27050         * c-pragma.c (handle_pragma_pop_macro): Check that
27051         pushed_macro_table has been allocated.
27052
27053 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
27054
27055         PR middle-end/35136
27056         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
27057         (force_gimple_operand): Likewise.
27058         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
27059         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
27060         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
27061         (find_interesting_uses_address): Check addressability and alignment
27062         of the base expression only after substituting bases of IVs into it.
27063
27064 2008-02-14  Michael Matz  <matz@suse.de>
27065
27066         PR target/34930
27067         * function.c (instantiate_virtual_regs_in_insn): Reload address
27068         before falling back to reloading the whole operand.
27069
27070 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
27071
27072         * config/s390/s390.c (s390_mainpool_start): Emit the pool
27073         before the first section switch note.
27074
27075 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27076
27077         * doc/bugreport.texi: Update copyright years.
27078         * doc/c-tree.texi: Likewise.
27079         * doc/cfg.texi: Likewise.
27080         * doc/cpp.texi: Likewise.
27081         * doc/cppinternals.texi: Likewise.
27082         * doc/fragments.texi: Likewise.
27083         * doc/frontends.texi: Likewise.
27084         * doc/gcc.texi: Likewise.
27085         * doc/gty.texi: Likewise.
27086         * doc/hostconfig.texi: Likewise.
27087         * doc/implement-c.texi: Likewise.
27088         * doc/libgcc.texi: Likewise.
27089         * doc/loop.texi: Likewise.
27090         * doc/makefile.texi: Likewise.
27091         * doc/options.texi: Likewise.
27092         * doc/passes.texi: Likewise.
27093         * doc/rtl.texi: Likewise.
27094         * doc/sourcebuild.texi: Likewise.
27095         * doc/standards.texi: Likewise.
27096         * doc/tree-ssa.texi: Likewise.
27097         * doc/trouble.texi: Likewise.
27098
27099         * doc/extend.texi: Use @: or add comma where appropriate.
27100         * doc/invoke.texi: Likewise.
27101         * doc/tm.texi: Likewise.
27102
27103 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
27104
27105         PR target/34393
27106         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
27107         to a reg.
27108
27109 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
27110
27111         * doc/md.texi (clz, ctz): Add reference.
27112         * doc/rtl.texi (clz, ctz): Likewise.
27113
27114 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27115
27116         PR other/35148
27117         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
27118         srcdir.
27119
27120 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
27121
27122         * config/s390/s390.c (struct constant_pool): New field
27123         emit_pool_after added.
27124         (s390_mainpool_start): Set the emit_pool_after flag according
27125         to the section switch notes.
27126         (s390_mainpool_finish): Consider emit_pool_after when emitting
27127         the literal pool at the end of the function.
27128         (s390_chunkify_start): Force literal pool splits at section
27129         switch notes.
27130
27131 2008-02-13  Michael Matz  <matz@suse.de>
27132
27133         PR debug/35065
27134         * var-tracking.c (clobber_variable_part): Correctly traverse the
27135         list.
27136
27137 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27138
27139         PR 29673
27140         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
27141         Add -fdump-ipa-inline.
27142         * tree-dump.c (dump_files): Remove tree-inlined dump.
27143         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
27144
27145 2008-02-12  Richard Guenther  <rguenther@suse.de>
27146
27147         PR tree-optimization/35171
27148         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
27149         default defs.
27150
27151 2008-02-12  Richard Guenther  <rguenther@suse.de>
27152
27153         PR middle-end/35163
27154         * fold-const.c (fold_widened_comparison): Use get_unwidened in
27155         value-preserving mode.  Disallow final truncation.
27156
27157 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
27158
27159         PR middle-end/35136
27160         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
27161         code from here to...
27162         (force_gimple_operand): ...here.
27163
27164 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
27165
27166         PR c++/35144
27167         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
27168         non-compatible pointers.
27169         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
27170         different FIELD_DECLs, try harder by comparing field offsets, sizes
27171         and types.
27172
27173         PR inline-asm/35160
27174         * function.c (match_asm_constraints_1): Don't replace the same input
27175         multiple times.
27176
27177 2008-02-12  Anatoly Sokolov <aesok@post.ru>
27178
27179         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
27180         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
27181         (expand_epilogue): Restore RAMPZ register.
27182         * config/avr/avr.md (RAMPZ_ADDR): New constant.
27183
27184 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
27185
27186         * config/i386/cygwin.asm (__alloca): Correct calling
27187         convention and alignment.
27188         (__chkstk): Force 8 byte stack alignment.
27189
27190 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
27191             Richard Guenther  <rguenther@suse.de>
27192
27193         PR tree-optimization/33992
27194         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
27195         the zero we compare against.
27196
27197 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
27198
27199         PR libfortran/35063
27200         * gthr-win32.h (__gthread_mutex_destroy_function): New function
27201         to CloseHandle after unlocking to prevent accumulation of handle
27202         count.
27203
27204 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27205
27206         PR middle_end/34150
27207         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
27208         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
27209         and update LABEL_NUSES during and after reload.
27210
27211 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
27212
27213         PR middle-end/34627
27214         * combine.c (simplify_if_then_else): Make sure the comparison is
27215         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
27216
27217 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
27218
27219         PR bootstrap/35051
27220         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
27221         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
27222         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
27223         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
27224         * tree.h (get_type_static_bounds): Likewise.
27225
27226 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27227
27228         * doc/invoke.texi (Option Summary, C++ Dialect Options)
27229         (Objective-C and Objective-C++ Dialect Options, Warning Options):
27230         Make -Wfoo language annotations match what the compiler outputs.
27231
27232 2008-02-08  Sa Liu  <saliu@de.ibm.com>
27233
27234         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
27235         intrinsics spu_convts, spu_convtu, spu_convtf.
27236
27237 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
27238
27239         * doc/extend.texi (Function Attributes) <noinline>: Mention
27240         asm ("") as method to keep calls.
27241
27242 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27243
27244         PR other/32754
27245         * doc/options.texi (Options): Replace references to opts.sh with
27246         optc-gen.awk.
27247         * opts-common.c: Likewise.
27248         * optc-gen.awk: Likewise.
27249
27250 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
27251
27252         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
27253
27254 2008-02-07  Richard Henderson  <rth@redhat.com>
27255
27256         PR rtl-opt/33410
27257         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
27258         EXPR_LIST for the REG_EQUAL instead of a comparison with a
27259         funny mode.
27260
27261 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
27262
27263         PR tree-optimization/35085
27264         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
27265         for operand entry oe2 in addition to operand entry oe3 in order to
27266         expose more opportunities for vectorizer sum reduction.
27267
27268 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27269
27270         PR other/35107
27271         * Makefile.in (LIBS): Remove $(GMPLIBS).
27272         (cc1-dummy, cc1): Add $(GMPLIBS).
27273
27274 2008-02-06  Jan Hubicka  <jh@suse.cz>
27275
27276         PR target/23322
27277         * i386.md (moddf_integer): Do not produce partial memory stalls for
27278         targets where it hurts.
27279
27280 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
27281
27282         PR target/35083
27283         * optabs.c (expand_float): Do not check for decimal modes when
27284         expanding unsigned integer through signed conversion.
27285
27286 2008-02-06  Nick Clifton  <nickc@redhat.com>
27287
27288         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
27289         inside the clobber with a match_operand and duplicated operand
27290         number in the constraint.
27291         (ineqbranchsi): Delete redundant comment.
27292
27293 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
27294
27295         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
27296         builtin_define ("__USE_INIT_FINI__").
27297         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
27298         -msx multilibs.
27299         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
27300
27301 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27302
27303         PR documentation/30330
27304         * doc/invoke.texi (C++ Dialect Options)
27305         (Objective-C and Objective-C++ Dialect Options, Warning Options):
27306         For each warning option -Wfoo that allows -Wno-foo, ensure both
27307         -Wfoo and -Wno-foo are listed in the option index.  Fix index
27308         entry of -Wswitch-default, index -Wnormalized= including the
27309         `=', and -Wlarger-than-@var{len} including @var{len}.
27310
27311 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
27312
27313         * config/i386/i386.md (floatunssisf2): Use
27314         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
27315         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
27316         Macroize expander using MODEF mode iterator.
27317
27318 2008-02-05  Diego Novillo  <dnovillo@google.com>
27319
27320         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
27321
27322         PR 33738
27323         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
27324
27325 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27326
27327         PR other/35070
27328         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
27329
27330 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
27331
27332         PR target/35084
27333         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
27334         to indicate if a message should be generated.
27335         (init_cumulative_args): Updated.
27336         (function_value_32): Likewise.
27337
27338 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
27339
27340         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
27341
27342 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
27343
27344         PR target/35083
27345         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
27346         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
27347
27348 2008-02-04  Diego Novillo  <dnovillo@google.com>
27349
27350         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
27351
27352         PR 33738
27353         * tree-vrp.c (vrp_evaluate_conditional): With
27354         -Wtype-limits, emit a warning when comparing against a
27355         constant outside the natural range of OP0's type.
27356
27357 2008-02-04  Richard Guenther  <rguenther@suse.de>
27358
27359         PR middle-end/33631
27360         * expr.c (count_type_elements): Give for unions instead of
27361         guessing.
27362
27363 2008-02-04  Richard Guenther  <rguenther@suse.de>
27364
27365         PR middle-end/35043
27366         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
27367         to TYPE_DOMAINs base type instead of using bitsizetype here.
27368
27369 2008-02-03  Jason Merrill  <jason@redhat.com>
27370
27371         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
27372
27373 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27374
27375         PR other/29972
27376         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
27377         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
27378         (RS/6000 and PowerPC Options): Fix typos and markup.
27379         * doc/passes.texi (Tree-SSA passes): Likewise.
27380
27381 2008-02-02  Michael Matz  <matz@suse.de>
27382
27383         PR target/35045
27384         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
27385         from record_last_reg_set_info.
27386         (record_last_reg_set_info): Take an RTX argument, iterate over all
27387         constituent hardregs.
27388         (record_last_set_info, record_opr_changes): Change calls to
27389         new signature or to record_last_reg_set_info_regno.
27390
27391 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
27392
27393         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
27394
27395 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
27396
27397         PR rtl-optimization/34773
27398         * reg-notes.def (EQUAL): Mention significance of combination of
27399         REG_EQUAL and REG_RETVAL.
27400         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
27401         insn that has a REG_RETVAL.
27402
27403 2008-02-01  Roger Sayle  <roger@eyesopen.com>
27404
27405         PR bootstrap/33781
27406         * configure.ac (--enable-fixed-point): Disable unless explicitly
27407         requested on IRIX.
27408         * configure: Regenerate.
27409
27410 2008-02-01  Richard Guenther  <rguenther@suse.de>
27411
27412         PR other/35042
27413         * invoke.texi (-finline-limit): Remove no longer true parts
27414         of the documentation.  Note that there is no default value.
27415
27416 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
27417             Mark Mitchell  <mark@codesourcery.com>
27418             Ben Elliston  <bje@au.ibm.com>
27419
27420         PR c/29326
27421         * doc/extend.texi (Other Builtins): Document.
27422
27423 2008-01-31  Tom Browder <tom.browder@gmail.com>
27424
27425         * doc/c-tree.texi (Types): Fix grammar.
27426         (Expression trees): Ditto.
27427         * doc/passes.texi (Tree-SSA passes): Ditto.
27428
27429         * doc/configterms.texi (Configure Terms): Fix typo.
27430         * doc/cpp.texi (Common Predefined Macros): Ditto.
27431         * doc/md.texi (Machine Constraints): Ditto.
27432
27433         * doc/makefile.texi (Makefile): Add comma.
27434
27435 2008-01-31  Tom Browder  <tom.browder@gmail.com>
27436             Gerald Pfeifer  <gerald@pfeifer.com>
27437
27438         * doc/sourcebuild.texi (Front End): Remove references to CVS
27439         and CVSROOT/modules.
27440         (Texinfo Manuals): Replace reference to CVS by one to SVN.
27441         (Back End): Remove reference to CVS.
27442
27443 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
27444
27445         PR target/34900
27446         * config/mips/mips.c (gen_load_const_gp): New function, taking a
27447         comment from...
27448         (mips16_gp_pseudo_reg): ...here.
27449         * config/mips/mips.md (load_const_gp): Replace with...
27450         (load_const_gp_<mode>): ...this :P-based insn.
27451
27452 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27453
27454         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
27455         options. Minor fixes.
27456         (-std): Move reference to standards closer to where language
27457         standards are first mentioned.
27458
27459 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
27460
27461         PR rtl-optimization/34995
27462         * reload.c (alternative_allows_const_pool_ref): Take an rtx
27463         parameter and return a bool.  If the rtx parameter is nonnull,
27464         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
27465         (find_reloads): Update call accordingly.  Pass the new operand
27466         if it needed no address reloads, otherwise pass null.
27467
27468 2008-01-30  Richard Henderson  <rth@redhat.com>
27469
27470         PR c/34993
27471         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
27472         for unbounded arrays.
27473
27474 2008-01-30  Silvius Rus  <rus@google.com>
27475
27476         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
27477
27478 2008-01-30  Jan Hubicka  <jh@suse.cz>
27479
27480         PR target/34982
27481         * i386.c (init_cumulative_args): Use real function declaration when
27482         calling locally.
27483
27484 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
27485
27486         PR rtl-optimization/34998
27487         * global.c (build_insn_chain): Treat non-subreg_lowpart
27488         SUBREGs of pseudos as clobbering all the words covered by the
27489         SUBREG, not just all the bytes.
27490         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
27491         original df_ref rather than an extract parameter.
27492         (global_conflicts): Update call accordingly.
27493
27494 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
27495
27496         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
27497         the overflow check to make it easier to read.
27498         (__fixtfdi): Change the type of the ll member in union
27499         long_double to UDItype_x.
27500
27501 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
27502
27503         PR middle-end/34969
27504         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
27505         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
27506         * tree-inline.c (fold_marked_statements): Call
27507         cgraph_update_edges_for_call_stmt if folding a call statement.
27508         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
27509         debug_generic_stmt calls, reset it back afterwards.
27510
27511         PR c/35017
27512         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
27513         static decls.
27514         * c-typeck.c (build_external_ref): Don't pedwarn about
27515         static vars in current function's scope.
27516
27517 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
27518
27519         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
27520
27521 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
27522
27523         PR c/35002
27524         * ipa-struct-reorg.c: Fix spelling.
27525         * params.def: Ditto.
27526
27527 2008-01-29  Richard Guenther  <rguenther@suse.de>
27528
27529         PR middle-end/35006
27530         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
27531         field.
27532         * tree-inline.c (remap_type): Increment remapping_type_depth
27533         around remapping types.
27534         (copy_body_r): Only add referenced variables if they are referenced
27535         from code, not types.
27536
27537 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
27538
27539         PR c++/34055
27540         PR c++/34103
27541         PR c++/34219
27542         PR c++/34606
27543         PR c++/34753
27544         PR c++/34754
27545         PR c++/34755
27546         PR c++/34919
27547         PR c++/34961
27548         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
27549         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
27550
27551 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
27552
27553         PR target/34412
27554         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
27555         pointer for tiny stack.
27556
27557 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
27558
27559         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
27560
27561 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
27562
27563         * config/vx-common.h: Fix typo in comment.
27564
27565 2008-01-28  Ian Lance Taylor  <iant@google.com>
27566
27567         PR c++/34862
27568         PR c++/33407
27569         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
27570         coalesce pointers if they have different DECL_NO_TBAA_P values.
27571         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
27572         between variables with different DECL_NO_TBAA_P values.
27573
27574 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
27575
27576         PR 31535
27577         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
27578         are not legitimate small data references on SPE targets.
27579
27580 2008-01-28  David Daney  <ddaney@avtrex.com>
27581
27582         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
27583
27584 2008-01-28  David Daney  <ddaney@avtrex.com>
27585
27586         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
27587
27588 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
27589
27590         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
27591         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
27592         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
27593         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
27594         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
27595         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
27596         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
27597         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
27598
27599 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27600
27601         * basic-block.h (condjump_equiv_p): Fix comment.
27602
27603 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27604
27605         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
27606         print_generic_stmt_indented): Fix comment.
27607
27608 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27609
27610         * configure.ac (__stack_chk_fail): Add detecion for availability
27611         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
27612         * configure: Regenerate.
27613
27614 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
27615
27616         PR middle-end/34688
27617         * final.c (output_addr_const): Handle TRUNCATE.
27618
27619 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
27620
27621         PR target/34711
27622         * tree-ssa-loop-ivopts.c (comp_cost): New type.
27623         (zero_cost, infinite_cost): New constants.
27624         (struct cost_pair): Change type of cost to comp_cost.
27625         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
27626         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
27627         New functions.
27628         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
27629         split_address_cost, ptr_difference_cost, difference_cost,
27630         get_computation_cost_at, get_computation_cost,
27631         determine_use_iv_cost_generic, determine_use_iv_cost_address,
27632         determine_use_iv_cost_condition, determine_use_iv_costs,
27633         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
27634         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
27635         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
27636         Change type of cost to comp_cost.
27637         (determine_iv_cost): Increase cost of non-original ivs, instead
27638         of decreasing the cost of original ones.
27639         (get_address_cost): Indicate the complexity of the addressing mode
27640         in comp_cost.
27641         (try_add_cand_for): Prefer using ivs not specific to some object.
27642         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
27643
27644 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
27645             Janis Johnson  <janis187@us.ibm.com>
27646
27647         PR target/34814
27648         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
27649         (TARGET_INSTANTIATE_DECLS): Likewise.
27650         * target.h (expand_to_rtl_hook): New target hook.
27651         (instantiate_decls): Likewise.
27652         * function.c (instantiate_decl): Make non-static.  Rename to...
27653         (instantiate_decl_rtl): ... this.
27654         (instantiate_expr): Use instantiate_decl_rtl.
27655         (instantiate_decls_1): Likewise.
27656         (instantiate_decls): Likewise.
27657         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
27658         * function.h (instantiate_decl_rtl): Add prototype.
27659         * cfgexpand.c (target.h): New include.
27660         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
27661         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
27662         (TARGET_INSTANTIATE_DECLS): Likewise.
27663         (TARGET_INITIALIZER): New target hooks added.
27664         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
27665         New prototype.
27666         * config/rs6000/rs6000.c (tree-flow.h): New include.
27667         (machine_function): Add sdmode_stack_slot field.
27668         (rs6000_alloc_sdmode_stack_slot): New function.
27669         (rs6000_instantiate_decls): Likewise.
27670         (rs6000_secondary_memory_needed_rtx): Likewise.
27671         (rs6000_check_sdmode): Likewise.
27672         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
27673         (TARGET_INSTANTIATE_DECLS): Likewise.
27674         (rs6000_hard_regno_mode_ok): Allow SDmode.
27675         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
27676         (rs6000_emit_move): Handle SDmode.
27677         (function_arg_advance): Likewise.
27678         (function_arg): Likewise.
27679         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
27680         SDmode var args for 32-bit compiles.
27681         (rs6000_secondary_reload_class): Handle SDmode.
27682         (rs6000_output_function_epilogue): Likewise.
27683         (rs6000_function_value): Simplify if statement.
27684         (rs6000_libcall_value): Likewise.
27685         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
27686         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
27687         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
27688         (movsd_hardfloat): New define_insn.
27689         (movsd_softfloat): Likewise.
27690         (movsd_store): Likewise.
27691         (movsd_load): Likewise.
27692         (extendsddd2): Likewise.
27693         (extendsdtd2): Likewise.
27694         (truncddsd2): Likewise.
27695         (movdd_hardfloat64): Fixup comment.
27696         (UNSPEC_MOVSD_LOAD): New constant.
27697         (UNSPEC_MOVSD_STORE): Likewise.
27698
27699 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
27700
27701         PR c++/34965
27702         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
27703         TRUTH_XOR_EXPR.
27704         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
27705         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
27706         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
27707         and TRUTH_XOR_EXPR.
27708
27709 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
27710
27711         PR target/34794
27712         * config.gcc: Separate AIX 5.3 from AIX 6.1.
27713         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27714         __LONGDOUBLE128 too.
27715         * config/rs6000/aix61.h: New file.
27716
27717 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
27718
27719         PR rtl-optimization/34959
27720         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
27721         popcount and parity rtxes the same mode as their operand.
27722         Truncate or extend the result to the return value's mode
27723         if necessary.
27724
27725 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
27726
27727         PR target/34981
27728         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
27729         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
27730         to GOT_VERSION_REGNUM.
27731         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
27732         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
27733         * config/mips/mips.c (mips_emit_call_insn): New function.
27734         (mips_call_tls_get_addr): Call mips_expand_call directly.
27735         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
27736         emit_call_insn.
27737         (mips16_build_call_stub): Likewise.  Return the call insn or null.
27738         (mips_expand_call): Update the call to mips16_build_call_stub
27739         accordingly and a remove redundant condition.  Assert that MIPS16
27740         stubs do not use lazy binding.  Use mips_emit_call_insn and return
27741         the call insn.
27742         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
27743         TARGET_USE_GOT.
27744         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
27745         (mips_avoid_hazard): Remove hazard_set handling.
27746         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
27747         (UNSPEC_RESTORE_GP): ...this.
27748         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
27749         (FAKE_CALL_REGNO): Rename to...
27750         (GOT_VERSION_REGNUM): ...this.
27751         (type): Add "ghost" value.  Add an associated insn reservation.
27752         (hazard_set): Remove.
27753         (exception_receiver): Rename to...
27754         (restore_gp): ...this and update the unspec identifier accordingly.
27755         (exception_receiver, nonlocal_got_receiver): New expanders.
27756         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
27757         FAKE_CALL_REGNO.  Remove hazard_set attribute.
27758         (set_got_version, update_got_version): New patterns.
27759
27760 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
27761
27762         PR target/34970
27763         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
27764
27765 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
27766
27767         PR other/31955
27768         * doc/install.texi2html: Generate gcc-vers.texi.
27769
27770 2008-01-25  DJ Delorie  <dj@redhat.com>
27771
27772         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
27773
27774 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
27775
27776         * config/c4x: Remove directory.
27777         * config.gcc (crx-*, mt-*): Mark obsolete.
27778         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
27779         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
27780         sh-*-rtemscoff*): Remove cases.
27781         * defaults.h (C4X_FLOAT_FORMAT): Remove.
27782         * real.c (encode_c4x_single, decode_c4x_single,
27783         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
27784         c4x_extended_format): Remove.
27785         * real.h (c4x_single_format, c4x_extended_format): Remove.
27786         * doc/extend.texi (interrupt, naked): Remove mention of attributes
27787         on C4x.
27788         (Pragmas): Remove comment about c4x pragmas.
27789         * doc/install.texi (c4x): Remove target-specific instructions.
27790         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
27791         * doc/md.texi (Machine Constraints): Remove C4x documentation.
27792         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
27793         refer to C4x source files as examples.
27794         (C4X_FLOAT_FORMAT): Remove documentation.
27795
27796 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
27797
27798         * config/bfin/bfin.c (override_options): Reorder tests so that
27799         flag_pic gets enabled for -msep-data.
27800
27801 2008-01-25  Richard Guenther  <rguenther@suse.de>
27802
27803         PR middle-end/32244
27804         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
27805         to its bitfield precision if required.
27806
27807 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
27808
27809         PR middle-end/33880
27810         * tree-nested.c (walk_omp_for): New function.
27811         (convert_nonlocal_reference, convert_local_reference): Call
27812         walk_omp_for on OMP_FOR.
27813         (convert_call_expr): Call walk_body on OMP_FOR's
27814         OMP_FOR_PRE_INIT_BODY.
27815
27816 2008-01-25  Richard Guenther  <rguenther@suse.de>
27817
27818         PR tree-optimization/34966
27819         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
27820         default defs and PHI_NODEs we have to insert after the
27821         defining statement.
27822
27823 2008-01-24  Nick Clifton  <nickc@redhat.com>
27824
27825         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
27826         Provide a default definition.
27827         (LIBGCC2_UNITS_PER_WORD): Likewise.
27828
27829         * config/stormy16/stormy16.c: Include df.h for the prototype
27830         for df_regs_ever_live_p.
27831         (xstormy16_expand_builtin_va_start): Convert the stack offset
27832         into a component_ref and then use POINTER_PLUS_EXPR to add it
27833         to the incoming_virtual_args_rtx.
27834         (xstormy16_gimplify_va_arg_expr): Rename to
27835         xstormy16_gimplify_va_arg_expr.
27836         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
27837         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
27838         xstormy16_gimplify_va_arg_expr.
27839         Fix up some formatting issues.
27840
27841         * config/stormy16/stormy16.c (xstormy16_carry_plus_operand):
27842         Move to predicates.md.
27843         (xs_hi_general_operand): Likewise.
27844         (xs_hi_nonmemory_operand): Likewise.
27845         * config/stormy16/predicates.md:
27846         (xstormy16_carry_plus_operand): New predicate.
27847         (xs_hi_general_operand): New predicate.
27848         (xs_hi_nonmemory_operand): New predicate.
27849         * config/stormy16/stormy16-protos.h:
27850         (xstormy16_carry_plus_operand): Delete prototype.
27851         (xs_hi_general_operand): Likewise.
27852         (xs_hi_nonmemory_operand): Likewise.
27853
27854         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
27855         modifiers as they are no longer needed and they can trigger
27856         reload spill failures.
27857
27858         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
27859         with a match_operand in order to help reload.
27860
27861         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
27862         constraint with 'e' for the 8th alternative as this version of
27863         the mov.w instruction only accepts the lower 8 registers.
27864
27865 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
27866
27867         PR target/34856
27868         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
27869         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
27870         vector elements.
27871
27872 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
27873
27874         PR middle-end/33333
27875         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
27876
27877 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
27878
27879         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
27880         New functions.
27881         (remove_structure): Update allocations list before removing structure.
27882
27883 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
27884
27885         * ipa-struct-reorg.c (is_safe_cond_expr,
27886         create_new_stmts_for_cond_expr): Use integer_zerop function,
27887         that recognize not only zero-pointer, but zero-integer too.
27888
27889 2008-01-25  Ben Elliston  <bje@au.ibm.com>
27890
27891         PR other/22232
27892         * fixproto: Escape "." in sed expression that strips leading "./".
27893
27894 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
27895
27896         PR driver/34904
27897         * gcc.c (SWITCH_OK): Removed.
27898         (SWITCH_LIVE): Changed to bit.
27899         (SWITCH_FALSE): Likewise.
27900         (SWITCH_IGNORE): Likewise.
27901         (switchstr): Change live_cond to unsigned int.
27902         (process_command): Replace SWITCH_OK with 0.
27903         (do_self_spec): Likewise.
27904         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
27905         (give_switch): Likewise.
27906         (used_arg): Likewise.
27907         (do_spec_1): Set the SWITCH_IGNORE bit.
27908         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
27909         bits.  Set the SWITCH_LIVE bit.
27910
27911 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
27912
27913         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
27914
27915 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
27916
27917         PR tree-optimization/34472
27918         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
27919         parameter to a "bool *" and set *DATA to false if there is
27920         an unsafe access.  Do not delete the structure here.
27921         (check_cond_exprs): Delete it here instead.
27922         (check_cond_exprs, exclude_cold_structs): Do not increase
27923         I when removing a structure.
27924
27925 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
27926
27927         PR target/34856
27928         * config/i386/i386.c (ix86_expand_vector_init): Consider only
27929         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
27930
27931 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
27932
27933         PR middle-end/34934
27934         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
27935         a fixed vector for stack.
27936
27937 2008-01-24  Ben Elliston  <bje@au.ibm.com>
27938
27939         PR c++/25701
27940         * doc/gcc.texi (Software development): Add a direntry for g++.
27941
27942 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
27943
27944         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
27945         stale and straggling -fforce-addr comments above.
27946
27947         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
27948         define.
27949         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
27950         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
27951
27952 2008-01-23  Michael Matz  <matz@suse.de>
27953
27954         PR debug/34895
27955         * dwarf2out.c (force_type_die): Use modified_type_die instead of
27956         gen_type_die.
27957
27958 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
27959
27960         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
27961         malloc result type.
27962
27963 2008-01-23 Anatoly Sokolov <aesok@post.ru>
27964
27965         * config/avr/avr.c (avr_current_arch): New variable.
27966         (avr_arch_types): Add 'avr31' and 'avr51' entries.
27967         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
27968         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
27969         (avr_override_options): Init 'avr_current_arch'.
27970         (base_arch_s): Move from here...
27971         * config/avr/avr.h (base_arch_s): ... here. Add new members
27972         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
27973         'mega' to 'have_jmp_call'.
27974         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
27975         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
27976         macros.
27977         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
27978         architectures.
27979         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
27980         MULTILIB_MATCHES): Ditto.
27981
27982 2008-01-23  Richard Guenther  <rguenther@suse.de>
27983
27984         PR middle-end/31529
27985         * cgraphunit.c (cgraph_reset_node): Always mark the node
27986         not reachable if it is not queued already.
27987
27988 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
27989
27990         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
27991         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
27992         (cputype_selected): New static variable.
27993         (bfin_handle_option): Set it if -mcpu is used.
27994         (override_option): Select default set of workarounds if no cpu type
27995         selected on the command line.
27996         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27997
27998         From  Michael Frysinger  <michael.frysinger@analog.com>
27999         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
28000         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
28001
28002         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
28003         for bf547, bf523, bf524, and bf526.
28004         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
28005         bf526.
28006         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
28007         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
28008         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
28009         __ADSPBF547__ and __ADSPBF54x__ for bf547.
28010         * doc/invoke.texi (Blackfin Options): Document that
28011         -mcpu now accept bf547, bf523, bf524, and bf526.
28012
28013 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
28014
28015         PR rtl-optimization/34628
28016         * combine.c (try_combine): Stop and undo after the first combination
28017         if an autoincrement side-effect on the first insn has effectively
28018         been lost.
28019
28020 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
28021
28022         PR target/34529
28023         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
28024         Offset addresses are not valid for Altivec or paired float modes.
28025
28026 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
28027
28028         PR c++/34607
28029         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
28030         if DECL_INITIAL (decl) is error_mark_node.
28031
28032         PR c++/34914
28033         * c-common.c (handle_vector_size_attribute): Only allow
28034         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
28035         the same way as pointer, array etc. types.
28036         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
28037
28038         PR c++/34917
28039         * tree.c (build_type_attribute_qual_variant): Call
28040         build_qualified_type if attributes are equal, but quals are not.
28041
28042 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28043
28044         PR 32102
28045         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
28046         * flags.h (warn_strict_aliasing): Remove.
28047         (warn_strict_overflow): Remove.
28048         * opts.c (warn_strict_aliasing): Remove.
28049         (warn_strict_overflow): Remove.
28050         * c-opts.c (c_common_handle_option): -Wall only sets
28051         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
28052         (c_common_post_options): Give default values to -Wstrict-aliasing
28053         and -Wstrict-overflow if they are uninitialized.
28054         * common.opt (Wstrict-aliasing): Specify Var and Init.
28055         (Wstrict-overflow): Likewise.
28056
28057 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
28058
28059         PR rtl-optimization/26854
28060         PR rtl-optimization/34400
28061         PR rtl-optimization/34884
28062         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
28063         DF_RD->gen.
28064         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
28065         (df_rd_bb_info.expanded_lr_out): Deleted
28066         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
28067         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
28068         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
28069         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
28070         Removed code to allocate, initialize or free expanded_lr_out.
28071         (df_rd_bb_local_compute_process_def): Restructured to make more
28072         understandable.
28073         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
28074         sets if the sets are being trimmed.
28075
28076 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
28077
28078         PR bootstrap/32287
28079         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
28080         (as_vers): Likewise.
28081         * configure: Regenerated.
28082
28083 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28084
28085         PR middle-end/33092
28086         * tree-pass.h (pass_build_alias): New pass.
28087         * tree-ssa-alias.c (gate_build_alias): New.
28088         (pass_build_alias): New.
28089         * passes.c (init_optimization_passes): Add pass_build_alias after
28090         pass_create_structure_vars.
28091
28092 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
28093
28094         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
28095         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
28096         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
28097         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
28098         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
28099         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
28100         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
28101         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
28102         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
28103         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
28104         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
28105         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
28106         * config/s390/s390.md (FP_ALL): New mode iterator.
28107         (_d): New mode attribute.
28108         ("*signbit<mode>2>"): Changed mode of first operand.
28109         ("isinf<mode>2"): Changed mode of first operand.
28110         ("*TDC_insn"): Adaptation for DFP modes.
28111
28112 2008-01-22  Ben Elliston  <bje@au.ibm.com>
28113
28114         * tree.c (check_qualified_type): Improve function description.
28115
28116 2008-01-21  Jason Merrill  <jason@redhat.com>
28117
28118         PR c++/34196
28119         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
28120         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
28121         if it is set.
28122
28123 2008-01-21  DJ Delorie  <dj@redhat.com>
28124
28125         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
28126         return zero.
28127
28128 2008-01-21  Richard Guenther  <rguenther@suse.de>
28129
28130         PR middle-end/34856
28131         * tree-cfg.c (verify_expr): Allow all invariant expressions
28132         instead of just constant class ones as reference argument.
28133         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
28134         like any other constant.
28135         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
28136
28137 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
28138
28139         * regmove.c (fixup_match_1): Update call crossed frequencies.
28140
28141 2008-01-21  Richard Guenther  <rguenther@suse.de>
28142
28143         PR c/34885
28144         * tree-inline.c (setup_one_parameter): Deal with mismatched
28145         types using a VIEW_CONVERT_EXPR.
28146
28147 2008-01-21  Alon Dayan  <alond@il.ibm.com>
28148             Olga Golovanevsky  <olga@il.ibm.com>
28149
28150         PR tree-optimization/34701
28151         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
28152         when the structure size is not a power of 2.
28153
28154 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28155
28156         * doc/install.texi: Add doc for --enable-checking=df.
28157
28158 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
28159
28160         PR rtl-optimization/34808
28161         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
28162
28163 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
28164
28165         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
28166         input.
28167
28168 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
28169
28170         PR rtl-optimization/26854
28171         PR rtl-optimization/34400
28172         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
28173         DF_RD->gen.
28174         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
28175         (df_rd_bb_info.expanded_lr_out): New.
28176         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
28177         * loop_iv.c (iv_analysis_loop_init): Ditto.
28178         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
28179         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
28180         Added code to allocate, initialize or free expanded_lr_out.
28181         (df_rd_bb_local_compute_process_def): Restructured to make
28182         more understandable.
28183         (df_rd_confluence_n): Add code to do nothing with fake edges and
28184         code to no apply invalidate_by_call sets if the sets are being trimmed.
28185         (df_lr_local_finalize): Renamed to df_lr_finalize.
28186         (df_live_local_finalize): Renamed to df_live_finalize.
28187
28188 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
28189
28190         PR target/34831
28191         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
28192         deciding whether to use reciprocal instructions.
28193
28194 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
28195
28196         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
28197         dwarf2out_note_section_used if cold_text_section is NULL.
28198
28199 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
28200
28201         PR gcov-profile/34610
28202         * tree-cfg.c (make_edges): Mark both outgoing edges from
28203         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
28204         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
28205         from OMP_FOR and OMP_CONTINUE outgoing edges.
28206
28207         * tree-profile.c (tree_profiling): Return early if
28208         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
28209         at the end.
28210         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
28211         from cfun to child_cfun.
28212         * function.h (struct function): Add after_tree_profile bit.
28213
28214 2008-01-19 Anatoly Sokolov <aesok@post.ru>
28215
28216         * config/avr/avr.S (_exit): Disable interrupt.
28217
28218 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
28219             Steven Bosscher  <stevenb.gcc@gmail.com>
28220
28221         PR rtl-optimization/26854
28222         PR rtl-optimization/34400
28223         * df-problems.c (df_live_scratch): New scratch bitmap.
28224         (df_live_alloc): Allocate df_live_scratch when doing df_live.
28225         (df_live_reset): Clear the proper bitmaps.
28226         (df_live_bb_local_compute): Only process the artificial defs once
28227         since the order is not important.
28228         (df_live_init): Init the df_live sets only with the variables
28229         found live by df_lr.
28230         (df_live_transfer_function): Use the df_lr sets to prune the
28231         df_live sets as they are being computed.
28232         (df_live_free): Free df_live_scratch.
28233
28234 2008-01-18  Ian Lance Taylor  <iant@google.com>
28235
28236         * common.opt: Add fmerge-debug-strings.
28237         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
28238         flag_merge_debug_strings rather than flag_merge_constants.
28239         * doc/invoke.texi (Option Summary): Mention
28240         -fmerge-debug-strings.
28241         (Debugging Options): Document -fmerge-debug-strings.
28242
28243 2008-01-18  Ian Lance Taylor  <iant@google.com>
28244
28245         PR c++/33407
28246         * tree.h (DECL_IS_OPERATOR_NEW): Define.
28247         (struct tree_function_decl): Add new field operator_new_flag.
28248         * tree-inline.c (expand_call_inline): When inlining a call to
28249         operator new, force the return value to go into a variable, and
28250         set DECL_NO_TBAA_P on that variable.
28251         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
28252
28253 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
28254
28255         PR debug/34484
28256         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
28257         DWARF2_DEBUGGING_INFO.
28258         (dwarf2out_note_section_used): Ditto.  Add prototype.
28259         (have_multiple_function_sections, text_section_used,
28260         cold_text_section_used, *cold_text_sections): Move declarations
28261         before their uses.
28262
28263 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
28264
28265         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
28266         field and add signal_ra.
28267         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
28268         assignments to frame state pc.  Move end of stack check after
28269         MD_FALLBACK_FRAME_STATE_FOR.
28270         (uw_update_context_1): Use frame state signal_regs if set, instead
28271         of checking signal_frame flag.
28272         (uw_update_context): Use frame state signal_ra if set.
28273         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
28274         * config/xtensa/linux-unwind.h: New file.
28275
28276 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
28277
28278         * modulo-sched.c (get_sched_window): Fix comment typo.
28279
28280 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
28281
28282         PR tree-optimization/34648
28283         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
28284
28285 2008-01-17  Anatoly Sokolov <aesok@post.ru>
28286
28287         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
28288         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
28289
28290 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
28291
28292         PR rtl-optimization/34400
28293         * df-core.c (df_worklist_dataflow_overeager,
28294         df_worklist_dataflow_doublequeue): New functions.
28295         (df_worklist_dataflow): Two different worklist solvers.
28296         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
28297         New param.
28298
28299 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28300
28301         PR testsuite/34821
28302         * doc/invoke.texi: Document the dependence on pthread for fopenmp
28303         and ftree-parallelize-loops.
28304
28305 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
28306
28307         PR rtl-optimization/34826
28308         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
28309
28310 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
28311
28312         * global.c (find_reg): Mark the eh regs as used if necessary.
28313         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
28314         * ra.h (struct allocno): no_eh_reg field added.  Changed
28315         no_stack_reg type to bitfield.
28316
28317 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
28318
28319         * tree.c (substitute_in_expr): Add missing 'break'.
28320
28321 2008-01-17  Richard Guenther  <rguenther@suse.de>
28322
28323         PR tree-optimization/34825
28324         * tree-ssa-math-opts.c (is_division_by): Do not recognize
28325         x / x as division to handle.
28326
28327 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28328
28329         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
28330         "-pthread" is specified.
28331         * pa-hpux11.h (LIB_SPEC): Likewise.
28332
28333 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
28334             Peter Bergner  <bergner@vnet.ibm.com>
28335
28336         PR rtl-optimization/33796
28337         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
28338
28339 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28340
28341         PR libgfortran/34699
28342         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
28343         static links.
28344         * pa-hpux10.h (LINK_SPEC): Likewise.
28345         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
28346
28347 2008-01-16  Richard Guenther  <rguenther@suse.de>
28348
28349         PR middle-end/32628
28350         * fold-const.c (fold_convert_const_int_from_int): Do not
28351         set overflow if that occured only because of a sign extension
28352         change when converting from/to a sizetype with the same
28353         precision and signedness.
28354
28355 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
28356
28357         PR debug/34249
28358         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
28359         location address to the correct place.  Update copyright year.
28360
28361 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28362
28363         * lambda-code.c (lambda_transform_legal_p): Handle the case of
28364         no dependences in the dependence_relations vector.
28365
28366 2008-01-16  Jan Hubicka  <jh@suse.cz>
28367
28368         PR rtl-optimization/31396
28369         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
28370         * cfg.c (dump_reg_info): Print it.
28371         * regs.h (struct reg_info_t): add freq_calls_crossed.
28372         (REG_FREQ_CALLS_CROSSED): New macro.
28373         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
28374         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
28375         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
28376         regmove_optimize): Update call crossed frequencies.
28377         * local-alloc.c (struct qty): Add freq_calls_crossed.
28378         (alloc_qty): Copute freq_calls_crossed.
28379         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
28380         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
28381         * ra.h (struct allocno): Add freq_calls_crossed.
28382
28383 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28384
28385         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
28386         libgomp when compiling with ftree-parallelize-loops.
28387         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
28388
28389 2008-01-16  Richard Guenther  <rguenther@suse.de>
28390
28391         PR tree-optimization/34769
28392         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
28393         * tree.c (int_cst_value): Instead make this function more
28394         permissive in what it accepts as valid input.  Document this
28395         function always sign-extends the value.
28396
28397 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
28398             Richard Guenther  <rguenther@suse.de>
28399
28400         PR c/34668
28401         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
28402         (gimple_fold_indirect_ref_rhs): ... this.
28403         (gimple_fold_indirect_ref): New function with foldings
28404         that preserve lvalueness.
28405         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
28406         * tree-flow.h (gimple_fold_indirect_ref): Declare.
28407         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
28408         to fold an INDIRECT_REF, fall back to the old use of
28409         fold_indirect_ref_1.
28410
28411 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28412
28413         * tree-data-ref.c (subscript_dependence_tester_1): Call
28414         free_conflict_function.
28415         (compute_self_dependence): Same.
28416
28417 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
28418
28419         PR debug/34249
28420         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
28421         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
28422         function global.
28423         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
28424         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
28425         for DWARF2_UNWIND_INFO targets.
28426
28427 2008-01-16  Richard Guenther  <rguenther@suse.de>
28428
28429         PR c/34768
28430         * c-typeck.c (common_pointer_type): Do not merge inconsistent
28431         type qualifiers for function types.
28432
28433 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
28434
28435         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
28436         loop_iterator li from previous commit.
28437
28438 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
28439
28440         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
28441
28442 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
28443
28444         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
28445         (parallelize_loops): Don't parallelize irreducible components.
28446
28447 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28448
28449         PR c++/24924
28450         * c-opts (c_common_post_options): Do not enable CPP
28451         flag_pedantic_errors by default.
28452
28453 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
28454
28455         PR rtl-optimization/31944
28456         * cse.c (remove_pseudo_from_table): New function.
28457         (merge_equiv_classes): Use above function to remove pseudo-registers.
28458         (invalidate): Likewise.
28459
28460 2008-01-13  Richard Guenther  <rguenther@suse.de>
28461
28462         PR middle-end/34601
28463         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
28464         instead of TYPE_MODE to deal with calls from expand_one_error_var.
28465
28466 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
28467
28468         * gcse.c (cprop_jump): Call validate_unshare_change instead of
28469         validate_change to unshare the source of the PC set.
28470
28471 2008-01-12  Jan Hubicka  <jh@suse.cz>
28472
28473         PR middle-end/32135
28474         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
28475         references above array bounds.  This might trigger bounds checks for
28476         pointers to arrays.
28477
28478 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
28479
28480         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
28481         new_replaceable_dependencies.
28482
28483 2008-01-12  Doug Kwan  <dougkwan@google.com>
28484
28485         * c-decl.c (grokdeclarator): Use OPT_Wignored_qualifiers
28486         instead of OPT_Wreturn_type in warning due to ignored return type
28487         qualifiers.
28488         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
28489         options included in -Wextra.
28490         * c.opt: New option -Wignored_qualifiers.
28491         * doc/invoke.texi (Warning Options, -Wextra): Add new option
28492         -Wignore_qualifiers.
28493         (-Wignored-qualifiers): Document.
28494         (-Wreturn-type): Remove description of functionality now handled
28495         by -Wignored-qualifiers.
28496
28497 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
28498
28499         PR ada/33788
28500         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
28501         NOP_EXPR if it is between integral types with the same precision.
28502
28503 2008-01-12  Jan Hubicka  <jh@suse.cz>
28504
28505         PR other/28023
28506         * invoke.texi (max-inline-recursive-depth): Fix default value.
28507
28508 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
28509
28510         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
28511         correct type.
28512
28513 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
28514
28515         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
28516
28517 2008-01-11  James E. Wilson  <wilson@specifix.com>
28518
28519         PR target/26015
28520         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
28521
28522 2008-01-11  Anatoly Sokolov <aesok@post.ru>
28523
28524         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
28525         save/restore frame pointer register and don't use 'call-prologues'
28526         optimization in function with "OS_task" attribute.
28527
28528 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
28529
28530         PR middle-end/31309
28531         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
28532         when copying to memory.
28533
28534 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
28535
28536         PR rtl-optimization/30905
28537         * cfgcleanup.c: Include dce.h
28538         (crossjumps_occured): New global variable.
28539         (try_crossjump_bb): Exit loop after finding a fallthru edge.
28540         If something changed, set crossjumps_occured to true.
28541         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
28542         Don't add/remove fake edges to exit here...
28543         (cleanup_cfg): ...but do it here, when crossjumping.
28544         Run a fast DCE when successful crossjumps occured in the latest
28545         iteration of try_optimize_cfg.
28546
28547 2008-01-11  Richard Guenther  <rguenther@suse.de>
28548
28549         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
28550         (struct vn_unary_op_s): Likewise.
28551         (vn_reference_insert): Free old reference on hash collision.
28552
28553 2008-01-10  Raksit Ashok  <raksit@google.com>
28554
28555         PR rtl-optimization/27971
28556         * combine.c (find_split_point): Split PLUS expressions which are
28557         inside a MEM rtx, and whose first operand is complex.
28558
28559 2008-01-10  DJ Delorie  <dj@redhat.com>
28560
28561         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
28562         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
28563         (m32c_hard_regno_ok): Call the underlying function.
28564
28565 2008-01-10  Richard Guenther  <rguenther@suse.de>
28566
28567         PR middle-end/34683
28568         * tree-cfg.c (tree_merge_blocks): Do not go through the
28569         full-blown folding and stmt updating path if we just deal
28570         with virtual operands.
28571         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
28572         test for abnormal SSA_NAMEs.
28573
28574 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
28575
28576         PR middle-end/34641
28577         * reload.c (push_reload): Add assertions.  All constants from
28578         reg_equiv_constant should have been used for replacing the respective
28579         pseudo earlier.
28580         (find_reloads_address): Invoke find_reloads_address_part for
28581         constant taken from the reg_equiv_constant array.
28582
28583 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
28584
28585         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
28586         field (valnum) the first in the struct.  Replace bools with
28587         unit bit fields.
28588
28589 2008-01-10  Richard Guenther  <rguenther@suse.de>
28590
28591         PR tree-optimization/34651
28592         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
28593         types and ordering for masking and converting.
28594
28595 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
28596
28597         PR tree-optimization/34017
28598         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
28599         also for PHI_NODE expressions.
28600
28601 2008-01-09  Jan Hubicka  <jh@suse.cz>
28602
28603         PR tree-optimization/34708
28604         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
28605         based on number of case labels.
28606         (init_inline_once): Remove switch_cost.
28607         * tree-inline.h (eni_weights_d): Remove switch_cost.
28608
28609 2008-01-09  Richard Guenther  <rguenther@suse.de>
28610         Andrew Pinski  <andrew_pinski@playstation.sony.com>
28611
28612         PR middle-end/30132
28613         * gimplify.c (gimplify_cond_expr): Do not create an addressable
28614         temporary if an rvalue is ok or an lvalue is not required.
28615
28616 2008-01-09  Richard Guenther  <rguenther@suse.de>
28617
28618         PR middle-end/34458
28619         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
28620         adjust return type.
28621
28622 2008-01-09  Richard Guenther  <rguenther@suse.de>
28623
28624         PR middle-end/34679
28625         * tree.c (host_integerp): Check for sizetype only if the
28626         type is an integer type.
28627
28628 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
28629
28630         PR debug/26364
28631         * opts.c (decode_options): Disable inlining of functions called
28632         once if not in unit-at-a-time mode.
28633
28634 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
28635
28636         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
28637
28638 2008-01-08  Richard Guenther  <rguenther@suse.de>
28639
28640         PR middle-end/31863
28641         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
28642         out early if the result will be unused.
28643
28644 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
28645
28646         PR target/34709
28647         Revert:
28648
28649         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28650         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28651         for TARGET_RECIP.
28652
28653 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
28654
28655         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
28656         for vectorization tuned.
28657
28658 2008-01-08  Richard Guenther  <rguenther@suse.de>
28659
28660         PR tree-optimization/34683
28661         * tree-ssa-operands.c (operand_build_cmp): Export.
28662         * tree-ssa-operands.h (operand_build_cmp): Declare.
28663         * tree-vn.c (vuses_compare): Remove.
28664         (sort_vuses): Use operand_build_cmp.
28665         (sort_vuses_heap): Likewise.
28666         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
28667         to re-use old VEC if available.  Do not sort already sorted VUSEs.
28668         (vdefs_to_vec): Do not sort already sorted VDEFs.
28669
28670 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
28671
28672         PR middle-end/34694
28673         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
28674
28675 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
28676
28677         PR target/34702
28678         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
28679         limitations of reciprocal sequences on x86 targets.
28680
28681 2008-01-08  Richard Guenther  <rguenther@suse.de>
28682
28683         PR tree-optimization/34683
28684         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
28685
28686 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
28687
28688         PR target/34622
28689         * config/darwin.c (darwin_mergeable_string_section): Don't use
28690         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
28691
28692 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
28693
28694         PR target/34682
28695         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
28696         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
28697         predicates of op0 and op1 to register_operand.
28698         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
28699         expander using X87MODEF mode iterator.  Change predicates of
28700         op0 and op1 to register_operand.
28701         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
28702         corresponding patterns and macroize using MODEF macro.  Change
28703         predicates of op0 and op1 to register_operand and remove
28704         "m" constraint. Disparage "r" alternative with "!".
28705         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
28706         macroize using X87MODEF macro.  Change predicates of op0 and op1
28707         to register_operand and remove "m" constraint.  Disparage "r"
28708         alternative with "!".
28709         (absneg splitter with memory operands): Remove.
28710         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
28711         patterns and macroize using X87MODEF mode iterator.
28712         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
28713         Change predicate of op1 to register_operand.
28714         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
28715         for memory operands.
28716
28717 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
28718
28719         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
28720
28721 2008-01-07  Richard Guenther  <rguenther@suse.de>
28722
28723         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
28724         fields.
28725
28726 2008-01-07  Richard Guenther  <rguenther@suse.de>
28727
28728         PR tree-optimization/34683
28729         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
28730         VOPs of the needed size to save memory.  Use VEC_quick_push
28731         to save compile-time.
28732         (vdefs_to_vec): Likewise.
28733
28734 2008-01-07  Sa Liu  <saliu@de.ibm.com>
28735
28736         * config/spu/spu.md (divdf3): Genetate inline code for double
28737         division.  The implementation doesn't handle INF or NAN, therefore it
28738         only applies when -ffinite-math-only is given.
28739
28740 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
28741
28742         PR libstdc++/34680
28743         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
28744         * doc/cpp.texi ([Common Predefined Macros]): Document.
28745
28746 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
28747
28748         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
28749         order to use commutative addition instead of subtraction.
28750
28751 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
28752             Mircea Namolaru  <namolaru@il.ibm.com>
28753             Vladimir Yanovsky  <yanov@il.ibm.com>
28754             Revital Eres  <eres@il.ibm.com>
28755
28756         PR tree-optimization/34263
28757         * tree-outof-ssa.c (process_single_block_loop_latch,
28758         contains_tree_r): New functions.
28759         (analyze_edges_for_bb): Call process_single_block_loop_latch
28760         function to empty single-basic-block latch block if possible.
28761
28762 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28763
28764         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28765         for TARGET_RECIP.
28766         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
28767
28768 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
28769
28770         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
28771
28772 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
28773
28774         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
28775
28776 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
28777
28778         PR tree-optimization/34618
28779         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
28780         flag from T.
28781
28782 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28783
28784         PR target/34673
28785         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
28786         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
28787         Update copyright year.
28788
28789         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
28790         Update copyright year.
28791         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
28792         using NR fixup.
28793
28794 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
28795
28796         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
28797         edge does not point to current bb before changing need_assert.
28798
28799 2008-01-04  Richard Guenther  <rguenther@suse.de>
28800
28801         PR middle-end/34029
28802         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
28803         for verifying purposes if they are is_gimple_min_invariant.
28804
28805 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
28806
28807         PR tree-optimization/34448
28808         PR tree-optimization/34465
28809         * gimplify.c (gimplify_init_constructor): Add new parameter
28810         notify_temp_creation.  Use it.
28811         (gimplify_modify_expr_rhs): Take volatiles into account when
28812         optimizing constructors.
28813         Do not optimize constructors if gimplify_init_constructor will dump to
28814         memory.
28815         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
28816         * gcc.c-torture/compile/pr34448.c: New.
28817
28818 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
28819
28820         PR gcov-profile/34609
28821         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
28822         return_slot if result is TREE_ADDRESSABLE.
28823
28824 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
28825
28826         * config/mips/mips.md (sqrt_condition): Tweak comment.
28827         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
28828
28829 2008-01-03  Tom Tromey  <tromey@redhat.com>
28830
28831         PR c/34457
28832         * c-common.c (c_type_hash): Handle VLAs.
28833
28834 2008-01-03  Jan Hubicka  <jh@suse.cz>
28835
28836         PR tree-optimization/31081
28837         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
28838         0 when inlining and not inlining to first basic block.
28839         (remap_decl): When var is initialized to 0, don't set default_def.
28840         (expand_call_inline): Set entry_bb.
28841         * tree-inline.h (copy_body_data): Add entry_bb.
28842
28843 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
28844
28845         PR c++/34619
28846         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
28847         before returning.
28848
28849         PR tree-optimization/29484
28850         * tree-inline.c (inline_forbidden_p_2): New function.
28851         (inline_forbidden_p): Disallow inlining if some static var
28852         has an address of a local LABEL_DECL in its initializer.
28853         * doc/extend.texi (Labels as Values): Document &&foo behaviour
28854         vs. inlining.
28855
28856 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
28857
28858         PR tree-optimization/34635
28859         * tree-data-ref.c (add_other_self_distances): Make sure that the
28860         evolution step is constant.
28861
28862 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
28863
28864         PR middle-end/34608
28865         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
28866
28867 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
28868
28869         * tree-sra.c (scalarize_init): Insert the generate_element_init
28870         statements after the generate_element_zero statements.
28871
28872 2008-01-02  Richard Guenther  <rguenther@suse.de>
28873
28874         PR middle-end/34093
28875         PR middle-end/31976
28876         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
28877         for very large number of operands instead of ICEing.
28878
28879 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
28880
28881         PR target/34013
28882         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
28883         while stack probing.
28884
28885 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
28886
28887         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
28888         in C++0x mode.
28889
28890 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
28891
28892         PR libmudflap/26442
28893         * tree-mudflap.c (mx_register_decls): Guard warning by
28894         !DECL_ARTIFICIAL check.
28895
28896 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
28897
28898         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
28899         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
28900         sse5_perm<mode>): Fix constraints.