OSDN Git Service

c2fda35bdacd864383cf87f41ec24df3c01c5768
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-12-24  Kazu Hirata  <kazu@codesourcery.com>
2
3         * Makefile.in (GTFILES): Add $(srcdir)/expr.h.
4         * expr.h: Fix the declaration of block_clear_fn.
5
6 2008-12-23  Andrew Pinski  <pinski@gmail.com>
7
8         PR middle-end/38590
9         * fold-const.c (fold_binary): Call fold_convert on arguments to
10         fold_build2 for negative divide optimization.
11
12 2008-12-23  Jakub Jelinek  <jakub@redhat.com>
13
14         PR middle-end/31150
15         * dse.c (struct store_info): Add const_rhs field.
16         (clear_rhs_from_active_local_stores): Clear also const_rhs.
17         (record_store): Try also cselib_expand_value_rtx to get a constant.
18         (find_shift_sequence, get_stored_val): Use const_rhs instead of
19         rhs if worthwhile.
20         * cselib.c (cselib_record_sets): If !cselib_record_memory and
21         there is just one set from read-only MEM, look at REG_EQUAL or
22         REG_EQUIV note.
23
24         * dse.c (struct store_info): Add redundant_reason field.
25         (record_store): When storing the same constant as has been stored by
26         an earlier store, set redundant_reason field to the earlier store's
27         insn_info_t.  Don't delete cannot_delete insns.
28         (find_shift_sequence): Remove read_info argument, add read_mode
29         and require_cst arguments.  Return early if require_cst and
30         constant wouldn't be returned.
31         (get_stored_val): New function.
32         (replace_read): Use it.
33         (scan_insn): Put even cannot_delete insns with exactly 1 store
34         into active_local_stores.
35         (dse_step1): Don't delete cannot_delete insns.  Remove redundant
36         constant stores if contains_cselib_groups and earlier store storing
37         the same value hasn't been eliminated.
38         (dse_step6): Renamed to dse_step7.  New function.
39         (dse_step7): Renamed from dse_step6.
40         (rest_of_handle_dse): Call dse_step6 and dse_step7 at the end.
41         * cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs
42         into CONST unless really necessary.  Handle SUBREG, unary,
43         ternary, bitfield and compares specially, to be able to simplify
44         operations on constants.
45         (expand_loc): Try to optimize LO_SUM.
46
47         * dse.c (get_call_args): New function.
48         (scan_insn): Don't handle BUILT_IN_BZERO.  For memset, attempt
49         to get call arguments and if successful and both len and val are
50         constants, handle the call as (mem:BLK) (const_int) store.
51
52         * dse.c (struct store_info): Add is_large bool field, change
53         positions_needed into a union of a bitmask and bitmap + count.
54         (free_store_info): Free bitmap if is_large.
55         (set_usage_bits): Don't look at stores where
56         offset + width >= MAX_OFFSET.
57         (set_position_unneeded, set_all_positions_unneeded,
58         any_positions_needed_p, all_positions_needed_p): New static inline
59         functions.
60         (record_store): Handle BLKmode stores of CONST_INT, if
61         MEM_SIZE is set on the MEM.  Use the new positions_needed
62         accessor inlines.
63         (replace_read): Handle reads from BLKmode CONST_INT stores.
64         (check_mem_read_rtx): Use all_positions_needed_p function.
65         (dse_step1): Free large positions_needed bitmaps and clear is_large.
66
67         * dse.c (struct store_info): Change begin and end types to
68         HOST_WIDE_INT.
69
70         * dse.c (record_store): Fix check for unused store.
71
72         * expr.c (block_clear_fn): No longer static.
73         * expr.h (block_clear_fn): Declare.
74         * dse.c (scan_insn): Memset and bzero can just read their arguments.
75
76         * config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
77         argument.  If ORIG_VALUE is const0_rtx and COUNT is constant,
78         set MEM_SIZE on DESTMEM.
79         (ix86_expand_setmem): Adjust callers.
80
81         PR target/38488
82         * expr.h (get_mem_align_offset): New prototype.
83         * emit-rtl.c (get_mem_align_offset): New function.
84         * config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE
85         correctly.
86         (expand_constant_movmem_prologue, expand_constant_setmem_prologue):
87         New functions.
88         (ix86_expand_movmem): Optimize if COUNT_EXP
89         is constant, desired_align > align and dst & (desired_align - 1)
90         is computable at compile time.
91         (ix86_expand_setmem): Likewise.
92
93         * builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet
94         resolved SAVE_EXPR or POINTER_PLUS_EXPR.
95
96 2008-12-22  Uros Bizjak  <ubizjak@gmail.com>
97
98         * config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro.
99
100         PR target/34571
101         * config/alpha/predicates.md (symbolic_operand): Return 1 for a
102         label_ref with an offset.
103
104 2008-12-21  Andrew Pinski  <pinskia@gmail.com>
105
106         PR target/38300
107         * configure: Regenerate.
108
109 2008-12-21  Richard Sandiford  <rdsandiford@googlemail.com>
110
111         * config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand,
112         changing operand 1 to a pmode_register_operand.
113         (mips_lhx, mips_lwx): Likewise.
114         (mips_lbux_<mode>, mips_lhx_<mode>, mips_lwx_<mode>): New patterns.
115         * config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of
116         the value from the argument expression.
117
118 2008-12-21  Jan Hubicka  <jh@suse.cz>
119             Kai Tietz <kai.tietz@onevision.com>
120
121         * i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant.
122         (call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv,
123         call_value_1_rex64_ms_sysv): New patterns.
124         * i386.c (function_arg_ms_64): Pass magical value of -2 as callarg.
125         (ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls.
126
127 2008-12-21  Uros Bizjak  <ubizjak@gmail.com>
128
129         * config/alpha/alpha.c (alpha_pad_noreturn): New static function.
130         (alpha_reorg): Call alpha_pad_noreturn.
131
132 2008-12-21  Denis Chertykov  <denisc@overta.ru>
133
134         * config/avr/avr.md ("andsi3"): Fix wrong cc attribute.
135
136 2008-12-20  Eric Botcazou  <ebotcazou@adacore.com>
137
138         PR target/37610
139         * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no'
140         if readelf is nowhere to be found.
141         * configure: Regenerate.
142
143 2008-12-19  Andrew Haley  <aph@redhat.com>
144
145         * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c:
146         Fix comments.
147
148 2008-12-19  Richard Earnshaw  <rearnsha@arm.com>
149
150         PR target/38548
151         * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3.
152         * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction.
153
154 2008-12-19  Richard Earnshaw  <rearnsha@arm.com>
155
156         PR bootstrap/38578
157         * arm.c (load_multiple_sequence): Initialize ORDER array.
158         (store_multiple_sequence): Likewise.
159         (output_move_double): Make reg0 unsigned.
160         (arm_output_epilogue): Make amount unsigned.
161         (arm_expand_prologue): Move declaration of dwarf before block
162         statements.
163
164 2008-12-19  Steve Ellcey  <sje@cup.hp.com>
165
166         * df-scan.c (df_hard_reg_init): Move declaration of i.
167
168 2008-12-19  Jakub Jelinek  <jakub@redhat.com>
169
170         PR bootstrap/37739
171         * config.host: For powerpc*-*-linux* host with 32-bit GCC,
172         use rs6000/x-linux-relax snippet if ld is new enough,
173         otherwise use rs6000/x-linux-O1.
174         * config/rs6000/x-linux-relax: New file.
175         * config/x-cflags-O1: New file.
176
177 2008-12-18  Joseph Myers  <joseph@codesourcery.com>
178
179         * config/rs6000/rs6000.c (rs6000_generate_compare): Condition
180         choice of e500 comparison instructions on flag_finite_math_only &&
181         !flag_trapping_math, not flag_unsafe_math_optimizations.
182         * config/rs6000/rs6000.md (abstf2): Condition choice of e500
183         instructions on flag_finite_math_only && !flag_trapping_math, not
184         flag_unsafe_math_optimizations.
185         (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS.
186         * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr,
187         tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr,
188         cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr,
189         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
190         Condition choice of comparison instructions on
191         flag_finite_math_only && !flag_trapping_math, not
192         flag_unsafe_math_optimizations.
193
194 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
195
196         * configure: Regenerate.
197
198 2008-12-18  Jan Hubicka  <jh@suse.cz>
199             Kai Tietz <kai.tietz@onevision.com>
200
201         * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
202         (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
203         df_invalidated_by_call to invalidated_by_call_regset.
204         * df.h (df_invalidated_by_call): Remove.
205         * regclass.c (regs_invalidated_by_call_regset, persistent_obstack):
206         New variables.
207         (init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
208         (globalize_reg): Likewise.
209         * df-problems.c (df_rd_local_compute, df_lr_confluence_n,
210         df_byte_lr_alloc): Rename df_invalidated_by_call to
211         invalidated_by_call_regset.
212         * basic-block.h (regs_invalidated_by_call_regset): Declare.
213
214 2008-12-18  Jan Hubicka  <jh@suse.cz>
215             Kai Tietz <kai.tietz@onevision.com>
216
217         * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed.
218
219 2008-12-18  Jan Hubicka  <jh@suse.cz>
220             Kai Tietz <kai.tietz@onevision.com>
221
222         * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current
223         function ABI.
224         * i386.c (ix86_call_abi_override): Do not trigger target re-init and
225         do not try to modify call used regs.
226         (ix86_maybe_switch_abi): New function.
227         (TARGET_EXPAND_TO_RTL_HOOK): New macro.
228
229 2008-12-18  Kenneth Zadeck <zadeck@naturalbridge.com>
230
231         PR rtl-optimization/37922
232         * dse.c (bb_info): Added regs_live field.
233         (look_for_hardregs): New function.
234         (replace_read): Added regs_live parameter and code to check that
235         shift sequence does not clobber live hardregs.
236         (check_mem_read_rtx): Added parameter to replace_read.
237         (dse_step1): Added regs_live bitmap and initialize it.
238         (rest_of_handle_dse): Added DF_NOTES problem and earlier call to
239         df_analyze.
240         * df-problems.c Renamed to df_simulate_initialize_backwards.
241         (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
242         (df_simulate_artificial_refs_at_top): Renamed to
243         df_simulate_finalize_backwards.
244         (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
245         df_simulate_finalize_backwards): New functions.
246         * df.h (df_simulate_artificial_refs_at_end): Renamed to
247         df_simulate_initialize_backwards.
248         (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
249         (df_simulate_artificial_refs_at_top): Renamed to
250         df_simulate_finalize_backwards.
251         (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
252         df_simulate_finalize_backwards): New functions.
253         * ra-conflict.c (global_conflicts): Renamed
254         df_simulate_artificial_refs_at_end to
255         df_simulate_initialize_backwards.
256         * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
257         df_simulate_one_insn_backwards.
258         * ifcvt.c (dead_or_predicable): Renamed
259         df_simulate_artificial_refs_at_end to
260         df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
261         df_simulate_one_insn_backwards.
262         * recog.c (peephole2_optimize): Ditto.
263         * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.
264
265 2008-12-18  Jakub Jelinek  <jakub@redhat.com>
266
267         PR middle-end/38533
268         * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
269         (rewrite_expr_tree): Add moved argument, move stmts together if
270         needed.  Call remove_visited_stmt_chain.
271         (linearize_expr_tree): Don't move stmts here.
272         (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
273         Adjust rewrite_expr_tree caller.
274
275         PR middle-end/38505
276         * tree-ssa.c (useless_type_conversion_p_1): Return
277         false if inner_type is incomplete and outer_type is complete.
278
279 2008-12-17  Sebastian Pop  <sebastian.pop@amd.com>
280
281         * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL
282         dependences and the configure options.
283         (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib,
284         --with-ppl-lib, --with-cloog-incude, --with-ppl-include.
285
286 2008-12-17  H.J. Lu  <hongjiu.lu@intel.com>
287
288         PR middle-end/38556
289         * calls.c (expand_call): Check outgoing_reg_parm_stack_space
290         only if REG_PARM_STACK_SPACE is defined.
291
292 2008-12-17  Jan Hubicka  <jh@suse.cz>
293             Kai Tietz <kai.tietz@onevision.com>
294
295         * calls.c (expand_call): Do not sibcall if
296         outgoing_reg_parm_stack_space does not match.
297
298 2008-12-16  Anatoly Sokolov  <aesok@post.ru>
299
300         * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
301         atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
302         devices.
303         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
304         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
305
306 2008-12-16  Hariharan Sandanagobalane <hariharan@picochip.com>
307
308         PR target/38842
309         * config/picochip/picochip.opt (mae): Squeezed the comments onto one
310         line.
311
312 2008-12-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
313
314         * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
315         supports hidden.
316         * configure: Regenerate.
317
318 2008-12-16  Richard Earnshaw  <rearnsha@arm.com>
319
320         PR target/37436
321         * arm.c (arm_legitimate_index): Only accept addresses that are in
322         canonical form.
323         * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
324         * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
325         for operand1.
326         (extendqisi2): Likewise.
327         (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
328         predicate for operand1.
329         
330 2008-12-15  Adam Nemet  <anemet@caviumnetworks.com>
331
332         * config/mips/mips.c (mips_output_conditional_branch): Assert that
333         openrands[1] is a CODE_LABEL.
334
335 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
336
337         * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
338         the result of mips_prepare_builtin_target.
339
340 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
341
342         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
343         if TARGET_ABICALLS is true.
344
345 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
346
347         * config/mips/mips.md (move_doubleword_fpr<mode>): Use
348         TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
349
350 2008-12-15  Hariharan Sandanagobalane <hariharan@picochip.com>
351
352         * config/picochip/picochip.c (picochip_override_options): Disable CFI
353         asm and change the signature of brev and byteSwap functions to use
354         unsigned values.
355         * config/picochip/picochip.md (commsTestPort): This is a complex
356         instruction and should not be vliwed. Don't set insn type.
357
358 2008-12-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
359         * config/s390/s390.c (s390_swap_cmp): New function.
360         (s390_non_addr_reg_read_p): New function.
361         (s390_z10_optimize_cmp): New function.
362         (s390_reorg): Added call to s390_optimize_cmp.
363         * config/s390/s390.md (nop1): New insn.
364
365 2008-12-12  Rainer Emrich  <r.emrich@de.tecosim.com>
366
367         PR bootstrap/38383
368         * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
369         for the milli.a library.
370
371 2008-12-12  Andrew Pinski  <andrew_pinskia@playstation.sony.com>
372             Peter Bergner <bergner@vnet.ibm.com>
373
374         PR target/24779
375         * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
376         TOC into the call pattern.
377         (call_indirect_aix64): Likewise.
378         (call_value_indirect_aix32): Likewise.
379         (call_value_indirect_aix64): Likewise.
380         (call_indirect_nonlocal_aix32_internal): New insn and split patterns
381         to split off the load of the TOC.
382         (call_indirect_nonlocal_aix32): Enable only after reload.
383         (call_indirect_nonlocal_aix64_internal): New insn and split patterns
384         to split off the load of the TOC.
385         (call_indirect_nonlocal_aix64): Enable only after reload.
386         (call_value_indirect_nonlocal_aix32_internal): New insn and split
387         patterns to split off the load of the TOC.
388         (call_value_indirect_nonlocal_aix32): Enable only after reload.
389         (call_value_indirect_nonlocal_aix64_internal): New insn and split
390         patterns to split off the load of the TOC.
391         (call_value_indirect_nonlocal_aix64): Enable only after reload.
392
393 2008-12-12  Andreas Schwab  <schwab@suse.de>
394
395         Revert:
396         2008-12-12  Andreas Schwab  <schwab@suse.de>
397         * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
398         a BARRIER insn.
399
400 2008-12-12  Zdenek Dvorak  <ook@ucw.cz>
401
402         PR tree-optimization/32044
403         * tree-scalar-evolution.h (expression_expensive_p): Declare.
404         * tree-scalar-evolution.c (expression_expensive_p): New function.
405         (scev_const_prop): Avoid introducing expensive expressions.
406         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
407
408 2008-12-12  Sebastian Pop  <sebastian.pop@amd.com>
409
410         PR middle-end/38409
411         * graphite.c (nb_reductions_in_loop): Use simple_iv.
412
413 2008-12-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
414
415         * config/i386/x86intrin.h: New header file to support all x86
416         intrinsics
417         * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
418
419 2008-12-12  H.J. Lu  <hongjiu.lu@intel.com>
420
421         PR target/38402
422         * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
423         constraints for x86.
424
425 2008-12-12  Andreas Schwab  <schwab@suse.de>
426
427         * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
428         a BARRIER insn.
429
430 2008-12-12  Uros Bizjak  <ubizjak@gmail.com>
431
432         * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
433         Use Pmode for scratch reg.
434         (*mb_internal): Use (match_dup 0) for unspec operand.
435
436 2008-12-12  Alexandre Oliva  <aoliva@redhat.com>
437
438         * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
439         floor_log2 of zero.  Negate widened zero.
440
441 2008-12-12  Ben Elliston  <bje@au.ibm.com>
442
443         * config/fp-bit.c (nan): Rename from this ...
444         (makenan): ... to this.
445
446 2008-12-11  Adam Nemet  <anemet@caviumnetworks.com>
447
448         * config/mips/mips.md (*branch_bit<bbv><mode>,
449         *branch_bit<bbv><mode>_inverted): Renumber operands so that the
450         label becomes operands[1].
451
452 2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>
453
454         PR tree-optimization/38446
455         * graphite.c (register_bb_in_sese): New.
456         (bb_in_sese_p): Check if bb belongs to sese region by explicitly
457         looking at the bbs in the region.
458         * graphite.h (sese): Add region_basic_blocks pointer set to
459         structure and initialize at the time of defining new scop.
460
461 2008-12-11  Tobias Grosser  <grosser@fim.uni-passau.de>
462
463         * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
464         (find_params_in_bb): Do not free data refs.
465         (free_graphite_bb): Add FIXME on disabled free_data_refs.
466
467 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
468
469         * graphite.c (struct ivtype_map_elt): New.
470         (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
471         new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
472         gcc_type_for_cloog_iv): New.
473         (loop_iv_stack_patch_for_consts): Use the type of the induction
474         variable from the original loop, except for the automatically
475         generated loops, i.e., in the case of a strip-mined loop, in
476         which case there is no original loop: in that case just use
477         integer_type_node.
478         (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
479         (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
480         (clast_name_to_gcc): Accept params to be NULL.
481         (clast_to_gcc_expression): Take an extra parameter for the type.
482         Convert to that type all the expressions built by this function.
483         (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
484         (graphite_translate_clast_equation): Compute the type of the
485         clast_equation before translating its LHS and RHS.
486         (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
487         (graphite_create_new_loop): Compute the type of the induction
488         variable before translating the lower and upper bounds and before
489         creating the induction variable.
490         (rename_variables_from_edge, rename_phis_end_scop): New.
491         (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
492         (sese_add_exit_phis_edge): Do not use integer_zero_node.
493         (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
494         compute_cloog_iv_types): New.
495         (gloog): Call compute_cloog_iv_types before starting the
496         translation of the clast.
497
498         * graphite.h (struct graphite_bb): New field cloog_iv_types.
499         (GBB_CLOOG_IV_TYPES): New.
500         (debug_ivtype_map): Declared.
501         (oldiv_for_loop): New.
502
503 2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>
504
505         PR middle-end/38459
506         * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
507         (param_index): Assert if parameter is not know after parameter
508         detection.
509         (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
510         (find_scop_parameters): Mark, that we have finished parameter
511         detection.
512         (graphite_transform_loops): Move condition detection before parameter
513         detection.
514         * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
515
516 2008-12-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
517
518         PR testsuite/35677
519         * emutls.c (__emutls_get_address): Make sure offset is really zero
520         before initializing the object's offset.
521
522 2008-12-11  Jakub Jelinek  <jakub@redhat.com>
523
524         PR c++/38253
525         * gimplify.c (gimplify_init_constructor): Don't force constructor
526         into memory if there is just one nonzero element.
527
528 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
529
530         Fix testsuite/gfortran.dg/graphite/id-4.f90.
531         * graphite.c (scan_tree_for_params): Do not compute the multiplicand
532         when not needed.
533
534 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
535
536         * graphite.c (build_scops_1): Initialize open_scop.exit
537         and sinfo.last.
538
539 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
540             Jan Sjodin  <jan.sjodin@amd.com>
541             Harsha Jagasia  <harsha.jagasia@amd.com>
542
543         PR middle-end/37852
544         PR middle-end/37883
545         PR middle-end/37928
546         PR middle-end/37980
547         PR middle-end/38038
548         PR middle-end/38039
549         PR middle-end/38073
550         PR middle-end/38083
551         PR middle-end/38125
552
553         * tree-phinodes.c (remove_phi_nodes): New, extracted from...
554         * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
555         ... here.
556         * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
557         * Makefile.in (graphite.o): Depend on value-prof.h.
558         (graphite.o-warn): Removed -Wno-error.
559         * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
560         to be a NULL pointer.  Call update_stmt.  Return the newly created
561         cannonical induction variable.
562
563         * graphite.h (debug_rename_map): Declared.  Fix some comments.
564
565         * graphite.c: Reimplement the code generation from graphite to gimple.
566         Include value-prof.h.
567         (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
568         (get_old_iv_from_ssa_name): Removed.
569         (graphite_stmt_p): New.
570         (new_graphite_bb): Test for useful statements before building a
571         graphite statement for the basic block.
572         (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
573         in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
574         (recompute_all_dominators, graphite_verify,
575         nb_reductions_in_loop, graphite_loop_normal_form): New.
576         (scop_record_loop): Call graphite_loop_normal_form.
577         (build_scop_loop_nests): Iterate over all the blocks of the
578         function instead of relying on the incomplete information from
579         SCOP_BBS.  Return the success of the operation.
580         (find_params_in_bb): Use the data from GBB_DATA_REFS.
581         (add_bb_domains): Removed.
582         (build_loop_iteration_domains): Don't call add_bb_domains.
583         Add the iteration domain only to the basic blocks that have been
584         translated to graphite.
585         (build_scop_conditions_1): Add constraints only if the basic
586         block have been translated to graphite.
587         (build_scop_data_accesses): Completely disabled until data
588         dependence is correctly implemented.
589         (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
590         (remove_all_edges_1, remove_all_edges): Removed.
591         (get_new_name_from_old_name): New.
592         (graphite_rename_variables_in_stmt): Renamed.
593         rename_variables_in_stmt.  Call get_new_name_from_old_name.
594         Use replace_exp and update_stmt.
595         (is_old_iv): Renamed is_iv.
596         (expand_scalar_variables_stmt): Extra parameter for renaming map.
597         Use replace_exp and update_stmt.
598         (expand_scalar_variables_expr): Same.  Use the map to get the
599         new names for the renaming of induction variables and for the
600         renaming of variables after a basic block has been copied.
601         (expand_scalar_variables): Same.
602         (graphite_rename_variables): Renamed rename_variables.
603         (move_phi_nodes): Removed.
604         (get_false_edge_from_guard_bb): New.
605         (build_iv_mapping): Do not insert the induction variable of a
606         loop in the renaming iv map if the basic block does not belong
607         to that loop.
608         (register_old_new_names, graphite_copy_stmts_from_block,
609         copy_bb_and_scalar_dependences): New.
610         (translate_clast): Heavily reimplemented: copy basic blocks,
611         do not move them.  Finally, in call cleanup_tree_cfg in gloog.
612         At each translation step call graphite_verify ensuring the
613         consistency of the SSA, loops and dominators information.
614         (collect_virtual_phis, find_vdef_for_var_in_bb,
615         find_vdef_for_var_1, find_vdef_for_var,
616         patch_phis_for_virtual_defs): Removed huge hack.
617         (mark_old_loops, remove_dead_loops, skip_phi_defs,
618         collect_scop_exit_phi_args, patch_scop_exit_phi_args,
619         gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
620         (remove_sese_region, ifsese, if_region_entry, if_region_exit,
621         if_region_get_condition_block, if_region_set_false_region,
622         create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
623         sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
624         sese_add_exit_phis_edge, sese_add_exit_phis_var,
625         rewrite_into_sese_closed_ssa): New.
626         (gloog): Remove dead code.  Early return if code cannot be
627         generated.  Call cleanup_tree_cfg once the scop has been code
628         generated.
629         (graphite_trans_scop_block, graphite_trans_loop_block): Do not
630         block loops with less than two loops.
631         (graphite_apply_transformations): Remove the call to
632         scop_remove_ignoreable_gbbs.
633         (limit_scops): When build_scop_loop_nests fails, continue on next
634         scop.  Fix open_scop.entry.
635         (graphite_transform_loops): Call recompute_all_dominators: force the
636         recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
637         Call initialize_original_copy_tables and free_original_copy_tables
638         to be able to copy basic blocks during code generation.
639         When build_scop_loop_nests fails, continue on next scop.
640         (value_clast): New union.
641         (clast_to_gcc_expression): Fix type cast warning.
642
643 2008-12-10  Richard Guenther  <rguenther@suse.de>
644
645         PR tree-optimization/36792
646         * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
647         tcc_binary.
648
649 2008-12-10  Daniel Berlin  <dberlin@dberlin.org>
650
651         PR tree-optimization/36792
652         * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
653
654 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
655
656         PR target/37033
657         * dwarf2out.c (saved_do_cfi_asm): New.
658         (dwarf2out_do_frame): Take it into account.
659         (dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
660
661 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
662
663         PR middle-end/38271
664         * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
665         variables initialized from SRAed bit fields.
666
667 2008-12-10  Martin Guy <martinwguy@yahoo.it>
668
669         PR target/37668
670         * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
671         result will be in an FPU register.
672
673 2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>
674
675         PR target/37170
676         PR target/38448
677         * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
678         on the associated SYMBOL_REF_DECL node, if any.
679
680 2008-12-09 David Daney <ddaney@caviumnetworks.com>
681
682         * config/mips/sync.md (sync_<optab>_12): Replace
683         MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
684         (sync_old_<optab>_12): Remove third paramater to
685         MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
686         with MIPS_SYNC_OLD_OP_12_AND.
687         (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
688         with MIPS_SYNC_NEW_OP_12_AND.
689         (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
690         MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
691         (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
692         macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
693         MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
694         (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
695         MIPS_SYNC_NEW_OP_12_XOR.
696         * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
697         MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
698         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
699         MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
700         MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
701         to implement new __sync_nand semantics.
702         (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
703         remove third parameter.
704         (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
705         MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
706         (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
707         (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
708         (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
709         (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
710         (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
711         (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
712
713 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
714
715         * graphite.c (graphite_transform_loops): Always call find_transform ()
716         in ENABLE_CHECKING.  So we test these code paths, even if we do not
717         generate code.
718
719 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
720
721         * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
722
723 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
724
725         PR middle-end/38454
726         * function.h (struct function): Add always_inline_functions_inlined.
727         * ipa-inline.c (cgraph_early_inlining): Set it to true.
728         * tree-optimize.c (execute_fixup_cfg): Likewise.
729         * builtins.c (avoid_folding_inline_builtin): New function.
730         (fold_call_expr): Don't optimize always_inline builtins before
731         inlining.
732         (fold_call_stmt): Likewise.
733         (fold_builtin_call_array): Likewise.  Don't call
734         fold_builtin_varargs for BUILT_IN_MD builtins.
735
736         PR tree-optimization/37416
737         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
738
739 2008-12-09  Janis Johnson  <janis187@us.ibm.com>
740
741         * doc/sourcebuild.texi (Test Directives): Fix formatting.
742
743 2008-12-09  Vladimir Makarov  <vmakarov@redhat.com>
744
745         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
746
747         * doc/invoke.texi (-fira-region): Describe new option.
748         (-fira-algorithm): Change the values.
749
750         * ira-conflicts.c (build_conflict_bit_table,
751         build_allocno_conflicts): Use ira_reg_classes_intersect_p.
752         (ira_build_conflicts): Use flag flag_ira_region instead of
753         flag_ira_algorithm.  Prohibit usage of callee-saved likely spilled
754         base registers for allocnos crossing calls.
755
756         * flags.h (enum ira_algorithm): Redefine.
757         (enum ira_region): New.
758         (flag_ira_region): New.
759
760         * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
761         instead of flag_ira_algorithm.
762
763         * toplev.c (flag_ira_algorithm): Change the initial value.
764         (flag_ira_region): New.
765
766         * ira-int.h (ira_reg_classes_intersect_p,
767         ira_reg_class_super_classes): New.
768
769         * ira-color.c (update_copy_costs): Use
770         ira_reg_classes_intersect_p.  Use right class to find hard reg index.
771         (update_conflict_hard_regno_costs): Ditto.  Add a new parameter.
772         (assign_hard_reg): Ditto.  Pass additional argument to
773         update_conflict_hard_regno_costs.  Do not uncoalesce for priority
774         coloring.
775         (allocno_priorities, setup_allocno_priorities,
776         allocno_priority_compare_func): Move before color_allocnos.
777         (color_allocnos): Add priority coloring.  Use flag flag_ira_region
778         instead of flag_ira_algorithm.
779         (move_spill_restore): Check classes of the same reg allocno from
780         different regions.
781         (update_curr_costs): Use ira_reg_classes_intersect_p.
782         (ira_reassign_conflict_allocnos): Ditto.
783
784         * opts.c (decode_options): Always set up flag_ira.  Set up
785         flag_ira_algorithm.  Warn CB can not be used for architecture.
786         (common_handle_option): Modify code for -fira-algorithm.  Add code
787         to process -fira-region.
788
789         * ira-lives.c (update_allocno_pressure_excess_length): Process
790         superclasses too.
791         (set_allocno_live, clear_allocno_live, mark_reg_live,
792         mark_reg_dead, process_bb_node_lives): Ditto.
793
794         * ira-emit.c (ira_emit): Fix insn codes.
795
796         * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
797         instead of flag_ira_algorithm.
798         (allocno_range_compare_func): Ignore classes for priority coloring.
799         (setup_min_max_conflict_allocno_ids): Ditto.
800         (ira_flattening): Use ira_reg_classes_intersect_p.
801
802         * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
803
804         * common.opt (fira-algorithm): Modify.
805         (fira-region): New.
806
807         * ira.c (setup_class_hard_regs): Initialize.
808         (setup_cover_and_important_classes): Modify code setting class
809         related info for priority coloring.
810         (setup_class_translate): Ditto.
811         (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
812         (setup_reg_class_intersect_union): Rename to
813         setup_reg_class_relations.  Add code for setting up new variables.
814         (find_reg_class_closure): Do not check targetm.ira_cover_classes.
815         (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
816
817         * ira-costs.c (common_classes): New.
818         (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
819         (find_allocno_class_costs): Ditto.  Use common_classes.  Translate
820         alt_class.
821         (ira_costs): Allocate/deallocate common_classes.
822
823         * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
824         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
825         R02A_REGS.
826
827         * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
828         smallest_mode_for_size.
829
830 2008-12-10  Ben Elliston  <bje@au.ibm.com>
831
832         * config/rs6000/linux-unwind.h (get_regs): Constify casts.
833
834 2008-12-09  Jan Hubicka  <jh@suse.cz>
835
836         * predict.c (estimate_bb_frequencies): Fix test if profile is present.
837
838 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
839
840         PR tree-optimization/35468
841         * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
842         string on LHS.
843
844 2008-12-09  Richard Guenther  <rguenther@suse.de>
845
846         PR tree-optimization/38445
847         * tree-ssa-structalias.c (emit_pointer_definition): Only visit
848         names once.
849         (emit_alias_warning): Adjust.
850
851 2008-12-09  Andrew Haley  <aph@redhat.com>
852
853         * fixed-value.c (do_fixed_add): Add comment.
854         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
855         * builtins.c (fold_builtin_sqrt): Likewise.
856
857 2008-12-09  Kai Tietz  <kai.tietz@onevision.com>
858
859         PR/38366
860         * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
861         case.
862         * calls.c (nitialize_argument_information): Add fntype argument
863         and use it for calls.promote_function_args.
864         (expand_call): Pass fntype to aggregate_value_p if no fndecl
865         available and pass additional fntype to
866         initialize_argument_information.
867         * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
868         to get function abi type.
869         (init_cumulative_args): Use for abi kind detection fntype, when no
870         fndecl is available.
871
872 2008-12-09  Andreas Krebbel  <krebbel1@de.ibm.com>
873
874         * config/s390/s390.md (movti, movdi_64, movdi_31,
875         *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
876         *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
877         Q->Q alternative.
878         (Integer->BLKmode splitter): Removed.
879
880 2008-12-08  Uros Bizjak  <ubizjak@gmail.com>
881
882         * config/alpha/alpha.c (alpha_set_memflags): Process memory
883         references in full insn sequence.
884
885 2008-12-09  Jason Merrill  <jason@redhat.com>
886
887         * gimplify.c (gimplify_init_constructor): Revert to using < rather
888         than <= for sparseness test.
889
890         PR c++/38410
891         * gimplify.c (gimplify_init_constructor): Don't write out a static
892         copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
893         initializers.
894
895 2008-12-09 Tobias Grosser  <grosser@fim.uni-passau.de>
896
897         PR middle-end/38084
898         Fix testsuite/gfortran.dg/graphite/id-3.f90.
899         * graphite.c (scopdet_basic_block_info): Fix bug that found some
900         regions more than once.
901
902 2008-12-09  Ben Elliston  <bje@au.ibm.com>
903
904         * emutls.c (__emutls_get_address): Prototype.
905         (__emutls_register_common): Likewise.
906
907         * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
908
909 2008-12-09  Ben Elliston  <bje@au.ibm.com>
910
911         * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
912
913 2008-12-08  Steve Ellcey  <sje@cup.hp.com>
914
915         * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
916         (nonlocal_goto_receiver): New instruction.
917
918 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
919
920         PR c/35443
921         * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
922
923         PR c/35442
924         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
925         VIEW_CONVERT_EXPR the same as CASE_CONVERT.
926
927 2008-12-08  Richard Henderson  <rth@redhat.com>
928
929         PR 38240
930         * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
931         (SET_TYPE_MODE): New.
932         * c-decl.c (parser_xref_tag): Use it.
933         (finish_enum): Likewise.
934         * tree.c (build_pointer_type_for_mode): Likewise.
935         (build_reference_type_for_mode, build_index_type): Likewise.
936         (build_range_type, make_vector_type): Likewise.
937         (build_common_tree_nodes_2): Likewise.
938         * stor-layout.c (compute_record_mode): Likewise.
939         (finalize_type_size, layout_type, make_fract_type): Likewise.
940         (make_accum_type, initialize_sizetypes): Likewise.
941         (vector_type_mode): New.
942         * function.c (allocate_struct_function): Call
943         invoke_set_current_function_hook before querying anything else.
944
945         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
946
947 2008-12-08  Luis Machado  <luisgpm@br.ibm.com>
948
949         * alias.c (find_base_term): Synch LO_SUM handling with what
950         find_base_value does.
951
952 2008-12-08  Andrew Haley  <aph@redhat.com>
953             Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
954
955         * gimple.h (gimple_build_try): Fix declaration.
956
957         * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
958         * fixed-value.c (do_fixed_add): Likewise.
959         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
960
961 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
962
963         PR middle-end/36802
964         * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
965         on parallel and task contexts.
966
967 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
968
969         * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
970
971 2008-12-07  Richard Guenther  <rguenther@suse.de>
972
973         PR tree-optimization/38405
974         * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
975         not sign-extend truth values.
976
977 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
978
979         * tree-sra.c (scalarize_use): Create another temporary with the proper
980         type for signed types in the use_all && !is_output bitfield case.
981
982 2008-12-06  Steven Bosscher  <steven@gcc.gnu.org>
983
984         PR rtl-optimization/36365
985         * df-core.c (df_worklist_dataflow_overeager): Remove.
986         (df_worklist_dataflow): Don't call it, use double-queue only.
987         * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
988
989 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
990
991         PR middle-end/38428
992         * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
993         gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
994
995 2008-12-07  Ben Elliston  <bje@au.ibm.com>
996
997         * gthr-single.h (__gthread_once): Adjust prototype to match all
998         other gthreads models.
999
1000 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
1001
1002         * config/i386/i386.c (override_options): Use CPU_AMDFAM10
1003         instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
1004
1005         PR middle-end/38422
1006         * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
1007         operands to mult_type if it isn't narrower than op0's type.
1008
1009 2008-12-06  Jan Hubicka  <jh@suse.cz>
1010             Jakub Jelinek <jakub@redhat.com>
1011
1012         PR tree-optimization/38074
1013         * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
1014         entry frequency.
1015         * predict.c (combine_predictions_for_bb): Ignore predictor predicting
1016         in both dirrection for first match heuristics.
1017         (tree_bb_level_predictions): Disable noreturn heuristic when there
1018         is no returning path.
1019
1020 2008-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1021
1022         PR rtl-optimization/38272
1023         * reload1.c (choose_reload_regs): Keep reload_spill_index correct
1024         in all cases.
1025
1026 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1027
1028         PR c++/35336
1029         * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
1030         (pp_c_expression): Likewise.
1031
1032 2008-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
1033
1034         PR c/38416
1035         * c-parser.c (struct c_token): Make pragma_kind 8 bits.
1036
1037 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1038
1039         PR middle-end/37248
1040         * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
1041         arguments to HOST_WIDE_INT.  If type has different signedness
1042         than unsignedp or different precision from bitsize, create
1043         the right type for BIT_FIELD_REF and cast to type.
1044         (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
1045
1046         Revert:
1047         2008-03-05  Richard Guenther  <rguenther@suse.de>
1048         PR c++/35336
1049         * fold-const.c (fold_truthop): Remove code generating
1050         BIT_FIELD_REFs of structure bases.
1051         (fold_binary): Likewise.
1052         (make_bit_field_ref): Remove.
1053         (optimize_bit_field_compare): Remove.
1054         (all_ones_mask_p): Remove.
1055
1056 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1057
1058         * tree-sra.c (sra_explode_bitfield_assignment): Always
1059         call unsigned_type_for, if the precision is higher than
1060         needed, call build_nonstandard_integer_type.
1061
1062         PR debug/38367
1063         * function.c (assign_parm_find_stack_rtl): If promoted_mode
1064         is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
1065         big endian.
1066
1067         PR middle-end/38338
1068         * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
1069         only if internal_arg_pointer is a non-virtual pseudo.
1070
1071 2008-12-05  Joseph Myers  <joseph@codesourcery.com>
1072
1073         * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
1074         TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
1075         * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
1076
1077 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1078
1079         PR tree-optimization/37716
1080         * gimplify.c (gimplify_expr): Allow COND_EXPR if
1081         gimplify_ctxp->allow_rhs_cond_expr.
1082
1083 2008-12-05  Uros Bizjak  <ubizjak@gmail.com>
1084
1085         * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
1086         VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
1087
1088         (alpha_emit_conditional_branch): Do not generate direct branch
1089         for UNORDERED comparisons.
1090
1091 2008-12-05  Andreas Schwab  <schwab@suse.de>
1092
1093         * config/rs6000/linux-unwind.h (frob_update_context): Check for
1094         NULL lr.
1095
1096 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1097
1098         PR c/38408
1099         * fold-const.c (fold_checksum_tree): Change buf type to union
1100         tree_node.
1101
1102 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
1103
1104         PR bootstrap/38262
1105         * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
1106         (BACKENDLIBS): New.
1107         (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
1108
1109 2008-12-05  Ben Elliston  <bje@au.ibm.com>
1110
1111         * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
1112         comma_loc.
1113         (c_parser_initelt): Initialise des_loc and ellipsis_loc.
1114
1115 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
1116             Gary Funck  <gary@intrepid.com>
1117
1118         * cse.c (lookup_as_function): Delete mode frobbing code.
1119         (equiv_constant): Re-implement it there for SUBREGs.
1120
1121 2008-12-04  Richard Guenther  <rguenther@suse.de>
1122
1123         PR middle-end/36509
1124         * Makefile.in (tree-ssa-alias-warnings.o): Remove.
1125         (tree-ssa-structalias.o): Remove errors.h dependency.
1126         (tree-ssa-reassoc.o): Likewise.
1127         * tree-ssa-reassoc.c: Do not include errors.h.
1128         * tree-ssa-alias-warnings.c: Remove.
1129         * tree-ssa-alias.c (compute_may_aliases): Remove call to
1130         strict_aliasing_warning_backend.
1131         * tree-ssa-structalias.c (emit_pointer_definition): New function.
1132         (emit_alias_warning): Likewise.
1133         (set_uids_in_ptset): Warn for clear cases of type-punning.
1134         * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
1135         on INDIRECT_REFs.
1136
1137 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
1138
1139         * cse.c (equiv_constant): Fix pasto.
1140
1141 2008-12-04  Nick Clifton  <nickc@redhat.com>
1142
1143         * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
1144         * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
1145         formatting of quotes.
1146
1147 2008-12-04  Jakub Jelinek  <jakub@redhat.com>
1148
1149         PR middle-end/38371
1150         * fold-const.c (fold_checksum_tree): Allow modification of
1151         TYPE_NEXT_VARIANT.
1152
1153 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
1154
1155         PR middle-end/38360
1156         * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
1157         have the right number of arguments.
1158
1159 2008-12-03  Richard Guenther  <rguenther@suse.de>
1160
1161         PR middle-end/36326
1162         * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
1163         non-BLKmode types.
1164
1165 2008-12-03  Tomas Bily  <tbily@suse.cz>
1166
1167         PR middle-end/38250
1168         * tree-loop-distribution.c (build_size_arg): New function.
1169         (generate_memset_zero): Checks if dr_analyze_innermost succeed.
1170         Reorganized generating of stmts.
1171         * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
1172         * tree-data-ref.c (dr_analyze_innermost): Returns bool.
1173         Indicate if analysis succeed.
1174         * tree-data-ref.h (dr_analyze_innermost): Returns bool.
1175         * tree-predcom.c (valid_initializer_p, find_looparound_phi):
1176         Uses new definition of dr_analyze_innermost.
1177
1178 2008-12-03  Ben Elliston  <bje@au.ibm.com>
1179
1180         * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
1181
1182 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
1183
1184         PR tree-optimization/37716
1185         * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
1186         all the needed operations as trees and gimplify_assign it to dst.
1187
1188         PR target/37610
1189         * configure.ac (gcc_cv_readelf): Look for readelf.
1190         (gcc_cv_as_cfi_advance_working): Check for working
1191         cfi advances with code alignment factor > 1.
1192         (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
1193         don't work properly.
1194         * configure: Regenerated.
1195
1196 2008-12-03  Eric Botcazou  <ebotcazou@adacore.com>
1197             Jakub Jelinek  <jakub@redhat.com>
1198             Andrew Pinski  <andrew_pinski@playstation.sony.com>
1199
1200         PR rtl-optimization/38281
1201         * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
1202         set it to NULL_RTX afterwards.
1203
1204         * emit-rtl.c (set_insn_deleted): Fix formatting.
1205
1206 2008-12-02  Richard Sandiford  <rdsandiford@googlemail.com>
1207
1208         * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
1209         error return value.
1210         * config/mips/mips.md (IMOVE32): New mode iterator.
1211         (movsi): Generalize with IMOVE32.
1212         (*movsi_internal): Likewise.
1213         (*mov<mode>_mips16): Likewise.
1214         (*lwxs): Likewise.
1215
1216 2008-12-02  Nathan Sidwell  <nathan@codesourcery.com>
1217             Maxim Kuvyrkov  <maxim@codesourcery.com>
1218
1219         * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
1220         PC-relative addressing when compiling for uclinux PIC.
1221         (__cmpdf_internal, __cmpsf_internal): Hide.
1222         (__cmpdf, __cmpsf): Use PIC call sequence.
1223
1224 2008-12-02  Andreas Tobler  <a.tobler@schweiz.org>
1225             Jack Howarth <howarth@bromo.med.uc.edu>
1226
1227         * config/i386/t-darwin64: Add m32 multilib support.
1228
1229 2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>
1230
1231         * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
1232
1233 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
1234
1235         PR middle-end/38343
1236         * builtins.c (fold_builtin_memory_op): Convert len to sizetype
1237         before using it in POINTER_PLUS_EXPR.
1238
1239 2008-12-02  Richard Guenther  <rguenther@suse.de>
1240
1241         PR tree-optimization/38359
1242         * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
1243         non-negative x.
1244
1245 2008-12-02  Martin Jambor  <mjambor@suse.cz>
1246
1247         PR middle-end/37861
1248         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
1249         for INDIRECT_REFs.
1250         (forward_propagate_addr_into_variable_array_index): Check that the
1251         offset is not computed from a MULT_EXPR, use is_gimple_assign rather
1252         than the gimple code directly.
1253
1254 2008-12-02  Ben Elliston  <bje@au.ibm.com>
1255
1256         * config/spu/float_disf.c (__floatdisf): Prototype.
1257         * config/spu/float_unsdisf.c (__float_undisf): Likewise.
1258         * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
1259         * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
1260
1261 2008-12-02  DJ Delorie  <dj@redhat.com>
1262
1263         * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
1264         (DWARF_CIE_DATA_ALIGNMENT): Define.
1265
1266         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
1267         Invert add/sub for INCOMING_FRAME_SP_OFFSET.
1268         (xstormy16_expand_prologue): Likewise.
1269         (xstormy16_expand_builtin_va_start): Likewise.
1270         (xstormy16_gimplify_va_arg_expr): Likewise.
1271
1272 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
1273
1274         PR middle-end/38343
1275         * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
1276         potentially returned from folding memcpy.
1277         (expand_builtin_stpcpy_args): Similarly for folding strcpy.
1278         (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
1279
1280 2008-12-02  Danny Smith  <dannysmith@users.sourceforge.net>
1281
1282         PR target/38054
1283         * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
1284         decoration of function RTL names here on Ada language.
1285
1286 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
1287
1288         PR rtl-optimization/38280
1289         * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
1290         ira_rebuild_regno_allocno_list): New functions.
1291         (regno_allocnos): New static variable.
1292         (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
1293         Call ira_rebuild_regno_allocno_list.
1294
1295 2008-12-01  David Daney  <ddaney@caviumnetworks.com>
1296             Adam Nemet  <anemet@caviumnetworks.com>
1297
1298         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
1299         LINUX_DRIVER_SELF_SPECS.
1300
1301 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
1302
1303         PR rtl-optimization/37514
1304         * reload1.c (reload_as_needed): Invalidate reg_last_reload
1305         from previous insns.
1306
1307 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
1308
1309         PR c++/38348
1310         * c-omp.c (c_finish_omp_for): Only transform pointer
1311         ++ or -- into MODIFY_EXPR if second argument is non-NULL.
1312
1313         PR rtl-optimization/38245
1314         * tree-vrp.c (abs_extent_range): New function.
1315         (extract_range_from_binary_expr): Compute range
1316         for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
1317         or includes zero or if vr1 is VR_RANGE and op0 has some
1318         other range.
1319
1320 2008-12-01  Uros Bizjak  <ubizjak@gmail.com>
1321
1322         PR middle-end/37908
1323         * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
1324         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1325         * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
1326         to (not:I48MODE (and:I48MODE (...))).
1327         (sync_old_nand<mode>): Ditto.
1328         (sync_new_nand<mode>): Ditto.
1329
1330 2008-12-01  Nick Clifton  <nickc@redhat.com>
1331
1332         * config/stormy16/stormy16.md (CARRY_REG): New constant.
1333         Replace uses of the "y" register class with direct references to
1334         the CARRY_REG register.
1335         * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
1336         register with clobbers of the carry register.
1337         (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
1338         (xstormy16_split_cbranch): Remove redundant carry parameter.
1339         (xstormy16_expand_arith): Likewise.
1340         * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
1341         (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1342         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1343         (CARRY_REGNUM): Define.
1344         * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
1345         Update prototype.
1346         (xstormy16_expand_arith): Likewise.
1347
1348 2008-12-01  Chen Liqin  <liqin.chen@sunplusct.com>
1349
1350         * config/score/score.h (IRA_COVER_CLASSES): Define.
1351
1352 2008-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1353
1354         PR target/38287
1355         * config/sparc/sparc.md (divsi3 expander): Remove constraints.
1356         (divsi3_sp32): Add new alternative with 'K' for operand #2.
1357         (cmp_sdiv_cc_set): Factor common string.
1358         (udivsi3_sp32): Add new alternative with 'K' for operand #2.
1359         Add TARGET_V9 case.
1360         (cmp_udiv_cc_set): Factor common string.
1361
1362 2008-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1363
1364         PR middle-end/38283
1365         * varasm.c (emutls_finish): Fix common registration.
1366
1367 2008-11-29  Jakub Jelinek  <jakub@redhat.com>
1368
1369         PR target/29987
1370         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1371
1372 2008-11-29  David Edelsohn  <edelsohn@gnu.org>
1373
1374         * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1375         operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
1376         (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1377         * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
1378         Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1379         Ignore sub-word case for now.
1380         (sync_nand<mode>_internal): Represent NAND in RTL.
1381         (sync_old_nand<mode): Same.
1382         (sync_old_name<mode>_internal): Same.
1383         (sync_new_nand<mode>): Same.
1384         (sync_new_nand<mode>_internal): Same.
1385         (sync_boolcshort_internal): Expect NAND.
1386
1387 2008-11-28  Richard Guenther  <rguenther@suse.de>
1388
1389         PR tree-optimization/37955
1390         PR tree-optimization/37742
1391         * tree-vect-transform.c (vectorizable_store): Remove assert for
1392         compatible aliases.
1393         (vectorizable_load): Likewise.
1394
1395 2008-11-27  Richard Guenther  <rguenther@suse.de>
1396
1397         * tree-ssa-structalias.c (intra_create_variable_infos): Make
1398         a constraint for the static chain parameter.
1399
1400 2008-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1401
1402         * config/bfin/bfin.opt (micplb): New option.
1403         * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1404         * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1405         ENABLE_WA_INDIRECT_CALLS): New macros.
1406         * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1407         all 54x CPUs.
1408         (indirect_call_p): New function.
1409         (workaround_speculation): Handle anomaly 05-00-0426 when
1410         ENABLE_WA_INDIRECT_CALLS is true.
1411         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1412         __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1413         * doc/invoke.texi (Blackfin Options): Document -micplb.
1414
1415 2008-11-26  DJ Delorie  <dj@redhat.com>
1416
1417         * config/m32c/mov.md ("extendhipsi2"): New.
1418
1419         * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1420
1421         * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1422         * config/m32c/mov.md (zero_extendqihi2): Likewise.
1423
1424 2008-11-26  Adam Nemet  <anemet@caviumnetworks.com>
1425
1426         * config/mips/mips.md (clear_hazard): Rename to
1427         clear_hazard_<mode>.  Use mode-specific addition.
1428         (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1429         or gen_clear_hazard_di depending on the size of Pmode.
1430
1431 2008-11-26  DJ Delorie  <dj@redhat.com>
1432
1433         * configure.ac: Test m32c-elf-gas for .loc.
1434         * configure: Likewise.
1435
1436 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1437
1438         PR testsuite/28870
1439         * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1440         dg-timeout-factor.
1441
1442 2008-11-26  Uros Bizjak  <ubizjak@gmail.com>
1443
1444         * config/i386/sync.md (memory_barrier_nosse): Disable also for
1445         TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
1446         (memory_barrier): Do not generate memory_barrier_nosse instruction
1447         for TARGET_64BIT.
1448         * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1449
1450 2008-11-26  Fredrik Unger  <fred@tree.se>
1451
1452         * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1453         function name from __floatundisf.
1454         * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1455         DFtype.
1456
1457 2008-11-25  Daniel Berlin  <dberlin@dberlin.org>
1458             Richard Guenther  <rguenther@suse.de>
1459
1460         PR tree-optimization/37869
1461         * tree-ssa-structalias.c (struct constraint_graph): Remove
1462         pt_used and number_incoming members.
1463         (build_pred_graph): Do not allocate them.
1464         (condense_visit): Do not use them.
1465         (label_visit): Likewise.
1466         (free_var_substitution_info): Do not free them.
1467
1468 2008-11-25  Vladimir Makarov  <vmakarov@redhat.com>
1469
1470         * doc/invoke.texi (ira-max-loops-num): Change semantics.
1471
1472         * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1473
1474         * ira-color.c (allocno_spill_priority): New function.
1475         (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1476         Print more info about the spilled allocno.
1477         (push_allocnos_to_stack): Use allocno_spill_priority.  Add more
1478         checks on bad spill.
1479
1480         * ira-build.c (loop_node_to_be_removed_p): Remove.
1481         (loop_compare_func, mark_loops_for_removal): New functions.
1482         (remove_uneccesary_loop_nodes_from_loop_t): Use member
1483         to_remove_p.
1484         (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1485
1486         * ira.c (ira): Don't change flag_ira_algorithm.
1487
1488         * params.def (ira-max-loops-num): Change the value.
1489
1490 2008-11-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
1491
1492         * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1493         Disable unsupported alternative for ColdFire,
1494         add new alternative that ColdFire can handle.
1495
1496 2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1497
1498         * regrename.c (merge_overlapping_regs): Add registers artificially
1499         defined at the top of the basic block to the set of live ones just
1500         before the first insn.
1501
1502 2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1503             Joey Ye  <joey.ye@intel.com>
1504
1505         PR middle-end/37843
1506         * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1507         false if we need to align the outgoing stack.
1508         (ix86_update_stack_boundary): Check parm_stack_boundary.
1509
1510 2008-11-25  Richard Guenther  <rguenther@suse.de>
1511
1512         PR middle-end/38151
1513         PR middle-end/38236
1514         * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1515         Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1516         in favor of dereferenced_ptrs.
1517         (init_alias_info): Adjust.
1518         (delete_alias_info): Likewise.
1519         (compute_flow_insensitive_aliasing): Properly
1520         include all aliased variables.
1521         (update_alias_info_1): Use dereferenced_ptrs.
1522         (setup_pointers_and_addressables): Likewise.
1523         (get_smt_for): Honor ref-all pointers and pointers with known alias
1524         set properly.
1525         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1526
1527 2008-11-25  Uros Bizjak  <ubizjak@gmail.com>
1528
1529         PR target/38254
1530         * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1531         (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1532
1533 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1534
1535         * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1536
1537 2008-11-24  Richard Sandiford  <rdsandiford@googlemail.com>
1538
1539         * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1540
1541 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1542
1543         PR target/35018
1544         * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1545         (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1546
1547 2008-11-24  Uros Bizjak  <ubizjak@gmail.com>
1548
1549         * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1550         UNSPECV_CMPXCHG_[12].
1551         * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1552         UNSPECV_CMPXCHG_[12].
1553
1554         PR target/36793
1555         * config/i386/sync.md (memory_barrier): New expander.
1556
1557 2008-11-24  Jakub Jelinek  <jakub@redhat.com>
1558
1559         PR middle-end/37135
1560         * dse.c (find_shift_sequence): Optimize extraction from a constant.
1561
1562 2008-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1563
1564         * pa.c (function_arg): Revert 2008-10-26 change.
1565
1566 2008-11-23  Helge Deller  <deller@gmx.de>
1567
1568         * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1569         (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1570         succeeded and lws_ret is not equal to oldval.
1571
1572 2008-11-23  Kaz Kojima  <kkojima@gcc.gnu.org>
1573
1574         * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1575
1576 2008-11-22  Andreas Schwab  <schwab@suse.de>
1577
1578         * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1579         -dA and -dP.
1580
1581 2008-11-22  Adam Nemet  <anemet@caviumnetworks.com>
1582
1583         * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1584         Use constant 1 as the operand.
1585         * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1586         Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1587         gen_rdhwr_synci_step_di depending on the size of Pmode.
1588
1589 2008-11-22  Uros Bizjak  <ubizjak@gmail.com>
1590
1591         PR target/38222
1592         * config/i386/i386.md (SWI248): New mode iterator.
1593         (SWI32): Remove mode iterator.
1594         (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1595         popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1596         iterator.  Generate popcnt mnemonic without mode extensions
1597         for Darwin x86 targets.
1598         (*popcount<mode>2_cmp): Ditto.
1599         (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1600         extensions for Darwin x86 targets.
1601
1602 2008-11-22  Eric Botcazou  <ebotcazou@adacore.com>
1603
1604         * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1605         only if HAVE_AS_SPARC_UA_PCREL is defined.
1606
1607 2008-11-22  Richard Sandiford  <rdsandiford@googlemail.com>
1608
1609         * ira-costs.c (find_allocno_class_costs): Work out the maximum
1610         allocno_costs value of the classees with the lowest total_costs
1611         value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
1612         (setup_allocno_cover_class_and_costs): ...rather than here.
1613         Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1614         preferred class.
1615
1616 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
1617
1618         PR middle-end/37323
1619         * builtins.c (expand_builtin_apply_args): Emit sequence before
1620         parm_birth_insn instead of after entry_of_function's first insn.
1621
1622         PR middle-end/37316
1623         * function.c (assign_parm_remove_parallels): Pass
1624         data->passed_type as third argument to emit_group_store.
1625
1626         PR target/37170
1627         * final.c (mark_symbol_refs_as_used): New function.
1628         * output.h (mark_symbol_refs_as_used): New prototype.
1629         * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1630         (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1631         * config/arm/arm.md (consttable_4): Likewise.
1632
1633         PR target/37880
1634         * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1635
1636 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1637
1638         PR middle-end/38200
1639         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1640         propagate x = &a into *x = b if conversion from b to a's type is
1641         useless.
1642
1643 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1644
1645         * caller-save.c (insert_one_insn): Take into account REG_INC notes
1646         for the liveness computation of the new insn.
1647
1648 2008-11-21  DJ Delorie  <dj@redhat.com>
1649
1650         * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1651         Moves to/from below100 space (W) can only use r0-r7.
1652
1653 2008-11-21  Paolo Carlini  <paolo.carlini@oracle.com>
1654
1655         PR other/38214
1656         * doc/invoke.texi (Optimization Options): Fix typo.
1657
1658 2008-11-21  H.J. Lu  <hongjiu.lu@intel.com>
1659             Xuepeng Guo  <xuepeng.guo@intel.com>
1660
1661         * config.gcc (extra_headers): For x86 and x86-64, remove
1662         gmmintrin.h, add immintrin.h and avxintrin.h.
1663
1664         * config/i386/gmmintrin.h: Renamed to ...
1665         * config/i386/avxintrin.h: This.  Issue an error if
1666         _IMMINTRIN_H_INCLUDED is undedined.
1667
1668         * config/i386/immintrin.h: New.
1669
1670 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1671
1672         PR target/38208
1673         * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1674         mode of PLUS, not mode of the eliminated register.
1675
1676 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1677
1678         * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1679         * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1680         (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1681         (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1682         (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1683         (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1684         (*nand<mode>3): Rename to *andnot<mode>3.
1685         (*nandtf3): rename to *andnottf3.
1686         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1687         Use CODE_FOR_mmx_andnotv2si3.
1688         [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1689         [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1690         [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1691         [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1692         [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1693
1694 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1695
1696         PR middle-end/37908
1697         * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1698         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1699         * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1700         to (not:IMODE (and:IMODE (...))).
1701         (sync_old_nand<mode>): Ditto.
1702         (sync_new_nand<mode>): Ditto.
1703
1704 2008-11-20  Joseph Myers  <joseph@codesourcery.com>
1705
1706         * config/arm/thumb2.md (thumb2_casesi_internal,
1707         thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1708
1709 2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>
1710
1711         * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1712         nand to the changed 4.4 semantic.
1713
1714 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1715
1716         PR middle-end/29215
1717         * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1718         (fold_builtin_memory_op): Handle even the case where just one
1719         of src and dest is an address of a var decl component, using
1720         TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
1721         and readonly_data_expr src check.
1722         * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1723         up warnings.
1724
1725         PR rtl-optimization/36998
1726         * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1727         arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1728         (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1729         stack_adjust_offset callers.
1730         (dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
1731         branches properly.
1732         (compute_barrier_args_size): Handle insns in annulled branches
1733         properly.
1734
1735 2008-11-20  Uros Bizjak  <ubizjak@gmail.com>
1736
1737         PR target/38151
1738         * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1739         Handle cases when integer argument crosses argument register boundary.
1740
1741 2008-11-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1742
1743         PR bootstrap/33100
1744         * config.gcc (i[34567]86-*-solaris2*): Don't include
1745         i386/t-crtstuff here.
1746         Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1747         * config/i386/t-sol2: Move to libgcc/config/i386.
1748
1749 2008-11-20  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1750
1751         PR driver/21706
1752         * tlink.c: Include "libiberty.h".
1753         (initial_cwd): Change type into char *.
1754         (tlink_init): Call getpwd instead of getcwd.
1755
1756 2008-11-19  Zdenek Dvorak  <ook@ucw.cz>
1757
1758         PR rtl-optimization/32283
1759         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1760         of the induction variable to decide whether it may wrap.
1761         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1762         initialization of the bound before the loop.
1763         * simplify-rtx.c (simplify_binary_operation_1): Add two
1764         simplifications regarding AND.
1765         (simplify_plus_minus): Only fail if no simplification is possible.
1766         * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1767
1768 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1769
1770         PR c++/36631
1771         * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1772         checking until GIMPLE lowering.
1773         * gimple-low.c (check_call_args): New function.
1774         (lower_stmt) <case GIMPLE_CALL>: Call it.
1775
1776 2008-11-19  Adam Nemet  <anemet@caviumnetworks.com>
1777
1778         * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1779         with the same type as the first operand of the AND expression.
1780
1781 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1782
1783         PR bootstrap/37859
1784         * ira-int.h (struct ira_loop_tree_node): New member
1785         entered_from_non_parent_p.
1786
1787         * ira-color.c (print_loop_title): Print loop bbs.
1788
1789         * ira-emit.c (entered_from_non_parent_p,
1790         setup_entered_from_non_parent_p): New functions.
1791         (not_modified_p): Rename to store_can_be_removed_p.  Check there
1792         is no side entries.
1793         (generate_edge_moves): Use store_can_be_removed_p instead of
1794         not_modified_p.
1795         (ira_emit): Call setup_entered_from_non_parent_p.
1796
1797         * ira-build.c (copy_info_to_removed_store_destinations):
1798         Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1799         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1800         (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1801         update all accumulated attributes.
1802
1803 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1804
1805         PR bootstrap/37790
1806         * ira-int.h (ira_copy_allocno_live_range_list,
1807         ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1808         ira_finish_allocno_live_range_list): New prototypes.
1809         (ira_allocno_live_ranges_intersect_p,
1810         ira_pseudo_live_ranges_intersect_p): Remove.
1811
1812         * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1813         ira_pseudo_live_ranges_intersect_p): Rename to
1814         allocnos_have_intersected_live_ranges_p and
1815         pseudos_have_intersected_live_ranges_p.  Move them from here to ...
1816
1817         * ira-color.c: ... here
1818         (coalesced_allocno_conflict_p): Use
1819         allocnos_have_intersected_live_ranges_p.
1820         (coalesced_allocnos_living_at_program_points,
1821         coalesced_allocnos_live_at_points_p,
1822         set_coalesced_allocnos_live_points): Remove.
1823         (slot_coalesced_allocnos_live_ranges,
1824         slot_coalesced_allocno_live_ranges_intersect_p,
1825         setup_slot_coalesced_allocno_live_ranges): New.
1826         (coalesce_spill_slots): Use ranges of coalesced allocnos.
1827         (ira_sort_regnos_for_alter_reg): Use
1828         allocnos_have_intersected_live_ranges_p.
1829         (ira_reuse_stack_slot): Use
1830         pseudos_have_intersected_live_ranges_p.
1831
1832         * global.c (pseudo_for_reload_consideration_p): Check
1833         flag_ira_share_spill_slots too.
1834
1835         * ira-build.c (copy_allocno_live_range_list): Rename to
1836         ira_copy_allocno_live_range_list.  Make it external.
1837         (merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
1838         external.
1839         (ira_allocno_live_ranges_intersect_p): New.
1840         (ira_finish_allocno_live_range_list): New.
1841         (finish_allocno): Use it.
1842         (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1843         (copy_info_to_removed_store_destinations): Ditto.  Use
1844         ira_copy_allocno_live_range_list.
1845         (ira_flattening): Use ira_merge_allocno_live_ranges.
1846
1847         * ira.c (too_high_register_pressure_p): New function.
1848         (ira): Switch off sharing spill slots if the pressure is too high.
1849
1850 2008-11-19  Richard Guenther  <rguenther@suse.de>
1851
1852         * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1853         non-sizetype offsets if their precision matches that of the pointer.
1854         * expr.c (expand_expr_real_1): Always sign-extend the offset
1855         operand of a POINTER_PLUS_EXPR.
1856
1857 2008-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1858
1859         * config.gcc: Unobsolete mips-sgi-irix[56]*.
1860         (mips-sgi-irix[56]*): No need to use fixproto.
1861
1862 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1863             Paul Brook  <paul@codesourcery.com>
1864
1865         * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1866         executable stack.
1867
1868 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1869
1870         * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1871
1872 2008-11-19  Razya Ladelsky  <razya@il.ibm.com>
1873
1874         PR target/38156
1875         * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1876         (separate_decls_in_region): Create shared struct even when there
1877         are only reductions.
1878
1879 2008-11-19  Hariharan Sandanagobalane <hariharan@picochip.com>
1880
1881         * config/picochip/picochip.c (headers): Remove an unnecessary
1882         header file.
1883
1884 2008-11-19  Andrew Stubbs  <ams@codesourcery.com>
1885
1886         PR target/36133
1887         * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1888         * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1889         shift instructions.
1890         * config/m68k/m68k.md: Adjust all conditional branches that use the
1891         carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1892
1893 2008-11-18  Uros Bizjak  <ubizjak@gmail.com>
1894
1895         PR target/37362
1896         * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1897         is a register or zero operand in the correct mode before generating
1898         mtch1 insn or a register operand in the correct mode before generating
1899         mfch1 insn.
1900         (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1901
1902 2008-11-18  Adam Nemet  <anemet@caviumnetworks.com>
1903
1904         * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1905         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1906         mipsisa*-*-elf*.  Handle mipsisa64r2*.
1907         * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1908         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1909         mips64r2.
1910         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1911         * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1912         mips64r2.
1913         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
1914         Fix mips16 if mips64 or mips64r2 are multilib defaults.
1915         * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1916         mips64r2.
1917
1918 2008-11-18  Jakub Jelinek  <jakub@redhat.com>
1919
1920         PR target/38130
1921         * config/i386/i386.md (allocate_stack_worker_32,
1922         allocate_stack_worker_64): Don't use match_dup between input and
1923         output operand.
1924         (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1925         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1926
1927 2008-11-18  Kai Tietz  <kai.tietz@onevision.com>
1928
1929         * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1930         is forced when trying to do a symbol link for it.
1931
1932 2008-11-17  Adam Nemet  <anemet@caviumnetworks.com>
1933
1934         * expmed.c (extract_bit_field_1): Also use a temporary and
1935         convert_extracted_bit_field when the conversion from ext_mode to
1936         the target mode requires explicit truncation.
1937
1938 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1939
1940         * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1941         Tweak formatting.
1942         * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1943         registers when not optimizing.
1944
1945 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1946
1947         * config/mips/mips.md (*mul_acc_si): Remove middle alternative
1948         and its associated define_split.  Expose the all-d alternative
1949         to the register allocator, but mark it with "?".  Mark the first
1950         alternative with "*?*?".
1951         (*mul_sub_si): Likewise.
1952         (*mul_acc_si_r3900): New pattern.
1953
1954 2008-11-17  Jakub Jelinek  <jakub@redhat.com>
1955
1956         PR middle-end/38140
1957         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
1958         propagating x = &a into *x = b, add a cast if not useless
1959         type conversion or don't optimize if another stmt would be
1960         needed.
1961
1962 2008-11-17  Uros Bizjak  <ubizjak@gmail.com>
1963
1964         PR middle-end/37908
1965         * optabs.c (expand_sync_operation): Properly handle NAND case
1966         by calculating ~(t1 & val) instead of (~t1 & val).
1967         * builtins.c (expand_builtin_sync_operation): Warn for changed
1968         semantics in NAND builtins.
1969         * c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.
1970
1971         * doc/invoke.texi (Warning options): Add Wsync-nand.
1972         * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
1973         __sync_fetch_and_nand builtin operation in the example.  Add a note
1974         about changed semantics in GCC 4.4.
1975         [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
1976         operation in the example.  Add a note about changed semantics in
1977         GCC 4.4.
1978
1979 2008-11-16  Jan Hubicka  <jh@suse.cz>
1980
1981         * cgraph.c (cgraph_function_body_availability): Fix test of externally
1982         visible.
1983
1984 2008-11-16  Joshua Kinard  <kumba@gentoo.org>
1985
1986         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
1987         to -mips4.
1988
1989 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1990
1991         PR target/38052
1992         * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1993         (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1994         split out from...
1995         (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
1996         rather than call_really_used_regs when handling $gp.
1997
1998 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1999
2000         PR target/38052
2001         * config/mips/mips.c (machine_function): Update the comment
2002         above global_pointer.
2003         (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
2004         that a function doesn't need a global pointer.
2005         (mips_current_loadgp_style): Update accordingly.
2006         (mips_restore_gp): Likewise.
2007         (mips_output_cplocal): Likewise.
2008         (mips_expand_prologue): Likewise.
2009
2010 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2011
2012         * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
2013         parameter.  Use DImode for computing the number of registers.
2014         (function_arg): Adjust for above change.
2015         (function_value): Likewise.
2016
2017 2008-11-15  Zdenek Dvorak  <ook@ucw.cz>
2018
2019         PR tree-optimization/37950
2020         * tree-flow-inline.h (memory_partition): Return NULL when aliases were
2021         not computed for the current function.
2022
2023 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
2024
2025         PR target/38123
2026         * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
2027         gpr and other COMPONENT_REFs.
2028
2029 2008-11-15  Richard Guenther  <rguenther@suse.de>
2030
2031         PR tree-optimization/38051
2032         * tree-ssa-alias.c (update_alias_info_1): Manually find
2033         written variables.
2034
2035 2008-11-15  Joshua Kinard  <kumba@gentoo.org>
2036
2037         * doc/invoke.texi (-mfix-r10000): Document.
2038         * config/mips/mips.opt (mfix-r10000): New option.
2039         * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
2040         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
2041         (MIPS_COMPARE_AND_SWAP_12): Likewise.
2042         (MIPS_SYNC_OP): Likewise.
2043         (MIPS_SYNC_OP_12): Likewise.
2044         (MIPS_SYNC_OLD_OP_12): Likewise.
2045         (MIPS_SYNC_NEW_OP_12): Likewise.
2046         (MIPS_SYNC_OLD_OP): Likewise.
2047         (MIPS_SYNC_NAND): Likewise.
2048         (MIPS_SYNC_OLD_NAND): Likewise.
2049         (MIPS_SYNC_EXCHANGE): Likewise.
2050         (MIPS_SYNC_EXCHANGE_12): Likewise.
2051         (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
2052         delay slots.
2053         (MIPS_SYNC_NEW_NAND): Likewise.
2054         * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
2055         (mips_init_print_operand_punct): Treat '~' as a punctuation character.
2056         (mips_output_sync_loop): New function.
2057         (mips_override_options): Make -march=r10000 imply -mfix-r10000.
2058         Make -mfix-r10000 require branch-likely instructions.
2059         * config/mips/sync.md (sync_compare_and_swap<mode>): Use
2060         mips_output_sync_loop.
2061         (compare_and_swap_12): Likewise.
2062         (sync_add<mode>): Likewise.
2063         (sync_<optab>_12): Likewise.
2064         (sync_old_<optab>_12): Likewise.
2065         (sync_new_<optab>_12): Likewise.
2066         (sync_nand_12): Likewise.
2067         (sync_old_nand_12): Likewise.
2068         (sync_new_nand_12): Likewise.
2069         (sync_sub<mode>): Likewise.
2070         (sync_old_add<mode>): Likewise.
2071         (sync_old_sub<mode>): Likewise.
2072         (sync_new_add<mode>): Likewise.
2073         (sync_new_sub<mode>): Likewise.
2074         (sync_<optab><mode>): Likewise.
2075         (sync_old_<optab><mode>): Likewise.
2076         (sync_new_<optab><mode>): Likewise.
2077         (sync_nand<mode>): Likewise.
2078         (sync_old_nand<mode>): Likewise.
2079         (sync_new_nand<mode>): Likewise.
2080         (sync_lock_test_and_set<mode>): Likewise.
2081         (test_and_set_12): Likewise.
2082
2083 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
2084
2085         * gcc.c (cc1_options): Fix comment.
2086
2087 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
2088
2089         PR c++/37561
2090         * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
2091         argtype instead of result_type.
2092
2093 2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>
2094
2095         * ira-int.h (struct ira_loop_tree_node): Improve comments for
2096         subloop_next/next and subloops/childen fields.
2097
2098 2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2099
2100         * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
2101         (STANDARD_INCLUDE_DIR): Redefine to "/include".
2102         (LOCAL_INCLUDE_DIR): Undefine.
2103         * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
2104
2105 2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>
2106
2107         PR rtl-optimization/37397
2108         * ira-int.h (struct ira_allocno): New member bad_spill_p.
2109         (ALLOCNO_BAD_SPILL_P): New macro.
2110
2111         * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
2112
2113         * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
2114         (create_cap_allocno, propagate_allocno_info,
2115         remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
2116         (update_bad_spill_attribute): New function.
2117         (ira_build): Call it.
2118
2119         * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
2120
2121 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
2122
2123         PR tree-optimization/38104
2124         * gimplify.c (gimple_regimplify_operands): Add referenced vars
2125         before calling mark_symbols_for_renaming, not after it.
2126
2127 2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2128
2129         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
2130         (OVERRIDE_OPTIONS): Likewise.
2131
2132 2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
2133             Andrew Stubbs  <ams@codesourcery.com>
2134             Gunnar Von Boehn  <gunnar@genesi-usa.com>
2135
2136         PR target/36134
2137         * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
2138         the shorter LEA insn over ADD.L where possible.
2139
2140 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
2141
2142         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
2143         systems, which are assumend to always provide SSP-support in glibc.
2144         Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
2145         case.
2146         * configure: Regenerate.
2147
2148 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
2149
2150         PR middle-end/36125
2151         * function.c (gimplify_parameters): For callee copies parameters,
2152         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
2153
2154 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
2155
2156         PR target/28102
2157         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
2158         x86 parts into the `i[34567]86-*-linux*' and parts that are
2159         independent of the processor architecture into the `*-*-linux*' cases.
2160         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
2161         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
2162         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
2163         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
2164         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
2165         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
2166         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
2167
2168 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
2169
2170         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
2171         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
2172         (ls2_idiv): Likewise idiv3.
2173         (ls2_prefetch): New reservation.
2174         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
2175         * config/mips/mips.md (type): Add imul3nc and idiv3.
2176         (length): Handle idiv3.
2177         (any_mod): New code_iterator.
2178         (u): Handle MOD and UMOD.
2179         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
2180         (prefetch): Handle TARGET_LOONGSON_2EF.
2181
2182 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
2183
2184         PR c++/27017
2185         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
2186         (prune_unused_types_walk): Call it for non-perennial local classes.
2187         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
2188         entry, just set it to 2 and recurse on children, don't walk attributes
2189         again.
2190
2191 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
2192
2193         * c-common.c (warn_about_parentheses): Add missing whitespace
2194         in warning.
2195
2196 2008-11-13  Paul Brook  <paul@codesourcery.com>
2197
2198         * doc/invoke.texi: Document --fix-cortex-m3.
2199         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
2200         Cortex-M3 cpu is selected.
2201         (output_move_double): Avoid overlapping base register and first
2202         destination register when fix_cm3_ldrd.
2203         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
2204
2205 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
2206
2207         PR bootstrap/38100
2208         * gimple.h (gimple_range_check_failed): Remove prototype.
2209         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
2210         in guarding #if.
2211         (gimple_range_check_failed): Removed.
2212
2213 2008-11-13  Andrew Haley  <aph@redhat.com>
2214
2215         PR bootstrap/38088
2216         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
2217         __LONG_LONG_MAX__.
2218
2219 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2220
2221         PR c++/36478
2222         Revert:
2223         2007-05-07  Mike Stump  <mrs@apple.com>
2224         * doc/invoke.texi (Warning Options): Document that -Wempty-body
2225         also checks for and while statements in C++.
2226
2227 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
2228
2229         PR debug/27574
2230         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
2231         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
2232         - which clones are reachable - as "abstract and needed".
2233         * cgraph.c (cgraph_release_function_body):  If a node is
2234         "abstract and needed", do not release its DECL_INITIAL() content
2235         that will be needed to emit debug info.
2236
2237 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
2238
2239         PR target/27880
2240         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
2241         to set HAVE_GETIPINFO.
2242         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
2243         * configure: Regenerate.
2244         * config.in: Regenerate.
2245
2246 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
2247
2248         PR bootstrap/38010
2249         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
2250
2251 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2252
2253         Revert:
2254         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
2255         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2256
2257 2008-11-12  Jason Merrill  <jason@redhat.com>
2258
2259         PR c++/38007
2260         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
2261         special casing.
2262
2263 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
2264
2265         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
2266         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
2267         atmega32u6 devices.
2268         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2269         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2270
2271 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2272
2273         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
2274         packed-stack special handling.
2275         (FRAME_ADDR_RTX): Add definition.
2276
2277 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2278
2279         PR target/35366
2280         * fold-const.c (native_encode_string): New function.
2281         (native_encode_expr): Use it for STRING_CST.
2282
2283 2008-11-12  DJ Delorie  <dj@redhat.com>
2284
2285         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
2286         insns if the intermediate value will be used later.
2287
2288 2008-11-12  Andreas Schwab  <schwab@suse.de>
2289
2290         * config/m68k/m68k.c (print_operand): Mask off extra extension
2291         bits when writing out the representation of real values.
2292
2293 2008-11-12  Ira Rosen  <irar@il.ibm.com>
2294
2295         PR tree-optimization/38079
2296         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
2297         with vect_dump.
2298
2299 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2300
2301         PR c++/35334
2302         * c-pretty-print.c (pp_c_complex_expr): New function.
2303         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
2304
2305         PR target/35366
2306         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
2307         than INNER and INNER is a constant, forcibly align INNER as much
2308         as needed.
2309
2310 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
2311
2312         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
2313
2314 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
2315
2316         PR rtl-optimization/37363
2317         * simplify-rtx.c (simplify_plus_minus): Don't create
2318         (const (minus ...)) expresisons.
2319
2320 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2321
2322         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
2323         handling.
2324
2325 2008-11-10  Catherine Moore  <clm@codesourcery.com>
2326
2327         * config.gcc (mips64vrel-*-elf*): Include the tm_file
2328         prior to vr.h.
2329         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
2330         (BASE_DRIVER_SELF_SPECS): Remove.
2331         (DRIVER_SELF_SPECS): New definition.
2332         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include
2333         BASE_DRIVER_SELF_SPECS.
2334         * config/mips/sde.h: Likewise.
2335         * config/mips/iris6.h: Likewise.
2336         * config/mips/vr.h: Likewise.
2337         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
2338
2339 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
2340
2341         PR rtl-optimizations/37948
2342         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
2343         (ira_create_copy, ira_add_allocno_copy): New parameter.
2344
2345         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
2346         to ira_add_allocno_copy.
2347         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
2348         parameter to process_regs_for_copy.
2349         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
2350         Fix typo in passing second allocno to ira_add_allocno_copy.
2351
2352         * ira-color.c (update_conflict_hard_regno_costs): Use head of
2353         coalesced allocnos list.
2354         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
2355         the graph.
2356         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
2357         (add_ira_allocno_to_ordered_bucket): Rename to
2358         add_allocno_to_ordered_bucket.
2359         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
2360         head of coalesced allocnos list.
2361         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
2362         Check that it is aready calculated.
2363         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2364         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2365         list.
2366         (coalesce_allocnos): Do extended coalescing too.
2367
2368         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2369         parameter to ira_add_allocno_copy.
2370
2371         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2372         parameter.
2373         (print_copy): Print copy origination too.
2374
2375         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2376         equivalent memory.
2377
2378 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2379
2380         PR rtl-optimization/37514
2381         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2382         flag_ira_share_spill_slots to 2 if it's already non-zero.
2383         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2384         flag_ira_share_spill_slots is 2.
2385
2386 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
2387
2388         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2389         (prologue_enter_32): Set FB to SP - 4.
2390
2391 2008-11-10  DJ Delorie  <dj@redhat.com>
2392
2393         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2394         constraint for single-bit-clear in lower byte of HI constant, vs
2395         Imb which just ignores the upper byte.
2396         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2397         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2398         (iorhi3_16): Check for single bit set, not single bit clear.
2399
2400 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
2401
2402         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2403
2404         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2405
2406 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2407
2408         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2409         values living in memory and use more precise alignment information.
2410
2411 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
2412
2413         PR middle-end/35314
2414         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2415         after __mf_check call if the call must end a bb.
2416
2417 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
2418
2419         PR middle-end/37807
2420         PR middle-end/37809
2421         * combine.c (force_to_mode): Do not process vector types.
2422
2423         * rtlanal.c (nonzero_bits1): Do not process vector types.
2424         (num_sign_bit_copies1): Likewise.
2425
2426 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
2427
2428         * config/i386/gnu.h: Add copyright and licensing header.
2429         * config/gnu.h: Likewise.
2430
2431 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2432
2433         * fwprop.c (fwprop_done): Call df_remove_problem.
2434
2435 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
2436
2437         PR middle-end/37379
2438         * tree-scalar-evolution.c (instantiate_scev_1): Return
2439         chrec_dont_know for VL_EXP_CLASS_P.
2440
2441 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2442
2443         * reg-stack.c (reg_to_stack): Add missing braces in memset
2444         size calculation.
2445
2446 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
2447
2448         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2449         (NO_PROFILE_COUNTERS): New define.
2450
2451 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
2452
2453         PR target/26397
2454         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2455
2456 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
2457
2458         PR target/35574
2459         * config/sparc/constraints.md (D): New.
2460         * config/sparc/predicates.md (const_double_or_vector_operand): New.
2461         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2462         'D' constraint.
2463         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2464         Use the 'D' constraint in addition to 'F' in some alternatives.
2465         (DF splitter): Generalize for V64mode.
2466         * doc/md.texi (SPARC): Document the 'D' constraint.
2467
2468 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2469
2470         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2471
2472 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2473
2474         * gcc.c: Remove ancient comment about a bug in Sun cc.
2475
2476 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
2477
2478         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2479
2480 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2481
2482         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2483
2484 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2485
2486         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2487         description.
2488
2489 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
2490
2491         PR target/38016
2492         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2493         just MEM_P.
2494
2495 2008-11-05  Martin Jambor  <mjambor@suse.cz>
2496
2497         PR middle-end/37861
2498         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2499         pointer arithmetics into array_ref if the array is accessed
2500         through an indirect_ref.
2501
2502 2008-11-05  Richard Guenther  <rguenther@suse.de>
2503
2504         PR middle-end/37742
2505         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2506         qualified pointer conversion before stripping qualifiers.
2507         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2508         * tree-flow.h (may_propagate_address_into_dereference): Declare.
2509         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2510         function.
2511         (ccp_fold): Use it.
2512         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2513         properly canonicalize binary ops.
2514         (forward_propagate_addr_expr_1): Use
2515         may_propagate_address_into_dereference.
2516
2517 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
2518
2519         PR middle-end/37286
2520         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2521         Initialize uninitialized input registers with a NaN.
2522
2523 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2524
2525         PR middle-end/37833
2526
2527         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2528
2529 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2530
2531         PR middle-end/37943
2532
2533         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2534         exits and conditions.
2535         * testsuite/gcc.dg/graphite/pr37943.c: New.
2536
2537 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
2538             Andrew Pinski  <andrew_pinski@playstation.sony.com>
2539
2540         PR c/35430
2541         * c-common.c (warn_for_sign_compare): For complex result_type
2542         use component's type.
2543
2544 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
2545
2546         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2547
2548         * print-tree.c (print_node): Don't print DECL_INITIAL
2549         for PARM_DECL.
2550
2551         PR c/37106
2552         * c-common.c (parse_optimize_options): Save and restore
2553         flag_strict_aliasing around decode_options call.
2554
2555 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
2556
2557         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2558         (host_detect_local_cpu): Use it instead of casted strings to
2559         compare vendor signatures.
2560
2561 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
2562
2563         PR target/37989
2564         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2565         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2566
2567 2008-11-03  Catherine Moore  <clm@codesourcery.com>
2568
2569         * config/mips.c (mips_conditional_register_usage):  Handle the
2570         DSP control register.
2571         * doc/extend.texi: Document the DSP control register.
2572
2573 2008-11-03  Steve Ellcey <sje@cup.hp.com>
2574             Jakub Jelinek  <jakub@redhat.com>
2575
2576         * omp-low.c (expand_omp_for_generic): If iter_type has different
2577         precision than type and type is a pointer type, cast n1 and n2
2578         first to an integer type with the same precision as pointers
2579         and only afterwards to iter_type.
2580
2581 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2582
2583         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2584         (UNSPEC_GOTSYM_OFF): New unspec.
2585         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2586         (pic_add_dot_plus_eight): Likewise.
2587         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
2588         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2589         UNSPEC_PIC_BASE operands.
2590         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2591         (arm_output_addr_const_extra): Handle it.
2592
2593 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2594
2595         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2596         integer class to full integer class if the offset is not word-aligned.
2597
2598 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2599
2600         PR rtl-opt/37782
2601         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2602         mode count is in.
2603         (doloop_optimize): Update call to doloop_modify.
2604
2605 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2606
2607         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2608
2609 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2610
2611         PR other/37463
2612         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2613         gcc_cv_as_cfi_directive.
2614         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2615         merging read-only and read-write sections or assembler emits
2616         read-write .eh_frame sections.
2617         * configure: Regenerate.
2618
2619 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
2620
2621         Revert:
2622         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2623
2624         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2625         problem.
2626         (rs6000_emit_prologue): Invert logic.
2627         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2628         (reg:P 11) instead of match_operand.
2629         (*save_fpregs_<mode>): Likewise.
2630         (*restore_gpregs_<mode>): Likewise.
2631         (*return_and_restore_gpregs_<mode>): Likewise.
2632         (*return_and_restore_fpregs_<mode>): Likewise.
2633         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2634         (reg:P 11) insted of match_operand.
2635         (*restore_gpregs_spe): Likewise.
2636         (*return_and_restore_gpregs_spe): Likewise.
2637
2638 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
2639
2640         PR tree-optimization/37684
2641         * gcc.dg/graphite/pr37684.c: New.
2642         * graphite.c (exclude_component_ref): New.
2643         (is_simple_operand): Call exclude_component_ref.
2644
2645 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2646
2647         PR tree-optimization/36908
2648         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2649         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2650         (number_of_rw_in_partition): New.
2651         (partition_contains_all_rw): New.
2652         (ldist_gen): Do not distribute when one of the partitions
2653         contains all the memory operations.
2654
2655 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2656
2657         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2658         EDGE_IRREDUCIBLE_LOOP.
2659
2660 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
2661
2662         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2663         where we have one entry point in the loop which isn't the head.
2664
2665 2008-11-03  Richard Guenther  <rguenther@suse.de>
2666
2667         PR middle-end/37573
2668         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2669
2670 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
2671
2672         PR middle-end/37858
2673         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2674         for ipa and simple ipa passes.
2675
2676 2008-11-02  Richard Guenther  <rguenther@suse.de>
2677
2678         PR tree-optimization/37542
2679         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2680         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2681         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2682         (vn_nary_op_insert_stmt): Likewise.
2683         (visit_use): Likewise.
2684
2685 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
2686
2687         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2688         (*swap): Remove.
2689         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2690         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2691         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2692         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2693         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2694         peephole2's): Replace unspec with rotate.
2695         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2696
2697 2008-11-02  Richard Guenther  <rguenther@suse.de>
2698
2699         PR tree-optimization/37991
2700         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2701         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2702         (set_ssa_val_to): Print if the value changed.
2703         (simplify_binary_expression): Strip useless conversions.
2704
2705 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
2706
2707         PR target/37939
2708         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2709         operand.
2710
2711 2008-11-01  Richard Guenther  <rguenther@suse.de>
2712
2713         PR middle-end/37976
2714         * builtins.c (fold_builtin_strspn): Return a size_t.
2715         (fold_builtin_strcspn): Likewise.
2716
2717 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2718
2719         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2720         attribute for struct return convention.
2721
2722 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2723
2724         * config/rs6000/crtsavres.asm: Really, really delete.
2725
2726 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2727
2728         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2729         problem.
2730         (rs6000_emit_prologue): Invert logic.
2731         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2732         (reg:P 11) instead of match_operand.
2733         (*save_fpregs_<mode>): Likewise.
2734         (*restore_gpregs_<mode>): Likewise.
2735         (*return_and_restore_gpregs_<mode>): Likewise.
2736         (*return_and_restore_fpregs_<mode>): Likewise.
2737         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2738         (reg:P 11) insted of match_operand.
2739         (*restore_gpregs_spe): Likewise.
2740         (*return_and_restore_gpregs_spe): Likewise.
2741
2742 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
2743
2744         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2745         list of word switches that take args.
2746
2747 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
2748
2749         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2750         (s390_output_pool_entry): Call it through for_each_rtx.
2751
2752         PR middle-end/37730
2753         * expr.c (store_constructor): For vectors, if target is a MEM, use
2754         target's MEM_ALIAS_SET instead of elttype alias set.
2755
2756 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2757
2758         PR target/37909
2759         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2760         no address.
2761
2762 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
2763
2764         PR target/37878
2765         * config/rs6000/predicates.md (word_offset_memref_operand):
2766         Restructure code and look inside auto-inc/dec addresses.
2767
2768 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
2769
2770         PR target/32277
2771         * libgcov.c (__gcov_indirect_call_profiler): Check
2772         TARGET_VTABLE_USES_DESCRIPTORS.
2773
2774 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
2775
2776         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2777         (INITIAL_FRAME_POINTER_OFFSET): Remove.
2778         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2779         offset if eliminating soft frame pointer.
2780         * config/spu/spu.md (stack_protect_set, stack_protect_test)
2781         (stack_protect_test_si): Add initial machine description
2782         for Stack Smashing Protector
2783
2784 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2785
2786         PR 11492
2787         * c-common.c (min_precision): Move to...
2788         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2789         * tree.h (tree_int_cst_min_precision): Declare.
2790         * c-common.h (min_precision): Delete declaration.
2791         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2792         multiplication of non-negative integer constants.
2793         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2794         tree_int_cst_min_precision.
2795         (finish_enum): Likewise.
2796
2797 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
2798
2799         PR middle-end/36578
2800         * convert.c (convert_to_real): Do not optimize conversions of
2801         binary arithmetic operations between binary and decimal
2802         floating-point types.  Consider mode of target type in determining
2803         decimal type for arithmetic.  Unless
2804         flag_unsafe_math_optimizations, do not optimize binary conversions
2805         where this may change rounding behavior.
2806         * real.c (real_can_shorten_arithmetic): New.
2807         * real.h (real_can_shorten_arithmetic): Declare.
2808
2809 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2810
2811         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2812         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2813         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2814         appropriate.
2815         (must_save_p): For some workarounds, interrupts need to clobber a
2816         P register.
2817         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2818         and LC1 for WA_05000257.
2819         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2820         WA_05000283 and WA_05000315.
2821         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2822         (movbi): Add alternative to set CC to 1; improve code for setting
2823         CC to 0.
2824         (dummy_load): New pattern.
2825
2826 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
2827
2828         PR middle-end/37870
2829         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2830         BLKmode for non-memory, convert using a wider MODE_INT mode
2831         or through memory.
2832
2833         PR middle-end/37913
2834         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2835         that haven't been removed yet.
2836
2837 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2838
2839         * config/bfin/bfin.c (struct machine_function): New member
2840         has_loopreg_clobber.
2841         (bfin_expand_movmem): Set it when generating memcpy insns.
2842         (n_regs_saved_by_prologue, expand_prologue_reg_save,
2843         expand_epilogue_reg_restore): If we have hardware loops,
2844         memcpy insns (indicated by has_loopreg_clobber) or function
2845         calls, we need to save the loop registers.
2846
2847 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
2848
2849         * config/i386/i386.c (core2_cost): Fix typos in comments.
2850
2851 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2852
2853         PR c/37924
2854         * combine.c (make_compound_operation): Don't call make_extraction with
2855         non-positive length.
2856         (simplify_shift_const_1): Canonicalize count even if complement_p.
2857
2858 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
2859
2860         * convert.c (strip_float_extensions): Do not remove or introduce
2861         conversions between binary and decimal floating-point types.
2862
2863 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2864
2865         PR middle-end/37931
2866         * fold-const.c (distribute_bit_expr): Convert common, left and
2867         right arguments to type.
2868
2869 2008-10-28  Nick Clifton  <nickc@redhat.com>
2870
2871         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2872         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2873         call_really_used_regs array rather than the call_used_regs array.
2874         (mn10300_get_live_callee_saved_regs, expand_prologue,
2875         expand_epilogue, output_tst): Likewise.
2876
2877 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
2878
2879         PR target/37378
2880         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2881         (df_get_entry_block_def_set): Neither here.
2882         (df_get_regular_block_artificial_uses): Add EH_USES registers.
2883
2884         PR tree-optimization/37879
2885         * predict.c (tree_estimate_probability): Check if last_stmt is
2886         non-NULL before dereferencing it.
2887
2888 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2889
2890         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2891         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2892         (ira_fast_allocation): Remove the prototype.
2893
2894         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2895         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2896         (color_pass): Modify the updated costs.
2897         (ira_color): Rename to color.  Make it static.
2898         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
2899         (ira_color): New function.
2900
2901         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2902         change.
2903
2904         * ira-lives.c (last_call_num, allocno_saved_at_call): New
2905         variables.
2906         (set_allocno_live, clear_allocno_live, mark_ref_live,
2907         mark_ref_dead): Invalidate corresponding element of
2908         allocno_saved_at_call.
2909         (process_bb_node_lives): Increment last_call_num.  Setup
2910         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
2911         allocno was already saved.
2912         (ira_create_allocno_live_ranges): Initiate last_call_num and
2913         allocno_saved_at_call.
2914
2915         * ira-build.c (ira_create_allocno): Initiate
2916         ALLOCNO_UPDATED_COVER_CLASS_COST.
2917         (create_cap_allocno, propagate_allocno_info,
2918         remove_unnecessary_allocnos): Remove setting updated costs.
2919         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2920
2921         * ira.c (ira):  Don't call ira_fast_allocation.
2922
2923         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2924         updated costs.
2925
2926 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2927
2928         PR middle-end/37813
2929         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2930
2931         * ira-int.h (ira_hard_regno_cover_class): New.
2932
2933         * ira-lives.c (mark_reg_live, mark_reg_dead,
2934         process_bb_node_lives): Use ira_hard_regno_cover_class.
2935
2936         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2937         (setup_hard_regno_cover_class): New function.
2938         (ira_init): Call setup_hard_regno_cover_class.
2939
2940         * ira-costs.c (cost_class_nums): Add comment.
2941         (find_allocno_class_costs): Initiate cost_class_nums.
2942         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2943
2944 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2945
2946         PR middle-end/37884
2947         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
2948         Rename to copy_info_to_removed_store_destinations.  Propagate
2949         conflict hard regs and register stack attribute.
2950
2951 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2952
2953         PR middle-end/37316
2954         * pa.c (function_arg_padding):  Pad complex and vector types
2955         upward in 64-bit runtime.
2956         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2957
2958 2008-10-26  Matthias Klose  <doko@ubuntu.com>
2959
2960         * doc/install.texi: Document requirements on antlr.
2961
2962 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
2963
2964         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
2965         first.
2966
2967 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2968
2969         PR target/37841
2970         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
2971         is defined, use it to modify the constant offset.
2972
2973         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
2974
2975         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
2976         and short arguments to the correct location as mandated by the ABI.
2977
2978 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2979
2980         PR rtl-optimization/37769
2981         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
2982
2983 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2984
2985         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
2986         unwind-dw2-Os-4-200.o.
2987
2988 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
2989
2990         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2991         (convert_for_assignment): Remove ic_argpass_nonproto cases.
2992
2993 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
2994
2995         PR tree-optimization/36038
2996         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2997         add sizetype IV with initial value zero instead of pointer type.
2998
2999 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3000
3001         PR c/7543
3002         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
3003         around bit operation.
3004         * profile.c (is_edge_inconsistent): Likewise.
3005         * fold-const.c (truth_value_p): Move from here...
3006         * tree.h (truth_value_p): ... to here.
3007         * c-tree.h (c_expr): Update description of original_code.
3008         * c-typeck.c (parser_build_unary_op): Set original_code.
3009         (parser_build_binary_op): Update call to warn_about_parentheses.
3010         * c-common.c (warn_about_parentheses): Take two additional
3011         arguments of the operands. Use a switch. Quote operators
3012         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
3013         Add warning about !x | y and !x & y.
3014         * c-common.h (warn_about_parentheses): Update declaration.
3015
3016 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
3017
3018         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
3019         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
3020         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
3021         New variables.
3022         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
3023         (check-%): For test targets listed in lang_checks_parallelized
3024         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
3025         run the testing in multiple make goals, possibly parallel, and
3026         afterwards run dg-extract-results.sh to merge the sum and log files.
3027
3028 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
3029
3030         * config/mips/mips.c (mips_canonicalize_move_class): New function.
3031         (mips_move_to_gpr_cost): Likewise.
3032         (mips_move_from_gpr_cost): Likewise.
3033         (mips_register_move_cost): Make more fine-grained.
3034
3035 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
3036
3037         * graphite.c (graphite_apply_transformations): Check for
3038         -fgraphite-identity.
3039         * toplev.c (process_options): Add graphite_identity.
3040         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
3041
3042 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
3043
3044         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
3045         mulhisihl and mulhisihh builtins.
3046
3047         From Jie Zhang  <jie.zhang@analog.com>
3048         * config/bfin/bfin.md (composev2hi): Put operands into vector
3049         with correct order.
3050
3051 2008-10-22  Chao-ying Fu  <fu@mips.com>
3052
3053         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
3054
3055 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
3056
3057         From Mike Frysinger  <michael.frysinger@analog.com>
3058         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
3059         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
3060         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
3061         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
3062         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
3063         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
3064         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
3065         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
3066         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
3067         __ADSPBF51x__ for all of them.
3068         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
3069         -mcpu bf512, bf514, bf516, and bf518.
3070         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
3071         bf512-none, bf514-none, bf516-none, and bf518-none.
3072         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
3073         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
3074         * doc/invoke.texi (Blackfin Options): Document that
3075         -mcpu now accepts bf512, bf514, bf516, and bf518.
3076
3077 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
3078
3079         PR middle-end/37882
3080         * fold-const.c (build_range_type): For 1 .. signed_max
3081         range call build_nonstandard_inter_type if signed_type_for
3082         returned a type with bigger precision.
3083
3084 2008-10-22  Richard Guenther  <rguenther@suse.de>
3085
3086         * tree.def (COMPLEX_TYPE): Constrain element type.
3087         * tree.c (build_complex_type): Assert that.
3088         * tree-ssa-structalias.c (could_have_pointers): Complex types
3089         cannot have pointers.
3090
3091 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3092
3093         PR c/30949
3094         * c-typeck.c (convert_for_assignment): Do not give declaration's
3095         location for builtins. Spell out which type was expected and which
3096         was given.
3097
3098 2008-10-22  Nick Clifton  <nickc@redhat.com>
3099
3100         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
3101         the fdpic register to be a target when running in fdpic mode.
3102
3103 2008-10-22 Rafael Espindola  <espindola@google.com>
3104
3105         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
3106         newly created statements.
3107
3108 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3109
3110         PR target/37633
3111         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
3112         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
3113         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
3114
3115 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
3116
3117         PR target/37880
3118         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
3119         Adjust -mcmodel=medium description for 2005-07-31 changes.
3120
3121 2008-10-22  Jan Hubicka  <jh@suse.cz>
3122             Jakub Jelinek  <jakub@redhat.com>
3123
3124         PR middle-end/35853
3125         * doc/invoke.texi: Remove references to obsoleted -d dumps.
3126
3127 2008-10-21  Richard Henderson  <rth@redhat.com>
3128
3129         PR 37815
3130         * emit-rtl.c (get_spill_slot_decl): Export.
3131         * emit-rtl.h (get_spill_slot_decl): Declare.
3132         * var-tracking.c (vt_add_function_parameters): Relax assertion
3133         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
3134
3135 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
3136
3137         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
3138         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
3139         of from insn.
3140
3141 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
3142
3143         PR middle-end/37669
3144         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
3145         processed by get_maxval_strlen.
3146
3147 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
3148
3149         PR target/35485
3150         * tree.c (get_file_function_name): Copy first_global_object_name.
3151         Centralize call to clean_symbol_name.
3152
3153 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
3154
3155         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
3156         * config/svr4.h (SVR4_ASM_SPEC): New.
3157         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3158         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3159
3160         * doc/invoke.texi (Option Summary): Add -T to linker options.
3161         (Link Options): Document -T.
3162
3163 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
3164
3165         * tree-inline.c (tree_inlinable_function_p): Remove tuples
3166         debugging hack.
3167
3168         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
3169
3170         PR debug/37020
3171         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
3172
3173 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
3174
3175         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
3176         part of expression.
3177
3178 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
3179
3180         * doc/install.texi: Fix typos in previous patch.
3181
3182 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
3183
3184         * doc/install.texi: Document in-tree building of gcc and mpfr.
3185
3186 2008-10-19  Richard Guenther  <rguenther@suse.de>
3187
3188         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
3189
3190 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3191
3192         PR c/30260
3193         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
3194         (build_enumerator): Convert enumerators that fit in integer to
3195         integer type.
3196
3197 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
3198
3199         * config/i386/i386.md (unnamed peephole2): Do not force memory
3200         operands of arith or logical instructions into registers for
3201         non-TARGET_READ_MODIFY targets.
3202
3203         (ffs_cmove): Change operand 0 predicate to register_operand.
3204         Change operand 1 predicate to nonimmediate_operand.
3205         (ffsdi2): Ditto.
3206         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
3207
3208 2008-10-18  Richard Guenther  <rguenther@suse.de>
3209
3210         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
3211         VIEW_CONVERT_EXPR case against invalid gimple.
3212
3213 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3214
3215         * c-parser.c (c_parser_binary_expression): Silence the
3216         uninitialized variable warning emitted for binary_loc.
3217
3218 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
3219
3220         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
3221         translation cache.
3222
3223 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
3224
3225         PR c/33192
3226         * c-typeck.c (build_unary_op): Use omit_one_operand for
3227         IMAGPART_EXPR of real argument.
3228
3229 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
3230
3231         PR tree-optimization/37664
3232         * fold-const.c (fold_binary): When optimizing comparison with
3233         highest or lowest type's value, don't consider TREE_OVERFLOW.
3234
3235 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
3236
3237         PR target/35483
3238         * Makefile.in (coverage.o): Depend on $(TM_P_H).
3239         * coverage.c: Include tm_p.h.
3240         * config/rs6000/x-aix (jc1): Override LDFLAGS.
3241         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
3242         dollar signs from PREFIX.
3243         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
3244         instead of manual strip_name_encoding.
3245
3246 2008-10-16  Richard Guenther  <rguenther@suse.de>
3247
3248         PR middle-end/37418
3249         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
3250         volatile qualified functions or methods as relevant.
3251
3252 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
3253
3254         PR tree-optimization/37525
3255         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
3256         sizetype unsigned constants, both in the case of C and bounds.
3257
3258 2008-10-15  Jan Hubicka  <jh@suse.cz>
3259
3260         * ira-emit.c (change_regs): Return false when replacing reg by itself.
3261
3262 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
3263
3264         PR target/37633
3265         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
3266         HARD_REGNO_CALL_PART_CLOBBERED.
3267
3268 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
3269
3270         PR middle-end/37535
3271         * ira-lives.c (mark_early_clobbers): Remove.
3272         (make_pseudo_conflict, check_and_make_def_use_conflicts,
3273         check_and_make_def_conflicts,
3274         make_early_clobber_and_input_conflicts,
3275         mark_hard_reg_early_clobbers): New functions.
3276         (process_bb_node_lives): Call
3277         make_early_clobber_and_input_conflicts and
3278         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
3279
3280         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
3281         early clobbers of pseudo-registers.
3282
3283 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
3284
3285         PR middle-end/37674
3286         * ira-build.c (ira_flattening): Recalculate
3287         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
3288         from the scratch instead of the propagation.
3289
3290 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
3291
3292         * doc/rtl.texi (const_double): Remove the "addr" operand.
3293         Describe CONST_DOUBLE_* macros under const_double rather
3294         than const_vector.
3295         (const_fixed): Fix the operand description.
3296         (const): Add an @findex directive.
3297         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
3298         after the constant rtl table.
3299         (fix): Combine floating-point and fixed-point descriptions.
3300         Fix hyphenation.
3301         * sched-deps.c (sched_analyze_2): Remove reference to
3302         CONST_DOUBLE_CHAIN.
3303
3304 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
3305
3306         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
3307         UNSPEC_GOTSYM_OFFs.
3308         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
3309         for UNSPEC_GOTSYM_OFFs.
3310         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
3311         (add_GOT_to_pic_reg): Use it.
3312         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
3313
3314 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
3315             Harsha Jagasia  <harsha.jagasia@amd.com>
3316
3317         PR tree-optimization/37485
3318         * graphite.c (gmp_cst_to_tree): Moved.
3319         (iv_stack_entry_is_constant): New.
3320         (iv_stack_entry_is_iv): New.
3321         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
3322         (loop_iv_stack_insert_constant): New.
3323         (loop_iv_stack_pop): Use new datatpype.
3324         (loop_iv_stack_get_iv): Same.
3325         (loop_iv_stack_get_iv_from_name): Same.
3326         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
3327         (loop_iv_stack_patch_for_consts): New.
3328         (loop_iv_stack_remove_constants): New.
3329         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
3330         (translate_clast): Call loop_iv_stack_patch_for_consts and
3331         loop_iv_stack_remove_constants.
3332         (gloog): Use new datatype.  Redirect construction edge to end
3333         block to avoid accidental deletion.
3334         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
3335         iv stack entry.
3336         (union iv_stack_entry_data): New.  Data in iv stack entry.
3337         (struct iv_stack_entry): New.  Datatype for iv stack entries.
3338
3339 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3340
3341         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
3342         * graphite.c (free_scop): Same.
3343         (build_scops): Same.
3344         (free_scattering): New.
3345         (build_cloog_prog): Call free_scattering.
3346         (patch_phis_for_virtual_defs): Fix memleak.
3347         (graphite_trans_bb_strip_mine): Same.
3348         (limit_scops): Same.
3349
3350 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3351             Harsha Jagasia  <harsha.jagasia@amd.com>
3352
3353         PR tree-optimization/37828
3354         * graphite.c (graphite_trans_loop_block): Do not loop block
3355         single nested loops.
3356
3357 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3358
3359         PR tree-optimization/37686
3360         * tree-loop-linear.c (linear_transform_loops): Build a
3361         loop nest vector.  Pass it to lambda_compute_access_matrices.
3362         * tree-data-ref.h (struct access_matrix): Store the loop nest
3363         relative to which it encodes the information.
3364         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3365         (am_vector_index_for_loop): Reimplemented: iterate over the
3366         loop nest for finding the loop index in the access matrix.
3367         (lambda_compute_access_matrices): Update declaration.
3368         * lambda-code.c (build_access_matrix): Pass the loop nest and
3369         record it.
3370         (lambda_compute_access_matrices): Same.
3371
3372 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
3373
3374         * config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3375         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3376         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3377         already implies hard float.  Also fix several insn condition
3378         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3379
3380 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
3381
3382         PR target/35483
3383         Based on patches by Laurent Vivier.
3384         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3385         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3386         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3387         dollar sign to underscore.
3388         (ASM_OUTPUT_EXTERNAL): Same.
3389         (ASM_OUTPUT_LABELREF): New.
3390         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3391
3392         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3393         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3394         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3395         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3396
3397 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
3398
3399         PR tree-optimization/36881
3400         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3401         that each value doesn't need runtime relocations, for !flag_pic
3402         check that each value is just a valid initializer constant.
3403
3404 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
3405
3406         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3407         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3408         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3409         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3410         GR_AND_ACC_REGS.
3411         (REG_CLASS_NAMES): Update accordingly.
3412         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
3413         rather than an unpredictable descriptive string.
3414         * config/mips/mips.c (mips_register_move_cost): Remove comment.
3415         (mips_register_move_cost): Check for specific COP*_REGS classes,
3416         instead of ALL_COP_AND_GR_REGS.
3417         (mips_ira_cover_classes): New function.
3418         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3419         (TARGET_IRA_COVER_CLASSES): Define.
3420
3421 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
3422
3423         PR c++/37553
3424         * tree.c (build_type_attribute_qual_variant): Hash on the
3425         unqualified type, and don't overwrite an existing
3426         (type_hash_eq): Make the TYPE_NAME of the types significant, to
3427         allow distinguishing between wchar_t and its underlying type. This
3428         also means that we'll retain a little more typedef information.
3429
3430 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
3431             Dmitry Melnik  <dm@ispras.ru>
3432             Dmitry Zhurikhin  <zhur@ispras.ru>
3433             Alexander Monakov  <amonakov@ispras.ru>
3434             Maxim Kuvyrkov  <maxim@codesourcery.com>
3435
3436         * target.h (struct gcc_target): Update prototypes of needs_block_p
3437         and gen_spec_check.
3438         * haifa-sched.c (create_check_block_twin): Update calls to the above.
3439         * sel-sched.c (create_speculation_check): Likewise.
3440         * doc/tm.texi: Provide documentation for new target hooks.
3441
3442         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
3443         (ia64_gen_spec_insn): Removed.
3444         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3445         ia64_gen_spec_check): New static functions.
3446         (ia64_alloc_sched_context, ia64_init_sched_context,
3447         ia64_set_sched_context, ia64_clear_sched_context,
3448         ia64_free_sched_context, ia64_get_insn_spec_ds,
3449         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3450         (ia64_needs_block_p): Change prototype.
3451         (ia64_gen_check): Rename to ia64_gen_spec_check.
3452         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
3453         into declaration, add special memory dependencies handling.
3454         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3455         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3456         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3457         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3458         Define new target hooks.
3459         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3460         (ia64_optimization_options): Turn on selective scheduling with -O3,
3461         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3462         default with selective scheduling.
3463         (ia64_override_options): Initialize align_loops and align_functions
3464         to 32 and 64, respectively.  Set global selective scheduling flags
3465         according to target-dependent flags.
3466         (rtx_needs_barrier): Support UNSPEC_LDS_A.
3467         (group_barrier_needed): Use new mstop-bit-before-check flag.
3468         Add heuristic.
3469         (dfa_state_size): Make global.
3470         (spec_check_no, max_uid): Remove.
3471         (mem_ops_in_group, current_cycle): New variables.
3472         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3473         Initialize new variables.
3474         (is_load_p, record_memory_reference): New functions.
3475         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3476         reached.
3477         (ia64_variable_issue): Change use of current_sched_info to
3478         sched_deps_info.  Update comment.  Note if a load or a store is issued.
3479         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3480         advance if maximal number of loads or stores was issued on current
3481         cycle.
3482         (scheduled_good_insn): New static helper function.
3483         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3484         a group barrier is needed.  Fix vertical spacing.  Guard the code
3485         doing state transition with last_scheduled_insn check.
3486         Mark that a stop bit should be before current insn if there was a
3487         cycle advance.  Update current_cycle and mem_ops_in_group.
3488         (ia64_h_i_d_extended): Change use of current_sched_info to
3489         sched_deps_info. Reallocate stops_p by larger chunks.
3490         (struct _ia64_sched_context): New structure.
3491         (ia64_sched_context_t): New typedef.
3492         (ia64_alloc_sched_context, ia64_init_sched_context,
3493         ia64_set_sched_context, ia64_clear_sched_context,
3494         ia64_free_sched_context): New static functions.
3495         (gen_func_t): New typedef.
3496         (get_spec_load_gen_function): New function.
3497         (SPEC_GEN_EXTEND_OFFSET): Declare.
3498         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3499         (get_mode_no_for_insn): Change the condition that prevents use of
3500         special hardware registers so it can now handle pseudos.
3501         (get_spec_unspec_code): New function.
3502         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3503         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3504         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3505         during selective scheduling.
3506         (ia64_speculate_insn): Use ds_get_speculation_types when
3507         determining whether we need to change the pattern.
3508         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3509         (ia64_spec_check_src_p): Support new speculation/check codes.
3510         (struct bundle_state): New field.
3511         (issue_nops_and_insn): Initialize it.
3512         (insert_bundle_state): Minimize mid-bundle stop bits.
3513         (important_for_bundling_p): New function.
3514         (get_next_important_insn): Use important_for_bundling_p.
3515         (bundling): When shifting TImode from unimportant insns, ignore
3516         also group barriers.  Assert that best state is found before
3517         the backward bundling pass.  Print number of mid-bundle stop bits.
3518         Minimize mid-bundle stop bits.  Check correct calculation of
3519         mid-bundle stop bits.
3520         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3521         (final_emit_insn_group_barriers): Emit stop bits before insns starting
3522         a new cycle.
3523         (sel2_run): New variable.
3524         (ia64_reorg): When flag_selective_scheduling2 is set, run the
3525         selective scheduling pass instead of schedule_ebbs.
3526
3527         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3528         (UNSPEC_LDS_A): New UNSPEC.
3529         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3530         movti_internal, movsf_internal, movdf_internal,
3531         movxf_internal): Make visible.  Add speculable* attributes.
3532         (output_c_nc): New mode attribute.
3533         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3534         mov<mode>_nc, zero_extend<mode>di2_nc,
3535         advanced_load_check_nc_<mode>): New insns.
3536         (zero_extend*): Add speculable* attributes.
3537
3538         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3539         (msched-stop-bits-after-every-cycle): Likewise.
3540         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3541         Likewise.
3542         (msched-spec-verbose): Remove.
3543         (msched-prefer-non-data-spec-insns,
3544         msched-prefer-non-control-spec-insns,
3545         msched-count-spec-in-critical-path,
3546         msel-sched-dont-check-control-spec): Use Target  Report Var
3547         instead of Common Report Var.
3548
3549         * config/ia64/itanium2.md: Remove incorrect bypass.
3550
3551         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3552
3553 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3554
3555         PR middle-end/37805
3556         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3557         and -fhelp=separate.
3558
3559 2008-10-14  Ben Elliston  <bje@au.ibm.com>
3560
3561         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3562
3563 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
3564
3565         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3566         non-integer modes.
3567
3568 2008-10-13  Matthias Klose  <doko@ubuntu.com>
3569
3570         * config/pa/linux-atomic.c: Work around missing header file
3571         for hppa64-linux-gnu targets.
3572
3573 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3574             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3575             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
3576             Grace Cao  <grace_cao@playstation.sony.com>
3577
3578         * doc/invoke.texi (-mgen-cell-microcode): Document.
3579         (-mwarn-cell-microcode): Document.
3580         * cfglayout.c (locator_location): Export.
3581         * rtl.h (locator_location): Define prototype.
3582         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3583         New predicate.
3584         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3585         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3586         (mwarn-cell-microcode): New option.
3587         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3588         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3589         cell and not already set.
3590         Turn off string instructions if not generating cell microcode.
3591         (rs6000_final_prescan_insn): New function that warns about microcoded
3592         instructions.
3593         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3594         * config/rs6000/rs6000.md
3595         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3596         the instruction would have been microcoded on the Cell.  Set
3597         cell_micro to always on unnamed patterns for the string instructions.
3598         (cell_micro): Update definition, remove load/store conditional
3599         microcoded.
3600         (sign_extend:DI): Define new pattern for non microcoded version.
3601         (sign_extend:SI): Likewise.
3602         (compare (div:P)): Set cell_micro to not.
3603         (andsi3): Define as an expand.
3604         (andsi3_mc): New pattern.
3605         (andsi3_nomc): New pattern.
3606         (andsi3_internal0_nomc): New pattern.
3607         (andsi3_internal2): Rename to ...
3608         (andsi3_internal2_mc): this and enable iff generating microcode.
3609         (andsi3_internal3): Rename to ...
3610         (andsi3_internal3_mc): this and enable iff generating microcode.
3611         (andsi3_internal4): Enable iif generating microcode.
3612         (andsi3_internal5): Rename to ..
3613         (andsi3_internal5_mc): this and enable iff generating microcode.
3614         (andsi3_internal5_nomc): New pattern.
3615         (extzvdi_internal1): Enable iff generating microcode.
3616         (extzvdi_internal2): Likewise.
3617         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3618         (anddi3): Change to expand.
3619         (anddi3_mc): Rename from anddi3.
3620         (anddi3_no_mc): New pattern.
3621         (anddi3_internal2): Rename to ..
3622         (anddi3_internal2_mc): this and enable iff generating microcode.
3623         (anddi3_internal2_nomc): New pattern.
3624         (anddi3_internal3): Rename to ..
3625         (anddi3_internal3_mc): this and enable iff generating microcode.
3626         (anddi3_internal3_nomc): New pattern.
3627         (movti_string): Set cell_micro to always if TARGET_STRING.
3628         (stmsi8): Set cell_micro to always.
3629         (stmsi7): Likewise.
3630         (stmsi6): Likewise.
3631         (stmsi5): Likewise.
3632         (stmsi4): Likewise.
3633         (stmsi3): Likewise.
3634         (stmsi8_power): Likewise.
3635         (stmsi7_power): Likewise.
3636         (stmsi6_power): Likewise.
3637         (stmsi5_power): Likewise.
3638         (stmsi4_power): Likewise.
3639         (stmsi3_power): Likewise.
3640         (movsi_update2): Enable iff generating microcode.
3641         (movhi_update3): Likewise.
3642         (lmw): Set cell_micro to always.
3643
3644 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
3645
3646         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3647         * config/s390/s390.c (machine_function): Remove
3648         decomposed_literal_pool_addresses_ok_p.
3649         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3650         the difference of two labels.
3651         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3652         (s390_pool_offset): New function.
3653         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3654         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3655
3656 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
3657
3658         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3659         (powerpc*-*-linux-gnu*): Describe.
3660         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3661         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3662         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3663         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3664         config/rs6000/e500crtres32gpr.asm,
3665         config/rs6000/e500crtres64gpr.asm,
3666         config/rs6000/e500crtres64gprctr.asm,
3667         config/rs6000/e500crtrest32gpr.asm,
3668         config/rs6000/e500crtrest64gpr.asm,
3669         config/rs6000/e500crtresx32gpr.asm,
3670         config/rs6000/e500crtresx64gpr.asm,
3671         config/rs6000/e500crtsav32gpr.asm,
3672         config/rs6000/e500crtsav64gpr.asm,
3673         config/rs6000/e500crtsav64gprctr.asm,
3674         config/rs6000/e500crtsavg32gpr.asm,
3675         config/rs6000/e500crtsavg64gpr.asm,
3676         config/rs6000/e500crtsavg64gprctr.asm: Use it.
3677         * config/rs6000/crtsavres.asm: Really remove.
3678
3679 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
3680
3681         Fix PR/25502
3682         * c-format.c (convert_format_name_to_system_name): Use
3683         TARGET_OVERRIDES_FORMAT_INIT.
3684         * config.gcc (extra_options): Add for mingw targets mingw.opt.
3685         * config/i386/mingw.opt: New.
3686         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3687         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3688         (ms_printf_length_specs): Removed const specifier.
3689         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3690         * doc/invoke.texi (Wno-pedantic-ms-format): New.
3691
3692 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3693
3694         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3695         * doc/install.texi: Bump recommended MPFR to 2.3.2.
3696
3697 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
3698
3699         PR middle-end/37808
3700         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3701         sure that ref has valid bb.
3702
3703 2008-10-12  Richard Henderson  <rth@redhat.com>
3704
3705         PR middle-end/37447
3706         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3707         * alias.c (value_addr_p, stack_addr_p): Remove.
3708         (nonoverlapping_memrefs_p): Remove IRA special case.
3709         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3710         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3711         * reload1.c (alter_reg): Use it.
3712
3713 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
3714
3715         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3716         of registers instead of eax, ebx, ecx and edx.  Use for loop
3717         and check register for non-zero value before the call
3718         to decode_caches_intel.
3719
3720 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3721
3722         PR rtl-optimization/37448
3723         * df.h (df_ref_class): New enum.
3724         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3725         (struct df_ref): Replaced with union df_ref_d.
3726         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3727         New members of df_ref_d union.
3728         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3729         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3730         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3731         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3732         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3733         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3734         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3735         (df_scan_bb_info, df_bb_regno_first_def_find,
3736         df_bb_regno_last_def_find, df_find_def, df_find_use,
3737         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3738         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3739         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3740         df_get_artificial_defs, df_get_artificial_uses, union_defs)
3741         Replaced struct df_ref * with df_ref.
3742         * df-scan.c (df_collection_rec, df_null_ref_rec,
3743         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3744         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3745         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3746         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3747         df_reorganize_refs_by_reg_by_reg,
3748         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3749         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3750         df_sort_and_compress_refs, df_install_ref, df_install_refs,
3751         df_ref_record, df_get_conditional_uses, df_get_call_refs,
3752         df_bb_refs_record, df_exit_block_uses_collect,
3753         df_record_exit_block_uses, df_reg_chain_mark,
3754         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3755         df_ref * with df_ref.
3756         (df_ref_record, df_uses_record, df_ref_create_structure): Added
3757         df_ref_class parameter.
3758         (df_scan_problem_data): Added new pools for different types of refs.
3759         (df_scan_free_internal, df_scan_alloc, df_free_ref,
3760         df_ref_create_structure): Processed new ref pools.
3761         (df_scan_start_dump): Added counts of refs and insns.
3762         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3763         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3764         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3765         code to pass df_ref_class down to ref creation functions.
3766         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3767         df_reg_chain_mark): Use macros to hide references to df_refs.
3768         (df_ref_chain_change_bb): Removed.
3769         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3770         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3771         Enhanced to understand df_ref union structure.
3772         * fwprop.c (local_ref_killed_between_p, use_killed_between,
3773         all_uses_available_at, update_df, try_fwprop_subst,
3774         forward_propagate_subreg, forward_propagate_and_simplify,
3775         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3776         df_ref * with df_ref.
3777         (use_killed_between, all_uses_available_at): Use macros to hide
3778         references to df_refs.
3779         * regstat.c (regstat_bb_compute_ri,
3780         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3781         df_ref.
3782         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3783         see_handle_relevant_refs, see_analyze_one_def,
3784         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3785         struct df_ref * with df_ref.
3786         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3787         global_conflicts): Replaced struct df_ref * with df_ref.
3788         * ddg.c (create_ddg_dep_from_intra_loop_link,
3789         add_cross_iteration_register_deps, build_inter_loop_deps):
3790         Replaced struct df_ref * with df_ref.
3791         (create_ddg_dep_from_intra_loop_link,
3792         add_cross_iteration_register_deps): Use macros to hide references
3793         to df_refs.
3794         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3795         df_ref * with df_ref.
3796         * df-core.c (df_bb_regno_first_def_find,
3797         df_bb_regno_last_def_find, df_find_def, df_find_use,
3798         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3799         debug_df_ref): Replaced struct df_ref * with df_ref.
3800         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3801         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3802         df_ref.
3803         * web.c (union_defs, entry_register, replace_ref, web_main):
3804         Replaced struct df_ref * with df_ref.
3805         (union_defs, replace_ref): Use macros to hide references to df_refs.
3806         * global.c (compute_regs_asm_clobbered, build_insn_chain):
3807         Replaced struct df_ref * with df_ref.
3808         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3809         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
3810         Replaced struct df_ref * with df_ref.
3811         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3812         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3813         with df_ref.
3814         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3815         * df-byte-scan.c (df_compute_accessed_bytes_extract,
3816         df_compute_accessed_bytes_strict_low_part,
3817         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3818         Replaced struct df_ref * with df_ref.
3819         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3820         * init-regs.c (initialize_uninitialized_regs): Replaced struct
3821         df_ref * with df_ref.
3822         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3823         check_dependency, check_dependencies, record_uses): Replaced
3824         struct df_ref * with df_ref.
3825         (invariant_for_use, check_dependency): Use macros to hide
3826         references to df_refs.
3827         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3828         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3829         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3830         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3831         references to df_refs.
3832         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3833         with df_ref.
3834         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3835         * df-problems.c (df_rd_bb_local_compute_process_def,
3836         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3837         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3838         df_chain_remove_problem, df_chain_create_bb_process_use,
3839         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3840         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3841         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3842         df_byte_lr_simulate_artificial_refs_at_top,
3843         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3844         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3845         df_simulate_uses, df_simulate_artificial_refs_at_end,
3846         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3847         df_ref.
3848         (df_chain_dump): Use macros to hide references to df_refs.
3849         * config/mips/mips.c (r10k_simplify_address): Replaced struct
3850         df_ref * with df_ref.
3851         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3852         mark_artificial_uses, mark_reg_dependencies,
3853         byte_dce_process_block): Replaced struct df_ref * with df_ref.
3854
3855 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
3856
3857         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3858         head comment.
3859         (array_ref_element_size): Likewise.
3860         (array_ref_low_bound): Likewise.
3861         (array_ref_up_bound): Likewise.
3862         * expr.c (contains_packed_reference): Likewise.
3863         (array_ref_element_size): Likewise.
3864         (array_ref_low_bound): Likewise.
3865         (array_ref_up_bound): Likewise.
3866         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3867         with ARRAY_RANGE_REF.
3868         (idx_find_step): Likewise.
3869         (idx_record_use): Likewise.
3870         (strip_offset_1): Likewise.
3871         (idx_remove_ssa_names): Likewise.
3872
3873 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
3874             Andi Kleen  <ak@linux.intel.com>
3875
3876         * config/i386/cpuid.h (__cpuid_count): New defines.
3877         * config/i386/driver-i386.c (struct cache_desc): New structure.
3878         (describe_cache): Use struct cache_desc to pass cache descriptions.
3879         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3880         (detect_caches_amd): Use struct cache_desc to describe caches.
3881         (decode_caches_intel): Use struct cache_desc to pass cache
3882         descriptions.  Update descriptions to match latest (rev -032,
3883         December 2007) CPUID documentation.  Do not check valid bit here.
3884         Check for Xeon MP value 0x49 problems.
3885         (detect_caches_cpuid2): New function, split from detect_caches_intel.
3886         Check valid bit before calling decode_caches_intel.  Detect number
3887         of times to repeat CPUID instruction.
3888         (detect_caches_cpuid4): New function.
3889         (detect_caches_intel): Depending on max_level, call
3890         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
3891         only when other methods fail to provide valid L2 cache description.
3892
3893 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3894
3895         PR middle-end/37608
3896         * pa.md (call, call_value): Generate an rtx for register r4 and pass
3897         it to PIC call patterns.
3898         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
3899         code generation and attributes from pattern.  Change peephole2 to
3900         split for noreturn case.  Revise split pattern for non noreturn case.
3901         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3902         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3903         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
3904         asserts.
3905
3906 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
3907
3908         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
3909         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
3910         and fp_type.
3911         (divdf3): Reformat long line.
3912
3913 2008-10-11  Michael J. Eager  <eager@eagercon.com>
3914
3915         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
3916         -mfpu options.
3917         (rs6000_handle_option): Process -mfpu options.
3918         * config/rs6000/rs6000.h (TARGET_XILINX_FPU): New.
3919         (enum fpu_type_t): New.
3920         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
3921         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
3922         fp_type.
3923         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
3924         (floatdidf2): Add TARGET_SINGLE_FPU condition.
3925         * config/rs6000/rs6000.opt (-mfpu): New.
3926         (-mxilinx-fpu): New.
3927         * config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New.
3928         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
3929         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
3930         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
3931         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
3932
3933 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
3934
3935         PR target/35760
3936         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
3937         LO_SUM on Darwin if mode has just one unit.
3938
3939 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
3940
3941         PR debug/37002
3942         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
3943         has been optimized out.
3944
3945 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
3946
3947         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
3948         instead of PIC_DIRECT_ADDR_P.
3949         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3950         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
3951         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
3952         (PIC_OFFSET_P): Rename to...
3953         (PCREL_SYMOFF_P): ...this.
3954         (PIC_DIRECT_ADDR_P): Delete.
3955         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
3956         PIC_OFFSET_P.
3957         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
3958         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
3959         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
3960         * config/sh/sh.c (print_operand): Remove CONST handling.
3961         (unspec_caller_rtx_p): Rewrite to use split_const and check
3962         the operands of UNSPEC bases.
3963         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
3964         with (unspec [A B] UNSPEC_SYMOFF).
3965         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
3966         UNSPEC_PCREL_SYMOFF.
3967         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3968         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
3969         (UNSPEC_EXTRACT_U16): Likewise.
3970         (UNSPEC_SYMOFF): Likewise.
3971         (UNSPEC_PCREL_SYMOFF): Likewise.
3972         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
3973         of constants.
3974         (movsi_const_16bit): Likewise.
3975         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
3976         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
3977         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
3978         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
3979         with (unspec [A B] UNSPEC_SYMOFF).
3980         (symPLT_label2reg): Replace (minus A (minus B pc)) with
3981          (unspec [A B] PCREL_UNSPEC_SYMOFF).
3982         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
3983         (Csu): Likewise UNSPEC_EXTRACT_U16.
3984         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3985         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
3986
3987 2008-10-10  Stepan Kasal  <skasal@redhat.com>
3988
3989         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
3990         for loop strip mining and loop blocking.
3991
3992 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3993
3994         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
3995         vary types depending on debug info.
3996
3997 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3998
3999         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
4000         before ensuring it's already computed.
4001
4002 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
4003
4004         * rtl.h (locator_eq): New decl.
4005         * cfglayout.c (locator_scope): New function.
4006         (insn_scope): Use it.
4007         (locator_eq): New function.
4008         (fixup_reorder_chain): Search for last insn in src bb
4009         that has locator set or first insn in dest bb.  Use
4010         locator_eq instead of == to compare locators.
4011         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
4012         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
4013         == to compare locators.
4014
4015         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
4016         as used.
4017         * gimple-low.c (lower_function_body, lower_gimple_return,
4018         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
4019         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
4020         goto_block on edges if goto_locus is known.
4021
4022         PR middle-end/37774
4023         * tree.h (get_object_alignment): Declare.
4024         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
4025         get_object_alignment if needed.
4026         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
4027         handling to ...
4028         (get_object_alignment): ... here.  New function.  Try harder to
4029         determine alignment from get_inner_reference returned offset.
4030
4031 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
4032
4033         * graphite.c (gloog): Don't call find_unreachable_blocks
4034         before delte_unreachable_blocks.
4035
4036         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
4037         goto_locus of true_edge into RTL locator.
4038
4039 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
4040
4041         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
4042         (*jcc_btdi_mask_rex64): Ditto.
4043         (*jcc_btsi): Ditto.
4044         (*jcc_btsi_mask): Ditto.
4045         (*jcc_btsi_1): Ditto.
4046         (*jcc_btsi_mask_1): Ditto.
4047
4048 2008-10-08  Paul Brook  <paul@codesourcery.com>
4049
4050         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
4051         compatible profiler (__gnu_mcount_nc).
4052         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
4053
4054 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
4055
4056         * config/i386/i386.c (initial_ix86_tune_features): Add
4057         X86_TUNE_USE_VECTOR_FP_CONVERTS.
4058         * config/i386/i386.h (ix86_tune_indices): Likewise.
4059         (TARGET_USE_VECTOR_FP_CONVERTS): New.
4060
4061         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
4062         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
4063         for FP to FP splitters.
4064
4065 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
4066
4067         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
4068         splitter.
4069
4070 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
4071
4072         PR target/36635
4073         PR target/37290
4074         PR rtl-optimization/37341
4075         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
4076         to ORIG_BB, pass through ORIG_BB recursively.
4077         (cse_condition_code_reg): Adjust caller.
4078
4079 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
4080
4081         * sdbout.c (sdbout_one_type): Treat the value type
4082         CONST_DECL for enumerals.
4083
4084 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4085
4086         * config/i386/i386.md: Remove trailing white spaces.
4087
4088 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
4089
4090         PR rtl-optimization/37448
4091         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
4092         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
4093         Make unsigned long.
4094         (struct output_info) [count]: Renamed total_created and made
4095         unsigned long.
4096         (struct output_info) [size]: Renamed total_allocated and made
4097         unsigned long.
4098         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
4099         Properly keep track of desc->size.
4100         (print_statistics, dump_alloc_pool_statistics): Enhance the
4101         printing of statistics to print the number of elements and to use
4102         unsigned longs.
4103
4104 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
4105
4106         PR middle-end/37576
4107         * opts.h (CL_SAVE): Move up to flags range.
4108         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
4109         CL_COMMON): Renumber.
4110         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
4111         * opts.c (common_handle_option): Revert last change.
4112
4113 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4114
4115         * config/i386/i386-protos.h (ix86_schedule): New.
4116
4117         * config/i386/i386.c (ix86_schedule): New.
4118         (override_options): Add schedule to processor_alias_table.  Set
4119         ix86_schedule from the schedule field in processor_alias_table.
4120         (ix86_function_specific_save): Save ix86_schedule.
4121         (ix86_function_specific_restore): Restore ix86_schedule.
4122
4123         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
4124         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
4125         and generic32.
4126
4127         * config/i386/i386.opt: Add schedule.
4128
4129         * config/i386/ppro.md: Remove generic32.
4130
4131 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
4132
4133         PR c/35437
4134         * expr.c (count_type_elements): Handle ERROR_MARK.
4135
4136 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
4137
4138         PR debug/29609
4139         PR debug/36690
4140         PR debug/37616
4141         * basic-block.h (struct edge_def): Add goto_block field.
4142         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
4143         one insn with locus corresponding to edge's goto_locus if !optimize.
4144         * profile.c (branch_prob): Copy edge's goto_block.
4145         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
4146         emitted jumps.
4147         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
4148         locator in between the merged basic blocks if !optimize and needed.
4149         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
4150         goto_locus into RTL locator.  For unconditional jump use that
4151         locator for the jump insn.
4152         (expand_gimple_cond): Convert goto_block and goto_locus into
4153         RTL locator for all remaining edges.  For unconditional jump
4154         use that locator for the jump insn.
4155         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
4156         there is more than one edge or insn locator along the forwarding
4157         edges and !optimize.  If there is just one, set e->goto_locus.
4158         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
4159         edge's goto_block.
4160         (move_block_to_fn): Adjust edge's goto_block.
4161
4162 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4163
4164         PR middle-end/37731
4165         * expmed.c (expand_mult): Properly check DImode constant in
4166         CONST_DOUBLE.
4167
4168 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
4169
4170         PR debug/37738
4171         * dwarf2out.c (common_block_die_table): New variable.
4172         (common_block_die_table_hash, common_block_die_table_eq): New
4173         functions.
4174         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
4175         COMMON block in the current scope rather than globally.  Optimize
4176         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
4177         DW_OP_addr SYMBOL_REF+off.
4178
4179 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
4180
4181         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
4182         Return true for non-addressable GIMPLE operands.
4183
4184 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
4185
4186         PR target/24765
4187         * config/i386/i386.c (initial_ix86_tune_features): Remove
4188         X86_TUNE_USE_BIT_TEST.
4189         * config/i386/i386.h (ix86_tune_indices): Likewise.
4190         (TARGET_USE_BIT_TEST): Removed.
4191
4192 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4193
4194         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
4195
4196 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
4197
4198         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
4199         (mul<mode>3_mul3): ... into this new template.
4200
4201 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
4202
4203         * gimplify.c (gimplify_arg): Add location argument.  Use it.
4204         (gimplify_call_expr): Pass location to gimplify_arg.
4205         (gimplify_modify_expr_to_memcpy): Same.
4206         (gimplify_modify_expr_to_memset): Same.
4207
4208 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4209
4210         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4211         Update calls to build_unary_op and build_indirect_ref for location
4212         changes.
4213
4214 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
4215
4216         build_modify_expr.
4217         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
4218         * c-typeck.c (array_to_pointer_conversion): Pass location to
4219         build_unary_op.
4220         (function_to_pointer_conversion): Use error_at and warning_at.
4221         (build_indirect_ref): Same.
4222         (build_array_ref): Pass location to build_binary_op.
4223         (parser_build_unary_op): Do not set location after calling
4224         build_unary_op.
4225         (build_unary_op): Add location argument.  Use it throughout.  Set
4226         EXPR_LOCATION before returning new tree.
4227         (build_modify_expr): Same.
4228         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
4229         returning node.
4230         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
4231         build_indirect_ref, build_modify_expr.
4232         (c_finish_omp_for): Same.  Use error_at instead of error.
4233         * c-common.c (c_common_truthvalue_conversion): Pass location to
4234         build_unary_op.
4235         (warn_for_div_by_zero): Add location argument.
4236         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
4237         build_unary_op, warn_for_div_by_zero.
4238         * c-parser.c (c_parser_typeof_specifier): Use
4239         protected_set_expr_location.
4240         (c_parser_statement_after_labels): Same.
4241         (c_parser_condition): Same.
4242         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
4243         (c_parser_conditional_expression): Use protected_set_expr_location.
4244         (c_parser_unary_expression): Pass location to build_indirect_ref.
4245         (c_parser_postfix_expression_after_primary): Pass location to
4246         build_indirect_ref, build_unary_op.
4247         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
4248
4249 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
4250
4251         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
4252         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
4253         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
4254         r14000 and r16000.
4255         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
4256         (mips_issue_rate): Handle PROCESSOR_R10000.
4257         * config/mips/mips.md (cpu): Add r10000.
4258         Include r10000.md.
4259         * config/mips/10000.md: New file.
4260
4261 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
4262
4263         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
4264         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
4265         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
4266
4267 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
4268
4269         * config/darwin-protos.h (machopic_function_base_name): Delete.
4270         (machopic_function_base_sym): Likewise.
4271         (machopic_gen_offset): Declare.
4272         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
4273         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
4274         * config/darwin.c (machopic_function_base_name): Delete.
4275         (machopic_function_base_sym): Likewise.
4276         (gen_pic_offset): Rename to...
4277         (machopic_gen_offset): ...this and remove the pic_base argument.
4278         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
4279         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
4280         crtl->uses_pic_offset_table.
4281         (machopic_indirect_data_reference): Use new machopic_gen_offset
4282         interface.
4283         (machopic_legitimize_pic_address): Likewise.
4284         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
4285
4286         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
4287         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
4288         * config/i386/i386.c (output_set_got): Likewise.
4289         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
4290         instead of a MINUS.
4291         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
4292         (legitimate_address_p): Likewise.
4293         (output_pic_addr_const): Likewise.
4294         (output_addr_const_extra): Likewise.
4295         (ix86_delegitimize_address): Expect darwin_local_data_pic to
4296         match an UNSPEC rather than a MINUS.
4297         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
4298         (builtin_setjmp_receiver): Use machopic_gen_offset.
4299         * config/i386/predicates.md (pic_symbolic_operand): Handle
4300         UNSPEC_MACHOPIC_OFFSET.
4301
4302         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4303         Use machopic_gen_offset and machopic_operand_p.
4304         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
4305         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
4306         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
4307         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
4308         Set crtl->uses_pic_offset_table.
4309
4310 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
4311
4312         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
4313         Declare.
4314         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
4315         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
4316         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
4317         (constant_pool_expr_p): Use split_const and check the base.
4318         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
4319         instead of a MINUS.
4320         (legitimate_constant_pool_address_p): Check toc_relative_p
4321         instead of constant_pool_expr_p.
4322         (print_operand_address): Always use output_addr_const for
4323         constant pool addresses.
4324         (rs6000_output_addr_const_extra): New function.
4325         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
4326
4327 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
4328
4329         PR middle-end/37535
4330
4331         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4332         (mark_ref_live, mark_ref_dead): Use them.
4333         (def_conflicts_with_inputs_p): Remove.
4334         (mark_early_clobbers): New function.
4335         (process_bb_node_lives): Call preprocess_constraints and
4336         mark_early_clobbers.
4337
4338         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
4339
4340 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
4341
4342         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
4343         lib with -mthread switch.
4344
4345 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
4346
4347         PR c++/37410
4348         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
4349         function in two, making it call a new and reusable
4350         dwarf2out_imported_module_or_decl() that takes the containing
4351         BLOCK of the declaration in argument.
4352         (dwarf2out_imported_module_or_decl_real): New function.
4353         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
4354         IMPORTED_DECL in account.
4355         * tree.def: Added IMPORTED_DECL node type.
4356         * tree.h: Added accessors for IMPORTED_DECL nodes.
4357         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
4358
4359 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4360
4361         * doc/gimple.texi: Fix some typos, wrap some long lines,
4362         fix some broken wraps with continuations.
4363         * tree-ssa-reassoc.c: Fix comment typos.
4364
4365 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4366
4367         PR target/37603
4368         * pa.c (legitimize_pic_address): Force function labels to memory in
4369         word mode.
4370
4371 2008-10-04  Anton Blanchard  <anton@samba.org>
4372
4373         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
4374         (rs6000_split_atomic_op): Same.
4375         (rs6000_split_compare_and_swap): Same.
4376         (rs6000_split_compare_and_swapqhi): Same.
4377
4378 2008-10-04  Richard Guenther  <rguenther@suse.de>
4379
4380         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
4381         instead of pointer equality.
4382         (vn_nary_op_eq): Likewise.
4383
4384 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4385
4386         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
4387         condition.
4388         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
4389         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
4390
4391 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
4392
4393         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4394         Revert previous change.
4395
4396 2008-10-03  Tom Tromey  <tromey@redhat.com>
4397
4398         * stringpool.c (ggc_alloc_string): Terminate string.
4399
4400 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
4401
4402         * gimplify.c (gimplify_function_tree): For -finstrument-functions
4403         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
4404         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
4405
4406         PR debug/37726
4407         * gimplify.c (declare_vars): Use gimple_bind_block instead of
4408         gimple_block.
4409
4410 2008-10-03  Pascal Obry  <obry@adacore.com>
4411
4412         * gcov.c (create_file_names): Properly handle UNIX and DOS
4413         directory separators.
4414         (make_gcov_file_name): Likewise + convert the ':' DOS drive
4415         separator to '~' to ensure clean filenames on Windows.
4416
4417 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
4418
4419         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4420         Add a null terminator to the stripped name.
4421
4422 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
4423
4424         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
4425         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4426         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
4427         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
4428         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4429         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
4430         TARGET_SINGLE_FLOAT.
4431
4432 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
4433
4434         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
4435
4436 2008-10-02  Richard Guenther  <rguenther@suse.de>
4437
4438         PR middle-end/37713
4439         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
4440         and VECTOR_TYPE recurse with useless_type_conversion_p which
4441         properly handles void pointer conversion.
4442
4443 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
4444
4445         PR target/37528
4446         * config/i386/mingw32.h (LIBGCC_SPEC): Replace with ..
4447         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
4448
4449 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4450
4451         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4452         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
4453         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
4454         they translate to non builtins.
4455         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
4456         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
4457         __builtin_vec_promote, __builtin_vec_extract, and
4458         __builtin_vec_insert.
4459         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
4460         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
4461         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
4462         * config/rs6000/altivec.h (vec_extract): Define
4463         (vec_insert): Define.
4464         (vec_splats): Define.
4465         (vec_promote): Define.
4466
4467 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4468             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
4469             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
4470
4471         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
4472         Altivec intrinsics.
4473         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
4474         prototype.  Add new parameter, blk.
4475         Use BLKmode for the MEM if blk is true.
4476         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
4477         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
4478         ALTIVEC_BUILTIN_STVRXL.
4479         Update usage of altivec_expand_lv_builtin.
4480         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
4481         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
4482         (altivec_init_builtins): If compiling for the Cell, also define the
4483         cell VMX builtins.
4484         * config/rs6000/rs6000.h (rs6000_builtins): Define
4485         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
4486         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
4487         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
4488         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
4489         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
4490         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
4491         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
4492         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
4493         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
4494         UNSPEC_STVRX, and UNSPEC_STVRXL.
4495         (altivec_lvlx): New pattern.
4496         (altivec_lvlxl): New pattern.
4497         (altivec_lvrx): New pattern.
4498         (altivec_lvrxl): New pattern.
4499         (altivec_stvlx): New pattern.
4500         (altivec_stvlxl): New pattern.
4501         (altivec_stvrx): New pattern.
4502         (altivec_stvrxl): New pattern.
4503         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
4504         (vec_lvlxl): Likewise.
4505         (vec_lvrx): Define if PPU is defined.
4506         (vec_lvrxl): Likewise.
4507         (vec_stvlx): Define if PPU is defined.
4508         (vec_stvlxl): Likewise.
4509         (vec_stvrx): Define if PPU is defined.
4510         (vec_stvrxl): Likewise.
4511
4512 2008-10-01  Geert Bosch  <bosch@adacore.com>
4513
4514         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
4515
4516 2008-10-01  Richard Guenther  <rguenther@suse.de>
4517
4518         PR tree-optimization/37617
4519         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
4520         do not add to the NEW_SETS.
4521
4522 2008-10-01  Richard Guenther  <rguenther@suse.de>
4523
4524         PR middle-end/37285
4525         * tree-vrp.c (execute_vrp): If we optimized away the default
4526         case make sure to promote the label that got in place of it
4527         to a default case label.
4528
4529 2008-10-01  Richard Henderson  <rth@redhat.com>
4530
4531         PR tree-opt/35737
4532         * tree-complex.c (set_component_ssa_name): Don't optimize
4533         is_gimple_min_invariant values with ssa_names in abnormal phis.
4534
4535 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
4536
4537         PR tree-optimization/37662
4538         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
4539         commutative binary operation if they are in the wrong order and
4540         fold_build2 produces non-GIMPLE.
4541
4542 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
4543
4544         PR tree-optimization/37662
4545         PR tree-optimization/37663
4546         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
4547         get_value_range with non-SSA_NAME.  Don't assert operands have been
4548         folded, instead just bail out.
4549
4550 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4551
4552         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
4553
4554 2008-09-30  Richard Guenther  <rguenther@suse.de>
4555
4556         PR middle-end/37491
4557         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
4558         build restrict-qualified pointers.
4559         (vectorizable_store): Move alias check later.
4560         (vectorizable_load): Likewise.
4561
4562 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
4563
4564         * c-common.c (empty_if_body_warning): Remove.
4565         * c-common.h (empty_if_body_warning): Remove.
4566         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
4567         here the -Wempty-body warning for `if' and `else' statements.
4568         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
4569
4570 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
4571
4572         * config/i386/i386.opt: Add msse2avx.
4573
4574         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
4575         * config/i386/linux64.h (ASM_SPEC): Likewise.
4576
4577         * doc/invoke.texi: Document -msse2avx.
4578
4579 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
4580
4581         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
4582
4583 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
4584
4585         * ifcvt.c (noce_emit_store_flag): If using condition from original
4586         jump, reverse it if if_info->cond was reversed.
4587
4588 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
4589
4590         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4591         non-constant memory if it cannot be forced to constant memory.
4592         Overhaul surrounding code and factor out common condition.
4593
4594 2008-09-29  Jeff Law <law@redhat.com>
4595
4596         * reload1.c (alter_reg): Add missing curly braces.
4597
4598 2008-09-29  Michael J. Eager  <eager@eagercon.com>
4599
4600         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4601         are easy.
4602         * config/rs6000/rs6000.c (rs6000_override_options): Move
4603         rs6000_init_hard_regno_mode_ok after all options changed.
4604         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4605         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4606         -msimple-fpu flags.  Add warning messages if single FP not configured.
4607         (rs6000_file_start): Output gnu_attribute for single-float.
4608         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4609         (rs6000_legitimize_address): Likewise.
4610         (rs6000_legitimize_reload_address): Likewise.
4611         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4612         TARGET_SINGLE_FLOAT.
4613         (function_arg_advance): Likewise (partial conversion).
4614         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4615         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4616         TARGET_SINGLE_FLOAT.
4617         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4618         (rs6000_emit_prologue): Likewise.
4619         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4620         TARGET_SINGLE_FLOAT.
4621         (rs6000_libcall_value): Likewise.
4622         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4623         (TARGET_DOUBLE_FLOAT): New default to 1
4624         (TARGET_SIMPLE_FPU): New default to 0
4625         (TARGET_SINGLE_FPU): New default to 0
4626         (TARGET_SINGLE_FLOAT_MODE): New.
4627         (TARGET_DOUBLE_FLOAT_MODE): New.
4628         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4629         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4630         UNITS_PER_FP_WORD
4631         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4632         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4633         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4634         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4635         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4636         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4637         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4638         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4639         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4640         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4641         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4642         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4643         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4644         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4645         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4646         cmptf_internal1, *cmptf_internal2): Condition on
4647         TARGET_DOUBLE_FLOAT.
4648         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4649         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4650         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4651         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4652         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4653         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4654         TARGET_SINGLE_FLOAT.
4655         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4656         * config/rs6000/rs6000.opt (-msingle-float): New.
4657         (-mdouble-float): New.
4658         (-msimple-fpu): New.
4659         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4660         -msingle-float, -mdouble-float, -msimple-fpu options.
4661         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4662         _SOFT_DOUBLE for -msingle-float.
4663         * config.gcc: New config for target=powerpc-xilinx-eabi.
4664
4665 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
4666
4667         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
4668         have exit and entry.
4669         (new_scop): Take entry and exit edge to define new SCoP.
4670         (sd_region_p): New structure used during SCoP detection.
4671         (move_scops): Delete.
4672         (move_sd_regions): New.
4673         (scopdet_info): Change the definition from edges back to basic_blocks.
4674         (scopdet_edge_info):  Work on basic_blocks and rename to
4675         scopdet_basic_block_info.
4676         (split_difficult_bb): At the moment removed. We should later
4677         add it at another place.
4678         (build_scops_1): Work on basic_blocks.
4679         (bb_in_sd_region): New.
4680         (find_single_entry_edge): New.
4681         (find_single_exit_edge): New.
4682         (create_single_entry_edge): New.
4683         (sd_region_without_exit): New.
4684         (create_single_exit_edge): New.
4685         (unmark_exit_edges): New.
4686         (mark_exit_edges): New.
4687         (create_sese_edges): New.
4688         (build_graphite_scops): New.
4689         (build_scops): Make SCoPs SESE.
4690         (limit_scops): Use the new functions.
4691
4692 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
4693
4694         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
4695
4696 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4697
4698         PR target/37640
4699         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
4700         address to a register before taking the lower part.
4701
4702 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4703
4704         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
4705         for SHmedia.
4706
4707 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4708             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
4709
4710         PR tree-opt/36891
4711         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
4712         the newly created variable.
4713         Create a VECTOR_CST of all 1s for vector types.
4714
4715 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
4716
4717         PR middle-end/36575
4718         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
4719
4720 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
4721
4722         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
4723         order to convert between modes.
4724         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
4725
4726 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4727
4728         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
4729         if needed.
4730
4731 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
4732
4733         Revert:
4734         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4735         * ira-lives.c:...
4736         * doc/rtl.texi:...
4737
4738 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
4739
4740         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
4741         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
4742         them to yield false with MIPS16.
4743
4744 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
4745
4746         PR middle-end/37275
4747         * dwarf2out.c (tls_mem_loc_descriptor): New function.
4748         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
4749         mem_loc_descriptor failed.  Accept UNSPEC.
4750         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
4751         fail if one of the loc_descriptor calls for pieces failed.
4752         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
4753         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
4754         if loc_descriptor_from_tree_1 on offset failed.
4755
4756         PR middle-end/37576
4757         * opts.c (common_handle_option): Don't call print_specific_help with
4758         CL_SAVE as first argument.
4759
4760 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
4761             Steve Ellcey  <sje@cup.hp.com>
4762
4763         * configure: Regenerate for new libtool.
4764         * aclocal.m4: Ditto.
4765
4766 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
4767
4768         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
4769         alias set on MEM when saving stack pointer.
4770         * config/rs6000/rs6000.md (allocate_stack): Likewise
4771
4772 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
4773
4774         PR tree-optimization/37574
4775         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
4776         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
4777         instead of vector_type for constants. Take computation out of loop.
4778         (vect_get_vec_def_for_operand): Use only vectype for constant case,
4779         and use only vector_type for invariant case.
4780         (get_initial_def_for_reduction): Use vectype instead of vector_type.
4781
4782 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
4783
4784         PR c/37645
4785         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
4786         the decl is a VAR_DECL or FUNCTION_DECL.
4787
4788 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4789
4790         PR middle-end/37535
4791         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4792         (mark_ref_live, mark_ref_dead): Use them.
4793         (def_conflicts_with_inputs_p): Remove.
4794         (mark_early_clobbers): New function.
4795         (process_bb_node_lives): Call preprocess_constraints and
4796         mark_early_clobbers.
4797
4798         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
4799
4800 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4801
4802         PR middle-end/37448
4803         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
4804         (ira_compress_allocno_live_ranges): New prototype.
4805
4806         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
4807         (coalesced_allocnos_living_at_program_points): New.
4808         (coalesced_allocnos_live_at_points_p,
4809         set_coalesced_allocnos_live_points): New functions.
4810         (coalesce_spill_slots): Rewrite.
4811
4812         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
4813         ira_compress_allocno_live_ranges): New functions.
4814
4815         * ira-build.c (ira_flattening): Call
4816         ira_compress_allocno_live_ranges.
4817         (ira_build): Ditto.
4818
4819 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4820
4821         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
4822         optimization.
4823
4824 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
4825
4826         * combine.c (make_compound_operation): Handle the 'E' format.
4827         (count_rtxs): Likewise.
4828         (update_table_tick): Likewise.
4829         (get_last_value_validate): Likewise.
4830
4831 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
4832
4833         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
4834
4835 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
4836
4837         * matrix-reorg.c (transform_allocation_sites): Initializers
4838         added to avoid the warning.
4839
4840 2008-09-25  Martin Jambor  <mjambor@suse.cz>
4841
4842         * cgraph.c (free_nodes): New variable.
4843         (NEXT_FREE_NODE): New macro.
4844         (cgraph_create_node): Reuse nodes from the free list.  Do not
4845         update uid if doing so.
4846         (cgraph_remove_node): Add the node to the free list.
4847
4848 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
4849
4850         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4851
4852 2008-09-24  Richard Henderson  <rth@redhat.com>
4853
4854         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
4855         * unwind-dw2.c (execute_stack_op): Handle it.
4856
4857 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
4858
4859         Revert:
4860         2008-09-24  Michael J. Eager  <eager@eagercon.com>
4861
4862 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
4863
4864         * c-common.c (fname_decl): New location argument.
4865         * c-common.h (fname_decl): Same.
4866         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
4867         {warning,error}.
4868         (c_parser_typeof_specifier): Same.
4869         (c_parser_parms_list_declarator): Same.
4870         (c_parser_asm_string_literal): Same.
4871         (c_parser_compound_statement_nostart): Same.
4872         (c_parser_label): Same.
4873         (c_parser_do_statement): Same.
4874         (c_parser_asm_statement): Same.
4875         (c_parser_unary_expression): Same.
4876         (c_parser_sizeof_expression): Same.
4877         (c_parser_postfix_expression): Same.
4878         (c_parser_pragma): Same.
4879         (c_parser_omp_clause_collapse): Same.
4880         (c_parser_omp_clause_num_threads): Same.
4881         (c_parser_omp_clause_schedule): Same.
4882         (c_parser_omp_all_clauses): Same.
4883         (c_parser_omp_sections_scope): Same.
4884         (c_parser_omp_for_loop): Same.  Pass condition's location to
4885         c_objc_common_truthvalue_conversion.
4886         (c_parser_enum_specifier): Remove comment.
4887
4888 2008-09-24  Michael J. Eager  <eager@eagercon.com>
4889
4890         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4891         are easy.
4892         * config/rs6000/rs6000.c (rs6000_override_options): Move
4893         rs6000_init_hard_regno_mode_ok after all options changed.
4894         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4895         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4896         -msimple-fpu flags.  Add warning messages if single FP not configured.
4897         (rs6000_file_start): Output gnu_attribute for single-float.
4898         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4899         (rs6000_legitimize_address): Likewise.
4900         (rs6000_legitimize_reload_address): Likewise.
4901         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4902         TARGET_SINGLE_FLOAT.
4903         (function_arg_advance): Likewise.
4904         (function_arg): Likewise.
4905         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4906         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4907         TARGET_SINGLE_FLOAT.
4908         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4909         (rs6000_emit_prologue): Likewise.
4910         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4911         TARGET_SINGLE_FLOAT.
4912         (rs6000_libcall_value): Likewise.
4913         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4914         (TARGET_DOUBLE_FLOAT): New default to 1
4915         (TARGET_SIMPLE_FPU): New default to 0
4916         (TARGET_SINGLE_FPU): New default to 0
4917         (TARGET_SINGLE_FLOAT_MODE): New.
4918         (TARGET_DOUBLE_FLOAT_MODE): New.
4919         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4920         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4921         UNITS_PER_FP_WORD
4922         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4923         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4924         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4925         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4926         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4927         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4928         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4929         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4930         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4931         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4932         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4933         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4934         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4935         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4936         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4937         cmptf_internal1, *cmptf_internal2): Condition on
4938         TARGET_DOUBLE_FLOAT.
4939         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4940         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4941         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4942         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4943         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4944         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4945         TARGET_SINGLE_FLOAT.
4946         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4947         * config/rs6000/rs6000.opt (-msingle-float): New.
4948         (-mdouble-float): New.
4949         (-msimple-fpu): New.
4950         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4951         -msingle-float, -mdouble-float, -msimple-fpu options.
4952         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4953         _SOFT_DOUBLE for -msingle-float.
4954         * config.gcc: New config for target=powerpc-xilinx-eabi.
4955
4956 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
4957
4958         * config/sparc/constraints.md: New file.
4959         * config/sparc/sparc.md: Include it.
4960         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
4961         (sparc_extra_constraint_check): Delete.
4962         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
4963         (memory_ok_for_ldd): New predicate.
4964         (sparc_extra_constraint_check): Delete.
4965         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
4966         (CONST_OK_FOR_LETTER_P): Likewise.
4967         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
4968         (EXTRA_CONSTRAINT): Likewise.
4969
4970 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
4971
4972         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
4973
4974 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4975
4976         * alias.c (find_base_value): Use FIND_BASE_TERM.
4977         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
4978
4979 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4980
4981         * config/i386/i386.c: Include cselib.h.
4982         (ix86_pic_register_p): New function.
4983         (ix86_delegitimize_address): Use it to check for the PIC register.
4984
4985 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4986
4987         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
4988         * config/i386/i386.c (ix86_find_base_term): Don't check for
4989         SYMBOL_REF and LABEL_REF.
4990
4991 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4992
4993         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
4994         constant PLUS in a CONST.
4995
4996 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
4997
4998         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
4999         check for sibcall support for w64.
5000
5001 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
5002
5003         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
5004
5005 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
5006
5007         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
5008         parser_build_binary_op.
5009         * c-decl.c (build_enumerator): Pass location to build_binary_op.
5010         * c-typeck.c (build_array_ref): Same.
5011         (parser_build_unary_op): New location argument.
5012         (pointer_diff): Pass location to build_binary_op,
5013         c_objc_common_truthvalue_conversion.
5014         (build_modify_expr): Same.
5015         (build_unary_op): New location argument.
5016         (build_binary_op): New location argument.
5017         (c_objc_common_truthvalue_conversion): Pass location to
5018         c_*common_truthvalue_conversion.
5019         * c-convert.c (convert): Same.
5020         * c-common.c (binary_op_error): New location argument.
5021         (pointer_int_sum): Pass location to build_binary_op.
5022         (c_common_truthvalue_conversion): New location argument.
5023         (warn_for_sign_compare): Same.
5024         * c-common.h: Add location argument to c_common_truthvalue_conversion,
5025         binary_op_error, build_binary_op, warn_for_sign_compare.
5026         * c-parser.c (c_parser_condition): Pass location to
5027         c_*common_truthvalue_conversion.
5028         (c_parser_conditional_expression): Save condition's location and pass
5029         it on down.
5030         (c_parser_binary_expression): Same, but for the binary operator's
5031         location.
5032         (c_parser_omp_for_loop): Pass location to
5033         c_objc_common_truthvalue_conversion.
5034
5035 2008-09-23  Martin Jambor  <mjambor@suse.cz>
5036
5037         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
5038         (cgraph_node_remove_callees): New temporary f.  Hold the next item
5039         in f when looping.
5040         (cgraph_node_remove_callers): Likewise.
5041
5042         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
5043         (ipa_node_removal_hook): Likewise.
5044
5045         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
5046         gimple_call_copy_skip_args and moved to the gimple_call section.
5047         * gimple.c (gimple_copy_call_skip_args): Renamed to
5048         gimple_call_copy_skip_args.  Changed al users.
5049
5050 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
5051
5052         * ira-color.c (start_allocno_priorities): Rename to
5053         setup_allocno_priorities.  Use costs and
5054         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
5055         range lengths.  Get rid off doubles.
5056         (ira_fast_allocations): Call start_allocno_priorities.
5057
5058 2008-09-22  David Daney  <ddaney@avtrex.com>
5059
5060         PR target/37593
5061         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
5062         register if TARGET_LONG_CALLS.
5063
5064 2008-09-22  Richard Guenther  <rguenther@suse.de>
5065
5066         PR tree-optimization/37145
5067         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
5068         value-numbering union accesses with their offset and size only.
5069         (visit_reference_op_load): Fix simplification of inserted conversions.
5070         * tree-ssa-pre.c (find_or_generate_expression): Do not
5071         recursively generate expressions if running FRE.
5072
5073 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
5074
5075         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
5076         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
5077         New patterns.
5078
5079 2008-09-22  Richard Guenther  <rguenther@suse.de>
5080
5081         PR tree-optimization/37145
5082         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
5083         (phi_translate_1): Constant fold references.
5084
5085 2008-09-22  Ira Rosen  <irar@il.ibm.com>
5086
5087         PR tree-optimization/37482
5088         * tree-vectorizer.h (struct _slp_instance): Add new field.
5089         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
5090         (get_earlier_stmt): New function.
5091         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
5092         function.
5093         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
5094         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
5095         asserts that GSI points to the scalar statement being vectorized.
5096         Set new statement location according to GSI.
5097         (vect_schedule_slp_instance): Use GSI of
5098         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
5099
5100 2008-09-21  Jan Hubicka  <jh@suse.cz>
5101
5102         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
5103         (ipcp_insert_stage): Update dead_nodes bitmap.
5104
5105 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
5106
5107         PR target/37528
5108         * config/i386/t-cygming (SHLIB_LC): Remove.
5109         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
5110         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
5111
5112 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
5113
5114         PR middle-end/37170
5115         PR middle-end/37280
5116         * final.c (mark_symbol_ref_as_used): New helper function.
5117         (output_operand): Instead of just looking inside MEMs for
5118         SYMBOL_REFs, use new helper function and for_each_rtx.
5119         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
5120         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
5121         Make head comment more general.
5122         * config/darwin.c (machopic_output_indirection): Handle weak
5123         references here, like in assemble_external.
5124
5125 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
5126
5127         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
5128         (sparc_emit_float_lib_cmp): Change return type.
5129         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
5130         (gen_compare_operator): New function.
5131         (sparc_emit_float_lib_cmp): Return the new operator to be used in
5132         the comparison sequence.  Minor tweaks.
5133         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
5134         that the final operator and the result of sparc_emit_float_lib_cmp
5135         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
5136         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
5137         buneq, bunge, bunle, bltgt): Assert that the final operator and the
5138         result of sparc_emit_float_lib_cmp match for software TFmode.
5139         (movqicc, movhicc, movsicc, movdicc): Merge into...
5140         (mov<I:mode>cc): ...this.
5141         (movsfcc, movdfcc, movtfcc): Merge into...
5142         (mov<F:mode>cc): ...this.
5143         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
5144         into...
5145         (mov<I:mode>_cc_v9): ...this.
5146         (movdi_cc_sp64_trunc): Delete.
5147         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
5148         movdi_cc_reg_sp64): Merge into...
5149         (mov<I:mode>_cc_reg_sp64): ...this.
5150         (movsf_cc_sp64): Rename into...
5151         (movsf_cc_v9): ...this.
5152         (movdf_cc_sp64): Rename into...
5153         (movdf_cc_v9): ...this.
5154         (movtf_cc_hq_sp64): Rename into...
5155         (movtf_cc_hq_v9): ...this.
5156         (movtf_cc_sp64): Rename into...
5157         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
5158
5159 2008-09-21  Diego Novillo  <dnovillo@google.com>
5160
5161         * doc/gccint.texi: Include generic.texi and gimple.texi.
5162         Re-order index.
5163         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
5164         (GIMPLE): Move to gimple.texi.
5165         (Annotations): Remove references to to stmt_ann_t and
5166         ssa_name_ann_t.
5167         (SSA Operands): Rename from 'Statement Operands'.
5168         * doc/generic.texi: New.
5169         * doc/gimple.texi: New.
5170         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
5171         * Makefile.in (TEXI_GCCINT_FILES):
5172         * gimple.c (gimple_copy_call_skip_args): Rename from
5173         giple_copy_call_skip_args.  Update all users.
5174         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
5175
5176 2008-09-21  Ira Rosen  <irar@il.ibm.com>
5177
5178         PR tree-optimization/37539
5179         * tree-vect-transform.c (vect_transform_strided_load): Save vector
5180         statement in related statement field only for the first load of the
5181         group of loads with the same data reference.
5182
5183 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
5184
5185         * config/mips/mips.h (TUNE_OCTEON): New macro.
5186         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
5187         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
5188         * config/mips/octeon.md: New file.
5189         * config/mips/mips.md: Include octeon.md.  Restore
5190         semi-alphabetical order of include files.
5191
5192 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
5193
5194         PR target/37571
5195         * config/i386/i386.md (*jcc_fused_1): Removed.
5196         (*jcc_fused_2): Likewise.
5197         (*jcc_fused_3): Likewise.
5198         (*jcc_fused_4): Likewise.
5199
5200 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
5201
5202         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
5203         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
5204         * target.h (gcc_target): Add ira_cover_classes.
5205         * ira.c: Remove IRA_COVER_CLASSES guards.
5206         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
5207         instead of IRA_COVER_CLASSES.
5208         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
5209         (setup_class_translate): Likewise.
5210         (setup_reg_class_intersect_union): Likewise.
5211         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
5212         test of targetm.ira_cover_classes.
5213         * opts.c (decode_options): Use targetm.ira_cover_classes instead
5214         of IRA_COVER_CLASSES.
5215         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
5216         (TARGET_INITIALIZER): Include it.
5217         * targhooks.h (default_ira_cover_classes): Declare.
5218         * targhooks.c (default_ira_cover_classes): New function.
5219
5220 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
5221
5222         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
5223
5224 2008-09-19  Ian Lance Taylor  <iant@google.com>
5225
5226         * varasm.c (narrowing_initializer_constant_valid_p): Return
5227         NULL_TREE if ENDTYPE is not an integer.
5228
5229 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5230
5231         PR tree-opt/30930
5232         * tree-ssa.c (execute_update_addresses_taken): Also update
5233         DECL_GIMPLE_REG_P for vector and complex types.
5234
5235 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
5236             Jan Hubicka  <jh@suse.cz>
5237
5238         PR middle-end/37567
5239         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
5240         empty before freeing them.
5241         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
5242
5243 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
5244
5245         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
5246         * config/xtensa/predicates.md (tls_symbol_operand): New.
5247         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
5248         (TARGET_CANNOT_FORCE_MEM): Define.
5249         (xtensa_tls_symbol_p): New.
5250         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
5251         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
5252         (xtensa_tls_module_base): New.
5253         (xtensa_call_tls_desc): New.
5254         (xtensa_legitimize_tls_address): New.
5255         (xtensa_legitimize_address): Handle TLS symbols.
5256         (xtensa_tls_referenced_p_1): New.
5257         (xtensa_tls_referenced_p): New.
5258         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
5259         UNSPEC_DTPOFF.
5260         (XTENSA_BUILTIN_THREAD_POINTER): New.
5261         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
5262         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
5263         builtin.  Add declarations for __builtin_thread_pointer and
5264         __builtin_set_thread_pointer.
5265         (xtensa_fold_builtin): Recognize new builtins.
5266         (xtensa_expand_builtin): Expand new builtins.
5267         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
5268         (TARGET_THREADPTR): Define.
5269         (HAVE_AS_TLS): Define default value.
5270         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
5271         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
5272         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
5273         (UNSPECV_SET_TP): New.
5274         (sym_TPOFF, sym_DTPOFF): New.
5275         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
5276         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
5277         * configure: Regenerated.
5278
5279 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
5280
5281         PR target/37394
5282         * config/ia64/ia64.c (ia64_optimization_options): Move
5283         checking and setting flag_schedule_insns_after_reload and
5284         ia64_flag_schedule_insns2 back to ...
5285         (ia64_override_options): Here.
5286
5287 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5288
5289         PR rtl-opt/37451
5290         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
5291         zero extend count after the correction to it is done.
5292         (doloop_optimize): Update call to doloop_modify, don't zero extend
5293         count before call.
5294
5295 2008-09-18  Martin Jambor  <mjambor@suse.cz>
5296
5297         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
5298
5299         * ipa-prop.c: Correct comments.
5300         * ipa-prop.h: Likewise.
5301
5302 2008-09-18  Jan Hubicka  <jh@suse.cz>
5303
5304         PR middle-end/37448
5305         * ipa-reference.c (ipa_reference_local_vars_info_d,
5306         ipa_reference_global_vars_info_d,
5307         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
5308         ipa_reference_vars_info_t): Move here from ipa-reference.h
5309         (node_duplication_hook_holder, node_removal_hook_holder): New.
5310         (get_reference_vars_info_from_cgraph): Rename to ...
5311         (get_reference_vars_info): ... this one, use cgraph uids.
5312         (get_local_reference_vars_info, get_global_reference_vars_info):
5313         Use cgraph instead of decl.
5314         (ipa_reference_get_read_local, ipa_reference_get_written_local):
5315         Remove.
5316         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
5317         ipa_reference_get_written_global,
5318         ipa_reference_get_not_written_global): Use cgraph argument.
5319         (check_call): Simplify avail check.
5320         (scan_stmt_for_static_refs): Update.
5321         (propagate_bits): Update.
5322         (merge_callee_local_info): Remove.
5323         (init_function_info): Use cgraph nodes.
5324         (clean_function_local_data): Break out from ...
5325         (clean_function): ... here.
5326         (copy_local_bitmap, copy_global_bitmap): New functions.
5327         (duplicate_node_data, remove_node_data): New functions.
5328         (generate_summary): Register hooks; use visibility instead of
5329         master clones.
5330         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
5331         * ipa-reference.h (ipa_reference_local_vars_info_d,
5332         ipa_reference_global_vars_info_d,
5333         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
5334         ipa_reference_vars_info_t): Move to ipa-reference.c
5335         (ipa_reference_get_read_local, ipa_reference_get_written_local):
5336         Remove.
5337         (ipa_reference_get_read_global, ipa_reference_get_written_global,
5338         ipa_reference_get_not_read_global,
5339         ipa_reference_get_not_written_global): Update prototype.
5340         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
5341         (init_state): Remove.
5342         (node_duplication_hook_holder, node_removal_hook_holder): New.
5343         (get_function_state, set_function_state): Use VECtor.
5344         (analyze_function): Check body availability.
5345         (add_new_function): Likewise.
5346         (duplicate_node_data, remove_node_data): New.
5347         (generate_summary): Register hooks; do not care about clones.
5348         (propafate): Do not care about clones; recursive functions are
5349         not looping.
5350         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
5351         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
5352         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
5353         static.
5354         * tree-flow.h (function_ann_d): Remove reference_vars_info.
5355         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
5356         Update call of ipa-reference accesors.
5357
5358 2008-09-18  Simon Baldwin  <simonb@google.com>
5359
5360         * c-opts.c (c_common_handle_option): Add handling for
5361         -Wbuiltin-macro-redefined command line option.
5362         * c.opt: Added builtin-macro-redefined option.
5363         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
5364         documentation.
5365
5366 2008-09-18  Richard Guenther  <rguenther@suse.de>
5367
5368         PR tree-optimization/37258
5369         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
5370         and signedness for integral types.
5371         (vn_phi_eq): Require compatible types.
5372
5373 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
5374
5375         PR debug/34037
5376         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
5377         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
5378         VAR_DECL.
5379         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
5380         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
5381         ggc_free other TREE_LIST nodes from that chain.
5382         * function.c (instantiate_decls): Instantiate also DECL_RTL
5383         of vars in cfun->local_decls, free that list afterwards.
5384
5385 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
5386
5387         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
5388         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
5389
5390 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
5391
5392         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
5393         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
5394
5395 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
5396
5397         PR tree-optimization/37102
5398         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
5399         from a node. Check to see if another PHI is dead.
5400         (eliminate_useless_phis): Rename from eliminate_virtual_phis and
5401         remove real PHIs which have no uses.
5402         (rewrite_out_of_ssa): Call eliminate_useless_phis.
5403
5404 2008-09-18  Richard Guenther  <rguenther@suse.de>
5405
5406         PR middle-end/37284
5407         * tree-cfg.c (remove_useless_stmts_1): Remove
5408         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
5409
5410 2008-09-18  Nick Clifton  <nickc@redhat.com>
5411
5412         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
5413         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
5414         to frv_secondary_reload_class.
5415         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5416         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
5417         (frv_secondary_reload_class): Omit unused parameter.
5418         (frv_secondary_reload): New function.  Handle the case when
5419         secondary_reload_class() is called before the reload_(in|out)
5420         _optabs have been initialised.
5421         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
5422         unused parameter.
5423         * config/frv/frv.md: Define an exclusion set between fr550_m0
5424         and fr550_f0.
5425
5426 2008-09-18  Richard Guenther  <rguenther@suse.de>
5427
5428         PR tree-optimization/37456
5429         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
5430         want to insert after ends a BB insert on the single fallthru
5431         outgoing edge.
5432
5433 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5434
5435         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
5436         Mention -march=z9-109, z9-ec and z10.
5437
5438 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
5439
5440         PR rtl-optimization/37544
5441         * regrename.c (maybe_mode_change): Exit early when copy_mode
5442         is narrower than orig_mode and narrower than new_mode.
5443
5444 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
5445
5446         PR middle-end/37499
5447         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
5448
5449         * sched-rgn.c (ref_counts): Remove.
5450         (insn_referenced): New static variable.
5451         (INSN_REF_COUNT): Remove.
5452         (sched_run_compute_dependencies): Use insn_referenced instead of
5453         INSN_REF_COUNT.
5454         (add_branch_dependences): Likewise.  Delete dead assignment.
5455
5456 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
5457
5458         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
5459         consumer is an asm.  Add comment why this is important.
5460         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
5461         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
5462
5463 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
5464
5465         * expr.c (emit_group_store): Do not shift before moving via a
5466         stack slot.
5467
5468 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5469
5470         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
5471         from aggregate to non-aggregate type if the bit pattern is not fully
5472         preserved afterwards.
5473
5474 2008-09-17  Richard Guenther  <rguenther@suse.de>
5475
5476         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
5477         (verify_gimple_assign): ... this.  Split into ...
5478         (verify_gimple_assign_unary): ... this,
5479         (verify_gimple_assign_binary): ... that,
5480         (verify_gimple_assign_single): ... and this.
5481         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
5482         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
5483         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
5484         (verify_types_in_gimple_reference): Be forgiving with
5485         VIEW_CONVERT_EXPRs.
5486         (verify_gimple_phi): Deal with virtual operands.
5487
5488         * tree.def (PREDICT_EXPR): Change to tcc_expression.
5489
5490 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5491
5492         * tree.c (get_callee_fndecl): Don't call the language hook.
5493         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
5494         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
5495         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
5496
5497 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
5498
5499         * tree.c (protected_set_expr_location): Don't unnecessarily
5500         check for error_mark_node.
5501
5502 2008-09-17  Art Haas  <ahaas@impactweather.com>
5503
5504         * ipa-reference.c (analyze_function): Declare step only if
5505         ENABLE_CHECKING is defined.
5506
5507 2008-09-17  Jan Hubicka  <jh@suse.cz>
5508
5509         PR c++/18071
5510         * tree.h (DECL_INLINE): remove.
5511         (DECL_DECLARED_INLINE_P): Update docs.
5512         (DECL_NO_INLINE_WARNING_P): new.
5513         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
5514         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
5515
5516 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
5517             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5518
5519         PR bootstrap/37441
5520         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
5521         false.
5522
5523 2008-09-17  Jan Hubicka  <jh@suse.cz>
5524
5525         * ipa-reference.c (ipa_obstack): Remove.
5526         (local_info_obstack, global_info_obstack): New.
5527         (add_static_var): We now handle variables only.
5528         (mark_address_taken, mark_load, mark_store): New functions based on ...
5529         (check_operand): ... remove.
5530         (get_asm_stmt_operands): Rename to ...
5531         (check_asm_memory_clobber): ... this. Look only for memory clobber.
5532         (scan_stmt_for_static_refs): Rewrite.
5533         (scan_op_for_static_refs): Rename to ...
5534         (scan_initializer_for_static_refs): do not look for VAR_DECL
5535         initializers; stop recursion on types and decls.
5536         (ipa_init): Use proper obstacks.
5537         (analyze_variable): Use scan_initializer_for_static_refs.
5538         (init_function_info): Use local obstack.
5539         (analyze_function): Simplify.
5540         (add_new_function): We don't need visited_nodes obstack.
5541         (generate_summary): Use proper obstacks; cleanup after propagation.
5542
5543 2008-09-17  Richard Guenther  <rguenther@suse.de>
5544
5545         PR middle-end/37385
5546         PR tree-optimization/37491
5547         * alias.c (get_alias_set): Use the canonical type.
5548         * tree-vect-transform.c (vectorizable_store): Use the type of
5549         the lhs for the vector type.  Adjust checking.
5550         (vectorizable_load): Adjust checking.
5551
5552 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
5553             Adam Nemet  <anemet@caviumnetworks.com>
5554
5555         PR rtl-optimization/37483
5556         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
5557         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
5558         Rearrange code to better match the original comment.  Check
5559         t_unconditional first.  Improve comment.
5560
5561 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
5562
5563         PR c/37529
5564         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
5565         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
5566
5567         PR c++/37530
5568         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
5569         GIMPLE_TRY if cleanup sequence is empty.
5570
5571 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5572
5573         PR middle-end/37263
5574         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
5575         eliminate IV if the cost are the same.
5576
5577 2008-09-16  Richard Guenther  <rguenther@suse.de>
5578
5579         PR middle-end/37380
5580         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
5581         if not necessary.
5582
5583 2008-09-16  Richard Guenther  <rguenther@suse.de>
5584
5585         PR tree-optimization/37508
5586         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
5587
5588 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5589
5590         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
5591
5592 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5593
5594         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
5595         use gen_floatdidf2 directly.
5596         (floatunssidf2): Likewise.
5597         (floatsidf_ppc64_mfpgpr): Remove.
5598         (floatsidf_ppc64): Remove.
5599         (floatunssidf_ppc64): Remove.
5600
5601 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
5602
5603         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
5604         rather than update_cost_queue.
5605
5606         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
5607         in every call starting with the second one, instead of only when
5608         alias_bitmap_obstack.elements != NULL.
5609
5610         * tree-predcom.c (filter_suitable_components): Free all refs in
5611         act->refs vector before calling release_component.
5612         (add_ref_to_chain): Free ref if not adding it to chain->refs.
5613
5614         * tree-data-ref.c (free_subscripts): Free all subscript objects.
5615
5616         * tree-loop-linear.c (linear_transform_loops): Initialize
5617         lambda_obstack only after calling perfect_loop_nest_depth.
5618         Goto free_and_continue instead of just continue for later failures.
5619
5620         PR middle-end/37479
5621         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
5622
5623         PR libmudflap/36397
5624         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
5625
5626 2008-09-14  Andreas Schwab  <schwab@suse.de>
5627
5628         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
5629
5630 2008-09-14  Jan Hubicka  <jh@suse.cz>
5631
5632         * invoke.texi (-fconserve-stack): Document.
5633         * opts.c (decode_options): Handle conserve_stack.
5634         * common.opt (fconvserve_stack): New.
5635
5636 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
5637
5638         * config.host: Add x-aix to host_xmake_file.
5639         * config/rs6000/t-aix52: Do not override LDFLAGS.
5640         * config/rs6000/x-aix: New file.
5641
5642 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
5643
5644         PR target/19636
5645         PR target/24894
5646         PR target/31644
5647         PR target/31786
5648         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
5649         is not recognized as a valid register usage. Allow REG_X to be used
5650         as a base pointer.
5651         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
5652         forces a reload when using a base register.
5653
5654 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
5655
5656         * config/i386/cygming-crtend.c (register_frame_ctor): If
5657         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
5658         directly with atexit.
5659         (deregister_frame_ctor): Rename to ...
5660         (deregister_frame_dtor): Use to call __gcc_deregister_frame
5661         if !DEFAULT_USE_CXA_ATEXIT.
5662
5663 2008-09-13  Jan Hubicka  <jh@suse.cz>
5664
5665         * cgraph.c: Include value-prof.h
5666         * Makefile.in (cgraph.o): Add value-prof.h dependency.
5667
5668 2008-09-13  Jan Hubicka  <jh@suse.cz>
5669
5670         PR middle-end/32581
5671         * tree-profile.c (add_abnormal_goto_call_edges): New function.
5672         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
5673         tree_gen_one_value_profiler, tree_gen_average_profiler,
5674         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
5675
5676 2008-09-13  Jan Hubicka  <jh@suse.cz>
5677
5678         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
5679         too many bytes on misalligned blocks.
5680
5681 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5682
5683         * doc/cfg.texi: Fix some typos.
5684         * doc/extend.texi: Likewise.
5685         * doc/install.texi: Likewise.
5686         * doc/invoke.texi: Likewise.
5687         * doc/rtl.texi: Likewise.
5688         * doc/tree-ssa.texi: Likewise.
5689
5690 2008-09-13  Richard Guenther  <rguenther@suse.de>
5691
5692         PR middle-end/30141
5693         * tree-nested.c (finalize_nesting_tree_1): Generate valid
5694         gimple stores for memory rhs.
5695
5696 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
5697
5698         PR rtl-optimization/37489
5699         * cse.c (fold_rtx): Don't return const_true_rtx for float
5700         compare if FLOAT_STORE_FLAG_VALUE is undefined.
5701
5702 2008-09-13  Jan Hubicka  <jh@suse.cz>
5703
5704         PR tree-optimization/37392
5705         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
5706
5707 2008-09-13  Martin Jambor  <mjambor@suse.cz>
5708             Jan Hubicka  <jh@suse.cz>
5709
5710         * cgraph.c (free_edges): New variable.
5711         (NEXT_FREE_EDGE): New macro.
5712         (cgraph_free_edge): New function.
5713         (cgraph_remove_edge): Call cgraph_remove_edge_1.
5714         (cgraph_node_remove_callees): Likewise.
5715         (cgraph_node_remove_callers): Likewise.
5716         (cgraph_create_edge): Reuse edges from the free list.  Do not
5717         update uid if doing so.
5718         (cgraph_remove_*_hook): Add free call.
5719
5720 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
5721
5722         * ira-color.c (conflict_allocno_vec): Delete.
5723         (update_cost_queue_elem): New structure.
5724         (update_cost_queue): New variable.
5725         (update_cost_queue_tail): Likewise.
5726         (update_cost_queue_elems): Likewise.
5727         (allocno_update_cost_check): Delete.
5728         (initiate_cost_update): Allocate update_cost_queue_elems
5729         instead of allocno_update_cost_check.
5730         (finish_cost_update): Update the free()s accordingly.
5731         (start_update_cost): New function.
5732         (queue_update_cost): Likewise.
5733         (get_next_update_cost): Likewise.
5734         (update_copy_costs_1): Inline into...
5735         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
5736         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
5737         once we've established they are equal.  Don't allocate update
5738         costs if there is nothing to add to them.
5739         (update_conflict_hard_regno_costs): Remove ALLOCNO and
5740         DIVISOR arguments.  Use a queue instead of recursive calls;
5741         process all the allocnos in the initial queue, rather than
5742         a single allocno.
5743         (assign_hard_reg): Use queue_update_cost instead of
5744         conflict_allocno_vec.  Queue coalesced allocnos instead
5745         of calling update_conflict_hard_regno_costs for each one.
5746         Just call update_conflict_hard_regno_costs once for the
5747         entire queue.
5748         (ira_color): Remove conflict_allocno_vec handling.
5749
5750 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
5751
5752         PR tree-optimization/37484
5753         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
5754         (save_var_name): Same.
5755         (initialize_cloog_names): Same.
5756         (initialize_cloog_names): Same.
5757
5758 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
5759
5760         * tree-scalar-evolution.c (set_instantiated_value): Set
5761         instantiated_below.
5762
5763 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
5764
5765         PR rtl-opt/37377
5766
5767         * ira-build.c (common_loop_tree_node_dominator): Remove.
5768         (copy_live_ranges_to_removed_store_destinations): New function.
5769         (regno_top_level_allocno_map): Move to top level from ...
5770         (ira_flattening): ... here.  Use
5771         copy_live_ranges_to_removed_store_destinations.
5772
5773         * ira-emit.c (generate_edge_moves): Fix a comment.
5774
5775 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
5776
5777         PR target/37466
5778         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
5779         scratch register after 'set' pattern.
5780
5781 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5782
5783         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
5784         information passed to mark_reg_pointer.
5785         * explow.c (force_reg): Likewise.
5786
5787 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5788
5789         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
5790         when building for the celledp architecture.
5791
5792 2008-09-12  Richard Guenther  <rguenther@suse.de>
5793
5794         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
5795
5796 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5797
5798         PR rtl-optimization/37424
5799         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
5800         the regnos instead of the addresses.
5801
5802 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
5803
5804         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
5805
5806 2008-09-11  Richard Guenther  <rguenther@suse.de>
5807
5808         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
5809         entering the weaker equivalence recording.
5810
5811         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
5812
5813 2008-09-11  Jeff Law <law@redhat.com>
5814
5815         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
5816         by assign_stack_local on the IRA path for stack slot sharing
5817         as well as the non-IRA path.
5818
5819 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
5820
5821         * config/i386/i386.h: Fix whitespace issues.
5822
5823 2008-09-11  Martin Jambor  <mjambor@suse.cz>
5824
5825         * ipa-prop.h (struct ipa_param_flags): Removed.
5826         (struct ipa_param_descriptor): New structure.
5827         (struct ipa_node_params): ipcp_lattices, param_decls and
5828         param_flags moved to ipa_param_description.
5829         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
5830         descriptors.  Renamed all users.
5831         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
5832         changed to access descriptors.  Renamed all users.
5833         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
5834         to access descriptors. Renamed all users.
5835         * ipa-cp.c (ipcp_init_cloned_node): Call
5836         ipa_initialize_node_params instead of ipa_count_formal_params and
5837         ipa_create_param_decls_array.
5838         (ipcp_analyze_node): Likewise.
5839         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
5840         descriptors.  Renamed all users.
5841         (ipcp_initialize_node_lattices): Remove allocation.
5842         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5843         ipa_initialize_node_params instead of ipa_count_formal_params and
5844         ipa_create_param_decls_array.
5845         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
5846         ipa_populate_param_decls, made static, added parameter info,
5847         renamed mt to node, removed allocation, changed to use
5848         descriptors.
5849         (ipa_count_formal_params): Made static, added parameter info,
5850         renamed mt to node.
5851         (ipa_initialize_node_params): New function.
5852         (ipa_check_stmt_modifications): Changed to use descriptors.
5853         (ipa_detect_param_modifications): Removed allocation, changed to
5854         use descriptors.
5855         (ipa_note_param_call): Changed to use descriptors.
5856         (ipa_analyze_params_uses): Removed allocation.
5857         (ipa_free_node_params_substructures): Changed to use descriptors.
5858         (ipa_edge_duplication_hook): Use the unused attribute.
5859         (ipa_node_duplication_hook): Use the unused attribute, changed to
5860         use descriptors, changed to duplicate descriptors.
5861
5862         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
5863         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
5864         indirect inlining.  Made static.
5865         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
5866         functions called only once.
5867         (cgraph_decide_recursive_inlining): Don't call
5868         ipa_propagate_indirect_call_infos, pass new_edges to
5869         cgraph_mark_inline_edge instead.
5870         (cgraph_decide_inlining_of_small_functions): Don't call
5871         ipa_propagate_indirect_call_infos, pass new_edges to
5872         cgraph_mark_inline_edge instead.
5873         (cgraph_decide_inlining): Don't call
5874         ipa_propagate_indirect_call_infos.
5875         * ipa-prop.c: Check that vectors are allocated.
5876
5877         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
5878         iff a new cgraph edges have been created.
5879         (cgraph_decide_inlining): New variable redo_always_inline.
5880         Flattening and always_inlining loop until callgraph stabilizes.
5881         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
5882         true iff new cgraph edges have been created.
5883         (propagate_info_to_inlined_callees): Likewise.
5884         (ipa_propagate_indirect_call_infos): Likewise.
5885
5886 2008-09-11  Richard Guenther  <rguenther@suse.de>
5887
5888         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
5889         (set_prologue_iterations): Likewise.
5890         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
5891         Likewise.
5892         (vect_update_init_of_dr): Likewise.
5893         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
5894         type verification.
5895         * fold-const.c (fold_unary): Do not generate calculations
5896         in sub-types.
5897
5898 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
5899
5900         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
5901         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
5902         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
5903
5904         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
5905         a bool.
5906         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
5907         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
5908         before finalizing the changes.
5909         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
5910         for BIT_IOR_EXPR.
5911         (simplify_truth_ops_using_ranges): New.
5912         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
5913         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
5914         whether a simplification was made.
5915         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
5916         use a switch statement and also call simplify_truth_ops_using_ranges.
5917
5918 2008-09-11  Jan Hubicka  <jh@suse.cz>
5919
5920         * ggc-common.c (loc_array): Make static.
5921         * dce.c (rest_of_handle_ud_dce): Free worklist.
5922
5923 2008-09-11  Jan Hubicka  <jh@suse.cz>
5924
5925         * cgraph.c (cgraph_release_function_body): Plug memory leak on
5926         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
5927         function so we are sure we do not dangle it forever.
5928         * function.c (outer_function_chain, find_function_data): Remove.
5929         (function_context_stack): New.
5930         (push_function_context, pop_function_context): Update.
5931         * function.h (struct function): Remove pointer outer.
5932         (outer_function_chain, find_function_data): Remove.
5933         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
5934
5935 2008-09-11  Jan Hubicka  <jh@suse.cz>
5936
5937         PR middle-end/37448
5938         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
5939
5940 2008-09-11  Jan Hubicka  <jh@suse.cz>
5941
5942         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
5943
5944 2008-09-11  Jan Hubicka  <jh@suse.cz>
5945
5946         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
5947         (free_var_map_entry): New function.
5948         (redirect_edge_var_map_destroy): Use it.
5949
5950 2008-09-11  Jan Hubicka  <jh@suse.cz>
5951
5952         PR middle-end/37448
5953         * tree-inline.c (add_lexical_block): Replace with ...
5954         (prepend_lexical_block): ... prepend at begginig.
5955         (remap_blocks): Use it and reverse later.
5956         (expand_call_inline): Use prepend_lexical_block.
5957
5958 2008-09-11  Jan Hubicka  <jh@suse.cz>
5959
5960         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
5961
5962 2008-09-11  Jan Hubicka  <jh@suse.cz>
5963
5964         * function.c (free_after_compilation): Call insn_locators_free.
5965         * cfglayout.c (insn_locators_free): New function.
5966         * rtl.h (insn_locators_free): Declare.
5967
5968 2008-09-11  Jan Hubicka  <jh@suse.cz>
5969
5970         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
5971         vector pointer.
5972         (cond_move_process_if_block): Update call.
5973
5974 2008-09-11  Jan Hubicka  <jh@suse.cz>
5975
5976         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
5977         * vec.c: Include hashtab.h
5978         (vec_descriptor, ptr_hash_entry): New structures.
5979         (vec_desc_hash, vec_ptr_map): New static variables.
5980         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
5981         register_overhead, free_overhead, vec_heap_free): New functions.
5982         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
5983         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
5984         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
5985         New functions.
5986
5987 2008-09-11  Ira Rosen  <irar@il.ibm.com>
5988
5989         PR tree-optimization/37474
5990         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
5991         length of load permutation.
5992
5993 2008-09-11  Andreas Schwab  <schwab@suse.de>
5994
5995         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
5996
5997 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
5998
5999         PR target/37382
6000         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
6001         * dse.c (find_shift_sequence): Use extract_low_bits instead of
6002         simplify_gen_subreg.
6003
6004 2008-09-11  Ira Rosen  <irar@il.ibm.com>
6005
6006         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
6007         for alias check.
6008
6009 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
6010
6011         PR middle-end/37338
6012         * gimplify.c (gimplify_body): Call default_rtl_profile.
6013
6014         PR target/36904
6015         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
6016         instead of tok->val.node if not expanding to something else.  Handle
6017         intervening CPP_PADDING tokens.
6018         (altivec_categorize_keyword): Remove unneeded comparisons.
6019
6020 2008-09-10  Richard Guenther  <rguenther@suse.de>
6021
6022         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
6023
6024 2008-09-10  Richard Guenther  <rguenther@suse.de>
6025
6026         PR middle-end/37432
6027         * tree-inline.c (insert_init_stmt): Make sure to not
6028         insert invalid gimple stores.
6029
6030 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
6031
6032         PR tree-optimization/37388
6033         * toplev.c (process_options): Fail and warn when graphite
6034         flags are used, but the compiler has not been configured
6035         with graphite libraries.
6036         * graphite.c (graphite_transform_loops): Remove printfs
6037         to dump_file for the case when graphite is not available.
6038
6039 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6040
6041         PR target/37434:
6042         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
6043         the even element into register.
6044         (ix86_expand_vector_init_general): Don't use
6045         ix86_expand_vector_init_interleave on V16QImode and V8HImode
6046         if we can't move from GPR to SSE register directly.
6047
6048 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
6049
6050         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
6051         not lose track of the number of NOPs needed.  Number of NOPs needed
6052         for sync vs. loads workaround was switched; corrected.  Run second
6053         pass for all workarounds.  No NOPs needed after call insns.  Change
6054         second pass to use find_next_insn_start and find_load helpers in order
6055         to properly detect parallel insns.
6056         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
6057
6058 2008-09-10  Jan Hubicka  <jh@suse.cz>
6059
6060         * value-prof.c (gimple_ic): Fix tuplification bug.
6061         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
6062         var warning.
6063
6064 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
6065
6066         PR tree-optimization/37353
6067         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
6068         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
6069         calls instead of cond_dead_built_in_calls.
6070         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
6071         initalize the vector only before adding first entry.  Use VEC_safe_push
6072         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
6073         shrink_wrap_conditional_dead_built_in_calls call.
6074
6075 2008-09-10  Ira Rosen  <irar@il.ibm.com>
6076
6077         PR tree-optimization/37385
6078         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
6079         argument, and use it as a vector type if not NULL.
6080         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
6081         vectorized rhs.
6082         (vect_setup_realignment): Call vect_create_data_ref_ptr with
6083         additional argument.
6084         (vectorizable_load): Likewise.
6085
6086 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
6087
6088         * config/i386/i386.md (SWI32): New mode iterator.
6089         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
6090         of SWI.
6091
6092 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6093
6094         PR rtl-optimization/37435
6095         * caller-save.c (insert_restore, insert_save): Check the mode by
6096         reg_save_code.
6097
6098 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6099
6100         PR other/37265
6101         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
6102         splay tree lookup.
6103         (dw2_output_indirect_constant_1): Use unstripped name in symbol
6104         reference.
6105
6106 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
6107
6108         * doc/invoke.texi (ARM Options): Correct errors in discussion
6109         of -mfloat-abi, -mhard-float, and -msoft-float.
6110
6111 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
6112             Jan Hubicka  <jh@suse.cz>
6113
6114         PR middle-end/37356
6115         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
6116         calling gimple_regimplify_operands on it.  Iterate over all newly
6117         added statements, not just the last one.
6118         (insert_init_stmt): Insert stmt into seq first, then call
6119         gimple_regimplify_operands on it.  Don't create new gimplification
6120         context, nor find referenced vars.
6121
6122 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
6123
6124         PR other/37419
6125         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
6126         to pointer to vector pointer.
6127         * ipa-prop.c (ipa_propagate_indirect_call_infos,
6128         propagate_info_to_inlined_callees): Likewise.
6129         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
6130         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
6131         ipa_check_create_edge_args.
6132         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
6133         argument to pointer to vector pointer.
6134         (cgraph_decide_inlining_of_small_function): Adjust
6135         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
6136         calls.
6137
6138         PR target/37438
6139         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
6140         optimizing for size, not speed.
6141
6142         PR rtl-optimization/37408
6143         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
6144         if parm is promoted.
6145
6146 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
6147
6148         PR tree-optimization/37375
6149         * tree-scalar-evolution.c (scev_info_str): Add field
6150         instantiated_below.
6151         (new_scev_info_str, eq_scev_info, find_var_scev_info,
6152         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
6153         set_instantiated_value): Pass instantiated_below.
6154         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
6155         to above functions.
6156         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
6157         the definitions are not instantiated.
6158
6159         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
6160         (block_before_loop): New.
6161         * tree-data-ref.c (dr_analyze_indices): Update uses of
6162         instantiate_scev.
6163         * graphite.c (block_before_scop): New.
6164         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
6165         basic block, not a loop for determining the parameters.
6166         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
6167         scop.
6168         (idx_record_params, find_params_in_bb, find_scop_parameters,
6169         build_loop_iteration_domains, add_conditions_to_domain): Update calls
6170         to instantiate_scev.
6171
6172         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
6173
6174 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6175
6176         PR rtl-opt/37333
6177
6178         * ira-build.c (ira_create_allocno): Setup frequency to 0.
6179
6180         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
6181         Check zero freq and increase if necessary.
6182
6183 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6184
6185         * ira-conflicts.c (process_regs_for_copy): Check that the hard
6186         regno is in the right range.  Add comments.
6187
6188 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6189
6190         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
6191         warnings.
6192         * mips-tfile.c (copy_object): Cast alloca result to int *.
6193         * mips-tdump.c (print_symbol): Cast xmalloc return values to
6194         proper types.
6195         Rename class to sclass.
6196         (read_tfile): Cast read_seek return values to proper types.
6197         Cast xcalloc return value to proper type.
6198
6199 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6200
6201         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
6202         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
6203         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
6204
6205 2008-09-09  Jan Hubicka  <jh@suse.cz>
6206
6207         * profile.c (is_edge_inconsistent): Add debug output; ignore
6208         negative count on fake edges.
6209         (is_inconsistent): Add debug output.
6210
6211 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6212
6213         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
6214         dump message.
6215         (choose_ready): When first insn is chosen from the ready list, also
6216         dump it.
6217
6218 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6219
6220         PR rtl-optimization/37360
6221         * haifa-sched.c (max_issue): Do not assert that we never issue more
6222         insns than issue_rate.  Add comment.
6223
6224 2008-09-09  Richard Guenther  <rguenther@suse.de>
6225
6226         * tree-cfg.c (verify_types_in_gimple_op): Remove.
6227         (verify_types_in_gimple_call): Rename to ...
6228         (verify_gimple_call): ... this.  Enhance.
6229         (verify_types_in_gimple_cond): Remove.
6230         (verify_gimple_comparison): New function ...
6231         (verify_types_in_gimple_assign): ... split out from here.
6232         (verify_types_in_gimple_return): Rename to ...
6233         (verify_gimple_return): ... this.  Enhance.
6234         (verify_types_in_gimple_switch): Rename to ...
6235         (verify_gimple_switch): ... this.  Enhance.
6236         (verify_gimple_goto): New function.
6237         (verify_types_in_gimple_phi): Rename to ...
6238         (verify_gimple_phi): ... this.  Enhance.
6239         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
6240         Fold in single-statement cases from verify_types_in_gimple_seq_2.
6241         (verify_types_in_gimple_seq_2): Remove cases handled in
6242         verify_types_in_gimple_stmt.
6243
6244 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
6245
6246         * config/bfin/bfin.c (n_regs_to_save): New static variable.
6247         (push_multiple_operation, pop_multiple_operation): Set it.
6248         (workaround_rts_anomaly): New function.
6249         (workaround_speculation): New function, broken out of bfin_reorg.
6250         (bfin_reorg): Call the new functions.
6251
6252 2008-09-09  Richard Guenther  <rguenther@suse.de>
6253
6254         PR middle-end/37354
6255         PR middle-end/30165
6256         * gimplify.c (gimplify_conversion): Change conversions of
6257         non-register type to VIEW_CONVERT_EXPRs.
6258         (gimplify_addr_expr): If we need to make the operand
6259         addressable make sure to use a properly initialized
6260         temporary for that so it gets a valid gimple store.
6261
6262 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
6263
6264         * function.h (struct function): Add function_start_locus.
6265         * cfgexpand.c (gimple_expand_cfg): Use it.
6266         * c-parser.c (c_parser_declaration_or_fndef): Set it.
6267
6268 2008-09-09  Richard Guenther  <rguenther@suse.de>
6269
6270         PR tree-optimization/37433
6271         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
6272         function calls.
6273
6274 2008-09-09  Richard Guenther  <rguenther@suse.de>
6275
6276         PR tree-optimization/37387
6277         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
6278         and bits to a common type.
6279
6280 2008-09-09  Nick Clifton  <nickc@redhat.com>
6281
6282         * config/v850/v850.md (return): Restore frame size restriction.
6283
6284 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
6285
6286         * c-common.c (c_expand_decl): Remove.
6287         * c-common.h (anon_aggr_type_p): Remove prototype.
6288         (DECL_ANON_UNION_ELEMS): Remove.
6289         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
6290         * c-decl.c (anon_aggr_type_p): Remove.
6291         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
6292         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
6293         * langhooks.h (struct lang_hooks): Remove expand_decl.
6294         * langhooks.c (lhd_expand_decl): Remove.
6295         * stmt.c (expand_anon_union_decl): Remove.
6296         * tree.h (expand_anon_union_decl): Remove prototype.
6297
6298 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
6299
6300         PR target/36609
6301         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
6302         zero.
6303         * config/avr/avr.md  (QISI): Define mode iterator.
6304         (negated_tst<mode>): Redefine as split using mode macro.
6305         (reversed_tstqi): Define insn as reversed compare with zero.
6306         (reversed_tsthi): Ditto.
6307         (reversed_tstsi): Ditto.
6308
6309 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
6310
6311         PR middle-end/37393
6312         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
6313         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
6314
6315         PR middle-end/37414
6316         * predict.c (optimize_function_for_size_p): Don't segfault if
6317         FUN is NULL.
6318         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
6319         tree_swap_operands_p): Don't test cfun != NULL before calling
6320         optimize_function_for_s*_p.
6321
6322 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
6323
6324         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
6325         end of the search.
6326
6327 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
6328
6329         * crx/crx.h (IRA_COVER_CLASSES): Define.
6330
6331 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
6332
6333         PR middle-end/37337
6334         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
6335         even when a stmt has been gimple_modified_p, but after fold_stmt is
6336         not any longer.  Remove unneeded may_have_exposed_new_symbols
6337         initializations.
6338
6339 2008-09-08  Richard Guenther  <rguenther@suse.de>
6340
6341         PR tree-optimization/37421
6342         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
6343         valueize the RHS.
6344
6345 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
6346
6347         PR middle-end/37415
6348         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
6349
6350 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6351
6352         PR driver/37409
6353         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
6354         * pa-hpux10.h (LINK_SPEC): Likewise.
6355         * pa-hpux11.h (LINK_SPEC): Likewise.
6356
6357 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6358
6359         * pa32-regs.h (IRA_COVER_CLASSES): Define.
6360         * pa64-regs.h (IRA_COVER_CLASSES): Define.
6361
6362 2008-09-07  Helge Deller  <deller@gmx.de>
6363
6364         * pa/linux-atomic.c: New file.
6365         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
6366         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
6367
6368 2008-09-07  Richard Guenther  <rguenther@suse.de>
6369             Ira Rosen  <irar@il.ibm.com>
6370
6371         PR tree-optimization/36630
6372         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
6373         Call STRIP_NOPS before calling evolution_part_in_loop_num.
6374
6375 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
6376             Ira Rosen  <irar@il.ibm.com>
6377
6378         PR tree-optimization/35642
6379         * config/rs6000/altivec.md (mulv8hi3): Implement.
6380
6381 2008-09-06  Jeff Law <law@redhat.com>
6382
6383         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
6384
6385 2008-09-06  Jan Hubicka  <jh@suse.cz>
6386
6387         PR tree-optimization/14703
6388         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
6389         declarations.
6390         * passes.c (init_optimization_passes): Recompute inline parameters.
6391
6392 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
6393
6394         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
6395         DECL being null.
6396
6397 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
6398             Peter Fuerst  <post@pfrst.de>
6399
6400         * doc/invoke.texi: Document -mr10k-cache-barrier=.
6401         * doc/extend.texi: Document __builtin_mips_cache.
6402         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
6403         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
6404         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
6405         __GCC_HAVE_BUILTIN_MIPS_CACHE.
6406         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
6407         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
6408         (set_push_mips_isas): New variable.
6409         (mips_r10k_cache_barrier): New variable.
6410         (cache): New availability predicate.
6411         (mips_builtins): Add an entry for __builtin_mips_cache.
6412         (mips_build_cvpointer_type): New function.
6413         (MIPS_ATYPE_CVPOINTER): New macro.
6414         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
6415         mode is VOIDmode.
6416         (r10k_simplified_address_p, r10k_simplify_address)
6417         (r10k_uncached_address_p, r10k_safe_address_p)
6418         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
6419         (r10k_needs_protection_p_call, r10k_needs_protection_p)
6420         (r10k_insert_cache_barriers): New functions.
6421         (mips_reorg_process_insns): Delete cache barriers after a
6422         branch-likely instruction.
6423         (mips_reorg): Call r10k_insert_cache_barriers.
6424         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
6425         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
6426         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
6427         (mips_cache, r10k_cache_barrier): New define_insns.
6428
6429 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
6430
6431         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6432         * ira-color.c (setup_allocno_left_conflicts_num): Use
6433         hard_reg_set_equal_p instead of a comparison with
6434         ira_zero_hard_reg_set.
6435         * ira.c (setup_reg_subclasses): Likewise.
6436         (setup_cover_and_important_classes): Likewise.
6437         (setup_class_translate): Likewise.
6438         (setup_reg_class_intersect_union): Likewise.
6439         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6440         (ira_init_once): Don't initialize them.
6441
6442 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
6443
6444         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
6445
6446 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
6447
6448         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
6449
6450 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
6451
6452         Improved branch hints, safe hints, and scheduling.
6453
6454         * haifa-sched.c (sched_emit_insn): Define.
6455         * sched-int.h (sched_emit_insn): Add prototype.
6456         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
6457         -mhint-max-distance -msafe-hints): Document.
6458         * config/spu/spu.c (spu_flag_var_tracking): New.
6459         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
6460         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
6461         TARGET_ASM_FILE_START): Define.
6462         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
6463         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
6464         (spu_emit_branch_hint): Add blocks argument.
6465         (insert_branch_hints, insert_nops): Remove.
6466         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
6467         uses_ls_unit, spu_sched_init_global, spu_sched_init,
6468         spu_sched_reorder, asm_file_start): New functions.
6469         (clock_var, spu_sched_length, pipe0_clock,
6470         pipe1_clock, prev_clock_var, prev_priority,
6471         spu_ls_first, prev_ls_clock): New static variables.
6472         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
6473         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
6474         (nopn_nv): Add a non-volatile version of nop.
6475         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
6476         -mhint-max-distance, -msafe-hints): New options.
6477
6478 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
6479             Samuel Tardieu  <sam@rfc1149.net>
6480
6481         * opts.c (decode_options): Combine nested if statements.
6482
6483         PR target/37283
6484         * opts.c (decode_options): Handle more relationships among
6485         unit-at-a-time, toplevel-reorder, and section-anchors.
6486
6487 2008-09-05  David Daney  <ddaney@avtrex.com>
6488
6489         * doc/install.texi (--enable-reduced-reflection): Document new option.
6490
6491 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
6492
6493         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
6494         constantpool_mem_p.
6495         (constantpool_operand): New.
6496         (move_operand): Disallow sub-word modes for the constant pool.
6497         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
6498         (xtensa_secondary_reload_class): Replace with....
6499         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
6500         Set icode for sub-word reloads from the constant pool.
6501         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
6502         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
6503         * config/xtensa/xtensa.md (reload<mode>_literal): New.
6504         * config/xtensa/xtensa-protos.h: Update prototypes.
6505
6506 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
6507
6508         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
6509         (REG_CLASS_NAMES): Update.
6510         (REG_CLASS_CONTENTS): Update.
6511         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
6512         of ALL_REGS for regs 77 and 78.
6513         * function.c (instantiate_virtual_regs_in_insn): Assert that
6514         return value of simplify_gen_subreg is not NULL.
6515
6516 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
6517
6518         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
6519         (gen_rtvec_v): Fix coding standards.
6520
6521 2008-09-04  Jan Hubicka  <jh@suse.cz>
6522
6523         * i386.c (decide_alg): Be more conservative about optimizing for size.
6524
6525 2008-09-04  Ian Lance Taylor  <iant@google.com>
6526
6527         * varasm.c (narrowing_initializer_constant_valid_p): New
6528         static function.
6529         (initializer_constant_valid_p): Call it.
6530
6531 2008-09-04  Jeff Law  <law@redhat.com>
6532
6533         * fold-const.c (native_encode_real): Fix computation of WORDS.
6534         (native_interpret_real): Likewise.
6535
6536 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
6537
6538         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
6539
6540 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
6541
6542         * ira-conflicts.c (process_regs_for_copy): Check insn to check
6543         that the cost is already taken into account in ira-costs.c
6544
6545         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
6546
6547         * ira-build.c (print_copy, print_copies, ira_debug_copy,
6548         ira_debug_copies): New.
6549         (ira_bulid): Call print_copies.
6550
6551         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
6552
6553 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
6554
6555         PR target/32783
6556         * config/rs6000/rs6000.c (optimization_options): Remove check of
6557         flag_toplevel_order.
6558
6559 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6560
6561         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
6562         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
6563         second operand is a reg_imm10_operand.
6564         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
6565         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
6566         (*seq_<GPR:mode><GPR2:mode>): Rename to
6567         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
6568         ISA_HAS_SEQ_SNE.
6569         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
6570         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
6571         ISA_HAS_SEQ_SNE.
6572         (*sne_<GPR:mode><GPR2:mode>): Rename to
6573         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
6574         ISA_HAS_SEQ_SNE.
6575
6576 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6577
6578         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
6579         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
6580         combining an arithmetic right shift by more than 31 and a
6581         trunction.  Don't match for out-of-range shift amounts.  Set
6582         attribute mode to <MODE>.
6583         (*lshr32_trunc<mode>): Name the pattern combining a logical right
6584         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
6585         (*<optab>_trunc<mode>_exts): New pattern for truncated right
6586         shifts by less than 32.
6587         (extv): Change predicate on first operand to accept registers.
6588         Change predicate of the other operands from immediate_operand to
6589         const_int_operand.  Expand exts when source is a register.
6590         (extzv): Change predicate of the constant operands from
6591         immediate_operand to const_int_operand.
6592         (extzv<mode>): Change predicate of the constant operands from
6593         immediate_operand to const_int_operand and no constraint. Also
6594         remove mode.
6595         (*extzv_trunc<mode>_exts): New pattern.
6596
6597 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6598
6599         * config/mips/mips.h (ISA_HAS_CINS): New macro.
6600         * config/mips/mips-protos.h (mask_low_and_shift_p,
6601         mask_low_and_shift_len): Declare.
6602         * config/mips/mips.c (mask_low_and_shift_p,
6603         mask_low_and_shift_len): New functions.
6604         (mips_print_operand): Handle new operand prefix "m".
6605         * config/mips/mips.md (*cins<mode>): New pattern.
6606
6607 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
6608
6609         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
6610         optimizing for size.
6611
6612 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
6613
6614         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
6615         regardless of epilogue_completed.
6616
6617 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
6618
6619         PR middle-end/37359
6620         * ira-lives.c (process_bb_node_lives): Check setjmp.
6621
6622 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
6623
6624         PR middle-end/37243
6625         * ira-build.c (form_loop_tree): Reverse BB walk.
6626         (create_bb_allocnos): Likewise.
6627         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
6628         (mark_reg_store): Rename to...
6629         (mark_ref_live): ...this and take a df_ref argument instead of
6630         note_stores arguments.  Assert that we have a register.
6631         (mark_reg_clobber): Delete.
6632         (def_conflicts_with_inputs_p): New function.
6633         (mark_reg_conflicts): Delete.
6634         (mark_reg_death): Rename to...
6635         (mark_ref_dead): ...this and take a df_ref argument instead of
6636         a register.  Assert that we have a register.
6637         (process_bb_node_lives): Hoist frequency calculation out of
6638         instruction walk.  Convert from a forwards scan to a backwards scan.
6639         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
6640         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
6641         (create_allocno_live_ranges): Don't create regs_set.
6642
6643 2008-09-04  Ian Lance Taylor  <iant@google.com>
6644
6645         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
6646         or REG_LABEL_TARGET.
6647         * calls.c (emit_library_call_value_1): Use MEM_P rather than
6648         comparing MODE with MEM.
6649         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
6650         comparing with GF_PREDICT_TAKEN.
6651         (gimple_get_lhs): Change code to enum gimple_code.
6652         (gimple_set_lhs): Likewise.
6653         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
6654         * omp-low.c (find_omp_clause): Change kind parameter to enum
6655         omp_clause_code.
6656         * tree-flow.h (find_omp_clause): Update declaration.
6657         * regrename.c (clear_dead_regs): Change kind parameter to enum
6658         reg_note.
6659         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
6660         GET_MODE.
6661         * see.c (see_get_extension_data): Change return type to enum
6662         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
6663         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
6664         (see_gen_normalized_extension): Change extension_code parameter to
6665         enum entry_type.
6666         (see_seek_pre_extension_expr): Change extension_code to enum
6667         entry_type.
6668         (see_merge_one_def_extension): Likewise.
6669         (see_handle_relevant_defs): Likewise.
6670         (see_handle_relevant_uses): Likewise.
6671         (see_analyze_one_def): Likewise.
6672         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
6673         GIMPLE_ASM rather than ASM_EXPR.
6674         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
6675         GIMPLE_RETURN rather than RETURN_EXPR.
6676         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
6677         (evaluate_stmt): Likewise.
6678         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
6679         to enum vect_relevant.
6680         (vect_mark_stmts_to_be_vectorized): Change assertion to not
6681         compare gimple codes with tree codes.
6682
6683 2008-09-04  Paul Brook  <paul@codesourcery.com>
6684
6685         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
6686
6687 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
6688
6689         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
6690         pointer check lost in the recent no-unit-at-a-time patch.
6691
6692 2008-09-04  Jan Hubicka  <jh@suse.cz>
6693
6694         PR middle-end/37343
6695         * tree-switch-conversion.c (check_final_bb): Accept only IP
6696         invariants.
6697
6698 2008-09-04  Jan Hubicka  <jh@suse.cz>
6699
6700         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
6701         Break out from ...
6702         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
6703         using_ranges argument.
6704         (vrp_evaluate_conditional): Avoid bogus warning for type range.
6705         (vrp_visit_cond_stmt): Update call of
6706         vrp_evaluate_conditional_warnv_with_ops
6707
6708 2008-09-04  Jan Hubicka  <jh@suse.cz>
6709
6710         PR tree-optimization/37345
6711         PR tree-optimization/37358
6712         PR tree-optimization/37357
6713         * tree.c (build_function_type_skip_args): Build distinct type copy;
6714         set TYPE_CONTEXT.
6715         (build_function_decl_skip_args): Set type of new decl not orig decl;
6716         clear DECL_VINDEX for methods turned into functions.
6717
6718 2008-09-04  Nick Clifton  <nickc@redhat.com>
6719
6720         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
6721         * configure: Regenerate.
6722         * config.in: Regenerate.
6723         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
6724         alignment field, if it is supported.
6725
6726 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
6727
6728         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
6729         libraries.
6730
6731 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
6732
6733         * config/rs6000/rs6000.c (processor_target_table): Do not
6734         enable VMX for POWER6.
6735
6736 2008-09-03  Anton Blanchard  <anton@samba.org>
6737
6738         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
6739         emit memory barrier before operation.
6740
6741 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
6742
6743         PR testsuite/37325
6744         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
6745         default_elf_asm_output_external.
6746
6747 2008-09-03  Jeff Law  <law@redhat.com>
6748
6749         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
6750
6751 2008-09-03  Richard Henderson  <rth@redhat.com>
6752
6753         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
6754         memory barrier to below the test-and-set.
6755         (alpha_split_lock_test_and_set_12): Likewise.
6756
6757 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6758
6759         PR rtl-opt/37243
6760
6761         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
6762         all_allocnos.
6763
6764         * ira-color.c (print_loop_title): Use all_allocnos.
6765         (color_pass): Ditto.  Don't add border_allocnos.  Check that
6766         subloop allocno in the correspdoning bitmap all_allocnos.
6767
6768         * ira-emit.c (change_loop): Use all_allocnos.
6769
6770         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
6771         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
6772         (create_cap_allocno): Remove setting mentioned_allocnos.
6773         (create_insn_allocnos): Ditto.
6774         (remove_unnecessary_allocnos): Use all_allocnos.
6775         (check_allocno_creation): Check that allocnos are in the
6776         corresponding bitmap all_allocnos.
6777
6778 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6779
6780         PR rtl-opt/37243
6781
6782         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
6783         (process_regs_for_copy): Process subregs.  Refine check when cost
6784         is taken into account in ira-costs.c.
6785         (process_reg_shuffles): Use REG_SUBREG_P.
6786         (add_insn_allocno_copies): Ditto.  Ignore modes.
6787
6788         * ira-color.c (conflict_allocno_vec): New.
6789         (COST_HOP_DIVISOR): New macro.
6790         (update_copy_costs_1): Use it.
6791         (update_conflict_hard_regno_costs): New function.
6792         (assign_hard_reg): Use it.
6793         (ira_color): Allocate and free conflict_allocno_vec.
6794
6795 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6796
6797         PR rtl-opt/37296
6798
6799         * ira-int.h (ira_sort_insn_chain): Remove.
6800
6801         * ira.c (basic_block_order_nums, chain_insn_order,
6802         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
6803         (ira): Don't call ira_sort_insn_chain.
6804
6805         * reload1.c (reload): Don't call ira_sort_insn_chain.
6806
6807 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6808
6809         PR middle-end/37293
6810         * cgraphunit.c (update_call_expr): Remove eh regions from statements
6811         which become non throw.
6812         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
6813         update_call_expr after updating the flags on the decl.
6814
6815 2008-09-03  Jan Hubicka  <jh@suse.cz>
6816
6817         PR tree-optimization/37315
6818         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
6819         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
6820         (cgraph_analyze_functions): Use node->analyzed
6821         (cgraph_mark_functions_to_output): Likewise.
6822         (cgraph_expand_function): All functions can be released after
6823         expanding.
6824         (cgraph_optimize): Use gimple_has_body_p.
6825         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
6826         (cgraph_decide_inlining_incrementally): Likewise.
6827         (inline_transform): Inline transform.
6828         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
6829         copy fields needed.
6830         (inlinable_function_p): Drop gimple_body check.
6831         (expand_call_inline): Use gimple_has_body_p.
6832         * gimple.c (gimple_has_body_p): New.
6833         * gimple.h (gimple_has_body_p): Add prototype.
6834         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
6835         (dump_function_to_file): Use gimple_has_body_p check.
6836
6837 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
6838
6839         PR c++/37346
6840         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
6841         substatements.
6842         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
6843
6844 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
6845
6846         From Michael Frysinger  <michael.frysinger@analog.com>
6847         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
6848         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
6849         for bf538.
6850
6851 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
6852
6853         Add picoChip port.
6854         * doc/extend.texi: Document picoChip builtin functions.
6855         * doc/invoke.texi: Document picoChip options.
6856         * doc/contrib.texi: Add picoChip contribution.
6857         * doc/md.texi: Document picoChip constraints.
6858         * config.gcc: Add picochip-*-*.
6859         * config/picochip/: Add new port.
6860
6861 2008-09-03  Richard Guenther  <rguenther@suse.de>
6862
6863         PR tree-optimization/37328
6864         * tree-sra.c (sra_build_assignment): Gimplify properly.
6865         (generate_copy_inout): Take the correct stmt as definition,
6866         remove bogus assert.
6867
6868 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
6869
6870         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
6871         attributes.
6872
6873         From Michael Frysinger  <michael.frysinger@analog.com>
6874         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
6875
6876 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
6877
6878         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
6879         (__gthread_setspecific): Revert 2008-08-31 change to
6880         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
6881
6882 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
6883
6884         * diagnostic.c (error_at): New.
6885         * toplev.h (error_at): New prototype.
6886         * c-typeck.c (build_array_ref): Call error_at instead of error.
6887         Pass location to pedwarn.
6888
6889 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
6890
6891         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
6892
6893 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
6894
6895         * dwarf2out.c (tree_add_const_value_attribute): Only handle
6896         VAR_DECL and CONST_DECL.
6897
6898 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
6899             Jakub Jelinek  <jakub@redhat.com>
6900
6901         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
6902         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
6903         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
6904         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
6905         Don't set ix86_save_varrargs_registers.
6906         (ix86_setup_incoming_varargs): Assume cum != NULL.
6907         (ix86_va_start): Check ix86_varargs_gpr_size and
6908         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
6909         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
6910         from frame pointer if ix86_varargs_gpr_size == 0.
6911         (ix86_compute_frame_layout): Updated.
6912         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
6913         (ix86_varargs_gpr_size): Define.
6914         (ix86_varargs_fpr_size): Likewise.
6915         (machine_function): Remove save_varrargs_registers.
6916         Add varargs_gpr_size and varargs_fpr_size.
6917
6918 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
6919
6920         * config/alpha/alpha.c (va_list_skip_additions,
6921         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
6922         (alpha_gimplify_va_arg): Call unshare_expr on second use of
6923         offset_field.
6924
6925         PR tree-optimization/36766
6926         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
6927         for already removed basic blocks.
6928
6929         PR target/36332
6930         * real.c (real_maxval): Clear a lower bit to make real_maxval
6931         match get_max_float for IBM long double format.
6932
6933 2008-09-02  Andreas Schwab  <schwab@suse.de>
6934
6935         * configure.ac: Use m4_quote to quote the expansion of m4_do.
6936         * configure: Regenerate.
6937
6938 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
6939
6940         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
6941         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
6942         checking for a non-VOID CONSTANT_P.
6943
6944 2008-09-02  Jan Hubicka  <jh@suse.cz>
6945
6946         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
6947         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
6948         sdiv_pow2_cheap
6949
6950 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
6951
6952         * expr.c (emit_group_store): Don't assert stack temp mode size.
6953
6954 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
6955             Tobias Grosser  <grosser@fim.uni-passau.de>
6956             Jan Sjodin  <jan.sjodin@amd.com>
6957             Harsha Jagasia  <harsha.jagasia@amd.com>
6958             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
6959             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
6960             Adrien Eliche  <aeliche@isty.uvsq.fr>
6961
6962         Merge from graphite branch.
6963         * graphite.c: New.
6964         * graphite.h: New.
6965         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
6966         * doc/invoke.texi (-floop-block, -floop-interchange,
6967         -floop-strip-mine): Document new flags.
6968         * tree-into-ssa.c (gimple_vec): Moved...
6969         * tree-loop-distribution.c (rdg_component): Moved...
6970         * cfgloopmanip.c: Include tree-flow.h.
6971         (update_dominators_in_loop): New.
6972         (create_empty_if_region_on_edge): New.
6973         (create_empty_loop_on_edge): New.
6974         (loopify): Use update_dominators_in_loop.
6975         * tree-pass.h (pass_graphite_transforms): Declared.
6976         * configure: Regenerate.
6977         * tree-phinodes.c (make_phi_node): Export.
6978         (add_phi_node_to_bb): New, split from create_phi_node.
6979         * tree-chrec.c (for_each_scev_op): New.
6980         * tree-chrec.h (for_each_scev_op): Declared.
6981         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
6982         (remove_statement): Call get_phi_with_result.
6983         * config.in (HAVE_cloog): Undef.
6984         * gdbinit.in (pgg): New.
6985         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
6986         * tree-ssa-loop.c (graphite_transforms): New.
6987         (gate_graphite_transforms): New.
6988         (pass_graphite_transforms): New.
6989         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
6990         HAVE_cloog): Defined.
6991         * tree-vectorizer.c (rename_variables_in_bb): Export.
6992         * tree-data-ref.c (dr_may_alias_p): Export.
6993         (stmt_simple_memref_p): New.
6994         (find_data_references_in_stmt): Export.
6995         (find_data_references_in_loop): Export.
6996         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
6997         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
6998         (create_rdg_vertices): Export.
6999         (build_empty_rdg): New.
7000         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
7001         * tree-data-ref.h (rdg_component): ... here.
7002         (scop_p): New.
7003         (struct data_reference): Add a field scop.
7004         (DR_SCOP): New.
7005         (find_data_references_in_loop): Declared.
7006         (find_data_references_in_stmt): Declared.
7007         (create_rdg_vertices): Declared.
7008         (dr_may_alias_p): Declared.
7009         (stmt_simple_memref_p): Declared.
7010         (struct rdg_edge): Add a field ddr_p relation.
7011         (build_empty_rdg): Declared.
7012         * lambda.h (lambda_matrix): Declare a VEC of.
7013         (find_induction_var_from_exit_cond): Declared.
7014         (lambda_vector_compare): New.
7015         * common.opt (fgraphite, floop-strip-mine,
7016         floop-interchange, floop-block): New flags.
7017         * lambda-code.c (find_induction_var_from_exit_cond): Export.
7018         * cfgloop.c (is_loop_exit): New.
7019         * cfgloop.h (is_loop_exit): Declared.
7020         (create_empty_if_region_on_edge): Declared.
7021         (create_empty_loop_on_edge): Declared.
7022         * tree-flow.h (add_phi_node_to_bb): Declared.
7023         (make_phi_node): Declared.
7024         (rename_variables_in_bb): Declared.
7025         (perfect_loop_nest_depth): Declared.
7026         (graphite_transform_loops): Declared.
7027         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
7028         (graphite.o-warn): Add -Wno-error.
7029         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
7030         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
7031         (INCLUDES): Add PPLINC, CLOOGINC.
7032         (OBJS-common): Add graphite.o.
7033         (graphite.o): Add rule.
7034         * gimple.h (gimple_vec): ... here.
7035         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
7036         * passes.c (init_optimization_passes): Schedule
7037         pass_graphite_transforms.
7038
7039 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
7040
7041         PR target/37283
7042         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
7043         and -fno-toplevel-reorder after handle_options.
7044
7045 2008-09-02  Paul Brook  <paul@codesourcery.com>
7046
7047         * config/arm/arm.c (arm_tune_cortex_a9): Define.
7048         (arm_override_options): Set arm_tune_cortex_a9.
7049         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
7050         (arm_issue_rate): Handle cortexa9.
7051         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
7052         * config/arm/arm-cores.def: Add cortex-a9.
7053         * config/arm/arm-tune.md: Regenerate.
7054         * config/arm/arm.md: Include cortex-a9.md.
7055         (generic_sched, generic_vfp): Add cortexa9.
7056         * config/arm/cortex-a9.md: New file.
7057
7058 2008-09-02  Richard Guenther  <rguenther@suse.de>
7059
7060         PR tree-optimization/37327
7061         * tree-vrp.c (register_new_assert_for): Make sure to not have
7062         TREE_OVERFLOW set on the bound.
7063
7064 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
7065
7066         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
7067
7068         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
7069         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
7070         spec_info->mask.
7071
7072 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
7073
7074         * gcc/config/spu/spu.md (divdf3): Removed.
7075
7076 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
7077
7078         PR tree-optimization/37095
7079         * cgraph.c (cgraph_node): When creating new cgraph node after
7080         assembler_name_hash has been populated, record it in the hash
7081         table.
7082
7083 2008-09-01  Paul Brook  <paul@codesourcery.com>
7084
7085         * doc/invoke.texi: Document -mword-relocations.
7086         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7087         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7088         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7089         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
7090         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
7091         (arm_emit_movpair): New function.
7092         (arm_print_operand <c>): Handle sybolic addresses.
7093         * config/arm/arm.h (TARGET_USE_MOVT): Define.
7094         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7095         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
7096         * config/arm/arm.opt: Add -mword-relocations.
7097         * config/arm/arm.md (movsi): Use arm_emit_movpair.
7098         (arm_movt, arm_movw): New.
7099
7100 2008-09-01  Paul Brook  <paul@codesourcery.com>
7101
7102         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
7103         Allow Interworking on ARMv4 EABI based targets.
7104         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
7105         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
7106
7107 2008-09-01  Paul Brook  <paul@codesourcery.com>
7108
7109         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
7110         optimized LT0 test.  Remove optimization for GT.
7111
7112 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7113
7114         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
7115         openmp applications.
7116         * pa-hpux11.h (LIB_SPEC): Likewise.
7117
7118         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
7119         is defined.
7120
7121 2008-09-01  Jan Hubicka  <jh@suse.cz>
7122
7123         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
7124         present, use only counts; when guessed use only frequencies.
7125         (estimate_bb_frequencies): Use function_frequency.
7126         * profile.c (compute_branch_probabilities): Exit early when
7127         profile reading failed. Set profile_status.
7128         (branch_prob): Do not set profile_status.
7129
7130 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
7131
7132         * tree.c (protected_set_expr_location): New.
7133         * tree.h (protected_set_expr_location): New prototype.
7134         * c-tree.h (build_array_ref): Add argument.
7135         (parser_build_unary_op): Same.
7136         * c-typeck.c (build_indirect_ref): Handle new location argument.
7137         (build_array_ref): Same.
7138         (parser_build_unary_op): Same.
7139         * gimplify.c (gimplify_asm_expr): Set input_location before calling
7140         error.
7141         * c-omp.c (c_finish_omp_atomic): Pass location when calling
7142         build_indirect_ref.
7143         * c-common.c (finish_label_address_expr): Handle new location argument.
7144         * c-common.h (build_indirect_ref): Add argument.
7145         (finish_label_address_expr): Same.
7146         * c-parser.c (c_parser_unary_expression): Pass location to build
7147         functions.
7148         (c_parser_postfix_expression): Same.
7149
7150 2008-09-01  Paul Brook  <paul@codesourcery.com>
7151
7152         * config/arm/arm.md: Include cortex-r4f.md.
7153         (attr fpu): Update type list.
7154         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
7155         fconstd, fcmps and fcmpd.
7156         (attr tune_cortexr4): Define.
7157         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
7158         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
7159         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
7160         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
7161         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
7162         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
7163         cortex_a8_vfp_farith: Ditto.
7164         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
7165         * config/arm/cortex-r4.md: Use tune_cortexr4.
7166         * config/arm/cortex-r4f.md: New file.
7167
7168 2008-09-01  Richard Guenther  <rguenther@suse.de>
7169
7170         PR tree-optimization/37305
7171         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
7172         the result of constant conversions.
7173         (fold_gimple_assign): Likewise.
7174
7175 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
7176
7177         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
7178         #ifdef ENABLE_CHECKING.
7179
7180 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
7181
7182         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
7183         * sched-int.h (print_insn, print_pattern, print_value): Declare also
7184         when !INSN_SCHEDULING.
7185
7186 2008-09-01  Andreas Schwab  <schwab@suse.de>
7187
7188         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
7189
7190 2008-09-01  Paul Brook  <paul@codesourcery.com>
7191
7192         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
7193
7194 2008-09-01  Jan Hubicka  <jh@suse.cz>
7195
7196         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
7197
7198         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
7199         Pass speed operand.
7200         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
7201         * gimplify.c (gimplify_init_constructor): Add speed operand.
7202         * tree-sra.c (decide_block_copy): Likewise.
7203         * tree-inline.c (estimate_move_cost): Likewise.
7204         * config/alpha/alpha.h (MOVE_RATIO): Update.
7205         * config/frv/frv.c (MOVE_RATIO): Update.
7206         * config/spu/spu.h (MOVE_RATIO): Update.
7207         * config/sparc/sparc.h (MOVE_RATIO): Update.
7208         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
7209         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
7210         * config/cris/cris.h (MOVE_RATIO): Update.
7211         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
7212         * config/arm/arm.h (MOVE_RATIO): Update.
7213         * config/pa/pa.md: Update uses of MOVE_RATIO
7214         * config/pa/pa.h (MOVE_RATIO): Update.
7215         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
7216         CLEAR_RATIO, SET_RATIO): Update.
7217         * config/h8300/h8300.h (MOVE_RATIO): Update.
7218         * config/v850/v850.h (MOVE_RATIO): Update.
7219         * config/bfin/bfin.h (MOVE_RATIO): Update.
7220
7221 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
7222             Dmitry Melnik  <dm@ispras.ru>
7223             Dmitry Zhurikhin  <zhur@ispras.ru>
7224             Alexander Monakov  <amonakov@ispras.ru>
7225             Maxim Kuvyrkov  <maxim@codesourcery.com>
7226
7227         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
7228         sel-sched-dump.c, sel-sched-ir.c: New files.
7229         * Makefile.in (OBJS-common): Add selective scheduling object files.
7230         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
7231         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
7232         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
7233         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
7234         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
7235         (make_forwarder_block): Update loop latch if we have redirected
7236         the loop latch edge.
7237         * cfgloop.c (get_loop_body_in_custom_order): New function.
7238         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
7239         (CP_FALLTHRU_PREHEADERS): Likewise.
7240         (get_loop_body_in_custom_order): Declare.
7241         * cfgloopmanip.c (has_preds_from_loop): New.
7242         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
7243         Assert that the preheader edge will be fall thru when it is set.
7244         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
7245         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
7246         fsel-sched-substitution, fselective-scheduling): New flags.
7247         * cse.c (hash_rtx_cb): New.
7248         (hash_rtx): Use it.
7249         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
7250         sel_sched_insn_cnt): New counters.
7251         * final.c (compute_alignments): Export.  Free dominance
7252         info after loop_optimizer_finalize.
7253         * genattr.c (main): Output maximal_insn_latency prototype.
7254         * genautomata.c (output_default_latencies): New.
7255         Factor its code from ...
7256         (output_internal_insn_latency_func): ... here.
7257         (output_internal_maximal_insn_latency_func): New.
7258         (output_maximal_insn_latency_func): New.
7259         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
7260         (struct hard_reg_set_iterator): New.
7261         (hard_reg_set_iter_init, hard_reg_set_iter_set,
7262         hard_reg_set_iter_next): New functions.
7263         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
7264         * lists.c (remove_free_INSN_LIST_node,
7265         remove_free_EXPR_LIST_node): New functions.
7266         * loop-init.c (loop_optimizer_init): When
7267         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
7268         calling create_preheaders.
7269         (loop_optimizer_finalize): Do not verify flow info after reload.
7270         * recog.c (validate_replace_rtx_1): New parameter simplify.
7271         Default it to true.  Update all uses.  Factor out simplifying
7272         code to ...
7273         (simplify_while_replacing): ... this new function.
7274         (validate_replace_rtx_part,
7275         validate_replace_rtx_part_nosimplify): New.
7276         * recog.h (validate_replace_rtx_part,
7277         validate_replace_rtx_part_nosimplify): Declare.
7278         * rtl.c (rtx_equal_p_cb): New.
7279         (rtx_equal_p): Use it.
7280         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
7281         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
7282         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
7283         * vecprim.h: Add a vector type for unsigned int.
7284         * haifa-sched.c: Include vecprim.h and cfgloop.h.
7285         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
7286         ready_try, cycle_issued_insns, spec_info): Make global.
7287         (readyp): Initialize.
7288         (dfa_lookahead): New global variable.
7289         (old_max_uid, old_last_basic_block): Remove.
7290         (h_i_d): Make it a vector.
7291         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
7292         through HID macro.
7293         (after_recovery, adding_bb_to_current_region_p):
7294         New variables to handle correct insertion of the recovery code.
7295         (struct ready_list): Move declaration to sched-int.h.
7296         (rgn_n_insns): Removed.
7297         (rtx_vec_t): Move to sched-int.h.
7298         (find_insn_reg_weight): Remove.
7299         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
7300         (haifa_init_h_i_d, haifa_finish_h_i_d):
7301         New functions to initialize / finalize haifa instruction data.
7302         (extend_h_i_d, init_h_i_d): Rewrite.
7303         (unlink_other_notes): Move logic to add_to_note_list.  Handle
7304         selective scheduler.
7305         (ready_lastpos, ready_element, ready_sort, reemit_notes,
7306         find_fallthru_edge): Make global, remove static prototypes.
7307         (max_issue): Make global.  Add privileged_n and state parameters.  Use
7308         them.
7309         (extend_global, extend_all): Removed.
7310         (init_before_recovery): Add new param.  Fix the handling of the case
7311         when we insert a recovery code before the EXIT which has a predecessor
7312         with a fallthrough edge to it.
7313         (create_recovery_block): Make global.  Rename to
7314         sched_create_recovery_block.  Update.
7315         (change_pattern): Rename to sched_change_pattern.  Make global.
7316         (speculate_insn): Rename to sched_speculate_insn.  Make global.
7317         Split haifa-specific functionality into ...
7318         (haifa_change_pattern): New static function.
7319         (sched_extend_bb): New static function.
7320         (sched_init_bbs): New function.
7321         (current_sched_info): Change type to struct haifa_sched_info.
7322         (insn_cost): Adjust for selective scheduling.
7323         (dep_cost_1): New function.  Move logic from ...
7324         (dep_cost): ... here.
7325         (dep_cost): Use dep_cost_1.
7326         (contributes_to_priority_p): Use sched_deps_info instead of
7327         current_sched_info.
7328         (priority): Adjust to work with selective scheduling.  Process the
7329         corner case when all dependencies don't contribute to priority.
7330         (rank_for_schedule): Use ds_weak instead of dep_weak.
7331         (advance_state): New function.  Move logic from ...
7332         (advance_one_cycle): ... here.
7333         (add_to_note_list, concat_note_lists): New functions.
7334         (rm_other_notes): Make static.  Adjust for selective scheduling.
7335         (remove_notes, restore_other_notes): New functions.
7336         (move_insn): Add two arguments.  Update assert.  Don't call
7337         reemit_notes.
7338         (choose_ready): Remove lookahead variable, use dfa_lookahead.
7339         Remove more_issue, max_points.  Move the code to initialize
7340         max_lookahead_tries to max_issue.
7341         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
7342         ready.  Adjust use of move_insn.  Call restore_other_notes.
7343         (luid): Remove.
7344         (sched_init, sched_finish): Move Haifa-specific initialization/
7345         finalization to ...
7346         (haifa_sched_init, haifa_sched_finish): ... respectively.
7347         New functions.
7348         (setup_sched_dump): New function.
7349         (haifa_init_only_bb): New static function.
7350         (haifa_speculate_insn): New static function.
7351         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
7352         (extend_ready, extend_all): Remove.
7353         (sched_extend_ready_list, sched_finish_ready_list): New functions.
7354         (create_check_block_twin, add_to_speculative_block): Use
7355         haifa_insns_init instead of extend_global.  Update to use new
7356         initialization functions.  Change parameter.  Factor out code from
7357         create_check_block_twin to ...
7358         (sched_create_recovery_edges) ... this new function.
7359         (add_block): Remove.
7360         (sched_scan_info): New.
7361         (extend_bb): Use sched_scan_info.
7362         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
7363         static functions for walking through scheduling region.
7364         (sched_luids): New vector variable to replace uid_to_luid.
7365         (luids_extend_insn): New function.
7366         (sched_max_luid): New variable.
7367         (luids_init_insn): New function.
7368         (sched_init_luids, sched_finish_luids): New functions.
7369         (insn_luid): New debug function.
7370         (sched_extend_target): New function.
7371         (haifa_init_insn): New static function.
7372         (sched_init_only_bb): New hook.
7373         (sched_split_block): New hook.
7374         (sched_split_block_1): New function.
7375         (sched_create_empty_bb): New hook.
7376         (sched_create_empty_bb_1): New function.
7377         (common_sched_info, ready): New global variables.
7378         (current_sched_info_var): Remove.
7379         (move_block_after_check): Use common_sched_info.
7380         (haifa_luid_for_non_insn): New static function.
7381         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
7382         (increase_insn_priority): New.
7383         * modulo-sched.c (issue_rate): Remove static declaration.
7384         (sms_sched_info): Change type to haifa_sched_info.
7385         (sms_sched_deps_info, sms_common_sched_info): New variables.
7386         (setup_sched_infos): New.
7387         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
7388         Do not call regstat_free_calls_crossed.
7389         (sms_print_insn): Use const_rtx.
7390         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
7391         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
7392         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
7393         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
7394         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
7395         current_sched_info to use it.
7396         (enum reg_pending_barrier_mode): Move to sched-int.h.
7397         (h_d_i_d): New variable. Initialize to NULL.
7398         ({true, output, anti, spec, forward}_dependency_cache): Initialize
7399         to NULL.
7400         (estimate_dep_weak): Remove static declaration.
7401         (sched_has_condition_p): New function.  Adjust users of
7402         sched_get_condition to use it instead.
7403         (conditions_mutex_p): Add arguments indicating which conditions are
7404         reversed.  Use them.
7405         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
7406         argument to indicate whether returned condition is reversed.  Do not
7407         generate new rtx when condition should be reversed; indicate it by
7408         setting new argument instead.
7409         (add_dependence_list_and_free): Add deps parameter.
7410         Update all users.  Do not free dependence list when
7411         deps context is readonly.
7412         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
7413         contexts.
7414         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
7415         (remove_from_deps): New. Use the above functions.
7416         (cur_insn, can_start_lhs_rhs_p): New static variables.
7417         (add_or_update_back_dep_1): Initialize present_dep_type.
7418         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
7419         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
7420         haifa_note_dep): New functions implementing dependence hooks for
7421         the Haifa scheduler.
7422         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
7423         note_dep): New functions.
7424         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
7425         functions.
7426         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
7427         (free_deps): Initialize deps->reg_last.
7428         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
7429         sched_analyze_insn): Update to use dependency hooks infrastructure
7430         and readonly contexts.
7431         (deps_analyze_insn): New function.  Move part of logic from ...
7432         (sched_analyze): ... here.  Also move some logic to ...
7433         (deps_start_bb): ... here.  New function.
7434         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
7435         sel_sched_p.
7436         (sched_deps_init): New function.  Move code from ...
7437         (init_dependency_caches): ... here.  Remove.
7438         (init_deps_data_vector): New.
7439         (sched_deps_finish): New function.  Move code from ...
7440         (free_dependency_caches): ... here.  Remove.
7441         (init_deps_global, finish_deps_global): Adjust for use with
7442         selective scheduling.
7443         (get_dep_weak): Move logic to ...
7444         (get_dep_weak_1): New function.
7445         (ds_merge): Move logic to ...
7446         (ds_merge_1): New static function.
7447         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
7448         (ds_get_max_dep_weak): New function.
7449         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
7450         (n_insns): Rename to rgn_n_insns.
7451         (debug_ebb_dependencies): New function.
7452         (init_ready_list): Use it.
7453         (begin_schedule_ready): Use sched_init_only_bb.
7454         (ebb_print_insn): Indicate when an insn starts a new cycle.
7455         (contributes_to_priority, compute_jump_reg_dependencies,
7456         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
7457         (add_block1): Remove to ebb_add_block.
7458         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
7459         (schedule_ebb): Initialize them.  Use remove_notes instead of
7460         rm_other_notes.  Use haifa_local_init/finish.
7461         (schedule_ebbs): Use haifa_sched_init/finish.
7462         * sched-int.h: Include vecprim.h, remove rtl.h.
7463         (struct ready_list): Delete declaration.
7464         (sched_verbose_param, enum sched_pass_id_t,
7465         bb_vec_t, insn_vec_t, rtx_vec_t): New.
7466         (struct sched_scan_info_def): New structure.
7467         (sched_scan_info, sched_scan, sched_init_bbs,
7468         sched_init_luids, sched_finish_luids, sched_extend_target,
7469         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
7470         (struct common_sched_info_def): New.
7471         (common_sched_info, haifa_common_sched_info,
7472         sched_emulate_haifa_p): Declare.
7473         (sel_sched_p): New.
7474         (sched_luids): Declare.
7475         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
7476         (sched_max_luid, insn_luid): Declare.
7477         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
7478         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
7479         print_insn, print_pattern, print_value, haifa_classify_insn,
7480         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
7481         setup_sched_dump, sched_init, sched_finish,
7482         sel_insn_is_speculation_check): Export.
7483         (struct ready_list): Move from haifa-sched.c.
7484         (ready_try, ready, max_issue): Export.
7485         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
7486         sched_init_only_bb, sched_split_block, sched_split_block_1,
7487         sched_create_empty_bb, sched_create_empty_bb_1,
7488         sched_create_recovery_block, sched_create_recovery_edges): Export.
7489         (enum reg_pending_barrier_mode): Export.
7490         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
7491         (deps_t): New.
7492         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
7493         print_insn field.  Move add_block and fix_recovery_cfg to
7494         common_sched_info_def.  Move compute_jump_reg_dependencies,
7495         use_cselib  ...
7496         (struct sched_deps_info_def): ... this new structure.
7497         (sched_deps_info): Declare.
7498         (struct spec_info_def): Remove weakness_cutoff, add
7499         data_weakness_cutoff and control_weakness_cutoff.
7500         (spec_info): Declare.
7501         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
7502         dep_count field.
7503         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
7504         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
7505         (current_sched_info): Change type to struct haifa_sched_info.
7506         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
7507         (h_d_i_d): New variable.
7508         (HDID): New accessor macro.
7509         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
7510         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
7511         and HDID.
7512         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
7513         (enum SCHED_FLAGS): Update for selective scheduler.
7514         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
7515         (init_dependency_caches, free_dependency_caches): Delete declarations.
7516         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
7517         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
7518         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
7519         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
7520         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
7521         ds_to_dt): Export.
7522         (rm_other_notes): Delete declaration.
7523         (schedule_block): Remove one argument.
7524         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
7525         ready_element, ready_lastpos, sched_extend_ready_list,
7526         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
7527         concat_note_lists): Export.
7528         (struct region): Move from sched-rgn.h.
7529         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7530         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7531         BLOCK_TO_BB, CONTAINING_RGN): Export.
7532         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
7533         (current_nr_blocks, current_blocks, target_bb): Likewise.
7534         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
7535         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
7536         sched_rgn_local_init, extend_regions,
7537         rgn_make_new_region_out_of_new_block, compute_priorities,
7538         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
7539         extend_rgns, deps_join rgn_setup_common_sched_info,
7540         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
7541         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
7542         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
7543         increase_insn_priority): Likewise.
7544         * sched-rgn.c: Include sel-sched.h.
7545         (ref_counts): New static variable.  Use it ...
7546         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
7547         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
7548         (sched_is_disabled_for_current_region_p): Delete static declaration.
7549         (struct region): Move to sched-int.h.
7550         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7551         ebb_head): Define and initialize.
7552         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7553         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
7554         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
7555         sched-int.h.
7556         (find_single_block_region): Add new argument to indicate that EBB
7557         regions should be constructed.
7558         (debug_live): Delete declaration.
7559         (current_nr_blocks, current_blocks, target_bb):
7560         Remove static qualifiers.
7561         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
7562         declaration.
7563         (init_regions): Delete declaration.
7564         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
7565         rgn_estimate_number_of_insns): New.
7566         (too_large): Use estimate_number_of_insns.
7567         (haifa_find_rgns): New. Move the code from ...
7568         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
7569         (free_trg_info): New.
7570         (compute_trg_info): Allocate candidate tables here instead of ...
7571         (init_ready_list): ... here.
7572         (rgn_print_insn): Use const_rtx.
7573         (contributes_to_priority, extend_regions): Delete static declaration.
7574         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
7575         (add_block1): Rename to rgn_add_block.
7576         (debug_rgn_dependencies): Delete static qualifier.
7577         (new_ready): Use sched_deps_info.  Simplify.
7578         (rgn_common_sched_info, rgn_const_sched_deps_info,
7579         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
7580         New.
7581         (region_sched_info): Rename to rgn_const_sched_info.
7582         (deps_join): New, extracted from ...
7583         (propagate_deps): ... here.
7584         (compute_block_dependences, debug_dependencies): Update for selective
7585         scheduling.
7586         (free_rgn_deps, compute_priorities): New functions.
7587         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
7588         sched_rgn_compute_dependencies): New functions.
7589         (schedule_region): Use them.
7590         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
7591         rgn_setup_common_sched_info, rgn_setup_sched_infos):
7592         New functions.
7593         (schedule_insns): Call new functions that were split out.
7594         (rgn_make_new_region_out_of_new_block): New.
7595         (get_rgn_sched_max_insns_priority): New.
7596         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
7597         scheduling when appropriate.
7598         * sched-vis.c: Include insn-attr.h.
7599         (print_value, print_pattern): Make global.
7600         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
7601         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7602         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
7603         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
7604         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
7605         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
7606         hooks.  Initialize them to 0.
7607         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
7608         * target.h (struct gcc_target): Add them.  Rename gen_check field to
7609         gen_spec_check.
7610         * flags.h (sel_sched_switch_set): Declare.
7611         * opts.c (sel_sched_switch_set): New variable.
7612         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
7613         pipelining is disabled from command line.
7614         (common_handle_option): Record whether selective scheduling is
7615         requested from command line.
7616         * doc/invoke.texi: Document new flags and parameters.
7617         * doc/tm.texi: Document new target hooks.
7618         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
7619         ia64_gen_check.
7620         (dfa_state_size): Do not declare locally.
7621         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
7622         * config/rs6000/rs6000.c (rs6000_init_sched_context,
7623         rs6000_alloc_sched_context, rs6000_set_sched_context,
7624         rs6000_free_sched_context): New functions.
7625         (struct _rs6000_sched_context): New.
7626         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
7627         scheduling.
7628         (rs6000_sched_finish): Do not run for selective scheduling.
7629
7630 2008-08-31  Jan Hubicka  <jh@suse.cz>
7631
7632         * frv.c (frv_rtx_costs): Update forward declaration.
7633         * spu.c (spu_rtx_costs): Likewise.
7634         * pdp11.c: Include df.h
7635         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
7636         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
7637         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
7638         * iq2000.c (iq2000_address_cost): Add speed argument.
7639         (iq2000_rtx_costs): Likewise.
7640         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
7641         update call of mn10300_address_cost.
7642         * mcore.c: Include df.h
7643         (mcore_rtx_costs): Update prototype.
7644         * score3.c: Include df.h
7645         (score3_rtx_costs): Remove speed argument.
7646         * score7.c: Include df.h
7647         (score7_address_cost): Remove speed argument.
7648         * score-protos.h (score_address_cost): Update prototype.
7649         * score.c: Include df.h
7650         (score_rtx_costs): Update call of costs functions.
7651         * v850.c (v850_rtx_costs): Add bool argument.
7652
7653 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
7654
7655         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
7656
7657 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7658
7659         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
7660         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
7661
7662 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7663
7664         * mkmap-flat.awk: Add option pe_dll.
7665         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
7666         * config/i386/t-cygwin (SHLIB_LC): Add.
7667         * config/i386/t-mingw32 (SHLIB_LC): Add.
7668         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
7669         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
7670         (LINK_SPEC): Support libgcc_s.
7671         (LIBGCC_SPEC): Support libgcc_s.
7672         (LIBGCC_SONAME): New.
7673
7674 2008-08-31  Jan Hubicka  <jh@suse.cz>
7675
7676         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
7677         mistakely had old version of patch.
7678
7679         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
7680         (ipcp_estimate_growth): New.
7681         (ipcp_insert_stage): Use ipcp_estimate_growth.
7682         * profile.c (branch_prob): When reading failed, do not consider
7683         profile as read.
7684
7685 2008-08-31  Jan Hubicka  <jh@suse.cz>
7686
7687         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
7688         loop is optimized for speed.
7689
7690 2008-08-31  Richard Guenther  <rguenther@suse.de>
7691
7692         PR middle-end/37289
7693         * fold-const.c (fold_binary): Retain conversions in folding
7694         ~A + 1 to -A.
7695
7696 2008-08-31  Jan Hubicka  <jh@suse.cz>
7697
7698         * postreload-gcse.c (eliminate_partially_redundant_loads):
7699         Use optimize_bb_for_size_p.
7700         * predict.c (maybe_hot_frequency_p): Make inline.
7701         (maybe_hot_count_p): Break out from ...
7702         (maybe_hot_bb_p): ... this one.
7703         (maybe_hot_edge_p): Simplify.
7704         * basic-block.h (probably_cold_bb_p): Remove.
7705
7706 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
7707
7708         PR target/37168
7709         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
7710         prototype.
7711         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
7712         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
7713         Also split V4SFmode.
7714         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
7715         vector float modes.
7716
7717 2008-08-31  Jan Hubicka  <jh@suse.cz>
7718
7719         * predict.c (PROB_VERY_LIKELY): Make small enough so things
7720         become cold.
7721         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
7722
7723 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
7724
7725         PR debug/37287
7726         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
7727         add source coords.
7728
7729         * dwarf2out.c (native_encode_initializer): Subtract min_index for
7730         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
7731
7732 2008-08-31  Jan Hubicka  <jh@suse.cz>
7733
7734         * sparc.h (BRANCH_COST): Fix macro definition.
7735         * avr.c (avr_operand_rtx_cost): Add speed argument.
7736         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
7737
7738 2008-08-31  Richard Guenther  <rguenther@suse.de>
7739
7740         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
7741         types instead of operands.  Re-instantiate verifying of
7742         binary expression operands.
7743
7744 2008-08-30  Jan Hubicka  <jh@suse.cz>
7745
7746         * fwprop.c (should_replace_address): Add speed attribute.
7747         (PR_OPTIMIZE_FOR_SPEED): New flag.
7748         (propagate_rtx_1): Use it.
7749         (propagate_rtx): Set it.
7750         (try_fwprop_subst): Update call of rtx_costs.
7751         (forward_propagate_and_simplify): LIkewise.
7752         * hooks.c (hook_int_rtx_bool_0): New
7753         (hook_bool_rtx_int_int_intp_false): Replace by ...
7754         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7755         * hooks.h (hook_int_rtx_bool_0): New
7756         (hook_bool_rtx_int_int_intp_false): Replace by ...
7757         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7758         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
7759         (prepare_cmp_insn): UPdate call of rtx_cost.
7760         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
7761         (reload_cse_simplify_operands): Update call of rtx_cost.
7762         (reload_cse_move2add): call of rtx_cost.
7763         * target.h (struct gcc_target): Update rtx_costs and address_costs.
7764         * rtlanal.c (rtx_cost): Add speed argument.
7765         (address_cost): Add speed argument
7766         (default_address_cost): Likewise.
7767         (insn_rtx_cost): Likewise.
7768         * cfgloopanal.c (seq_cost): Add speed argument.
7769         (target_reg_cost, target_spill_cost): Turn to array.
7770         (init_set_costs): Update for speed.
7771         (estimate_reg_pressure_cost): Add speed argument.
7772         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
7773         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
7774         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
7775         (seq_cost): Add speed argument.
7776         (computation_cost): Add speed arugment.
7777         (add_cost, multiply_by_const, get_address_cost): add speed argument.
7778         (force_expr_to_var_cost): Update for profile info.
7779         (force_var_cost): Likewise.
7780         (split_address_cost): Likewise.
7781         (ptr_difference_cost): Likewise.
7782         (difference_cost): Likewise.
7783         (get_computation_cost_at): Likewise.
7784         (determine_iv_cost): Likewise.
7785         (ivopts_global_cost_for_size): Likewise.
7786         (rewrite_use_address): Likewise.
7787         (tree_ssa_iv_optimize_loop): Initialize speed field.
7788         * cse.c (optimize_this_for_speed_p): New static var.
7789         (notreg_cost): Update call of rtx_cost.
7790         (cse_extended_basic_block): set optimize_this_for_speed_p.
7791         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
7792         (noce_try_cmove_arith): Likewise.
7793         (noce_try_sign_mask): LIkewise.
7794         * expr.c (compress_float_constant): Update rtx_cost calls.
7795         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
7796         argument.
7797         (addr_to_parts): Likewise.
7798         (create_mem_ref): Likewise.
7799         * dse.c (find_shift_sequence): Add speed argument.
7800         (replace_read): Update call.
7801         * calls.c (precompute_register_parameters): Update call of rtx_cost.
7802         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
7803         * neg_cost, shift_cost, shiftadd_cost,
7804         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
7805         mul_highpart_cost): Increase dimension.
7806         (init_expmed): Initialize for both size and speed.
7807         (expand_shift): Use profile.
7808         (synth_mult): Use profile.
7809         (choose_mult_variant): Use profile.
7810         (expand_mult): Use profile.
7811         (expand_mult_highpart_optab): Use profile.
7812         (expand_mult_highpart): Use profile.
7813         (expand_smod_pow2): Use profile.
7814         (expand_divmod): Use profile.
7815         * simplify-rtx.c (simplify_binary_operation_1): Update call of
7816         rtx_cost.
7817         * loop-invariant.c (create_new_invariant): Use profile.
7818         (gain_for_invariant): Add speed parameter.
7819         (best_gain_for_invariant): Likewise.
7820         (find_invariants_to_move): Likewise.
7821         (move_single_loop_invariants): Set it.
7822         * target-def.h (TARGET_RTX_COSTS): Use hook.
7823         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
7824         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
7825         * output.h (default_address_cost): Update prototype.
7826         * combine.c (optimize_this_for_speed_p): New static var.
7827         (combine_validate_cost): Update call of rtx_cost.
7828         (combine_instructions): Set optimize_this_for_speed_p.
7829         (expand_compound_operation): Update call of rtx_cost.
7830         (make_extraction):Update call of rtx_cost.
7831         (force_to_mode):Update call of rtx_cost.
7832         (distribute_and_simplify_rtx):Update call of rtx_cost.
7833         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
7834         (estimate_reg_pressure_cost): Update prototype.
7835         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
7836         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
7837         Remove.
7838         * config/alpha/alpha.c (alpha_rtx_costs): Update.
7839         (alpha_rtx_costs): Update.
7840         * config/frv/frv.c (frv_rtx_costs): Update.
7841         * config/s390/s390.c (s390_rtx_costs): Update.
7842         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
7843         (m32c_rtx_costs): Update.
7844         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
7845         (spu_rtx_costs): Update.
7846         * config/sparc/sparc.c (sparc_rtx_costs): Update.
7847         * config/m32r/m32r.c (m32r_rtx_costs): Update.
7848         * config/i386/i386.c (:ix86_address_cost): Update.
7849         (ix86_rtx_costs): Update.
7850         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
7851         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
7852         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
7853         * config/crx/crx.c (crx_address_cost): Update.
7854         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
7855         * config/stormy16/stormy16.c
7856         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
7857         * config/m68hc11/m68hc11.c
7858         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
7859         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
7860         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
7861         Update.
7862         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
7863         Update
7864         * config/ia64/ia64.c (ia64_rtx_costs): Update.
7865         * config/m68k/m68k.c (m68k_rtx_costs): Update.
7866         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
7867         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
7868         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
7869         (mcore_rtx_costs): update.
7870         * config/score/score3.c (score3_rtx_costs): Update.
7871         * config/score/score7.c (score7_rtx_costs): Update.
7872         * config/score/score3.h (score3_rtx_costs):Update.
7873         * config/score/score7.h (score7_rtx_costs): Update.
7874         * config/score/score.c (score_rtx_costs): Update.
7875         * config/arm/arm.c (arm_address_cost): Update.
7876         (arm_rtx_costs_1): Update.
7877         (arm_rtx_costs_1): Update.
7878         (arm_size_rtx_costs): Update.
7879         (arm_size_rtx_costs): Update.
7880         (arm_size_rtx_costs): Update.
7881         (arm_xscale_rtx_costs): Update.
7882         (arm_thumb_address_cost): Update.
7883         * config/pa/pa.c (hppa_address_cost): Update.
7884         * config/mips/mips.c (mips_rtx_costs): Update.
7885         * config/vax/vax.c (vax_address_cost): Update.
7886         * config/h8300/h8300.c (h8300_shift_costs): Update.
7887         (h8300_rtx_costs): Update.
7888         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
7889         (v850_rtx_costs): Update.
7890         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
7891         * config/bfin/bfin.c
7892         (bfin_address_cost): Update.
7893         (bfin_rtx_costs): Update.
7894         * stmt.c (lshift_cheap_p): Update.
7895
7896 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7897
7898         PR middle-end/36444
7899         * expmed.c (extract_bit_field_1): Check the mode size to make
7900         sure the vector modes have the same size.
7901
7902 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
7903
7904         * dojump.c (top level): Include basic-block.h to declare
7905         optimize_insn_for_speed_p
7906
7907         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
7908
7909         * opts.h (CL_SAVE): New option class for marking options that are
7910         target specific options usable in the target attribute.
7911         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
7912
7913         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
7914         can easily find the target specific options that are safe to use
7915         in the attribute or pragma.
7916
7917         * attribs.c (decl_attributes): Change #pragma GCC option to
7918         #pragma GCC target, and attribute((option(...))) to
7919         attribute((target(...))).
7920
7921         * doc/extend.texi (target attribute): Change from option
7922         attribute.  Delete push/pop/reset.
7923         (#pragma GCC target): Change from #pragma GCC option.  Delete
7924         push/pop/reset.
7925         (#pragma GCC push_options): Document new pragma.
7926         (#pragma GCC pop_options): Document new pragma.
7927         (#pragma GCC reset_options): Document new pragma.
7928
7929         * targhooks.c (default_target_option_valid_attribute_p): Add
7930         warning about port not supporting target attributes.
7931         (default_target_option_pragma_parse): New function, warn about
7932         #pragma GCC target not being supported.
7933
7934         * targhooks.h (default_target_option_pragma_parse): Add
7935         declaration.
7936
7937         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
7938         TI_CURRENT_OPTION_PRAGMA.
7939         (current_target_pragma): Rename from current_option_pragma.
7940
7941         * target.h (struct target_option): Delete booleans for changing
7942         the optimization level on hot/cold functions.  Change signature of
7943         pragma_parse hook to take a second tree.
7944
7945         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
7946
7947         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
7948         that the declaration is done at global scope.
7949
7950         * langhooks.c (add_builtin_function_common): Move most of the code
7951         from add_builtin_function here, calling the hook passed in.
7952         (add_builtin_function): Call add_builtin_function_common with
7953         standard builtin hook.
7954         (add_builtin_function_ext_scope): New function to add builtins to
7955         global scope.
7956
7957         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
7958         hook.
7959         (add_builtin_function_ext_scope): Add declaration.
7960
7961         * c-pragma.c (handle_pragma_target): Rename from
7962         handle_pragma_option, #pragma GCC option is now #pragma GCC
7963         target.  Move warning about port not supporting target options to
7964         default pragma parse hook.  Remove push/pop/reset from this
7965         pragma.
7966         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
7967         (option_stack): Delete static variable.
7968         (optimize_stack): Ditto.
7969         (optons_stack): New stack of saved target and optimization
7970         options.
7971         (handle_pragma_push_options): New function to handle pushing both
7972         target and optimization options.
7973         (handle_pragma_pop_options): New function to handle popping both
7974         target and optimization options.
7975         (handle_pragma_reset_options): New function to handle resetting
7976         both target and optimization options to their initial state.
7977         (init_pragma): Rename handle_pragma_option to
7978         handle_pragma_target.  Add support for push_options, pop_options,
7979         and reset_options pragmas.
7980
7981         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
7982         default_target_option_pragma_parse.
7983         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
7984         default_target_option_valid_attribute_p.
7985         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
7986         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
7987         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
7988         optimization level on hot/cold functions.
7989
7990         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
7991         if the caller and callee have different optimization levels.
7992
7993         * c-common.c (handle_target_attribute): Rename from
7994         handle_option_attribute, attribute((option(...))) is now
7995         attribute((target(...))).  Move warning if the port does not
7996         support target attributes to the default hook.
7997         (handle_hot_attribute): Delete code to change the optimization
7998         level of hot functions.
7999         (handle_cold_attribute): Ditto.
8000
8001         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
8002         argument that is the binary tree options to use if there are no
8003         arguments.  Call ix86_valid_target_attribute_tree instead of
8004         ix86_valid_option_attribute_tree.
8005         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
8006         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
8007         ix86_pragma_option_parse.
8008
8009         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
8010         Rename from ix86_valid_option_attribute_tree.
8011
8012         * config/i386/i386.c (ix86_add_new_builtins): New function to add
8013         new builtins when the ISA changes.
8014         (ix86_valid_target_attribute_tree): Rename from
8015         ix86_valid_option_attribute_tree.  Change callers.  If the
8016         function specified optimization options, use those as the starting
8017         point before setting up the target attributes.  If the
8018         optimization options were changed in the course of setting the
8019         target attributes, record the new optimization options.
8020         (ix86_valid_target_attribute_tree_inner_p): Rename from
8021         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
8022         ix86_add_new_builtins if the ISA changed.
8023         (ix86_valid_target_attribute_p): Rename from
8024         ix86_valid_option_attribute_p.  Change callers.
8025         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
8026         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
8027         as delayed builtin functions.
8028         (struct builtin_isa): New structure to record builtin functions
8029         that should be delayed until the ISA for that function is used.
8030         (ix86_builtins_isa): Change from int to struct to track builtin
8031         functions we want to declare at some point.
8032         (def_builtin): If the front end can delay defining the builtin
8033         functions, don't create builtins for ISAs not part of the default
8034         options.
8035         (def_builtin_const): Ditto.
8036         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
8037         __builtin_ia32_pcmov_v2di to be different builtin functions.
8038         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
8039         a structure instead of an int.
8040         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
8041         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
8042         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8043         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8044
8045         * config/ia64/ia64.h
8046         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8047         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8048
8049         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
8050         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
8051         (LANG_HOOKS_INITIALIZER): Add
8052         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
8053
8054 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8055
8056         PR target/37270
8057         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
8058         the reload address with the index register for SFmode
8059         access with a displacement.
8060
8061 2008-08-30  Jan Hubicka  <jh@suse.cz>
8062
8063         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
8064         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
8065         * dojump.c (do_jump): Likewise.
8066         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
8067         (note-if_info): Add BRANCH_COST.
8068         (noce_try_store_flag_constants, noce_try_addcc,
8069         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
8070         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
8071         find_if_case_2): Use computed branch cost.
8072         * expr.h (BRANCH_COST): Update default.
8073         * predict.c (predictable_edge_p): New function.
8074         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
8075         Update BRANCH_COST call.
8076         * basic-block.h (predictable_edge_p): Declare.
8077         * config/alpha/alpha.h (BRANCH_COST): Update.
8078         * config/frv/frv.h (BRANCH_COST): Update.
8079         * config/s390/s390.h (BRANCH_COST): Update.
8080         * config/spu/spu.h (BRANCH_COST): Update.
8081         * config/sparc/sparc.h (BRANCH_COST): Update.
8082         * config/m32r/m32r.h (BRANCH_COST): Update.
8083         * config/i386/i386.h (BRANCH_COST): Update.
8084         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
8085         BRANCH_COST.
8086         * config/sh/sh.h (BRANCH_COST): Update.
8087         * config/pdp11/pdp11.h (BRANCH_COST): Update.
8088         * config/avr/avr.h (BRANCH_COST): Update.
8089         * config/crx/crx.h (BRANCH_COST): Update.
8090         * config/xtensa/xtensa.h (BRANCH_COST): Update.
8091         * config/stormy16/stormy16.h (BRANCH_COST): Update.
8092         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
8093         * config/iq2000/iq2000.h (BRANCH_COST): Update.
8094         * config/ia64/ia64.h (BRANCH_COST): Update.
8095         * config/rs6000/rs6000.h (BRANCH_COST): Update.
8096         * config/arc/arc.h (BRANCH_COST): Update.
8097         * config/score/score.h (BRANCH_COST): Update.
8098         * config/arm/arm.h (BRANCH_COST): Update.
8099         * config/pa/pa.h (BRANCH_COST): Update.
8100         * config/mips/mips.h (BRANCH_COST): Update.
8101         * config/vax/vax.h (BRANCH_COST): Update.
8102         * config/h8300/h8300.h (BRANCH_COST): Update.
8103         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
8104         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
8105         * doc/tm.texi (BRANCH_COST): Update.
8106
8107 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
8108
8109         PR target/37283
8110         * config/arm/arm.c (arm_optimization_options): Set
8111         flag_section_anchors to 2 instead of 1 to distinguish it from
8112         -fsection-anchors given explicitely on the command line.
8113
8114 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
8115
8116         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
8117         final insn of a split.
8118
8119 2008-08-30  Jan Hubicka  <jh@suse.cz>
8120
8121         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
8122         optimized for speed.
8123         * final.c (compute_alignments): Use optimize_bb_for_size_p.
8124         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
8125         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
8126         flag_gcse_after_reload_set): New static vars.
8127         (common_handle_option): Enable those flags for profile-use.
8128         (decode_options): Remove optimize_size flags that are handled
8129         on higher granuality.
8130         * tree-vectorizer.c (vectorize_loops): Use
8131         optimize_loop_nest_for_speed_p.
8132         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
8133         * tree-predcom.c (tree_predictive_commoning): Use
8134         optimize_loop_for_speed_p.
8135         * varasm.c (assemble_start_function): Use
8136         optimize_function_for_speed_p.
8137         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
8138         * predict.c (optimize_loop_for_speed_p): Fix walk.
8139
8140 2008-08-30  Jan Hubicka  <jh@suse.cz>
8141
8142         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
8143         functions.
8144         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
8145         profile presence locally.
8146
8147 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
8148
8149         PR bootstrap/37086
8150         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
8151         versions before 4.0.
8152
8153 2008-08-29  Jan Hubicka  <jh@suse.cz>
8154
8155         * tree-inline.c (insert_init_stmt): Insert sequence even when
8156         not in SSA form.
8157
8158 2008-08-29  Jeff Law  <law@redhat.com>
8159
8160         * mn10300.c (mn10300_secondary_reload_class): We need secondary
8161         reloads for AM33-2 if IN is a pseudo with an equivalent memory
8162         location and class is an FP register.
8163
8164 2008-08-29  Jan Hubicka  <jh@suse.cz>
8165
8166         * see.c (see_merge_one_def_extension): Silence used uninitialized
8167         warning.
8168         * matrix-reorg.c (check_allocation_function): Likewise.
8169         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
8170
8171 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
8172
8173         PR c/37261
8174         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
8175         compute new & and | in type rather than TREE_TYPE (arg0).
8176
8177         * dwarf2out.c (fortran_common): Update comment.
8178         (gen_variable_die): Swap com_die and var_die variables in Fortran
8179         COMMON block handling code.
8180
8181         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
8182
8183         * dwarf2out.c (gen_const_die): New function.
8184         (size_of_die, value_format, output_die): Output larger
8185         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
8186         (native_encode_initializer): New function.
8187         (tree_add_const_value_attribute): Call it.
8188         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
8189
8190         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
8191         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
8192         TREE_THIS_VOLATILE to add_type_attribute.
8193
8194         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
8195         types.
8196         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
8197         types.
8198
8199         * dwarf2out.c (loc_by_reference): New function.
8200         (add_location_or_const_value_attribute): Use it.
8201
8202         PR fortran/23057
8203         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
8204         as DW_TAG_variable children of DW_TAG_common_block rather than
8205         DW_TAG_member children.  Put DW_AT_external to individual
8206         DW_TAG_variable DIEs, not to DW_TAG_common_block.
8207
8208         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
8209         loc_descriptor_from_tree_1.
8210
8211         PR fortran/29635
8212         PR fortran/23057
8213         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
8214         arguments to imported_module_or_decl.
8215         (debug_nothing_tree_tree): Removed.
8216         (debug_nothing_tree_tree_tree_bool): New prototype.
8217         * debug.c (do_nothing_debug_hooks): Adjust.
8218         (debug_nothing_tree_tree): Removed.
8219         (debug_nothing_tree_tree_tree_bool): New function.
8220         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
8221         (gen_variable_die): Put all common vars for the
8222         same COMMON block under one DW_TAG_common_block.
8223         (declare_in_namespace): Return new context_die, for Fortran
8224         return the module DIE instead of adding extra declarations into
8225         the namespace.
8226         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
8227         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
8228         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
8229         DW_AT_declaration.
8230         (dwarf2out_global_decl): Don't skip Fortran global vars.
8231         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
8232         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
8233         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
8234         DW_TAG_imported_declaration as child of previous
8235         DW_TAG_imported_module.
8236         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
8237         * sdbout.c (sdb_debug_hooks): Likewise.
8238         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8239
8240 2008-08-29  Jan Hubicka  <jh@suse.cz>
8241
8242         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
8243
8244         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
8245         * ipa-cp.c (n_cloning_candidates): New static variable.
8246         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
8247         (ipcp_print_all_lattices): Improve debug output.
8248         (ipcp_cloning_candidate_p): New function.
8249         (ipcp_initialize_node_lattices): Use it.
8250         (ipcp_init_stage): Do only analyzis here; prettier debug output.
8251         (ipcp_propagate_stage): Prettier debug output.
8252         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
8253         (ipcp_print_all_structures): Remove.
8254         (ipcp_need_redirect_p): Test !n_cloning_candidates.
8255         (ipcp_insert_stage): Prettier debug output; call
8256         cgraph_remove_unreachable_nodes before propagating.
8257         (pass_ipa_cp): Schedule function removal pass.
8258         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
8259         debug output.
8260         (cgraph_maybe_hot_edge_p): Move to ...
8261         * predict.c (cgraph_maybe_hot_edge_p) ... here.
8262         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
8263         (common_handle_option): Set them; enable ipa-cp when profiling.
8264         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
8265         (ipa_print_all_jump_functions): Likewise.
8266         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
8267         (ipa_print_node_params, ipa_print_all_params): New.
8268         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
8269         ipa_print_all_param_flags): Remove.
8270         (ipa_print_node_params, ipa_print_all_params): New.
8271
8272 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
8273
8274         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
8275         change from 2008-04-03.
8276         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
8277
8278 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
8279
8280         PR rtl-opt/37251
8281         * ira-color.c (push_allocnos_to_stack): Truncate
8282         removed_splay_allocno_vec.
8283
8284 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
8285
8286         PR rtl-opt/37243
8287         * ira-color (ira_fast_allocation): Don't assign hard registers to
8288         global allocnos.
8289
8290 2008-08-29  Jan Hubicka  <jh@suse.cz>
8291
8292         PR middle-end/37278
8293         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
8294         for cold internal loops.
8295
8296 2008-08-29  Richard Guenther  <rguenther@suse.de>
8297
8298         * tree-ssa-structalias.c (create_variable_info_for): Do not
8299         create fields for heap vars or vars with a noalias state.
8300         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
8301         from ESCAPED.
8302
8303 2008-08-29  Richard Guenther  <rguenther@suse.de>
8304
8305         * common.opt (ftree-store-ccp): Mark as preserved for
8306         backward compatibility.
8307         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
8308         * tree-pass.h (pass_store_ccp): Remove.
8309         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
8310         (first_vdef): Remove declaration.
8311         (get_value_loaded_by): Likewise.
8312         * tree-ssa-ccp.c (do_store_ccp): Remove.
8313         (get_default_value): Simplify as do_store_ccp is always false
8314         now.  Do not initialize mem_ref.
8315         (set_value_varying): Likewise.
8316         (canonicalize_float_value): Likewise.
8317         (set_lattice_value): Likewise.
8318         (likely_value): Likewise.
8319         (surely_varying_stmt_p): Likewise.
8320         (ccp_initialize): Likewise.
8321         (ccp_lattice_meet): Likewise.
8322         (ccp_visit_phi_node): Likewise.
8323         (ccp_fold): Likewise.
8324         (evaluate_stmt): Likewise.
8325         (visit_assignment): Likewise.
8326         (ccp_visit_stmt): Likewise.
8327         (execute_ssa_ccp): Fold into ...
8328         (do_ssa_ccp): ... this.
8329         (do_ssa_store_ccp): Remove.
8330         (gate_store_ccp): Likewise.
8331         (pass_store_ccp): Likewise.
8332         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
8333         initialize mem_ref.
8334         * tree-ssa-propagate.c (first_vdef): Remove.
8335         (get_value_loaded_by): Likewise.
8336         (replace_vuses_in): Likewise.
8337         (substitute_and_fold): Do not call replace_vuses_in.
8338         * opts.c (decode_options): Do not set flag_tree_store_ccp.
8339
8340 2008-08-29  Richard Guenther  <rguenther@suse.de>
8341
8342         PR middle-end/37236
8343         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
8344         PARAM_NOALIAS tags with is_heapvar.
8345         * tree-ssa-operands.c (access_can_touch_variable): Offset
8346         based tests do not apply for heapvars.  Fix offset test.
8347
8348 2008-08-29  Jan Hubicka  <jh@suse.cz>
8349
8350         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
8351         (-fipa-cp-clone): Enabled by default at -O3.
8352         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
8353         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
8354
8355 2008-08-29  Jan Hubicka  <jh@suse.cz>
8356
8357         * tree.c (build_function_type_skip_args,
8358         build_function_decl_skip_args): New functions.
8359         * tree.h (build_function_type_skip_args,
8360         build_function_decl_skip_args): Declare.
8361         * gimple.c (giple_copy_call_skip_args): New function.
8362         (giple_copy_call_skip_args): Declare.
8363
8364         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
8365         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
8366         (ipcp_node_modifiable_p): ... this one; use
8367         tree_versionable_function_p.
8368         (ipcp_create_replace_map): Improve debug output.
8369         (ipcp_need_redirect_p): Return false when not clonning.
8370         (ipcp_update_callgraph): Skip args.
8371         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
8372         skip args.
8373         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
8374         (save_inline_function_body): Update call of tree_function_versioning.
8375         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
8376         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
8377         argument.
8378         (tree_function_versioning): Likewise.
8379         * tree-inline.h (tree_function_versioning): Update prototype.
8380
8381 2008-08-29  Jan Hubicka  <jh@suse.cz>
8382
8383         * loop-unswitch.c (unswitch_single_loop): Use
8384         optimize_loop_for_speed_p.
8385         * tree-ssa-threadupdate.c (mark_threaded_blocks):
8386         Use optimize_function_for_size_p.
8387         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
8388         * postreload-gcse.c (eliminate_partially_redundant_load):
8389         Use optimize_bb_for_size_p.
8390         * value-prof.c (gimple_divmod_fixed_value_transform,
8391         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
8392         gimple_stringops_transform): Use optimize_bb_for_size_p.
8393         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
8394         * final.c (compute_alignments): Use optimize_function_for_size_p.
8395         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
8396         (fold_builtin_strcpy, fold_builtin_fputs): Use
8397         optimize_function_for_size_p.
8398         * fold-const.c (tree_swap_operands_p): Use
8399         optimize_function_for_size_p.
8400         * recog.c (relax_delay_slots): Likewise.
8401         * tree-ssa-math-opts.c (replace_reciprocal):
8402         Use optimize_bb_for_speed_p.
8403         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
8404         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
8405         optimize_function_for_size_p.
8406         (cgraph_decide_inlining_of_small_function): Use
8407         optimize_function_for_size_p.
8408         * global.c (find_reg): Use optimize_function_for_size_p.
8409         * opts.c (decode_options): Do not clear flag_tree_ch,
8410         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
8411         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
8412         work it out from profile.
8413         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
8414         optimize_loop_for_speed_p.
8415         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8416         Constify argument.
8417         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
8418         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
8419         * tree-eh.c (decide_copy_try_finally): Use
8420         optimize_function_for_size_p.
8421         * local-alloc.c (block_alloc): Pass BB pointer.
8422         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
8423         * gcse.c (gcse_main): Use optimize_function_for_size_p.
8424         * loop-unroll.c (decide_unrolling_and_peeling):
8425         Use optimize_loop_for_size_p.
8426         (decide_peel_completely): Likewise.
8427         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
8428         optimize_loop_for_size_p.
8429         (vect_enhance_data_refs_alignment): Likewise.
8430         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
8431         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
8432         Update call.
8433         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
8434         (try_crossjump_bb): Use optimize_bb_for_size_p.
8435         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
8436         optimize_loop_for_speed_p.
8437         * bb-reorder.c (find_traces_1_round): Likewise.
8438         (copy_bb): Use optimize_bb_for_speed_p.
8439         (duplicate_computed_gotos): Likewise.
8440         * basic-block.h (optimize_loop_nest_for_size_p,
8441         optimize_loop_nest_for_speed_p): New.
8442         * stmt.c (expand_case): Use optimize_insn_for_size_p.
8443
8444 2008-08-29  Tristan Gingold  <gingold@adacore.com>
8445
8446         * gcov.c (main): Call expandargv.
8447
8448 2008-08-29  Jan Hubicka  <jh@suse.cz>
8449
8450         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
8451         is not cold.
8452         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8453         Constify arguments.
8454         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
8455         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8456         Constify.
8457         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
8458
8459 2008-08-29  Jan Hubicka  <jh@suse.cz>
8460
8461         * tree-pass.h (pass_strip_predict_hints): Declare.
8462         * predict.c (strip_builtin_expect): Rename to ...
8463         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
8464         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
8465         (tree_estimate_probability): Do not strip builtin_expect.
8466         (pass_strip_predict_hints): New pass.
8467         * tree-inline.c (expand_call_inline): When inlining cold function,
8468         predict it as unlikely.
8469         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
8470
8471 2008-08-29  Richard Guenther  <rguenther@suse.de>
8472
8473         PR tree-optimization/37207
8474         * tree-vrp.c (extract_range_from_binary_expr): Also try
8475         to constant fold if only one of the operands is a constant.
8476
8477 2008-08-29  Nick Clifton  <nickc@redhat.com>
8478
8479         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
8480         the same way as SYMBOL_REFs.
8481
8482 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
8483
8484         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
8485
8486 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
8487
8488         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
8489         * config/mips/mips.md (branch_likely): Remove const.  Fix
8490         comment formatting.
8491         (define_delay for type "branch"): Change to only apply for branch
8492         with likely variant.
8493         (define_delay for type "branch" and "branch_likely" no).  New delay
8494         definition.
8495         (equality_op): New code iterator.
8496         (bbv, bbinv): New code attributes.
8497         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
8498         patterns.
8499
8500 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8501             Andrew Pinski  <pinskia@gcc.gnu.org>
8502
8503         PR 18050
8504         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
8505
8506 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
8507
8508         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
8509         rule that a symbolic constant must be defined and >= 0 for the
8510         corresponding facility to be present at compile-time.
8511         * gthr-posix.c: Likewise.
8512
8513 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
8514
8515         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
8516         * config/mips/mips.md (D): New mode attribute.
8517         (mulsi3, muldi3): Merge it into ...
8518         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
8519         (muldi3_mul3): New pattern.
8520         (mulsi3_mult3): Rename to mulsi3_mul3.
8521
8522 2008-08-28  Jan Hubicka  <jh@suse.cz>
8523
8524         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
8525         to fail.
8526         * predict.c (always_optimize_for_size_p): Rename to ...
8527         (optimize_function_for_size): ... this one; make extern.
8528         (optimize_function_for_speed_p): New.
8529         (optimize_bb_for_size_p, optimize_bb_for_size_p,
8530         optimize_edge_for_size_p,optimize_edge_for_size_p,
8531         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
8532         * basic-block.h (optimize_function_for_size_p,
8533         optimize_function_for_speed_p): Declare.
8534         * i386.md (optimize_size checks): Replace them by appropriate
8535         predicate.
8536         (standard_80387_constant_p, ix86_compute_frame_layout,
8537         ix86_expand_epilogue, ix86_decompose_address,
8538         print_operand, emit_i387_cw_initialization,
8539         inline_memory_move_cost, ix86_pad_returns,
8540         ix86_reorg): Replace optimize_size checks.
8541
8542 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8543
8544         * rtl.h (simplify_subreg_regno): Declare.
8545         * rtlanal.c (simplify_subreg_regno): New function, split out from...
8546         * simplify-rtx.c (simplify_subreg): ...here.
8547         * reload.c (find_reloads): Use simplify_subreg_regno instead of
8548         subreg_offset_representable_p.
8549
8550 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8551
8552         PR c/30949
8553         * c-typeck.c (convert_for_assignment): Give a note describing what
8554         was passed and what was expected.
8555
8556 2008-08-28  Joey Ye  <joey.ye@intel.com>
8557
8558         * doc/extend.texi: Document AVX built-in functions.
8559         * doc/invoke.texi: Document -mavx.
8560
8561 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
8562             Joey Ye  <joey.ye@intel.com>
8563             Xuepeng Guo  <xuepeng.guo@intel.com>
8564
8565         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
8566
8567         * config/i386/cpuid.h (bit_FMA): New.
8568         (bit_XSAVE): Likewise.
8569         (bit_OSXSAVE): Likewise.
8570         (bit_AVX): Likewise.
8571
8572         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
8573         define.  Use ASM_OUTPUT_AVX_PREFIX.
8574
8575         * config/i386/gmmintrin.h: New.
8576
8577         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
8578         (OPTION_MASK_ISA_AVX_SET): New.
8579         (OPTION_MASK_ISA_FMA_SET): Likewise.
8580         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
8581         (OPTION_MASK_ISA_FMA_SET): Likewise.
8582         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
8583         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
8584         (pta_flags): Add PTA_AVX and PTA_FMA.
8585         (override_options): Handle PTA_AVX and PTA_FMA.
8586         (init_cumulative_args): Handle warn_avx.
8587         (classify_argument): Return 0 for COImode and OImode.  Return
8588         1 and X86_64_AVX_CLASS for 256bit vector types.
8589         (examine_argument): Handle X86_64_AVX_CLASS.
8590         (construct_container): Likewise.
8591         (function_arg_advance_32): Pass OImode and 256bit vector types
8592         in AVX register.
8593         (function_arg_advance_64): Take a new argument to indicate if a
8594         parameter is named.  Handle 256bit vector types.  Return
8595         immediately for unnamed 256bit vector mode parameters.
8596         (function_arg_advance): Updated.
8597         (function_arg_32): Add comments for TImode.  Handle OImode
8598         and 256bit vector types.
8599         (function_arg_64): Take a new argument to indicate if a
8600         parameter is named.  Handle 256bit vector types.  Return NULL
8601         for unnamed 256bit vector mode parameters.
8602         (function_arg): Updated.
8603         (setup_incoming_varargs_64): Support
8604         AVX encoding for *sse_prologue_save_insn.
8605         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
8606         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
8607         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
8608         enabled, otherwise return -3.
8609         (standard_sse_constant_opcode): Handle AVX and 256bit vector
8610         modes.
8611         (print_reg): Support AVX registers.  Handle 'x' and 't'.
8612         Handle 'd' to duplicate the operand.
8613         (print_operand): Likewise.  Also support AVX vector compare
8614         instructions.
8615         (output_387_binary_op): Support AVX.
8616         (output_fp_compare): Likewise.
8617         (ix86_expand_vector_move_misalign): Likewise.
8618         (ix86_attr_length_vex_default): New.
8619         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8620         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8621         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8622         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8623         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
8624         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8625         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
8626         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
8627         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
8628         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
8629         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
8630         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
8631         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
8632         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
8633         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8634         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
8635         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
8636         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8637         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
8638         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
8639         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8640         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8641         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8642         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
8643         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
8644         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
8645         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
8646         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8647         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
8648         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
8649         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
8650         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
8651         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
8652         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8653         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8654         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8655         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
8656         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
8657         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
8658         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
8659         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
8660         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
8661         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
8662         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
8663         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
8664         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
8665         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8666         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8667         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8668         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8669         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8670         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8671         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8672         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8673         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8674         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8675         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8676         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8677         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8678         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8679         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8680         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8681         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8682         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
8683         and IX86_BUILTIN_MOVMSKPS256,
8684         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
8685         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
8686         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
8687         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
8688         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
8689         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
8690         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
8691         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
8692         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
8693         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
8694         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
8695         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
8696         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
8697         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
8698         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
8699         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
8700         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
8701         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
8702         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
8703         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
8704         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
8705         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
8706         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
8707         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
8708         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
8709         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8710         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
8711         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
8712         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8713         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8714         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
8715         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
8716         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
8717         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
8718         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
8719         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
8720         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
8721         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
8722         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8723         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8724         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8725         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8726         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
8727         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
8728         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
8729         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
8730         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
8731         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
8732         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
8733         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
8734         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
8735         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
8736         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8737         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
8738         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8739         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
8740         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8741         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8742         IX86_BUILTIN_CMPPS,
8743         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
8744         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
8745         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
8746         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8747         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8748         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8749         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
8750         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8751         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
8752         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8753         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
8754         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8755         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8756         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
8757         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
8758         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
8759         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8760         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8761         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8762         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8763         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8764         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8765         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8766         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8767         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8768         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8769         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8770         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8771         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8772         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8773         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8774         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8775         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8776         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
8777         IX86_BUILTIN_MOVMSKPS256.
8778         (ix86_init_mmx_sse_builtins): Support AVX builtins.
8779         (ix86_expand_args_builtin): Likewise.
8780         (ix86_expand_special_args_builtin): Likewise.
8781         (ix86_hard_regno_mode_ok): Handle AVX modes.
8782         (ix86_expand_vector_init_duplicate): Likewise.
8783         (ix86_expand_vector_init_one_nonzero): Likewise.
8784         (ix86_expand_vector_init_one_var): Likewise.
8785         (ix86_expand_vector_init_concat): Likewise.
8786         (ix86_expand_vector_init_general): Likewise.
8787         (ix86_expand_vector_set): Likewise.
8788         (ix86_vector_mode_supported_p): Likewise.
8789         (x86_extended_reg_mentioned_p): Check INSN_P before using
8790         PATTERN.
8791
8792         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8793         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
8794
8795         * config/i386/i386.h (TARGET_AVX): New.
8796         (TARGET_FMA): Likewise.
8797         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
8798         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
8799         (VALID_AVX256_REG_MODE): New.
8800         (AVX256_VEC_FLOAT_MODE_P): Likewise.
8801         (AVX_FLOAT_MODE_P): Likewise.
8802         (AVX128_VEC_FLOAT_MODE_P): Likewise.
8803         (AVX256_VEC_FLOAT_MODE_P): Likewise.
8804         (AVX_VEC_FLOAT_MODE_P): Likewise.
8805         (ASM_OUTPUT_AVX_PREFIX): Likewise.
8806         (ASM_OUTPUT_OPCODE): Likewise.
8807         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
8808         support.
8809         (SSE_REG_MODE_P): Allow 256bit vector modes.
8810         (ix86_args): Add a warn_avx field.
8811
8812         * config/i386/i386.md (UNSPEC_PCMP): New.
8813         (UNSPEC_VPERMIL): Likewise.
8814         (UNSPEC_VPERMIL2): Likewise.
8815         (UNSPEC_VPERMIL2F128): Likewise.
8816         (UNSPEC_MASKLOAD): Likewise.
8817         (UNSPEC_MASKSTORE): Likewise.
8818         (UNSPEC_CAST): Likewise.
8819         (UNSPEC_VTESTP): Likewise.
8820         (UNSPECV_VZEROALL): Likewise.
8821         (UNSPECV_VZEROUPPER): Likewise.
8822         (XMM0_REG): Likewise.
8823         (XMM1_REG): Likewise.
8824         (XMM2_REG): Likewise.
8825         (XMM3_REG): Likewise.
8826         (XMM4_REG): Likewise.
8827         (XMM5_REG): Likewise.
8828         (XMM6_REG): Likewise.
8829         (XMM8_REG): Likewise.
8830         (XMM9_REG): Likewise.
8831         (XMM10_REG): Likewise.
8832         (XMM11_REG): Likewise.
8833         (XMM12_REG): Likewise.
8834         (XMM13_REG): Likewise.
8835         (XMM14_REG): Likewise.
8836         (XMM15_REG): Likewise.
8837         (prefix): Likewise.
8838         (prefix_vex_imm8): Likewise.
8839         (prefix_vex_w): Likewise.
8840         (length_vex): Likewise.
8841         (maxmin): Likewise.
8842         (movoi): Likewise.
8843         (*avx_ashlti3): Likewise.
8844         (*avx_lshrti3): Likewise.
8845         (*avx_setcc<mode>): Likewise.
8846         (*fop_<mode>_comm_mixed_avx): Likewise.
8847         (*fop_<mode>_comm_avx): Likewise.
8848         (*fop_<mode>_1_mixed_avx): Likewise.
8849         (*fop_<mode>_1_avx): Likewise.
8850         (*avx_<code><mode>3): Likewise.
8851         (*avx_ieee_smin<mode>3): Likewise.
8852         (*avx_ieee_smax<mode>3): Likewise.
8853         (mode): Add OI, V8SF and V4DF.
8854         (length): Support VEX prefix.
8855         (*cmpfp_i_mixed): Set prefix attribute.
8856         (*cmpfp_i_sse): Likewise.
8857         (*cmpfp_iu_mixed): Likewise.
8858         (*cmpfp_iu_sse): Likewise.
8859         (*movsi_1): Support AVX.
8860         (*movdi_2): Likewise.
8861         (*movdi_1_rex64): Likewise.
8862         (*movti_internal): Likewise.
8863         (*movti_rex64): Likewise.
8864         (*movsf_1): Likewise.
8865         (*movdf_nointeger): Likewise.
8866         (*movdf_integer_rex64): Likewise.
8867         (*movtf_internal): Likewise.
8868         (zero_extendsidi2_32): Likewise.
8869         (zero_extendsidi2_rex64): Likewise.
8870         (*extendsfdf2_mixed): Likewise.
8871         (*extendsfdf2_sse): Likewise.
8872         (*truncdfsf_fast_mixed): Likewise.
8873         (*truncdfsf_fast_sse): Likewise.
8874         (*truncdfsf_mixed): Likewise.
8875         (fix_trunc<mode>di_sse): Likewise.
8876         (fix_trunc<mode>si_sse): Likewise.
8877         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8878         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8879         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8880         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8881         (*rcpsf2_sse): Likewise.
8882         (*rsqrtsf2_sse): Likewise.
8883         (*sqrt<mode>2_sse): Likewise.
8884         (sse4_1_round<mode>2): Likewise.
8885         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
8886         Support AVX.  Set length attribute properly for AVX.
8887
8888         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
8889         (VECTOR_MODES (FLOAT, 32)): Likewise.
8890         (VECTOR_MODE (INT, DI, 8)): Likewise.
8891         (VECTOR_MODE (INT, HI, 32)): Likewise.
8892         (VECTOR_MODE (INT, QI, 64)): Likewise.
8893         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
8894         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
8895         (VECTOR_MODE (INT, DI, 4)): Removed.
8896         (VECTOR_MODE (INT, SI, 8)): Likewise.
8897         (VECTOR_MODE (INT, HI, 16)): Likewise.
8898         (VECTOR_MODE (INT, QI, 32)): Likewise.
8899         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
8900         (INT_MODE (OI, 32)): Likewise.
8901
8902         * config/i386/i386.opt (mavx): New.
8903         (mfma): Likewise.
8904
8905         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
8906
8907         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
8908         (*mov<mode>_internal_avx): New.
8909         (*movv2sf_internal_rex64_avx): Likewise.
8910         (*movv2sf_internal_avx): Likewise.
8911
8912         * config/i386/predicates.md (const_4_to_5_operand): New.
8913         (const_6_to_7_operand): Likewise.
8914         (const_8_to_11_operand): Likewise.
8915         (const_12_to_15_operand): Likewise.
8916         (avx_comparison_float_operator): Likewise.
8917
8918         * config/i386/sse.md (AVX256MODEI): New.
8919         (AVX256MODE): Likewise.
8920         (AVXMODEQI): Likewise.
8921         (AVXMODE): Likewise.
8922         (AVX256MODEF2P): Likewise.
8923         (AVX256MODE2P): Likewise.
8924         (AVX256MODE4P): Likewise.
8925         (AVX256MODE8P): Likewise.
8926         (AVXMODEF2P): Likewise.
8927         (AVXMODEF4P): Likewise.
8928         (AVXMODEDCVTDQ2PS): Likewise.
8929         (AVXMODEDCVTPS2DQ): Likewise.
8930         (avxvecmode): Likewise.
8931         (avxvecpsmode): Likewise.
8932         (avxhalfvecmode): Likewise.
8933         (avxscalarmode): Likewise.
8934         (avxcvtvecmode): Likewise.
8935         (avxpermvecmode): Likewise.
8936         (avxmodesuffixf2c): Likewise.
8937         (avxmodesuffixp): Likewise.
8938         (avxmodesuffixs): Likewise.
8939         (avxmodesuffix): Likewise.
8940         (vpermilbits): Likewise.
8941         (pinsrbits): Likewise.
8942         (mov<mode>): Likewise.
8943         (*mov<mode>_internal): Likewise.
8944         (push<mode>1): Likewise.
8945         (movmisalign<mode>): Likewise.
8946         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8947         (avx_movdqu<avxmodesuffix>): Likewise.
8948         (avx_lddqu<avxmodesuffix>): Likewise.
8949         (<plusminus_insn><mode>3): Likewise.
8950         (*avx_<plusminus_insn><mode>3): Likewise.
8951         (*avx_vm<plusminus_insn><mode>3): Likewise.
8952         (mul<mode>3): Likewise.
8953         (*avx_mul<mode>3): Likewise.
8954         (*avx_vmmul<mode>3): Likewise.
8955         (divv8sf3): Likewise.
8956         (divv4df3): Likewise.
8957         (avx_div<mode>3): Likewise.
8958         (*avx_div<mode>3): Likewise.
8959         (*avx_vmdiv<mode>3): Likewise.
8960         (avx_rcpv8sf2): Likewise.
8961         (*avx_vmrcpv4sf2): Likewise.
8962         (sqrtv8sf2): Likewise.
8963         (avx_sqrtv8sf2): Likewise.
8964         (*avx_vmsqrt<mode>2): Likewise.
8965         (rsqrtv8sf2): Likewise.
8966         (avx_rsqrtv8sf2): Likewise.
8967         (*avx_vmrsqrtv4sf2): Likewise.
8968         (<code><mode>3): Likewise.
8969         (*avx_<code><mode>3_finite): Likewise.
8970         (*avx_<code><mode>3): Likewise.
8971         (*avx_vm<code><mode>3): Likewise.
8972         (*avx_ieee_smin<mode>3): Likewise.
8973         (*avx_ieee_smax<mode>3): Likewise.
8974         (avx_addsubv8sf3): Likewise.
8975         (avx_addsubv4df3): Likewise.
8976         (*avx_addsubv4sf3): Likewise.
8977         (*avx_addsubv2df3): Likewise.
8978         (avx_h<plusminus_insn>v4df3): Likewise.
8979         (avx_h<plusminus_insn>v8sf3): Likewise.
8980         (*avx_h<plusminus_insn>v4sf3): Likewise.
8981         (*avx_h<plusminus_insn>v2df3): Likewise.
8982         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
8983         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
8984         (*avx_maskcmp<mode>3): Likewise.
8985         (avx_nand<mode>3): Likewise.
8986         (*avx_<code><mode>3): Likewise.
8987         (*avx_nand<mode>3): Likewise.
8988         (*avx_<code><mode>3): Likewise.
8989         (*avx_cvtsi2ss): Likewise.
8990         (*avx_cvtsi2ssq): Likewise.
8991         (*avx_cvtsi2sd): Likewise.
8992         (*avx_cvtsi2sdq): Likewise.
8993         (*avx_cvtsd2ss): Likewise.
8994         (avx_cvtss2sd): Likewise.
8995         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
8996         (avx_cvtps2dq<avxmodesuffix>): Likewise.
8997         (avx_cvttps2dq<avxmodesuffix>): Likewise.
8998         (*avx_cvtsi2sd): Likewise.
8999         (*avx_cvtsi2sdq): Likewise.
9000         (avx_cvtdq2pd256): Likewise.
9001         (avx_cvtpd2dq256): Likewise.
9002         (avx_cvttpd2dq256): Likewise.
9003         (*avx_cvtsd2ss): Likewise.
9004         (*avx_cvtss2sd): Likewise.
9005         (avx_cvtpd2ps256): Likewise.
9006         (avx_cvtps2pd256): Likewise.
9007         (*avx_movhlps): Likewise.
9008         (*avx_movlhps): Likewise.
9009         (avx_unpckhps256): Likewise.
9010         (*avx_unpckhps): Likewise.
9011         (avx_unpcklps256): Likewise.
9012         (*avx_unpcklps): Likewise.
9013         (avx_movshdup256): Likewise.
9014         (avx_movsldup256): Likewise.
9015         (avx_shufps256): Likewise.
9016         (avx_shufps256_1): Likewise.
9017         (*avx_shufps_<mode>): Likewise.
9018         (*avx_loadhps): Likewise.
9019         (*avx_storelps): Likewise.
9020         (*avx_loadlps): Likewise.
9021         (*avx_movss): Likewise.
9022         (*vec_dupv4sf_avx): Likewise.
9023         (*vec_concatv2sf_avx): Likewise.
9024         (*vec_concatv4sf_avx): Likewise.
9025         (*vec_setv4sf_0_avx): Likewise.
9026         (*vec_setv4sf_avx): Likewise.
9027         (*avx_insertps): Likewise.
9028         (avx_vextractf128<mode>): Likewise.
9029         (vec_extract_lo_<mode>): Likewise.
9030         (vec_extract_hi_<mode>): Likewise.
9031         (vec_extract_lo_<mode>): Likewise.
9032         (vec_extract_hi_<mode>): Likewise.
9033         (vec_extract_lo_v16hi): Likewise.
9034         (vec_extract_hi_v16hi): Likewise.
9035         (vec_extract_lo_v32qi): Likewise.
9036         (vec_extract_hi_v32qi): Likewise.
9037         (avx_unpckhpd256): Likewise.
9038         (*avx_unpckhpd): Likewise.
9039         (avx_movddup256): Likewise.
9040         (*avx_movddup): Likewise.
9041         (avx_unpcklpd256): Likewise.
9042         (*avx_unpcklpd): Likewise.
9043         (avx_shufpd256): Likewise.
9044         (avx_shufpd256_1): Likewise.
9045         (*avx_punpckhqdq): Likewise.
9046         (*avx_punpcklqdq): Likewise.
9047         (*avx_shufpd_<mode>): Likewise.
9048         (*avx_storehpd): Likewise.
9049         (*avx_loadhpd): Likewise.
9050         (*avx_loadlpd): Likewise.
9051         (*avx_movsd): Likewise.
9052         (*vec_concatv2df_avx): Likewise.
9053         (*avx_<plusminus_insn><mode>3): Likewise.
9054         (*avx_<plusminus_insn><mode>3): Likewise.
9055         (*avx_mulv8hi3): Likewise.
9056         (*avxv8hi3_highpart): Likewise.
9057         (*avx_umulv8hi3_highpart): Likewise.
9058         (*avx_umulv2siv2di3): Likewise.
9059         (*avx_mulv2siv2di3): Likewise.
9060         (*avx_pmaddwd): Likewise.
9061         (*avx_mulv4si3): Likewise.
9062         (*avx_ashr<mode>3): Likewise.
9063         (*avx_lshr<mode>3): Likewise.
9064         (*avx_ashl<mode>3): Likewise.
9065         (*avx_<code><mode>3): Likewise.
9066         (*avx_eq<mode>3): Likewise.
9067         (*avx_gt<mode>3): Likewise.
9068         (*avx_nand<mode>3): Likewise.
9069         (*avx_nand<mode>3): Likewise.
9070         (*avx_<code><mode>3): Likewise.
9071         (*avx_<code><mode>3): Likewise.
9072         (*avx_packsswb): Likewise.
9073         (*avx_packssdw): Likewise.
9074         (*avx_packuswb): Likewise.
9075         (*avx_punpckhbw): Likewise.
9076         (*avx_punpcklbw): Likewise.
9077         (*avx_punpckhwd): Likewise.
9078         (*avx_punpcklwd): Likewise.
9079         (*avx_punpckhdq): Likewise.
9080         (*avx_punpckldq): Likewise.
9081         (*avx_pinsr<avxmodesuffixs>): Likewise.
9082         (*avx_pinsrq): Likewise.
9083         (*avx_loadld): Likewise.
9084         (*vec_extractv2di_1_rex64_avx): Likewise.
9085         (*vec_extractv2di_1_avx): Likewise.
9086         (*vec_dupv2di_avx): Likewise.
9087         (*vec_concatv2si_avx): Likewise.
9088         (*vec_concatv4si_1_avx): Likewise.
9089         (*vec_concatv2di_avx): Likewise.
9090         (*vec_concatv2di_rex64_avx): Likewise.
9091         (*avx_uavgv16qi3): Likewise.
9092         (*avx_uavgv8hi3): Likewise.
9093         (*avx_psadbw): Likewise.
9094         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
9095         (*avx_phaddwv8hi3): Likewise.
9096         (*avx_phadddv4si3): Likewise.
9097         (*avx_phaddswv8hi3): Likewise.
9098         (*avx_phsubwv8hi3): Likewise.
9099         (*avx_phsubdv4si3): Likewise.
9100         (*avx_phsubswv8hi3): Likewise.
9101         (*avx_pmaddubsw128): Likewise.
9102         (*avx_pmulhrswv8hi3): Likewise.
9103         (*avx_pshufbv16qi3): Likewise.
9104         (*avx_psign<mode>3): Likewise.
9105         (*avx_palignrti): Likewise.
9106         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9107         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9108         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9109         (*avx_mpsadbw): Likewise.
9110         (*avx_packusdw): Likewise.
9111         (*avx_pblendvb): Likewise.
9112         (*avx_pblendw): Likewise.
9113         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9114         (avx_ptest256): Likewise.
9115         (avx_roundp<avxmodesuffixf2c>256): Likewise.
9116         (*avx_rounds<ssemodesuffixf2c>): Likewise.
9117         (*avx_aesenc): Likewise.
9118         (*avx_aesenclast): Likewise.
9119         (*avx_aesdec): Likewise.
9120         (*avx_aesdeclast): Likewise.
9121         (avx_vzeroupper): Likewise.
9122         (avx_vzeroupper_rex64): Likewise.
9123         (avx_vpermil<mode>): Likewise.
9124         (avx_vpermilvar<mode>3): Likewise.
9125         (avx_vpermil2<mode>3): Likewise.
9126         (avx_vperm2f128<mode>3): Likewise.
9127         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9128         (avx_vbroadcastss256): Likewise.
9129         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
9130         (avx_vinsertf128<mode>): Likewise.
9131         (vec_set_lo_<mode>): Likewise.
9132         (vec_set_hi_<mode>): Likewise.
9133         (vec_set_lo_<mode>): Likewise.
9134         (vec_set_hi_<mode>): Likewise.
9135         (vec_set_lo_v16hi): Likewise.
9136         (vec_set_hi_v16hi): Likewise.
9137         (vec_set_lo_v32qi): Likewise.
9138         (vec_set_hi_v32qi): Likewise.
9139         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9140         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
9141         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
9142         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
9143         (vec_init<mode>): Likewise.
9144         (*vec_concat<mode>_avx): Likewise.
9145         (blendbits): Support V8SF and V4DF.
9146         (sse2_movq128): Support AVX.
9147         (<sse>_movnt<mode>): Likewise.
9148         (sse2_movntv2di): Likewise.
9149         (sse_rcpv4sf2): Likewise.
9150         (sse_sqrtv4sf2): Likewise.
9151         (sse_rsqrtv4sf2): Likewise.
9152         (<sse>_comi): Likewise.
9153         (<sse>_ucomi): Likewise.
9154         (sse_cvtss2si): Likewise.
9155         (sse_cvtss2si_2): Likewise.
9156         (sse_cvtss2siq): Likewise.
9157         (sse_cvtss2siq_2): Likewise.
9158         (sse_cvttss2si): Likewise.
9159         (sse_cvttss2siq): Likewise.
9160         (sse2_cvtsd2si): Likewise.
9161         (sse2_cvtsd2si_2): Likewise.
9162         (sse2_cvtsd2siq): Likewise.
9163         (sse2_cvtsd2siq_2): Likewise.
9164         (sse2_cvttsd2si): Likewise.
9165         (sse2_cvttsd2siq): Likewise.
9166         (sse2_cvtdq2pd): Likewise.
9167         (*sse2_cvtpd2dq): Likewise.
9168         (*sse2_cvttpd2dq): Likewise.
9169         (*sse2_cvtpd2ps): Likewise.
9170         (sse2_cvtps2pd): Likewise.
9171         (sse3_movshdup): Likewise.
9172         (sse3_movsldup): Likewise.
9173         (sse_storehps): Likewise.
9174         (*sse4_1_extractps): Likewise.
9175         (sse2_storelpd): Likewise.
9176         (vec_dupv2df_sse3): Likewise.
9177         (*vec_concatv2df_sse3): Likewise.
9178         (*sse4_1_pextrb): Likewise.
9179         (*sse4_1_pextrb_memory): Likewise.
9180         (*sse2_pextrw): Likewise.
9181         (*sse4_1_pextrw_memory): Likewise.
9182         (*sse4_1_pextrd): Likewise.
9183         (*sse4_1_pextrq): Likewise.
9184         (sse2_pshufd_1): Likewise.
9185         (sse2_pshuflw_1): Likewise.
9186         (sse2_pshufhw_1): Likewise.
9187         (*sse2_storeq_rex64): Likewise.
9188         (*vec_dupv4si): Likewise.
9189         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
9190         (sse2_pmovmskb): Likewise.
9191         (*sse2_maskmovdqu): Likewise.
9192         (*sse2_maskmovdqu_rex64): Likewise.
9193         (sse_ldmxcsr): Likewise.
9194         (sse_stmxcsr): Likewise.
9195         (abs<mode>2): Likewise.
9196         (sse4_1_movntdqa): Likewise.
9197         (sse4_1_phminposuw): Likewise.
9198         (sse4_1_extendv8qiv8hi2): Likewise.
9199         (*sse4_1_extendv8qiv8hi2): Likewise.
9200         (sse4_1_extendv4qiv4si2): Likewise.
9201         (*sse4_1_extendv4qiv4si2): Likewise.
9202         (sse4_1_extendv2qiv2di2): Likewise.
9203         (*sse4_1_extendv2qiv2di2): Likewise.
9204         (sse4_1_extendv4hiv4si2): Likewise.
9205         (*sse4_1_extendv4hiv4si2): Likewise.
9206         (sse4_1_extendv2hiv2di2): Likewise.
9207         (*sse4_1_extendv2hiv2di2): Likewise.
9208         (sse4_1_extendv2siv2di2): Likewise.
9209         (*sse4_1_extendv2siv2di2): Likewise.
9210         (sse4_1_zero_extendv8qiv8hi2): Likewise.
9211         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
9212         (sse4_1_zero_extendv4qiv4si2): Likewise.
9213         (*sse4_1_zero_extendv4qiv4si2): Likewise.
9214         (sse4_1_zero_extendv2qiv2di2): Likewise.
9215         (*sse4_1_zero_extendv2qiv2di2): Likewise.
9216         (sse4_1_zero_extendv4hiv4si2): Likewise.
9217         (*sse4_1_zero_extendv4hiv4si2): Likewise.
9218         (sse4_1_zero_extendv2hiv2di2): Likewise.
9219         (*sse4_1_zero_extendv2hiv2di2): Likewise.
9220         (sse4_1_zero_extendv2siv2di2): Likewise.
9221         (*sse4_1_zero_extendv2siv2di2): Likewise.
9222         (sse4_1_ptest): Likewise.
9223         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
9224         (sse4_2_pcmpestri): Likewise.
9225         (sse4_2_pcmpestrm): Likewise.
9226         (sse4_2_pcmpistri): Likewise.
9227         (sse4_2_pcmpistrm): Likewise.
9228         (aesimc): Likewise.
9229         (aeskeygenassist): Likewise.
9230
9231 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
9232
9233         * config/i386/predicates.md (vzeroall_operation): New.
9234
9235         * config/i386/sse.md (avx_vzeroall): New.
9236         (*avx_vzeroall): Likewise.
9237
9238 2008-08-28  Paul Brook  <paul@codesourcery.com>
9239             Mark Shinwell  <shinwell@codesourcery.com>
9240             Richard Earnshaw  <richard.earnshaw@arm.com>
9241
9242         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
9243         (TARGET_MIN_ANCHOR_OFFSET): New.
9244         (arm_override_options): Set correct anchor ranges for Thumb-1
9245         and Thumb-2 if required.
9246         (legitimize_pic_address): Handle case involving a TLS symbol
9247         reference with an addend.
9248         (arm_optimization_options): Enable section anchors at -O1 and
9249         above.
9250         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
9251         * config/arm/arm-protos.h (arm_optimization_options): New.
9252
9253 2008-08-28  Nick Clifton  <nickc@redhat.com>
9254
9255         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
9256         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
9257         attribute.
9258
9259         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
9260         * config/v850/v850.md (return): Remove frame size restriction.
9261
9262         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
9263
9264         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
9265
9266         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
9267
9268         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
9269
9270 2008-08-28  Paul Brook  <paul@codesourcery.com>
9271
9272         * config/arm/vfp11.md: Update license notice.
9273         * config/arm/cortex-r4.md: Ditto.
9274
9275 2008-08-28  Richard Guenther  <rguenther@suse.de>
9276
9277         PR tree-optimization/37207
9278         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
9279         tuplification bug.
9280
9281 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
9282
9283         PR c++/36741
9284         * tree.c (int_fits_type_p): Don't forget unsigned integers
9285           of type sizetype which higher end word equals -1.
9286
9287 2008-08-28  Ira Rosen  <irar@il.ibm.com>
9288
9289         * target.h (struct vectorize): Add new target builtin.
9290         * tree-vectorizer.c (destroy_loop_vec_info): Call
9291         vect_free_slp_instance instead of vect_free_slp_node.
9292         * tree-vectorizer.h (enum slp_load_perm_type): New.
9293         (struct _slp_instance): Add new fields.
9294         (SLP_INSTANCE_LOAD_PERMUTATION): New.
9295         (SLP_INSTANCE_LOADS): New.
9296         (vect_free_slp_tree): Remove.
9297         (vect_free_slp_instance): Declare.
9298         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
9299         (vectorizable_load): Add argument.
9300         (vect_transform_slp_perm_load): New.
9301         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
9302         vectorizable_load.
9303         (vect_get_place_in_interleaving_chain): New function.
9304         (vect_free_slp_tree): Make static.
9305         (vect_free_slp_instance): New function.
9306         (vect_build_slp_tree): Add new arguments. Allow load permutations and
9307         collect the load location in the interleaving chain.
9308         (vect_supported_slp_permutation_p): New function.
9309         (vect_supported_load_permutation_p): Likewise.
9310         (vect_analyze_slp_instance): In case of loads permutation, call
9311         vect_supported_load_permutation_p to check that the permutation is
9312         supported.
9313         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
9314         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
9315         (vect_create_mask_and_perm): New function.
9316         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
9317         (vectorizable_load): Add an argument. Don't keep the created vectors
9318         statements in the node if permutation is required. Call
9319         vect_transform_slp_perm_load to generate the permutation.
9320         (vect_transform_stmt): Add new argument. Call vectorizable_load with
9321         additional argument.
9322         (vect_schedule_slp_instance): In case of loads permutation, allocate
9323         vectorized statements structure for all the related SLP nodes. Call
9324         vect_transform_stmt with addditional argument.
9325         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
9326         * config/spu/spu.c (spu_builtin_vec_perm): New.
9327         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
9328         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
9329         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
9330         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
9331
9332 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
9333
9334         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
9335         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
9336         __gthread_cond_signal, __gthread_cond_timedwait,
9337         __gthread_cond_timedwait_recursive): New functions.
9338         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
9339         Likewise.
9340         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
9341         thread interfaces.
9342
9343 2008-08-28  Richard Guenther  <rguenther@suse.de>
9344
9345         PR middle-end/37005
9346         * fold-const.c (maybe_canonicalize_comparison_1): Require
9347         undefined overflow only for canonicalizing A +- CST cmp CST.
9348         Make sure to not generate new constants that are not inside
9349         their TYPE_MIN/MAX_VALUE range.
9350         (maybe_canonicalize_comparison): Remove undefined overflow
9351         checking from here.
9352         (fold_binary): Remove now duplicate folding.
9353
9354 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
9355
9356         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
9357         use not updated in the last change.
9358
9359 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9360
9361         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
9362         (IRA_COVER_CLASSES): Add FPUL_REGS.
9363
9364 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9365
9366         PR 37217
9367         * c-common.c (conversion_warning): Check for null operands.
9368
9369 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9370
9371         PR c/31673
9372         * c-decl.c (check_for_loop_decls): Improve error message. Give
9373         hint.
9374
9375 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9376
9377         PR c/37186
9378         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
9379         (convert_for_assignment): Pass corrent OPT_W* parameter to
9380         WARN_FOR_ASSIGNMENT.
9381
9382 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
9383
9384         PR c++/35321
9385         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
9386
9387 2008-08-27  Paul Brook  <paul@codesourcery.com>
9388
9389         * config.gcc: Loosen checks for arm uclinux eabi targets.
9390
9391 2008-08-27  Paul Brook  <paul@codesourcery.com>
9392
9393         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
9394         _clzsi2.
9395         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
9396
9397 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
9398
9399         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
9400         the enumerators of an ENUMERAL_TYPE.
9401         * dbxout.c (dbxout_type): Ditto.
9402
9403 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9404
9405         PR rtl-opt/37219
9406         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
9407         (fwprop_addr): Check that the loop_father is not the outer loop.
9408
9409 2008-08-26  Paul Brook  <paul@codesourcery.com>
9410
9411         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
9412         Remove documentation entry for fmul type.
9413         Use fmuls to annotate single-precision multiplication patterns,
9414         fmuld to annotate double-precision multiplication patterns,
9415         fmacs to annotate single-precision multiply-accumulate patterns
9416         and fmacd to annotate double-precision multiply-accumulate patterns.
9417         * config/arm/vfp11.md: Update reservations accordingly.
9418         * config/arm/arm.md: Note that certain values of the "type"
9419         attribute are documented in vfp.md.
9420         * config/arm/arm1020e.md: Remove out of date duplicate comment.
9421         (v10_cvt): Use new fmul types.
9422
9423 2008-08-26  Paul Brook  <paul@codesourcery.com>
9424
9425         * config/arm/vfp.md: Move pipeline description for VFP11 to...
9426         * config/arm/vfp11.md: ...here.  New.
9427         * config/arm/arm.md: Include vfp11.md.
9428
9429 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
9430
9431         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
9432         parameter to inform call.
9433
9434 2008-08-26  Jeff Law  <law@redhat.com>
9435
9436         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
9437         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
9438         preferred class when copying a constant into a partial word register.
9439
9440 2008-08-26  Ben Elliston  <bje@au.ibm.com>
9441
9442         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
9443         * cp/typeck.c: Likewise.
9444         * cp/tree.c: Likewise.
9445         * gimple-low.c: Likewise.
9446         * jump.c: Likewise.
9447
9448 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
9449
9450         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
9451         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
9452
9453         * doc/passes.texi: Describe IRA.
9454
9455         * doc/tm.texi (IRA_COVER_CLASSES,
9456         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
9457
9458         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
9459         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
9460         -fira-propagate-cost, -fno-ira-share-save-slots,
9461         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
9462
9463         * flags.h (ira_algorithm): New enumeration.
9464         (flag_ira_algorithm, flag_ira_verbose): New external variable
9465         declarations.
9466
9467         * postreload.c (gate_handle_postreload): Don't do post reload
9468         optimizations unless the reload is completed.
9469
9470         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
9471         IRA.
9472
9473         * tree-pass.h (pass_ira): New external variable declaration.
9474
9475         * reload.h: Add 2008 to the Copyright.
9476
9477         * cfgloopanal.c: Include params.h.
9478         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
9479         mode.
9480
9481         * params.h (IRA_MAX_LOOPS_NUM): New macro.
9482
9483         * toplev.c (ira.h): New include.
9484         (flag_ira_algorithm, flag_ira_verbose): New external variables.
9485         (backend_init_target): Call ira_init.
9486         (backend_init): Call ira_init_once.
9487         (finalize): Call finish_ira_once.
9488
9489         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
9490         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
9491         external variables.
9492
9493         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
9494         may_move_out_cost): New external variable declarations.
9495         (move_table): New typedef.
9496
9497         * caller-save.c: Include headers output.h and ira.h.
9498         (no_caller_save_reg_set): New global variable.
9499         (save_slots_num, save_slots): New variables.
9500         (reg_save_code, reg_restore_code, add_stored_regs): Add
9501         prototypes.
9502         (init_caller_save): Set up no_caller_save_reg_set.
9503         (init_save_areas): Reset save_slots_num.
9504         (saved_hard_reg): New structure.
9505         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
9506         (initiate_saved_hard_regs, new_saved_hard_reg,
9507         finish_saved_hard_regs, saved_hard_reg_compare_func): New
9508         functions.
9509         (setup_save_areas): Add code for sharing stack slots.
9510         (all_blocks): New variable.
9511         (save_call_clobbered_regs): Process pseudo-register too.
9512         (mark_set_regs): Process pseudo-register too.
9513         (insert_one_insn): Put the insn after bb note in a empty basic
9514         block.  Add insn check.
9515
9516         * global.c (eliminable_regset): Make it external.
9517         (mark_elimination): Use DF_LR_IN for IRA.
9518         (pseudo_for_reload_consideration_p): New.
9519         (build_insn_chain): Make it external.  Don't ignore spilled
9520         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
9521         (gate_handle_global_alloc): New function.
9522         (pass_global_alloc): Add the gate function.
9523
9524         * opts.c (decode_options): Set up flag_ira.  Print the warning for
9525         -fira.
9526         (common_handle_option): Process -fira-algorithm and -fira-verbose.
9527
9528         * timevar.def (TV_IRA, TV_RELOAD): New passes.
9529
9530         * regmove.c (regmove_optimize): Don't do replacement of output for
9531         IRA.
9532
9533         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
9534         New external variable declarations.
9535
9536         * local-alloc.c (update_equiv_regs): Make it external.  Return
9537         true if jump label rebuilding should be done.  Rescan new_insn for
9538         notes.
9539         (gate_handle_local_alloc): New function.
9540         (pass_local_alloc): Add the gate function.
9541
9542         * alias.c (value_addr_p, stack_addr_p): New functions.
9543         (nonoverlapping_memrefs_p): Use them for IRA.
9544
9545         * common.opt (fira, fira-algorithm, fira-coalesce,
9546         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
9547         fira-verbose): New options.
9548
9549         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
9550         move_cost, may_move_in_cost, may_move_out_cost): Make the
9551         variables external.
9552         (move_table): Remove typedef.
9553         (init_move_cost): Make it external.
9554         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
9555         functions.
9556
9557         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
9558         setup_reg_classes): New function prototypes.
9559         (eliminable_regset): New external variable declaration.
9560         (build_insn_chain, update_equiv_regs): New function prototypes.
9561
9562         * Makefile.in (IRA_INT_H): New definition.
9563         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
9564         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
9565         (reload1.o, toplev.o): Add dependence on ira.h.
9566         (cfgloopanal.o): Add PARAMS_H.
9567         (caller-save.o): Add dependence on output.h and ira.h.
9568         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
9569         ira-emit.o, ira-lives.o): New entries.
9570
9571         * passes.c (pass_ira): New pass.
9572
9573         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
9574
9575         * reload1.c (ira.h): Include the header.
9576         (changed_allocation_pseudos): New bitmap.
9577         (init_reload): Initiate the bitmap.
9578         (compute_use_by_pseudos): Permits spilled registers in FROM.
9579         (temp_pseudo_reg_arr): New variable.
9580         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
9581         IRA.  Call alter_reg with the additional parameter.  Don't clear
9582         spilled_pseudos for IRA.  Restore original insn chain for IRA.
9583         Clear changed_allocation_pseudos at the end of reload.
9584         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
9585         (hard_regno_to_pseudo_regno): New variable.
9586         (count_pseudo): Check spilled pseudos.  Set up
9587         hard_regno_to_pseudo_regno.
9588         (count_spilled_pseudo): Check spilled pseudos. Update
9589         hard_regno_to_pseudo_regno.
9590         (find_reg): Use better_spill_reload_regno_p.  Check
9591         hard_regno_to_pseudo_regno.
9592         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
9593         code for IRA.
9594         (eliminate_regs_1): Use additional parameter for alter_reg.
9595         (finish_spills): Set up pseudo_previous_regs only for spilled
9596         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
9597         more arguments.  Don't clear live_throughout and dead_or_set for
9598         spilled pseudos.  Use additional parameter for alter_reg.  Call
9599         mark_allocation_change.  Set up changed_allocation_pseudos.
9600         Remove sanity check.
9601         (emit_input_reload_insns, delete_output_reload): Use additional
9602         parameter for alter_reg.  Call mark_allocation_change.
9603         (substitute, gen_reload_chain_without_interm_reg_p): New
9604         functions.
9605         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
9606
9607         * testsuite/gcc.dg/20080410-1.c: New file.
9608
9609         * config/s390/s390.h (IRA_COVER_CLASSES,
9610         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
9611
9612         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
9613
9614         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
9615
9616         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9617
9618         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
9619
9620         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9621
9622         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
9623
9624         2008-08-24  Jeff Law  <law@redhat.com>
9625         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
9626         when ignoring unavailable registers.
9627
9628         2008-08-24  Jeff Law  <law@redhat.com>
9629         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
9630         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
9631         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
9632         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
9633
9634         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
9635         * ira-build.c (allocno_range_compare_func): Stabilize sort.
9636
9637         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
9638         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
9639         * reload1.c (find_reg): Process registers in register allocation order.
9640
9641         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9642         * toplev.c (backend_init_target): Move ira_init call from
9643         here...
9644         (lang_dependent_init_target): ...to here.
9645
9646         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9647         * ira.c (setup_class_subset_and_memory_move_costs): Don't
9648         calculate memory move costs for NO_REGS.
9649
9650         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
9651         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
9652         STACK_REGS is defined.
9653
9654         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
9655         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
9656
9657         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
9658         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
9659
9660         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
9661         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
9662         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
9663         barrier.
9664
9665 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
9666             Dorit Nuzman  <dorit@il.ibm.com>
9667
9668         * gcc/config/spu/spu.md (vec_extract_evenv4si,
9669         vec_extract_evenv4sf, vec_extract_evenv8hi,
9670         vec_extract_evenv16qi, vec_extract_oddv4si,
9671         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
9672         vec_interleave_highv4sf, vec_interleave_lowv4sf,
9673         vec_interleave_highv4si, vec_interleave_lowv4si,
9674         vec_interleave_highv8hi, vec_interleave_lowv8hi,
9675         vec_interleave_highv16qi, vec_interleave_lowv16qi,
9676         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
9677
9678 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
9679
9680         PR target/36756
9681         * config/rs6000/rs6000.c (optimization_options): Don't default to
9682         section anchors without toplevel reorder.
9683
9684 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9685
9686         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
9687         (mfc_end_critical_section): Likewise.
9688
9689 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9690
9691         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
9692         all type qualifiers from element type to vector type.
9693
9694 2008-08-25  David Daney  <ddaney@avtrex.com>
9695
9696         * config/mips/mips.md (immediate_insn): Move up in file, fix
9697         comment typo, reformat.
9698         (fetchop_bit, atomic_hiqi_op memory_barrier,
9699         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
9700         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
9701         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
9702         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
9703         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
9704         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
9705         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
9706         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
9707         sync_old_nand<mode>, sync_new_nand<mode>,
9708         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
9709         test_and_set_12): Moved to sync.md.
9710         (sync.md): Include.
9711         * config/mips/sync.md: New file.
9712
9713 2008-08-25  Richard Henderson  <rth@redhat.com>
9714
9715         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
9716         (regsave): Likewise.
9717         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
9718         (output_cfi_directive): Likewise.
9719         (div_data_align): New.
9720         (output_cfi): Use it.
9721
9722 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
9723
9724         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
9725         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
9726         (TARGET_OCTEON): New macro.
9727         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
9728         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
9729         (ISA_HAS_POP): New macro.
9730         * config/mips/driver-native.c (host_detect_local_cpu): Handle
9731         Octeon.
9732         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
9733         Handle Octeon.
9734         * config/mips/mips.md (cpu): Add octeon.
9735         (type): Add pop attribute value.
9736         (popcount<mode>2): New pattern.
9737         * doc/invoke.texi (-march=@var{arch}): Add octeon.
9738
9739 2008-08-24  Jan Hubicka  <jh@suse.cz>
9740
9741         * doc/invoke.texi (-fipa-cp-clone): New option.
9742         (-fipa-cp): Update docs.
9743         (--param ipcp-unit-growth):New.
9744         * ipa-cp.c: Include fibheap.h, params.h
9745         (ipcp_initialize_node_lattices): When not cloning, all externally
9746         visible functions are bottom.
9747         (ipcp_need_redirect_p): Accept clones.
9748         (ipcp_insert_stage): Use cost driven heuristics.
9749         (max_count, dead_nodes): New static vars.
9750         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
9751         ipcp_const_param_count): New functions.
9752         * common.opt (ipa-cp-clone): New command line option.
9753         * params.def (ipcp-unit-growth): New.
9754
9755 2008-08-24  Jan Hubicka  <jh@suse.cz>
9756
9757         * tree-inline.c (tree_function_versioning): Look harder
9758         for referenced vars.
9759
9760 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
9761
9762         PR tree-optimization/37185
9763         * matrix-reorg.c (transform_access_sites): Update changed stmt.
9764
9765 2008-08-23  Jan Hubicka  <jh@suse.cz>
9766
9767         * ipa-cp.c (ipcp_analyze_node): New function.
9768         (ipcp_update_cloned_node): Use it.
9769         (ipcp_init_stage): Likewise.
9770         * ipa-inline.c (function_insertion_hook_holder): New static var.
9771         (analyze_function): Break out from ....
9772         (inline_generate_summary): Here; register insertion hook.
9773         (cgraph_decide_inlining): Remove hook.
9774         (add_new_function): New function.
9775
9776 2008-08-23  Jan Hubicka  <jh@suse.cz>
9777
9778         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
9779
9780 2008-08-23  Jan Hubicka  <jh@suse.cz>
9781
9782         * ipa-cp.c (constant_val_insert): Remove.
9783         (ipcp_propagate_one_const): Remove.
9784         (ipcp_create_replace_map): Always insert replacements to the map.
9785         (ipcp_insert_stage): Do not try to insert statements by hand.
9786         * tree-inline.c (insert_init_stmt): Break out from ...
9787         (setup_one_parameter): ... here; allow NULL BB pointer.
9788         (tree_function_versioning): Use setup_one_parameter to process
9789         replacement map.
9790
9791 2008-08-23  Jan Hubicka  <jh@suse.cz>
9792
9793         * tree.c (decl_address_ip_invariant_p): New function.
9794         * tree.h (decl_address_ip_invariant_p): Declare.
9795         * gimple.c (strip_invariant_refs): Break out from ...
9796         (is_gimple_invariant_address): ... here
9797         (is_gimple_ip_invariant_address): New function.
9798         (is_gimple_ip_invariant): New function.
9799         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
9800         Declare.
9801
9802         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
9803         (ipcp_lat_is_insertable): All constants are insertable.
9804         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
9805         IPA_CONST_VALUE_REF.
9806         (ipcp_initialize_node_lattices): Propagate all types of operands.
9807         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
9808         (ipcp_create_replace_map): Reformat.
9809         (ipcp_need_redirect_p): Simplify.
9810         (ipcp_insert_stage): Check that argument is used before clonning.
9811         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
9812         IPA_CONST_REF.
9813         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
9814         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
9815         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
9816         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
9817         (jump_func_type): Remove IPA_CONST_VALUE_REF.
9818         * tree-inline.c (tree_function_versioning): Add variables referenced
9819         by replacing trees.
9820
9821 2008-08-23  Jan Hubicka  <jh@suse.cz>
9822
9823         PR target/37094
9824         * i386.c (standard_80387_constant_p): Use optimize_size.
9825
9826 2008-08-23  Ira Rosen  <irar@il.ibm.com>
9827
9828         PR tree-optimization/37161
9829         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
9830         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
9831         (vect_determine_vectorization_factor): Move the scalar type
9832         retrieval to vect_get_smallest_scalar_type.
9833         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
9834         scalar type. Remove redundant computation.
9835         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
9836         (vect_get_slp_defs): Take the type of RHS into account if
9837         necessary by calling vect_get_smallest_scalar_type. Call
9838         vect_get_constant_vectors with additional argument.
9839
9840 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9841
9842         PR 35648
9843         * doc/invoke.texi (Wwrite-strings): Clarify description.
9844
9845 2008-08-23  Ira Rosen  <irar@il.ibm.com>
9846
9847         PR tree-optimization/37174
9848         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
9849         def stmt is a part of the loop before accessing its stmt_vec_info.
9850
9851 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
9852
9853         PR target/11259
9854         * config/avr/avr.md (UNSPEC_SWAP): New constants.
9855         (*swap): New insn pattern.
9856         (*ashlqi3): Rename from ashlqi3 insn pattern.
9857         (ashlqi3): New expanders.
9858         (*lshrqi3): Rename from lshrqi3 insn pattern.
9859         (lshrqi3): New expanders.
9860         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
9861         lshrqi3_const5, lshrqi3_const6): New splitters.
9862         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
9863         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
9864         peephole2 patterns.
9865
9866 2008-08-22  Richard Guenther  <rguenther@suse.de>
9867
9868         PR tree-optimization/37078
9869         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
9870         [+INF, +INF] ranges.
9871
9872 2008-08-22  Richard Guenther  <rguenther@suse.de>
9873
9874         PR tree-optimization/37143
9875         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
9876         a conversion statement instead of a copy.
9877
9878 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
9879
9880         PR target/37184
9881         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
9882         CCCmode, CCOmode and CCSmode destination modes.
9883
9884         PR target/37191
9885         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
9886         from different units in a single alternative.
9887         (*vec_extractv2sf_1): Ditto.
9888         (*vec_extractv2si_0): Ditto.
9889         (*vec_extractv2si_1): Ditto.
9890         * config/i386/sse.md (sse2_storehpd): Ditto.
9891         (sse2_storelpd): Ditto.
9892         (sse2_loadhpd): Ditto.
9893         (sse2_loadlpd): Ditto.
9894
9895         PR target/37197
9896         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
9897         (popcountsi2): Ditto.
9898         (clzdi2_abm): Ditto.
9899         (popcountdi2): Ditto.
9900         (clzhi2_abm): Ditto.
9901         (popcounthi2): Ditto.
9902
9903 2008-08-22  Richard Guenther  <rguenther@suse.de>
9904
9905         PR middle-end/36548
9906         PR middle-end/37125
9907         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
9908         if the multiplication does not overflow.
9909
9910 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
9911
9912         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
9913
9914 2008-08-21  Richard Henderson  <rth@redhat.com>
9915
9916         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
9917         spurrious comma from test.
9918         * configure: Rebuild.
9919
9920 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9921
9922         PR 30457
9923         * builtins.c (fold_builtin_next_arg): Add warning about undefined
9924         behaviour.
9925
9926 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
9927
9928         * c-tree.h (grokfield): New argument.
9929         * c-decl.c (grokfield): Handle new location argument.
9930         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
9931
9932 2008-08-21  Richard Guenther  <rguenther@suse.de>
9933
9934         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
9935
9936 2008-08-21  Jan Hubicka  <jh@suse.cz>
9937
9938         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
9939         (cgraph_add_function_insertion_hook,
9940         cgraph_remove_function_insertion_hook,
9941         cgraph_call_function_insertion_hooks): New functions.
9942         * cgraph.h (cgraph_add_function_insertion_hook,
9943         cgraph_remove_function_insertion_hook,
9944         cgraph_call_function_insertion_hooks): Declare.
9945         * ipa-reference.c (function_insertion_hook_holder): New variable.
9946         (check_operand, look_for_address_of): When checking late, do not care
9947         about module bitmaps.
9948         (add_new_function): New function.
9949         (generate_summary): Register hooks; zero module bitmaps.
9950         (propagate): Unregister hooks.
9951         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
9952         (add_new_function): New function.
9953         (generate_summary): Register hook.
9954         (propagate): Remove hook.
9955
9956         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
9957
9958         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
9959         * ipa-cp.c (ipcp_update_cloned_node): New function.
9960         (build_const_val): Handle functions correctly; bring type logic
9961         into sync with tree-inline.c
9962         (ipcp_init_stage):  Take care of computing stuff needed by
9963         indirect inlining; update clones.
9964         (ipcp_generate_summary): Break out of ipcp_driver.
9965         (ipcp_driver): Do only execution and transformation.
9966         (pass_ipa_cp): Make IPA_PASS.
9967         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
9968         offset to address.
9969         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
9970         ipcp, some info is already available.
9971         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
9972         * tree-inline.c (remap_ssa_name): Unshare expression.
9973
9974 2008-08-21  Richard Guenther  <rguenther@suse.de>
9975
9976         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9977         a PHI ask VN if it is already available.
9978         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9979         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9980
9981 2008-08-21  Richard Guenther  <rguenther@suse.de>
9982
9983         PR middle-end/36817
9984         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
9985         makes sure to produce a result of the correct type.
9986
9987 2008-08-21  Jan Hubicka  <jh@suse.cz>
9988         Backport from LTO branch:
9989
9990         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
9991                     Jan Hubicka  <jh@suse.cz>
9992
9993         * ipa-pure-const.c
9994         (init_state, finish_state, set_function_state, generate_summary):
9995         New functions.
9996         (scan_stmt): Renamed from scan_function.  Changed to keep state in
9997         local static vars rather than cgraph aux field.
9998         (propagate): Renamed from static_execute. Changed to keep state in
9999         local static vars rather than cgraph aux field.
10000         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
10001         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
10002
10003         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
10004
10005         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
10006         * ipa-reference.c (init_function_info, generate_summary,
10007         propagate): New functions.
10008         (analyze_function):  Call init_function_info.
10009         (static_execute): Stripped into generate_summary and propagate.
10010         (pass_ipa_reference): Made into ipa_opt_pass.
10011
10012 2008-08-21  Richard Guenther  <rguenther@suse.de>
10013
10014         PR tree-optimization/37181
10015         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
10016         folding result.
10017         (extract_range_from_unary_expr): Likewise.
10018
10019 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10020
10021         * diagnostic.c (pedwarn_at): Rename as pedwarn.
10022         (pedwarn): Delete.
10023         * toplev.h (pedwarn_at): Likewise.
10024         * builtins.c: Update all calls to pedwarn.
10025         * c-lex.c: Likewise.
10026         * toplev.c: Likewise.
10027         * c-tree.h: Likewise.
10028         * c-decl.c: Likewise.
10029         * c-errors.c: Likewise.
10030         * c-typeck.c: Likewise.
10031         * c-common.c: Likewise.
10032         * c-parser.c: Likewise.
10033
10034 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
10035
10036         PR target/31070
10037         * config/sparc/sparc.c (function_arg_slotno): Handle structure
10038         with MODE_VECTOR_INT mode.
10039
10040 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10041
10042         PR middle-end/179
10043         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
10044         initialized outside the current module.
10045         (warn_uninitialized_var): Ignore left-hand side when walking the
10046         trees. Ignore address expressions. Examine VUSE operands in gimple
10047         statements with a variable declaration on the right-hand side.
10048
10049 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
10050
10051         PR bootstrap/37155
10052         * rtlanal.c (subreg_offset_representable_p): Revert last change.
10053
10054 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10055
10056         PR 35701
10057         * c-common.c (conversion_warning): Do not warn if applying bit-and
10058         operator to unsigned constant that fits in the target type.
10059
10060 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10061
10062         PR c++/35602
10063         * c-common.c (conversion_warning): Do not warn for artificial
10064         expressions.
10065
10066 2008-08-20  Richard Guenther  <rguenther@suse.de>
10067
10068         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
10069         (extract_range_from_binary_expr): Fall back to constant propagation.
10070         (extract_range_from_unary_expr): Likewise.
10071
10072 2008-08-20  Richard Guenther  <rguenther@suse.de>
10073
10074         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
10075         with TREE_THIS_VOLATILE on shared nodes.
10076         (fold_stmt_r): Likewise.
10077
10078 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
10079
10080         PR c/37171
10081         * c-parser.c (c_parser_attributes): For keywords use canonical
10082         spelling for attr_name.
10083
10084 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10085
10086         * value-prof.c (check_counter): Revert wrong call to error.
10087
10088 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10089
10090         * profile.c: Update calls to inform.
10091         * value-prof.c: Update calls to inform.
10092
10093 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10094
10095         * diagnostic.c (inform): Add an explicit location_t parameter.
10096         * toplev.h (inform): Update declaration.
10097         * builtins.c: Update all calls to inform.
10098         * c-common.c: Likewise.
10099         * c-decl.c: Likewise.
10100         * c-opts.c: Likewise.
10101         * c-pch.c: Likewise.
10102         * c-pragma.c: Likewise.
10103         * c-typeck.c: Likewise.
10104         * coverage.c: Likewise.
10105         * opts.c: Likewise.
10106         * toplev.c: Likewise.
10107         * tree-cfg.c: Likewise.
10108         * tree-ssa.c: Likewise.
10109
10110 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
10111
10112         PR target/37169
10113         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
10114         V2DI mode, for SSE4.1, use movq instead of vector set if the
10115         second element is zero and inter-unit moves are OK.
10116
10117 2008-08-20  Richard Guenther  <rguenther@suse.de>
10118
10119         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
10120         properly handle conversion/copy chains after tuplification.
10121
10122 2008-08-20  Richard Guenther  <rguenther@suse.de>
10123
10124         * passes.c (init_optimization_passes): Move the second
10125         forwprop pass before alias computation.  Remove the second
10126         DCE pass.  Remove the first dominator and phi copy/const
10127         prop passes.
10128
10129 2008-08-20  Nick Clifton  <nickc@redhat.com>
10130
10131         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
10132         support of this feature.  Do not assume that a sufficiently new
10133         assembler will support the feature regardless of the target type.
10134         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10135         * configure: Regenerate.
10136
10137 2008-08-20  Richard Guenther  <rguenther@suse.de>
10138
10139         * tree-vrp.c (found_in_subgraph): Remove.
10140         (live): New global static.
10141         (live_on_edge): New function.
10142         (blocks_visited): Remove.
10143         (register_edge_assert_for_2): Use live_on_edge.
10144         (find_conditional_asserts): Remove code dealing with
10145         found_in_subgraph.  Do not walk the CFG.
10146         (find_switch_asserts): Likewise.
10147         (find_assert_locations_1): Renamed from find_assert_locations.
10148         Move finding assert locations for conditional and switch
10149         statements first.  Update live bitmap.  Do not walk the CFG.
10150         (find_assert_locations): New function.
10151         (insert_range_assertions): Remove entry of CFG walk.
10152         Adjust call to find_assert_locations.
10153         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
10154         that only can appear because of fake exit edges but assert we
10155         never try to insert on those.
10156         (fini_pre): Do not remove fake exit edges here...
10157         (execute_pre): ...but here, before committing edge inserts.
10158
10159 2008-08-19  Richard Guenther  <rguenther@suse.de>
10160
10161         * passes.c (init_optimization_passes): Exchange store-ccp
10162         with a ccp pass.
10163
10164 2008-08-19  Rafael Espíndola  <espindola@google.com>
10165
10166         * varasm.c (weak_decls): Move earlier in the file.
10167         (assemble_external): Add weak decls to the weak_decls list.
10168         (declare_weak): Don't add decls to the weak_decls list.
10169
10170 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10171
10172         PR target/37157
10173         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
10174         before (sse2_shufpd_<mode>).
10175
10176 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
10177
10178         PR debug/37156
10179         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
10180         * tree.c (block_nonartificial_location): Likewise.
10181
10182 2008-08-19  Richard Guenther  <rguenther@suse.de>
10183
10184         PR tree-optimization/35972
10185         PR tree-optimization/23094
10186         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
10187         parameter.
10188         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
10189         handle MISALIGNED_INDIRECT_REF.
10190         (get_ref_from_reference_ops): New helper.
10191         (vn_reference_lookup_pieces): Walk the use-def chain using the
10192         alias-oracle if requested.
10193         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
10194         walking the use-def chain.
10195         (compute_avail): But not here.
10196         (create_component_ref_by_pieces_1): Properly handle
10197         MISALIGNED_INDIRECT_REF.
10198         (do_regular_insertion): Handle fully redundant
10199         expressions after PHI-translation also for SSA_NAME values, not
10200         only constants.  Correctly use edoubleprime for that.
10201
10202 2008-08-19  Ira Rosen  <irar@il.ibm.com>
10203
10204         * tree-vectorizer.c (supportable_widening_operation): Support
10205         multi-step conversion, return the number of steps in such conversion
10206         and the required intermediate types.
10207         (supportable_narrowing_operation): Likewise.
10208         * tree-vectorizer.h (vect_pow2): New function.
10209         (supportable_widening_operation): Change argument types.
10210         (supportable_narrowing_operation): Likewise.
10211         (vectorizable_type_promotion): Add an argument.
10212         (vectorizable_type_demotion): Likewise.
10213         * tree-vect-analyze.c (vect_analyze_operations): Call
10214         vectorizable_type_promotion and vectorizable_type_demotion with
10215         additional argument.
10216         (vect_get_and_check_slp_defs): Detect patterns.
10217         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
10218         types.
10219         (vect_analyze_slp_instance): Don't fail in case of multiple types.
10220         Call vect_build_slp_tree with correct arguments. Calculate unrolling
10221         factor according to the smallest type in the loop.
10222         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
10223         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
10224         supportable_widening_operation with correct arguments.
10225         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
10226         operands lists according to the number of vector statements in left
10227         or right node, if exists.
10228         (vect_gen_widened_results_half): Remove unused argument.
10229         (vectorizable_conversion): Call supportable_widening_operation,
10230         supportable_narrowing_operation, and vect_gen_widened_results_half
10231         with correct arguments.
10232         (vectorizable_assignment): Change documentation, support multiple
10233         types in SLP.
10234         (vectorizable_operation): Likewise.
10235         (vect_get_loop_based_defs): New function.
10236         (vect_create_vectorized_demotion_stmts): Likewise.
10237         (vectorizable_type_demotion): Support loop-aware SLP and general
10238         multi-step conversion. Call vect_get_loop_based_defs and
10239         vect_create_vectorized_demotion_stmts for transformation.
10240         (vect_create_vectorized_promotion_stmts): New function.
10241         (vectorizable_type_promotion): Support loop-aware SLP and general
10242         multi-step conversion. Call vect_create_vectorized_promotion_stmts
10243         for transformation.
10244         (vectorizable_store): Change documentation, support multiple
10245         types in SLP.
10246         (vectorizable_load): Likewise.
10247         (vect_transform_stmt): Pass SLP_NODE to
10248         vectorizable_type_promotion and vectorizable_type_demotion.
10249         (vect_schedule_slp_instance): Move here the calculation of number
10250         of vectorized statements for each node from...
10251         (vect_schedule_slp): ... here.
10252         (vect_transform_loop): Call vect_schedule_slp without the last
10253         argument.
10254
10255 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
10256
10257         PR bootstrap/37152
10258         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
10259         to == in assert statement.
10260         (vectorizable_reduction): Fix typo.
10261
10262 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10263
10264         PR bootstrap/37153
10265         * value-prof.c (check_counter): Dereference pointer to overall
10266         count when printing it.
10267
10268 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10269
10270         * profile.h: Really add it.
10271
10272 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10273
10274         * mcf.c: Really add it.
10275
10276 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
10277             Vinodha Ramasamy  <vinodha@google.com>
10278
10279         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
10280         count_scale.
10281         * value-prof.c (check_counter): Fix the counter if
10282         flag_profile_correction is true.
10283         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
10284         tree_mod_subtract_transform):
10285         Follow check_counter parameter change.
10286         * common.opt (fprofile-correction): New option.
10287         * mcf.c: New file.
10288         * profile.h: Likewise.
10289         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
10290         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
10291         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
10292         functions.
10293         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
10294         flag_profile_correction is set.
10295
10296 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
10297
10298         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
10299
10300 2008-08-18  Tomas Bily  <tbily@suse.cz>
10301
10302         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
10303         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
10304         CONVERT_EXPR_P.
10305         * tree-data-ref.c (split_constant_offset_1): Likewise.
10306         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
10307         * tree-sra.c (sra_walk_expr): Likewise.
10308         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
10309         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
10310         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
10311         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
10312         Likewise.
10313         * gimple.c (gimple_assign_unary_nop_p): Likewise.
10314         * tree-vect-transform.c (vectorizable_type_demotion)
10315         (vectorizable_type_promotion): Likewise.
10316         * tree-inline.c (expand_call_inline):
10317         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
10318         (forward_propagate_addr_expr_1, forward_propagate_comparison)
10319         (tree_ssa_forward_propagate_single_use_vars): Likewise.
10320         * expr.c (expand_expr_real_1): Likewise.
10321         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
10322         (gimple_assign_unary_useless_conversion_p): Likewise.
10323         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10324         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
10325         * fold-const.c (fold_unary): Likewise.
10326         * tree.h (CONVERT_EXPR_P): Likewise.
10327         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
10328         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
10329         * tree-vrp.c:
10330         (register_edge_assert_for_2, extract_range_from_unary_expr)
10331         (register_edge_assert_for_1): Likewise.
10332
10333 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10334
10335         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
10336         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
10337         (enum real_value_const): Delete.
10338         (get_real_const): Delete.
10339         * real.c (get_real_const): Delete.
10340         (dconst_e_ptr): Define.
10341         (dconst_third_ptr): Define.
10342         (dconst_sqrt2_ptr): Define.
10343         * builtins.c: Update all callers.
10344
10345 2008-08-18  Richard Guenther  <rguenther@suse.de>
10346
10347         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
10348         statement iterator after statement removal.
10349
10350 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
10351
10352         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
10353         (detect_processor_freebsd): Likewise.
10354         (host_detect_local_cpu): Call newly added functions for FreeBSD.
10355
10356 2008-08-18  Richard Guenther  <rguenther@suse.de>
10357
10358         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
10359         and loads have the correct types.
10360
10361 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10362
10363         PR cpp/7263
10364         * c-opts.c (cpp_opts): Remove static.
10365         * c-parser.c (cpp_opts): Declare it extern.
10366         (disable_extension_diagnostics): Handle cpp options.
10367         (enable_extension_diagnostics): Likewise.
10368
10369 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10370
10371         * diagnostics.c (permerror_at): Rename as permerror.
10372         (permerror): Delete.
10373         * toplev.h: Likewise.
10374
10375 2008-08-18  Richard Guenther  <rguenther@suse.de>
10376
10377         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
10378         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
10379         Move call_cdce before build_alias.  Move copyrename2,
10380         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
10381         right after final inlining.
10382         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
10383         (pass_build_cfg): But instead via TODO_dump_func.
10384
10385 2008-08-18  Richard Guenther  <rguenther@suse.de>
10386
10387         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
10388         element index.
10389         (scalarize_init): If we failed to generate some initializers
10390         do not generate zeros for not instantiated members.  Instead
10391         rely on the copy out.
10392         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
10393         about missing flow-sensitive alias info only if we have
10394         aliases computed.
10395
10396 2008-08-17  Nick Clifton  <nickc@redhat.com>
10397
10398         * doc/extend.texi (Function Attributes): Fix typo in description
10399         if hot function attribute.
10400
10401 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
10402             Richard Sandiford  <rdsandiford@googlemail.com>
10403
10404         * doc/install.texi (--with-mips-plt): Document.
10405         * doc/invoke.texi (-mplt, -mno-plt): Document.
10406         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
10407         and handle ${with_mips_plt}.
10408         * config/mips/mips.opt (mplt): New option.
10409         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
10410         (TARGET_ABICALLS_PIC2): Likewise.
10411         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
10412         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
10413         (ASM_SPEC): Use !mabi=* instead of !mabi*.
10414         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
10415         to decide whether to output ".option picX" directives.
10416         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
10417         Pass -call_nonpic rather than -KPIC for -mplt.
10418         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
10419         on the command line.  Also remove it when -mabi=64 is used without
10420         -msym32.
10421         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
10422         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
10423         TARGET_ABICALLS_PIC0.
10424         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
10425         TARGET_ABICALLS.
10426         (mips16_build_function_stub): Only output ".option pic" directives
10427         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
10428         (mips16_build_call_stub): Fix comment and remove redundant
10429         ".set at"/"set .noat" directives.
10430         (mips_function_rodata_section): Use the default behaviour for
10431         TARGET_ABSOLUTE_ABICALLS.
10432         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
10433         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
10434         (mips_restore_gp): Do nothing if the current function doesn't use
10435         a global pointer.
10436         (mips_expand_prologue): Only save $gp if the current function uses it.
10437         Use a normal move for TARGET_ABICALLS_PIC0.
10438         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
10439
10440 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
10441
10442         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
10443         of function when handling GLOBAL_POINTER_REGNUM.
10444
10445 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
10446
10447         PR ada/20548
10448         * common.opt (-fstack-check): Do not declare the variable here.
10449         (-fstack-check=): New option variant.
10450         * doc/invoke.texi (Code Gen Options): Document it.
10451         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
10452         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
10453         (STACK_CHECK_STATIC_BUILTIN): New macro.
10454         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
10455         * opts.c: Include expr.h.
10456         (common_handle_option) <OPT_fold_stack_check_>: New case.
10457         <OPT_fstack_check>: Likewise.
10458         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
10459         consistently in the test for variable-sized types.  Adjust for
10460         new behaviour of flag_stack_check.
10461         * explow.c: Include except.h.
10462         (allocate_dynamic_stack_space): Do not take into account
10463         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
10464         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
10465         for variable-sized parameters.  Treat all parameters whose size is
10466         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
10467         stack checking is enabled.
10468         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
10469         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
10470         if generic stack checking is enabled.
10471         (expand_function_end): Adjust for new behaviour of flag_stack_check.
10472         * reload1.c (reload): Likewise.
10473         * stmt.c (expand_decl): Assert that all automatic variables have
10474         fixed size at this point and remove dead code.
10475         * flags.h (stack_check_type): New enumeration type.
10476         (flag_stack_check): Declare.
10477         * toplev.c (flag_stack_check): New global variable.
10478         * Makefile.in (opts.o): Add dependency on EXPR_H.
10479         (explow.o): Add dependency on except.h.
10480
10481 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
10482
10483         * config/avr/avr.c (avr_override_options): Reduce value of
10484         PARAM_INLINE_CALL_COST.
10485
10486 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
10487
10488         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
10489         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
10490         lieu of TYPE_MODE (type) throughout.
10491
10492 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
10493
10494         * config/arm/arm.c (add_minipool_backward_ref): Check for
10495         8-byte-aligned entries in second case of forcing insertion after a
10496         particular entry.  Change third case to avoid inserting
10497         non-8-byte-aligned entries before 8-byte-aligned ones.
10498
10499 2008-08-15  Richard Guenther  <rguenther@suse.de>
10500
10501         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
10502         strip components for unknown size accesses.
10503
10504 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
10505
10506         * config/s390/2097.md New file.
10507         * config/s390/s390.md ("z10prop" attribute): Define none,
10508         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
10509         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
10510         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
10511         possible values and apply them to insns as appropriate.
10512         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
10513         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
10514         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
10515         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
10516         ("bfp" mode attribute): Removed.  Every occurence replaced
10517         with <mode>.
10518         * config/s390/s390.c (struct "z10_cost"): Updated entries.
10519         * config/s390/2084.md (insn_reservation "x_itof"): Updated
10520         type attribute.
10521
10522 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10523
10524         PR c/28152
10525         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
10526         for keywords.
10527
10528 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
10529
10530         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
10531         additional argument. Support reduction when duplication is needed due
10532         to data-types of different sizes in the loop.
10533         (get_initial_def_for_induction): Fix printout.
10534         (vect_get_vec_def_for_stmt_copy): Support case where the
10535         vec_stmt_for_operand is a phi node.
10536         (vectorizable_reduction): Support reduction when duplication is needed
10537         due to data-types of different sizes in the loop.
10538         (vectorizable_call): Remove restriction to not vectorize in case we
10539         have data-types of different sizes in the loop.
10540         (vectorizable_conversion): Likewise.
10541         (vectorizable_operation): Likewise.
10542         (vectorizable_type_demotion): Likewise.
10543         (vectorizable_type_promotion): Likewise.
10544         (vectorizable_induction): Add restriction to not vectorize in case
10545         we have data-types of different sizes in the loop.
10546
10547 2008-08-14  Christophe Saout  <christophe@saout.de>
10548             Uros Bizjak  <ubizjak@gmail.com>
10549
10550         PR target/37101
10551         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
10552         (*vec_concatv2di_rex64_sse4_1): Ditto.
10553         (*vec_concatv2di_rex64_sse): Ditto.
10554
10555 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
10556
10557         PR middle-end/37103
10558         * fold-const.c (fold_widened_comparison): Do not allow
10559         sign changes that change the result even if shorter type
10560         is wider than arg1_unw's type.
10561
10562 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
10563
10564         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
10565         Skip if the multilib testing specifies -march that does not
10566         agree with the one specified in the testcase.
10567
10568 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
10569
10570         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
10571         zero extend SImode values being converted to TFmode before passing
10572         to libcalls.
10573
10574 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10575
10576         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
10577         __PPU__ when targeting the Cell/B.E. PPU processor.
10578
10579 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
10580
10581         * gimple.h (gimple_call_set_chain): Accept SSA variables.
10582         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
10583         Rematerialize the static chain, if any.
10584         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
10585         static chain.
10586
10587 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10588
10589         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
10590         (new_loc_descr): Likewise.
10591         (add_loc_descr): Likewise.
10592         (size_of_loc_descr): Likewise.
10593         (size_of_locs): Likewise.
10594         (output_loc_operands): Likewise.
10595         (output_loc_sequence): Likewise.
10596         (new_reg_loc_descr): New.
10597         (build_cfa_loc): Use it.
10598         (build_cfa_aligned_loc): Likewise.
10599         (one_reg_loc_descriptor): Likewise.
10600         (based_loc_descr): Likewise.
10601
10602 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10603
10604         PR 30551
10605         * doc/invoke.texi (Wmain): Update.
10606         * c-decl.c (start_decl): warn_main is only 0 or 1.
10607         (start_function): Likewise. Fix formatting.
10608         (finish_function): Delete redundant warning.
10609         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
10610         * c-opts (c_common_handle_option): -Wall only has effect if
10611         warn_main is uninitialized. OPT_Wmain is automatically
10612         handled. -pedantic also enables Wmain.
10613         (c_common_post_options): Handle all logic for Wmain here.
10614         * c-common.c (warn_main): Delete.
10615         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
10616         * c-common.h (warn_main): Delete.
10617
10618 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10619
10620         PR middle-end/36701
10621         * expr.c (emit_group_store): Allocate stack temp with the
10622         largest alignment when copying from register to stack.
10623
10624 2008-08-13  Richard Guenther  <rguenther@suse.de>
10625
10626         * tree.h (maybe_fold_offset_to_address): Declare.
10627         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
10628         (ccp_fold): Handle pointer conversions the same as fold_stmt.
10629         Likewise for POINTER_PLUS_EXPR.
10630         (maybe_fold_offset_to_reference): Enable disabled code.
10631         (maybe_fold_offset_to_address): New function.
10632         (fold_stmt_r): Use it.
10633         (fold_gimple_assign): Likewise.
10634         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
10635         (gimplify_expr): Likewise.
10636
10637 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10638
10639         * toplev.h (pedwarn_at): Fix declaration.
10640
10641 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
10642
10643         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10644         LINK_SPEC): Use %R in -Y P argument.
10645
10646 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10647
10648         PR c/15236
10649         * diagnostic.c (pedwarn_at): New.
10650         * toplev.h (pedwarn_at): Declare.
10651         * c-tree.h (build_enumerator): Update declaration.
10652         * c-decl.c (finish_enum): Update comment.
10653         (build_enumerator): Take a location parameter. Give a pedwarn but do
10654         not perform any conversion.
10655         * c-parser.c (c_parser_enum_specifier): Set correct location for
10656         enumerator.
10657
10658 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10659
10660         PR 35635
10661         * c-common.c (conversion_warning): Use a switch. Ignore boolean
10662         expressions except for conversions to signed:1 bitfields. Handle
10663         COND_EXPR with constant operands.
10664
10665 2008-08-13  Richard Guenther  <rguenther@suse.de>
10666
10667         PR tree-optimization/15255
10668         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
10669         (struct oecount_s): New struct and VEC types.
10670         (cvec): New global.
10671         (oecount_hash): New function.
10672         (oecount_eq): Likewise.
10673         (oecount_cmp): Likewise.
10674         (zero_one_operation): New function.
10675         (build_and_add_sum): Likewise.
10676         (undistribute_ops_list): Perform un-distribution of multiplication
10677         and division on the chain of summands.
10678         (should_break_up_subtract): Also break up subtracts for factors.
10679         (reassociate_bb): Delete dead visited statements.
10680         Call undistribute_ops_list.  Re-sort and optimize if it did something.
10681         * passes.c (init_optimization_passes): Move DSE before
10682         reassociation.
10683         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
10684         PHI nodes.
10685
10686 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
10687
10688         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
10689
10690         * doc/invoke.texi: Revert unintended checkin.
10691
10692 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
10693
10694         PR libgomp/26165
10695         * gcc.c (include_spec_function): Tweak call to find_a_file.
10696
10697 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
10698
10699         PR middle-end/37014
10700         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
10701         and TRUTH_ORIF_EXPR.
10702         * dojump.c (do_jump): Likewise.
10703
10704         PR tree-optimization/37084
10705         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
10706         if id->regimplify, don't assume stmt is a cast assignment.
10707
10708 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
10709
10710         * final.c (final_scan_insn): Use app_enable/app_disable functions.
10711
10712 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10713
10714         PR bootstrap/37097
10715         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
10716         by last change.
10717
10718 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10719
10720         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
10721         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
10722
10723         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
10724         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
10725         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
10726         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
10727         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
10728
10729         * doc/tm.texi (Storage Layout): Remove documentation for
10730         TARGET_FLOAT_FORMAT.
10731
10732         * simplify-rtx.c (simplify_binary_operation_1): Replace
10733         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
10734
10735 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10736
10737         * real.h (struct real_format): New member has_sign_dependent_rounding.
10738         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
10739         spu_single_format, ieee_double_format, mips_double_format,
10740         motorola_double_format, ieee_extended_motorola_format,
10741         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10742         ieee_extended_intel_96_round_53_format, ibm_extended_format,
10743         mips_extended_format, ieee_quad_format, mips_quad_format,
10744         vax_f_format, vax_d_format, vax_g_format): Initialize it.
10745         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10746
10747         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10748         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10749         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10750         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10751         (ROUND_TOWARDS_ZERO): Likewise.
10752
10753         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
10754         (FLOAT_MODE_FORMAT): New macro.
10755         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
10756         (MODE_COMPOSITE_P): ... this new macro.
10757         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10758         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
10759         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
10760
10761         * flags.h: Include "real.h".
10762
10763         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
10764         REAL_MODE_FORMAT_COMPOSITE_P.
10765         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
10766
10767         * doc/tm.texi (Storage Layout): Remove documentation of
10768         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10769         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
10770         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
10771         they only apply to libgcc2.a.
10772
10773 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10774
10775         * config/spu/float_disf.c: New file.
10776         * config/spu/float_unsdisf.c: New file.
10777         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
10778         (LIB2FUNCS_EXCLUDE): Define.
10779
10780 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10781             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10782
10783         * real.h (struct real_format): New member round_towards_zero.
10784         * real.c (round_for_format): Respect fmt->round_towards_zero.
10785         (ieee_single_format, mips_single_format, motorola_single_format,
10786         spu_single_format, ieee_double_format, mips_double_format,
10787         motorola_double_format, ieee_extended_motorola_format,
10788         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10789         ieee_extended_intel_96_round_53_format, ibm_extended_format,
10790         mips_extended_format, ieee_quad_format, mips_quad_format,
10791         vax_f_format, vax_d_format, vax_g_format): Initialize it.
10792         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10793
10794         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
10795         real_format to choose rounding mode when calling MPFR functions.
10796         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
10797         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
10798
10799         * real.h (real_to_decimal_for_mode): Add prototype.
10800         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
10801         Respect target rounding mode when generating decimal representation.
10802         (real_to_decimal): New stub for backwards compatibility.
10803         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
10804         real_to_decimal_for_mode instead of real_to_decimal.
10805
10806         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
10807
10808 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10809             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10810
10811         * real.c (spu_single_format): New variable.
10812         * real.h (spu_single_format): Declare.
10813
10814         * config/spu/spu.c (spu_override_options): Install SFmode format.
10815         (spu_split_immediate): Use integer mode to operate on pieces of
10816         floating-point values in all cases.
10817
10818         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
10819         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
10820         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
10821
10822 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10823
10824         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
10825
10826 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10827
10828         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
10829
10830 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
10831
10832         PR c++/36688
10833         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
10834         on the VAR_DECL instead of TYPE_READONLY on its type.
10835
10836 2008-08-12  Ira Rosen  <irar@il.ibm.com>
10837
10838         * tree-vectorizer.c: Depend on langhooks.h.
10839         (supportable_widening_operation): Add two arguments. Support double
10840         type conversions.
10841         (supportable_narrowing_operation): Likewise.
10842         * tree-vectorizer.h (supportable_widening_operation): Add two
10843         arguments.
10844         (supportable_narrowing_operation): Likewise.
10845         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
10846         supportable_widening_operation with correct arguments.
10847         * tree-vect-transform.c (vectorizable_conversion): Likewise.
10848         (vectorizable_type_demotion): Support double type conversions.
10849         (vectorizable_type_promotion): Likewise.
10850         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
10851
10852 2008-08-11  Michael Matz  <matz@suse.de>
10853
10854         * i386/i386.c (override_options): Move initialisation from
10855         flag_schedule_insns_after_reload to here from ...
10856         (optimization_options): ... here.
10857
10858 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
10859
10860         PR rtl-optimization/36998
10861         * dwarf2out.c (compute_barrier_args_size_1,
10862         compute_barrier_args_size): Temporarily remove assertions.
10863
10864 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10865
10866         PR middle-end/20644
10867         * tree-ssa.c (struct walk_data): Add new flag
10868         warn_possibly_uninitialized.
10869         (warn_uninitialized_var): Use it.
10870         (warn_uninitialized_vars): New.
10871         (execute_early_warn_uninitialized): Call it.
10872         (execute_late_warn_uninitialized): Likewise.
10873
10874 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10875
10876         PR middle-end/36238
10877         * reload1.c (gen_reload): Guard calls to get_secondary_mem
10878         for memory subregs.
10879
10880 2008-08-09  Jan Hubicka  <jh@suse.cz>
10881
10882         PR target/37055
10883         * optabs.c (maybe_emit_unop_insn): Remove produced code if
10884         expansion failed.
10885         (expand_fix): Be prepared for expansion to fail.
10886         (expand_sfix_optab): Remove instructions if expansion failed.
10887
10888 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
10889
10890         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
10891         avr31 architecture.
10892         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
10893         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10894
10895 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
10896
10897         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
10898         mips/t-libgcc-mips16 to tmake_file.
10899         * config/mips/mips-protos.h (mips_call_type): New enum.
10900         (mips_pic_base_register, mips_got_load): Declare.
10901         (mips_restore_gp): Take an rtx argument.
10902         (mips_use_pic_fn_addr_reg_p): Declare.
10903         (mips_expand_call): Replace the sibcall_p argument with
10904         a mips_call_type argument.  Add a lazy_p parameter.
10905         (mips_split_call): Declare.
10906         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
10907         (MIPS16_PIC_TEMP): Likewise.
10908         (reg_class): Delete M16_NA_REGS.
10909         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
10910         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
10911         (mips_split_hi_p): Declare.
10912         * config/mips/mips.c (mips_split_hi_p): New array.
10913         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
10914         (mips_got_symbol_type_p): New function.
10915         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
10916         (mips16_stub_function_p): New function.
10917         (mips16_local_function_p): Likewise.
10918         (mips_use_pic_fn_addr_reg_p): Likewise.
10919         (mips_cannot_force_const_mem): Return false for HIGHs.
10920         Extend CONST_INT and symbolic handling to MIPS16, using
10921         mips_symbol_insns to check that the base symbol type is a
10922         legitimate constant.  Reject GOT-based constants if
10923         TARGET_MIPS16_PCREL_LOADS.
10924         (mips_const_insns): Check targetm.cannot_force_const_mem when
10925         decomposing a symbolic base and a large offset.
10926         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
10927         When calling a function that needs $25 from MIPS16 code,
10928         move the target address into $25 separately and add a USE
10929         to the call insn.
10930         (mips16_gp_pseudo_reg): Insert the initializer immediately
10931         before the first real insn.
10932         (mips_pic_base_register, mips_got_load): New functions.
10933         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
10934         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
10935         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
10936         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
10937         (mips_call_tls_get_addr): Update the call to mips_expand_call,
10938         also passing NULL_RTX rather than const0_rtx as the aux argument.
10939         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
10940         instead of TARGET_EXPLICIT_RELOCS.
10941         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
10942         (mips_load_call_address): Replace the sibcall_p argument with
10943         a mips_call_type argument.  Use mips_got_load.
10944         (mips16_local_alias): New structure.
10945         (mips16_local_aliases): New variable.
10946         (mips16_local_aliases_hash): New function.
10947         (mips16_local_aliases_eq): Likewise.
10948         (mips16_local_alias): Likewise.
10949         (mips16_stub_function): Likewise.
10950         (mips16_build_function_stub): Create a local alias for the target
10951         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
10952         .cpload directive and an R_MIPS_NONE relocation for the target
10953         function, then load the alias rather than the function itself.
10954         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
10955         (mips16_copy_fpr_return_value): Use mips16_stub_function and
10956         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
10957         (mips16_build_call_stub): Replace the FN parameter with an
10958         FN_PTR parameter.  Force the address into a register if it
10959         isn't a call_insn_operand; don't rely on the caller to do this.
10960         If a call to a locally-defined and locally-binding MIPS16
10961         function must be made indirectly, redirect the call to the
10962         function's local alias.  Use mips16_stub_function_p,
10963         mips16_stub_function, mips_expand_call and use_reg.
10964         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
10965         Use explicit %hi and %lo accesses where possible.
10966         Use MIPS_CALL to generate the correct code form of a
10967         jal instruction.  Add clobbers of $18 instead of uses.
10968         Update the call to mips_emit_call_insn.
10969         (mips_expand_call): Replace the SIBCALL_P argument with a
10970         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
10971         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
10972         allowing it to modify the call address.  Update the calls to
10973         mips_load_call_address and mips_emit_call_insn.
10974         (mips_split_call): New function.
10975         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
10976         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
10977         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
10978         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
10979         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
10980         if TARGET_MIPS16.
10981         (mips_cprestore_slot): New function.
10982         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
10983         and use mips_cprestore_slot.
10984         (mips_output_function_prologue): Handle TARGET_MIPS16 for
10985         LOADGP_OLDABI.
10986         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
10987         then use a copygp_mips16 instruction to set up $28.
10988         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
10989         (mips16_lay_out_constants): Call split_all_insns_noflow.
10990         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
10991         false if TARGET_MIPS16.
10992         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
10993         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
10994         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
10995         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
10996         MIPS16 code.  Allow MIPS16 o32 PIC.
10997         (mips_override_options): Allow MIPS16 o32 PIC.
10998         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
10999         after reload if TARGET_USE_GOT.
11000         (UNSPEC_COPYGP): New constant.
11001         (length): Use a default length of 8 for MIPS16 GOT loads.
11002         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
11003         (*got_page<mode>): Check mips_split_hi_p.
11004         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
11005         (unspec_got<mode>, unspec_call<mode>): New expanders.
11006         (load_got<mode>, load_call<mode>): Remove the length attributes.
11007         Use a got attribute instead of a type attribute.
11008         (copygp_mips16): New insn.
11009         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
11010         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
11011         (sibcall, sibcall_value, call, call_value): Update the calls
11012         to mips_expand_call.
11013         (call_internal, call_value_internal): Use mips_split_call.
11014         (call_value_multiple_internal): Likewise.
11015         (call_split): Move after call_internal (the insn it is split from).
11016         (call_internal_direct, call_value_internal_direct): Turn into
11017         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
11018         (call_direct_split, call_value_direct_split): New patterns.
11019         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
11020         and use M16_REGS instead of M16_NA_REGS.
11021         * config/mips/predicates.md (const_call_insn_operand): Replace
11022         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
11023         mips_use_pic_fn_addr_reg_p check.
11024         (move_operand): Reject HIGHs if mips_split_hi_p.
11025         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
11026         (__mips16_floatunsisf): Inline __mips16_floatsisf.
11027         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
11028         * config/mips/libgcc-mips16.ver: New file.
11029         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
11030         $(srcdir)/config/mips/libgcc-mips16.ver.
11031
11032 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11033
11034         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
11035         in file.
11036         (mips_unspec_address, mips_unspec_offset_high): Likewise.
11037         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
11038         (mips16_cfun_returns_in_fpr_p): Likewise.
11039
11040 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11041
11042         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
11043         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
11044         rather than 4 to PC.
11045
11046 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11047
11048         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
11049         (FUNCTION_PROFILER): Save the static chain pointer into $2
11050         beforehand and restore it aftewards.
11051         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
11052         address directly into $25 and call the function through $25;
11053         do not clobber $3.  Pad the DImode version to cover the space
11054         left by the deleted $25 <- $3 move.
11055         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
11056         the removal of the $25 <- $3 move.
11057         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
11058         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
11059
11060 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
11061             Daniel Jacobowitz  <dan@codesourcery.com>
11062
11063         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
11064         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
11065         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
11066         * config/mips/mips.c (mips_start_function_definition): New function.
11067         (mips_end_function_definition): Likewise.
11068         (mips_output_function_prologue): Use mips_start_function_definition.
11069         (mips_output_function_epilogue): Use mips_end_function_definition.
11070         (build_mips16_function_stub): Use mips_start_function_definition
11071         and mips_end_function_definition.
11072         (build_mips16_call_stub): Likewise.
11073
11074 2008-08-09  Richard Guenther  <rguenther@suse.de>
11075
11076         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
11077         * gimple.h (gimple_call_fn): Adjust comment.
11078         (gimple_call_set_fndecl): New function.
11079         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
11080         longer having bare FUNCTION_DECL operand.
11081         (gimple_call_return_type): Likewise.
11082         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
11083
11084         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
11085         (gimple_mod_pow2): Likewise.
11086         (gimple_mod_subtract): Likewise.
11087         (gimple_ic): Likewise.
11088         (gimple_stringop_fixed_value): Likewise.
11089         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
11090         longer having bare FUNCTION_DECL operand.
11091         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
11092         * omp-low.c (optimize_omp_library_calls): Likewise.
11093         * cgraphunit.c (update_call_expr): Likewise.
11094         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
11095         (execute_convert_to_rsqrt): Likewise.
11096         * cfgexpand.c (gimple_to_tree): Simplify.
11097         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
11098         bare FUNCTION_DECL operand.
11099         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
11100         (convert_gimple_call): Use gimple_call_fndecl.
11101         * c-common.c (c_warn_unused_result): Likewise.
11102
11103 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11104
11105         PR c/17880
11106         * c-typeck.c (digest_init): Call verify_sequence_points from here.
11107         (c_finish_return): Likewise.
11108         (c_start_case): Likewise.
11109         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
11110         * c-parser.c (c_parser_condition): New. Call
11111         verify_sequence_points.
11112         (c_parser_paren_condition): Call c_parser_condition.
11113         (c_parser_for_statement): Call c_parser_condition.
11114
11115 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11116
11117         PR 36901
11118         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
11119         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
11120         Moved from diagnostic.h
11121         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
11122         DK_PERMERROR.
11123         (emit_diagnostic): New.
11124         (warning0, pedwarn0): Delete.
11125         (warning, warning_at, pedwarn, permerror): Return bool.
11126         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
11127         Moved to diagnostic.c.
11128         (struct diagnostic_context): Use correct type for
11129         classify_diagnostic.
11130         (diagnostic_report_diagnostic): Update declaration.
11131         (emit_diagnostic): Declare.
11132         * errors.c (warning): Return bool.
11133         * errors.h (warning): Update declaration.
11134         * toplev.h (warning0, pedwarn0): Delete.
11135         (warning, warning_at, pedwarn, permerror): Return bool.
11136         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
11137         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
11138         inform. Update all calls.
11139         (diagnose_mismatched_decls): Check return value of warning/pedwarn
11140         before giving informative note.
11141         (implicit_decl_warning): Likewise.
11142         * c-typeck.c (build_function_call): Likewise.
11143         * tree-sssa.c (warn_uninit): Likewise.
11144         * builtins.c (gimplify_va_arg_expr): Likewise.
11145
11146 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11147
11148         PR 7651
11149         * doc/invoke.texi (-Wextra): Move warning from here...
11150         (-Wuninitialized): ... to here.
11151
11152 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11153
11154         PR 28875
11155         * flags.h (set_Wunused): Delete
11156         * toplev.c (process_options): Handle Wunused flags here.
11157         * opts.c (maybe_warn_unused_parameter): Delete.
11158         (common_handle_option): Replace set_Wunused by warn_unused.
11159         (set_Wextra): Do not handle Wunused-parameter here.
11160         (set_Wunused): Delete.
11161         * c-opts.c (c_common_handle_option): Replace set_Wunused by
11162         warn_unused.
11163         * common.opt (Wunused): Add Var and Init.
11164         (Wunused-function): Likewise.
11165         (Wunused-label): Likewise.
11166         (Wunused-parameter): Likewise.
11167         (Wunused-value): Likewise.
11168         (Wunused-variable): Likewise.
11169
11170 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
11171
11172         * doc/invoke.texi: Add cpu_type power7.
11173         * config.in (HAVE_AS_VSX): New.
11174         * config.gcc: Add cpu_type power7.
11175         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
11176         VSX instructions.
11177         * configure: Regenerate.
11178         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
11179         power5.
11180         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
11181         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
11182         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
11183
11184 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
11185
11186         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
11187         type to vectorize.builtin_conversion.
11188         (vectorizable_conversion): Likewise.
11189         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
11190         integral type as input.
11191         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
11192         FIX_TRUNC_EXPR.
11193         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
11194         and ALTIVEC_BUILTIN_VCTSXS.
11195         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
11196         formatting.
11197
11198 2008-08-08  Richard Guenther  <rguenther@suse.de>
11199
11200         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
11201         (surely_varying_stmt_p): Calls are varying only if they are
11202         non-builtin and not indirect or have no result.
11203         (ccp_fold): Re-instantiate code before the tuples merge.
11204
11205 2008-08-08  Richard Guenther  <rguenther@suse.de>
11206
11207         PR tree-optimization/37056
11208         * gimple.h (gimple_assign_rhs_class): New helper function.
11209         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
11210         unary operations properly.
11211
11212 2008-08-07  Jan Hubicka  <jh@suse.cz>
11213
11214         * i386.h (ix86_size_cost): Declare.
11215         (ix86_cur_cost): New function macro.
11216         * i386.md (peepholes expanding size and splitters): Predicate by
11217         optimize_insn_for_speed_p.
11218         (peepholes reduce size and splitters): Predicate by
11219         optimize_insn_for_size_p.
11220         * i386.c (ix86_size_cost): Rename from ...
11221         (size_cost): This one.
11222         (override_options): Update.
11223         (decide_alg): Likewise.
11224         (ix86_expand_clear): Use RTL profile.
11225         (ix86_pad_returns): Use RTL profile.
11226
11227 2008-08-07  Jan Hubicka  <jh@suse.cz>
11228
11229         * recog.c (split_all_insns): Set RTL profile
11230         (peephole2_optimize): Likewise.
11231         * function.c (thread_prologue_and_epilogue_insns): Likewise.
11232         * combine.c (combine_instructions): Likewise.
11233
11234 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11235
11236         * c-common.c (c_common_reswords): Also warn about keyword "bool".
11237
11238 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
11239
11240         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
11241         value in a6 after the set_frame_ptr insn.
11242
11243 2008-08-07  Richard Henderson  <rth@redhat.com>
11244
11245         PR debug/37033
11246         * gcc.c (cpp_options): Pass along -g*.
11247
11248 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
11249
11250         * config/arm/arm.c (output_move_neon): Update comment describing
11251         big-endian vector layout.
11252         (arm_assemble_integer): Do not handle big-endian NEON vectors
11253         specially.
11254         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
11255         neon_vget_lane<mode>_sext_internal,
11256         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
11257         element indices for big-endian.
11258
11259 2008-08-07  Richard Henderson  <rth@redhat.com>
11260
11261         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
11262         * configure, config.in: Rebuild.
11263         * debug.h (dwarf2out_do_cfi_asm): Declare.
11264         * c-cppbuiltin.c (c_cpp_builtins): Use it.
11265         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
11266         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
11267         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
11268
11269 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
11270
11271         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
11272         movv2si_internal): Combine into mov<mode>_internal.
11273         (movv2si_internal_2): Remove.
11274
11275 2008-08-07  Jan Hubicka  <jh@suse.cz>
11276
11277         PR target/37048
11278         * i386.md (single stringop patterns): Enable unconditionally.
11279
11280 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
11281
11282         PR target/36992
11283         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
11284
11285         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
11286         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
11287
11288         * config/i386/sse.md (sse2_movq128): New.
11289
11290         * doc/extend.texi: Document __builtin_ia32_movq128.
11291
11292 2008-08-07  Richard Guenther  <rguenther@suse.de>
11293
11294         PR middle-end/37042
11295         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
11296         pointers can access anything.
11297
11298 2008-08-06  Jan Hubicka  <jh@suse.cz>
11299
11300         * optabs.c (emit_unop_insn): Break out to ...
11301         (maybe_emit_unop_insn): ... this one.
11302         (expand_sfix_optab): Use maybe variant.
11303         * optabs.h (maybe_emit_unop_insn): Declare.
11304
11305         * i386.md (mov0 patterns): Enable by default.
11306         (FP conversion expanders): Disable expansion of code expanding
11307         sequences when instruction should be optimized for size.
11308         (single strinop patterns): Enable when optimizing for size.
11309         (string expanders): Disable expanding of code expanding sequences
11310         when optimizning instruction for size.
11311         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
11312         per BB basis.
11313         (ix86_fp_comparison_sahf_cost): Likewise.
11314         (ix86_expand_branch): Likewise.
11315         (ix86_expand_ashl_const): Likewise.
11316         (ix86_split_ashl): Likewise.
11317         (ix86_expand_strlen): Likewise.
11318         (ix86_emit_fp_unordered_jump): Likewie.
11319
11320 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11321
11322         * c-common.c: Fix typo.
11323         (c_common_reswords): Activate more C++ keyword warnings.
11324
11325         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
11326
11327 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11328
11329         PR 26785
11330         * diagnostic.c (permerror_at): New.
11331         * toplev.h (permerror_at): Declare.
11332
11333 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
11334             Ira Rosen  <irar@il.ibm.com>
11335
11336         * tree-vect-transform.c (vect_model_simple_cost): Return
11337         immediately if stmt is pure SLP.
11338         (vect_model_store_cost): Ditto.
11339         (vect_model_load_cost): Ditto.
11340         (vectorizable_store): Remove PURE_SLP check before call
11341         to vect_model_store_cost.
11342         (vect_model_store_cost): When checking whether stmt describe
11343         strided access, add a check that it is not slp_node.
11344
11345 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11346
11347         PR 8715
11348         * c-common.c (warn_for_sign_compare): New. Handle separately the
11349         case that 'constant' is zero.
11350         * c-typeck.c (build_binary_op): Move code to c-common.c
11351
11352 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11353
11354         * config/alpha/alpha.c (alpha_preferred_reload_class,
11355         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
11356         alpha_output_mi_thunk_osf): Avoid C++ keywords.
11357         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
11358         * config/arm/arm.md: Likewise.
11359         * config/avr/avr-protos.h (preferred_reload_class,
11360         test_hard_reg_class, avr_simplify_comparison_p,
11361         out_shift_with_cnt, class_max_nregs): Likewise.
11362         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
11363         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
11364         preferred_reload_class, test_hard_reg_class): Likewise.
11365         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
11366         bfin_memory_move_cost, bfin_secondary_reload,
11367         bfin_output_mi_thunk): Likewise.
11368         * config/crx/crx.c (crx_secondary_reload_class,
11369         crx_memory_move_cost): Likewise.
11370         * config/frv/frv-protos.h (frv_secondary_reload_class,
11371         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
11372         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
11373         frv_secondary_reload_class, frv_class_likely_spilled_p,
11374         frv_class_max_nregs): Likewise.
11375         * config/h8300/h8300.c (h8300_classify_operand,
11376         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
11377         Likewise.
11378         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
11379         * config/ia64/ia64.c (ia64_preferred_reload_class,
11380         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
11381         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
11382         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
11383         Likewise.
11384         * config/m68hc11/m68hc11.c (preferred_reload_class,
11385         m68hc11_memory_move_cost): Likewise.
11386         * config/mcore/mcore.c (mcore_secondary_reload_class,
11387         mcore_reload_class): Likewise.
11388         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
11389         mips_class_max_nregs, mips_cannot_change_mode_class,
11390         mips_preferred_reload_class, mips_secondary_reload_class,
11391         mips_output_mi_thunk): Likewise.
11392         * config/mmix/mmix.c (mmix_preferred_reload_class,
11393         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
11394         Likewise.
11395         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11396         Likewise.
11397         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
11398         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
11399         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11400         * config/rs6000/rs6000.c (paired_expand_vector_init,
11401         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
11402         compare_section_name, rs6000_memory_move_cost): Likewise.
11403         * config/s390/s390.c (s390_emit_compare_and_swap,
11404         s390_preferred_reload_class, s390_secondary_reload,
11405         legitimize_pic_address, legitimize_tls_address,
11406         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
11407         s390_class_max_nregs): Likewise.
11408         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11409         * config/s390/s390.md: Likewise.
11410         * config/score/score-protos.h (score_secondary_reload_class,
11411         score_preferred_reload_class): Likewise.
11412         * config/score/score.c (score_preferred_reload_class,
11413         score_secondary_reload_class): Likewise.
11414         * config/score/score3.c (score3_output_mi_thunk,
11415         score3_preferred_reload_class, score3_secondary_reload_class,
11416         score3_hard_regno_mode_ok): Likewise.
11417         * config/score/score3.h (score3_preferred_reload_class,
11418         score3_secondary_reload_class): Likewise.
11419         * config/score/score7.c (score7_output_mi_thunk,
11420         score7_preferred_reload_class, score7_secondary_reload_class,
11421         score7_hard_regno_mode_ok): Likewise.
11422         * config/score/score7.h (score7_preferred_reload_class,
11423         score7_secondary_reload_class): Likewise.
11424         * config/sh/sh.c (prepare_move_operands, output_far_jump,
11425         output_branchy_insn, add_constant, gen_block_redirect,
11426         sh_insn_length_adjustment, sh_cannot_change_mode_class,
11427         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
11428         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11429         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
11430         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
11431         xstormy16_preferred_reload_class): Likewise.
11432         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
11433         xtensa_expand_atomic, override_options,
11434         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
11435         Likewise.
11436         * reorg.c (try_merge_delay_insns): Likewise.
11437         * tree.c (merge_dllimport_decl_attributes): Likewise.
11438
11439         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
11440
11441 2008-08-06  Michael Matz  <matz@suse.de>
11442
11443         * Makefile.in (write_entries_to_file): Quote words.
11444         * gengtype.c (read_input_line): Skip over leading white-space.
11445
11446 2008-08-06  Marc Gauthier  <marc@tensilica.com>
11447
11448         * config.gcc: Match more processor names for Xtensa.
11449         * configure.ac: Likewise.
11450         * doc/install.texi (Specific): Likewise.
11451         * configure: Regenerate.
11452
11453 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11454
11455         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
11456         * calls.c (avoid_likely_spilled_reg): Likewise.
11457         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11458         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
11459         * config/i386/i386.c (ix86_expand_special_args_builtin,
11460         ix86_secondary_reload): Likewise.
11461         * except.c (struct eh_region, gen_eh_region_catch,
11462         remove_unreachable_regions, duplicate_eh_regions,
11463         assign_filter_values, build_post_landing_pads,
11464         sjlj_find_directly_reachable_regions, remove_eh_handler,
11465         reachable_next_level, foreach_reachable_handler,
11466         can_throw_internal_1, can_throw_external_1,
11467         collect_one_action_chain): Likewise.
11468         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
11469         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
11470         * function.c (update_temp_slot_address, instantiate_new_reg,
11471         instantiate_virtual_regs_in_rtx,
11472         instantiate_virtual_regs_in_insn): Likewise.
11473         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
11474         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
11475         gimplify_cleanup_point_expr): Likewise.
11476         * ipa-cp.c (ipcp_lattice_changed): Likewise.
11477         * passes.c (next_pass_1): Likewise.
11478         * print-tree.c (print_node_brief, print_node): Likewise.
11479         * profile.c (branch_prob): Likewise.
11480         * tree-dump.c (dump_register): Likewise.
11481         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
11482         Likewise.
11483         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
11484         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
11485         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
11486         copy_arguments_for_versioning, copy_static_chain): Likewise.
11487         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
11488         add_new_name_mapping, register_new_name_mapping): Likewise.
11489         * tree-mudflap.c (mf_xform_derefs): Likewise.
11490         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
11491         get_init_expr, combine_chains): Likewise.
11492         * tree-pretty-print.c (dump_generic_node): Likewise.
11493         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
11494         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
11495         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
11496         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
11497
11498 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11499
11500         PR middle-end/37010
11501         * calls.c (expand_call): Use the biggest preferred stack
11502         boundary.
11503
11504 2008-08-06  Michael Matz  <matz@suse.de>
11505
11506         PR target/36613
11507         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
11508         for reused reload, instead of overwriting them.
11509
11510 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11511
11512         PR middle-end/37009
11513         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
11514         for incoming stack boundary.
11515
11516         * function.c (assign_parm_find_entry_rtl): Update
11517         parm_stack_boundary.
11518
11519         * function.h (rtl_data): Add parm_stack_boundary.
11520
11521         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
11522         parm_stack_boundary for incoming stack boundary.
11523
11524 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
11525
11526         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
11527         for unrepresentable subregs or treat them as equal to other regs
11528         or subregs with the same register number.
11529
11530 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
11531
11532         PR middle-end/35432
11533         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
11534         if want_value.
11535
11536 2008-08-06  Jan Hubicka  <jh@suse.cz>
11537
11538         * predict.c (maybe_hot_frequency_p): When profile is absent, all
11539         frequencies might be hot.
11540
11541 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
11542
11543         * reload.c (find_reloads): Force constants into literal pool
11544         also if they are wrapped in a SUBREG.
11545
11546 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11547
11548         PR target/35659
11549         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
11550         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
11551         Don't allow predicated instructions for data speculation.
11552         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
11553         declaration.
11554
11555 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11556
11557         * haifa-sched.c (extend_global): Split to extend_global_data and
11558         extend_region_data.  Update all uses.
11559         (extend_all): Rename to extend_block_data.
11560
11561 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11562
11563         * sched-rgn.c (new_ready): Check if instruction can be
11564         speculatively scheduled before attempting speculation.
11565         (debug_rgn_dependencies): Remove wrongful assert.
11566
11567 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
11568
11569         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
11570
11571 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
11572
11573         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
11574         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
11575         va_size, and type_size.
11576
11577 2008-08-04  Jason Merrill  <jason@redhat.com>
11578
11579         PR c++/37016
11580         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
11581         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
11582
11583 2008-08-05  Richard Henderson  <rth@redhat.com>
11584
11585         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
11586         * configure: Rebuild.
11587
11588 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11589
11590         PR tree-opt/37024
11591         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
11592         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
11593         is a conversion.
11594
11595 2008-08-05  Richard Henderson  <rth@redhat.com>
11596
11597         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
11598         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
11599         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
11600         * common.opt (fdwarf2-cfi-asm): New.
11601         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
11602         * config.in, configure: Rebuild.
11603         * dwarf2asm.c (dw2_asm_output_data_raw): New.
11604         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
11605         New.
11606         (dw2_force_const_mem): Externalize.
11607         * dwarf2asm.h: Update.
11608         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
11609         generate a real label.
11610         (output_cfi_directive): New.
11611         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
11612         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
11613         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
11614         and .cfi_lsda.
11615         (dwarf2out_end_epilogue): Emit .cfi_endproc.
11616         (output_loc_operands_raw, output_loc_sequence_raw): New.
11617         (output_cfa_loc_raw): New.
11618
11619 2008-08-05  Paul Brook  <paul@codesourcery.com>
11620
11621         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
11622         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
11623         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
11624         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
11625         * config/arm/arm.h (TARGET_VFPD32): Define.
11626         (TARGET_VFP3): Use TARGET_VFPD32.
11627         (fputype): Add FPUTYPE_VFP3D16.
11628         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
11629         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
11630         * config/arm/arm-cores.def: Add cortex-r4f.
11631         * config/arm/arm-tune.md: Regenerate.
11632
11633 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11634
11635         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
11636         Reword some comments throughout the file.
11637
11638         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
11639         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
11640         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
11641         MFC_MIN_DMA_LIST_ELEMENTS.
11642         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
11643         MFC_MAX_DMA_LIST_ELEMENTS.
11644
11645         (MFC_START_ENABLE): Remove PPU-only define.
11646         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
11647         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
11648
11649         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
11650         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
11651         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
11652         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
11653         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
11654         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
11655         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
11656
11657         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
11658         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
11659         (mfc_sdcrt, mfc_sdcrtst): Likewise.
11660         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
11661
11662         (spu_read_machine_status): Fix typo.
11663
11664 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11665
11666         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
11667         SUBREG of multi-word hard register.
11668         * config/spu/spu.c (valid_subreg): Likewise.
11669         (adjust_operand): Handle SUBREGs of multi-word hard registers.
11670
11671 2008-08-04  Richard Guenther  <rguenther@suse.de>
11672
11673         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
11674         the candidate with the stripped base if that base is different
11675         from the original base even for offset zero.
11676
11677 2008-08-04  Richard Guenther  <rguenther@suse.de>
11678
11679         PR middle-end/36691
11680         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
11681         check for no_overflow.
11682
11683 2008-08-04  Richard Guenther  <rguenther@suse.de>
11684
11685         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
11686
11687 2008-08-04  Paul Brook  <paul@codesourcery.com>
11688
11689         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
11690         (arm_order_regs_for_local_alloc): New function.
11691         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
11692         prototype.
11693         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
11694
11695 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
11696
11697         PR target/37012
11698         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
11699         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
11700         (ix86_expand_epilogue): Likewise.
11701
11702 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
11703
11704         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
11705         in comments.
11706
11707 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
11708
11709         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
11710         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
11711         (*movv2sf_internal_rex64): Ditto.
11712
11713 2008-08-03  Jan Hubicka  <jh@suse.cz>
11714
11715         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
11716         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
11717         * expmed.c (expand_smod_pow2): Likewise.
11718
11719 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
11720
11721         PR target/36992
11722         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
11723         alternative 0 of operand 1.
11724         (*vec_concatv2di_rex64_sse): Ditto.
11725         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
11726         of operand 1.
11727         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
11728         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
11729         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
11730         (*movv2sf_internal_rex64): Ditto.
11731
11732 2008-08-02  Richard Guenther  <rguenther@suse.de>
11733
11734         PR target/35252
11735         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
11736         (ssedoublesizemode): New mode attribute.
11737         (sse_shufps): Call gen_sse_shufps_v4sf.
11738         (sse_shufps_1): Macroize.
11739         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
11740         (sse2_shufpd_1): Macroize.
11741         (vec_extract_odd, vec_extract_even): New expanders.
11742         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
11743         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
11744         * i386.c (ix86_expand_vector_init_one_nonzero): Call
11745         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
11746         (ix86_expand_vector_set): Likewise.
11747         (ix86_expand_reduc_v4sf): Likewise.
11748
11749 2008-08-01  Doug Kwan  <dougkwan@google.com>
11750
11751         * matrix-reorg.c: Re-enable all code.
11752         (struct malloc_call_data): Change CALL_STMT to gimple type.
11753         (collect_data_for_malloc_call): Tuplify.
11754         (struct access_site_info): Change STMT to gimple type.
11755         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
11756         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
11757         (struct free_info): Change STMT to gimple type.
11758         (struct matrix_access_phi_node):  Change PHI to gimple type.
11759         (get_inner_of_cast_expr): Remove.
11760         (may_flatten_matrices_1): Tuplify.
11761         (may_flatten_matrices): Ditto.
11762         (mark_min_matrix_escape_level): Ditto.
11763         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
11764         (ssa_accessed_in_call_rhs): New
11765         (ssa_accessed_in_assign_rhs): New
11766         (record_access_alloc_site_info): Tuplify.
11767         (add_allocation_site): Ditto.
11768         (analyze_matrix_allocation_site): Ditto.
11769         (analyze_transpose): Ditto.
11770         (get_index_from_offset): Ditto.
11771         (update_type_size): Ditto.
11772         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
11773         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
11774         (analyze_accesses_for_phi_node): Tuplify.
11775         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
11776         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
11777         (analyze_matrix_accesses): Tuplify.
11778         (check_var_data): New call-back type for check_var_notmodified_p.
11779         (check_var_notmodified_p): Tuplify and use call-back struct to
11780         return statement found.
11781         (can_calculate_expr_before_stmt): Factor out statement related code
11782         into ...
11783         (can_calculate_stmt_before_stmt): New.
11784         (check_allocation_function): Tuplify.
11785         (find_sites_in_func): Ditto.
11786         (record_all_accesses_in_func): Ditto.
11787         (transform_access_sites): Ditto.
11788         (transform_allocation_sites): Ditto.
11789         (matrix_reorg): Re-enable.
11790         (gate_matrix_reorg): Re-enable.
11791
11792 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
11793
11794         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
11795         for labels for which it hasn't been set yet.  If it has been set,
11796         stop walking insns and continue with next worklist item.
11797         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
11798         if the only BARRIER is at the very end of a function.
11799
11800 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
11801
11802         * cfgexpand.c (expand_stack_alignment): Assert that
11803         stack_realign_drap and drap_rtx must match.
11804
11805         * function.c (instantiate_new_reg): If DRAP is used to realign
11806         stack, replace virtual_incoming_args_rtx with internal arg
11807         pointer.
11808
11809 2008-08-01  Richard Guenther  <rguenther@suse.de>
11810
11811         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
11812         loop information only if we initialized it.
11813         (execute_pre): Call fini_pre with in_fre.
11814         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
11815         if we do not unroll because we hit max-completely-peeled-insns.
11816         Use our estimation for consistency, do allow shrinking.
11817
11818 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
11819
11820         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
11821         with MIN_STACK_BOUNDARY.
11822         (ix86_update_stack_boundary): Likewise.
11823         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
11824         STACK_BOUNDARY.
11825
11826         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
11827         (MIN_STACK_BOUNDARY): This.
11828
11829 2008-08-01  Richard Guenther  <rguenther@suse.de>
11830
11831         PR middle-end/36997
11832         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
11833
11834 2008-08-01  Richard Guenther  <rguenther@suse.de>
11835
11836         PR tree-optimization/36988
11837         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
11838         do not matter if that doesn't change volatile qualification.
11839
11840 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
11841
11842         * configure.ac: Do not generate libada-mk.  Do not subst
11843         host_cc_for_libada.
11844         * libada-mk.in: Remove.
11845         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
11846         * configure: Regenerate.
11847
11848 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
11849
11850         * tree-pass.h: Added comment about not dumping passes with name
11851         starting with star in struct opt_pass.
11852         * passes.c (register_dump_files_1): Don't do dump for a pass with
11853         name starting with star.
11854         * doc/passes.texi (Pass manager): Mention pass names and special
11855         meaning of star prefix to avoid dump.
11856
11857 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
11858
11859         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
11860         to MIPS64r2.
11861         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
11862         (ISA_MIPS64R2): New macro.
11863         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
11864         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
11865         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
11866         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
11867         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
11868         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
11869         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
11870         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
11871         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
11872         Move up to keep list alphabetically sorted.
11873         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
11874         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
11875         processor.
11876         * doc/invoke.texi (MIPS Options): Add -mips64r2.
11877         (-march=@var{arch}): Add mips64r2.
11878
11879 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11880
11881         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
11882
11883 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
11884
11885         * expr.c (expand_assignment): Check for complete type.
11886
11887 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11888
11889         PR debug/36977
11890         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
11891
11892         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
11893         for stack alignment.
11894
11895         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
11896
11897 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
11898
11899         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
11900         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
11901
11902 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
11903
11904         PR rtl-optimization/36419
11905         * dwarf2out.c (barrier_args_size): New variable.
11906         (compute_barrier_args_size, compute_barrier_args_size_1): New
11907         functions.
11908         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
11909         if not called yet in the current function, use barrier_args_size
11910         array to find the new args_size value.
11911         (dwarf2out_frame_debug): Free and clear barrier_args_size.
11912
11913 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11914
11915         PR debug/36980
11916         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
11917         rule 19.
11918
11919 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11920
11921         PR debug/36976
11922         * dwarf2out.c (dwarf2out_args_size_adjust): New.
11923         (dwarf2out_stack_adjust): Use it.
11924         (dwarf2out_frame_debug_expr): Likewise.
11925
11926 2008-07-31  Richard Guenther  <rguenther@suse.de>
11927
11928         PR tree-optimization/36978
11929         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
11930         the generated condition.
11931
11932 2008-07-31  Richard Guenther  <rguenther@suse.de>
11933
11934         * passes.c (init_optimization_passes): Always call
11935         pass_early_warn_uninitialized.
11936         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
11937         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
11938         * doc/passes.texi (Warn for uninitialized variables): Adjust.
11939
11940 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
11941
11942         PR c/36970
11943         * builtins.c (maybe_emit_free_warning): New function.
11944         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
11945         maybe_emit_free_warning for BUILT_IN_FREE.
11946
11947         PR debug/36278
11948         * dwarf2out.c (get_context_die): New function.
11949         (force_decl_die, force_type_die): Use it.
11950         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
11951         returns NULL, force generation of DW_TAG_typedef and put that into
11952         DW_AT_import.
11953
11954         PR preprocessor/36649
11955         * c-pch.c (c_common_read_pch): Save and restore
11956         line_table->trace_includes across PCH restore.
11957
11958 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
11959
11960         PR ada/36554
11961         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
11962
11963 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
11964
11965         PR 36974
11966         * final.c (call_from_call_insn): Handle COND_EXEC.
11967
11968 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
11969
11970         * builtins.c (std_gimplify_va_arg_expr): Replace
11971         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
11972         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11973
11974 2008-07-30  Joey Ye  <joey.ye@intel.com>
11975             H.J. Lu  <hongjiu.lu@intel.com>
11976
11977         * builtins.c (expand_builtin_setjmp_receiver): Replace
11978         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
11979         (expand_builtin_apply_args_1): Likewise.
11980         (expand_builtin_longjmp): Need DRAP for stack alignment.
11981         (expand_builtin_apply): Likewise.
11982
11983         * caller-save.c (setup_save_areas): Call assign_stack_local_1
11984         instead of assign_stack_local to allow alignment reduction.
11985
11986         * calls.c (emit_call_1): Need DRAP for stack alignment if
11987         return pops.
11988         (expand_call): Replace virtual_incoming_args_rtx with
11989         crtl->args.internal_arg_pointer.
11990         * stmt.c (expand_nl_goto_receiver): Likewise.
11991
11992         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
11993         alignment and store to stack_alignment_estimated and
11994         max_used_stack_slot_alignment.
11995         (expand_one_var): Likewise.
11996         (expand_stack_alignment): New function.
11997         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
11998         and stack_alignment_estimated fields in rtl_data.  Call
11999         expand_stack_alignment at end.
12000
12001         * defaults.h (INCOMING_STACK_BOUNDARY): New.
12002         (MAX_STACK_ALIGNMENT): Likewise.
12003         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
12004         (SUPPORTS_STACK_ALIGNMENT): Likewise.
12005
12006         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
12007         stack alignment when generating virtual registers.
12008
12009         * function.c (assign_stack_local): Renamed to ...
12010         (assign_stack_local_1): This.  Add a parameter to indicate
12011         if it is OK to reduce alignment.
12012         (assign_stack_local): Use it.
12013         (instantiate_new_reg): Instantiate virtual incoming args rtx
12014         to vDRAP if stack realignment and DRAP is needed.
12015         (assign_parms): Collect parameter/return type alignment and
12016         contribute to stack_alignment_estimated.
12017         (locate_and_pad_parm): Likewise.
12018         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
12019         with crtl->args.internal_arg_pointer.
12020
12021         * function.h (rtl_data): Add new field drap_reg,
12022         max_used_stack_slot_alignment, stack_alignment_estimated,
12023         stack_realign_needed, need_drap, stack_realign_processed and
12024         stack_realign_finalized.
12025         (stack_realign_fp): New macro.
12026         (stack_realign_drap): Likewise.
12027
12028         * global.c (compute_regsets): Frame pointer is needed when
12029         stack is realigned.  Can eliminate frame pointer when stack is
12030         realigned and dynamic realigned argument pointer isn't used.
12031
12032         * reload1.c (update_eliminables):  Frame pointer is needed
12033         when stack is realigned.
12034         (init_elim_table): Can eliminate frame pointer when stack is
12035         realigned and dynamic realigned argument pointer isn't used.
12036
12037         * rtl.h (assign_stack_local_1): Declare new funtion.
12038
12039         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
12040         (TARGET_GET_DRAP_RTX): Likewise.
12041         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
12042         TARGET_GET_DRAP_RTX.
12043
12044         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
12045
12046         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
12047         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
12048
12049 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
12050             H.J. Lu  <hongjiu.lu@intel.com>
12051
12052         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
12053         vdrap_reg, stack_realign and drap_reg_saved.
12054         (add_cfi): Don't allow redefining CFA when DRAP is used.
12055         (reg_save): Handle stack alignment.
12056         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
12057         alignment.  Don't generate DWARF information for (set fp sp)
12058         when DRAP is used.
12059         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
12060         to INVALID_REGNUM.
12061         (int_loc_descriptor): Move prototype forward.  Also define if
12062         DWARF2_UNWIND_INFO is true.
12063         (output_cfa_loc): Handle DW_CFA_expression.
12064         (build_cfa_aligned_loc): New.
12065         (based_loc_descr): Update assert for stack realign.  For local
12066         variables, use sp+offset when stack is aligned without drap and
12067         fp+offset when stack is aligned with drap.  For arguments, use
12068         cfa+offset when drap is used to align stack.
12069
12070 2008-07-30  Joey Ye  <joey.ye@intel.com>
12071             H.J. Lu  <hongjiu.lu@intel.com>
12072
12073         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
12074         Break long line.
12075         (ix86_gen_andsp): New.
12076         (ix86_user_incoming_stack_boundary): Likewise.
12077         (ix86_default_incoming_stack_boundary): Likewise.
12078         (ix86_incoming_stack_boundary): Likewise.
12079         (ix86_can_eliminate): Likewise.
12080         (find_drap_reg): Likewise.
12081         (ix86_update_stack_boundary): Likewise.
12082         (ix86_get_drap_rtx): Likewise.
12083         (ix86_finalize_stack_realign_flags): Likewise.
12084         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
12085         (TARGET_GET_DRAP_RTX): Likewise.
12086         (override_options): Overide option value for new options.
12087         (ix86_function_ok_for_sibcall): Remove check for
12088         force_align_arg_pointer.
12089         (ix86_handle_cconv_attribute): Likewise.
12090         (ix86_function_regparm): Likewise.
12091         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
12092         (ix86_va_start): Replace virtual_incoming_args_rtx with
12093         crtl->args.internal_arg_pointer.
12094         (ix86_select_alt_pic_regnum): Check DRAP register.
12095         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
12096         (ix86_compute_frame_layout): Compute frame layout wrt stack
12097         realignment.
12098         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
12099         (ix86_expand_prologue): Decide if stack realignment is needed
12100         and generate prologue code accordingly.
12101         (ix86_expand_epilogue): Generate epilogue code wrt stack
12102         realignment is really needed or not.
12103
12104         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
12105         (ABI_STACK_BOUNDARY): Likewise.
12106         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
12107         (STACK_REALIGN_DEFAULT): Likewise.
12108         (INCOMING_STACK_BOUNDARY): Likewise.
12109         (MAX_STACK_ALIGNMENT): Likewise.
12110         (ix86_incoming_stack_boundary): Likewise.
12111         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
12112         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
12113         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
12114         (machine_function): Remove force_align_arg_pointer.
12115
12116         * config/i386/i386.md (BX_REG): New.
12117         (R13_REG): Likewise.
12118
12119         * config/i386/i386.opt (mforce_drap): New.
12120         (mincoming-stack-boundary): Likewise.
12121         (mstackrealign): Add Init(-1).
12122
12123         * config/i386/i386-protos.h (ix86_can_eliminate): New
12124
12125 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
12126
12127         * doc/extend.texi: Update force_align_arg_pointer.
12128
12129         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
12130         -mstackrealign.
12131
12132         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
12133         (INCOMING_STACK_BOUNDARY): Likewise.
12134         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
12135         (TARGET_GET_DRAP_RTX): Likewise.
12136
12137 2008-07-30  Andreas Schwab  <schwab@suse.de>
12138
12139         PR rtl-optimization/36929
12140         * dse.c (replace_inc_dec): Use emit_insn_before instead of
12141         add_insn_before and fix argument order.
12142         (replace_inc_dec_mem): Handle NULL rtx.
12143
12144 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
12145
12146         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
12147         function.
12148         (arm_compute_initial_elimination_offset): Use it.
12149         (arm_compute_save_reg_mask): Include static chain save slot when
12150         calculating alignment.
12151         (arm_get_frame_offsets): Ditto.
12152         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
12153         that we can use to decrement the stack when the stack decrement
12154         could be too big for an immediate value in a single insn.
12155         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
12156
12157 2008-07-30  Richard Guenther  <rguenther@suse.de>
12158
12159         PR tree-optimization/36967
12160         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
12161         Release defs of statements we remove.
12162
12163 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
12164
12165         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
12166         instead of NULL_RTVEC.
12167
12168 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
12169
12170         PR target/35866
12171
12172         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
12173         vector modes.
12174
12175 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
12176
12177         * final.c (call_from_call_insn): New.
12178         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
12179
12180 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
12181
12182         * configure.ac: Substitute ADA_CFLAGS.
12183         * configure: Regenerate.
12184         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
12185         * Makefile.in: Remove mention of X_* variables.
12186         * config/pa/x-ada-hpux10: Remove.
12187         * config/pa/x-ada: Remove.
12188
12189         * doc/fragments.texi: Update.
12190
12191 2008-07-30  Olivier Hainque  <hainque@adacore.com>
12192
12193         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
12194         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
12195         __dso_handle explicitly here.
12196
12197 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12198
12199         PR 34389
12200         * c-typeck.c (build_binary_op): Encapsulate code into...
12201         * c-common.c (shorten_binary_op): ...this new function.
12202         (conversion_warning): Use the new function. Handle non-negative
12203         constant in bitwise-and.
12204         * c-common.h (shorten_binary_op): Declare.
12205
12206 2008-07-30  Olivier Hainque  <hainque@adacore.com>
12207
12208         * scan.c (make_sstring_space): Add explicit conversions of
12209         allocator's return value.
12210         * fix-header.c (recognized_function): Likewise.
12211
12212 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12213
12214         * doc/cpp.texi: Update to GFDL 1.2.
12215         * doc/gcc.texi: Do not list GPL as Invariant Section.
12216         * doc/gccint.texi: Likewise.  Update copyright years.
12217         * doc/install.texi: Update copyright years.
12218
12219 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
12220
12221         PR target/36955
12222         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
12223         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
12224
12225 2008-07-29  Jan Hubicka  <jh@suse.cz>
12226
12227         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
12228         (grokdeclarator): Likewise.
12229         * langhooks.c (lhd_warn_unused_global_decl): Use
12230         DECL_DECLARED_INLINE_P.
12231         * print-tree.c (print_node): Remove DECL_INLINE check.
12232
12233 2008-07-29  Richard Guenther  <rguenther@suse.de>
12234
12235         PR tree-optimization/36945
12236         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
12237         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
12238         Record invariant addresses un-decomposed.
12239         (copy_reference_ops_from_call): Record reference call
12240         arguments properly.  Simplify.
12241         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
12242         helper split out from ...
12243         (create_component_ref_by_pieces): ... here.  Simplify.
12244         Prepare for recursive invocation for call arguments.
12245         (create_expression_by_pieces): Adjust call to
12246         create_component_ref_by_pieces.
12247         (compute_avail): Process operand 2 of reference ops.
12248
12249 2008-07-29  Richard Guenther  <rguenther@suse.de>
12250
12251         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
12252
12253 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
12254
12255         * c-format.c (check_format_types): Revert unwanted checkin.
12256
12257 2008-07-29  Jan Hubicka  <jh@suse.cz>
12258
12259         * flags.h (flag_really_no_inline): Remove.
12260         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
12261         * toplev.c (flag_really_no_inline): Remove.
12262         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
12263         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
12264         (cgraph_decide_inlining_incrementally): Likewise.
12265         (compute_inline_parameters): Likewise.
12266         * opts.c (decode_options): Simplify.
12267         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
12268         * common.opt (finline): Initialize to 1.
12269         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
12270
12271 2008-07-29  Jan Hubicka  <jh@suse.cz>
12272
12273         * predict.c (always_optimize_for_size_p): New function.
12274         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
12275         optimize_edge_for_size_p, optimize_edge_for_speed_p,
12276         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
12277         functions.
12278         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
12279         * function.c (prepare_function_start): Set default profile.
12280         * function.h (rtl_data): Add maybe_hot_insn_p.
12281         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
12282         (construct_exit_block): Likewise.
12283         (tree_expand_cfg): Likewise.
12284         * basic-block.h
12285         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
12286         optimize_edge_for_size_p, optimize_edge_for_speed_p,
12287         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
12288         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
12289         Declare.
12290
12291 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12292
12293         PR 34985
12294         * c-decl.c (merge_decls): Merge USED flags.
12295
12296 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12297
12298         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
12299         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
12300         next_stack, lab_false and lab_over trees.
12301
12302 2008-07-28  Richard Guenther  <rguenther@suse.de>
12303
12304         PR tree-optimization/36957
12305         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
12306         (useless_type_conversion_p): Remove.
12307         (types_compatible_p): Remove.
12308         * gimple.h (tree_ssa_useless_type_conversion): Declare.
12309         (useless_type_conversion_p): Declare.
12310         (types_compatible_p): Declare.
12311         (gimple_expr_type): Return the base type only if it is
12312         trivially convertible to the subtype.
12313
12314 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
12315
12316         * configure.ac: Use the m4_do macro to concatenate the warnings into
12317         one string in ACX_PROG_CC_WARNING_OPTS,
12318         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
12319         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
12320         * configure: Regenerate.
12321
12322 2008-07-28  Richard Guenther  <rguenther@suse.de>
12323
12324         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
12325         (insert_fake_stores): Remove.
12326         (realify_fake_stores): Likewise.
12327         (execute_pre): Remove dead code.
12328         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
12329         (find_func_aliases): Deal with it here instead.
12330         Re-enable gcc_unreachable call.
12331
12332 2008-07-28  Richard Guenther  <rguenther@suse.de>
12333
12334         Merge from gimple-tuples-branch.
12335
12336         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
12337         * gimple.def: New file.
12338         * gsstruct.def: Likewise.
12339         * gimple-iterator.c: Likewise.
12340         * gimple-pretty-print.c: Likewise.
12341         * tree-gimple.c: Removed.  Merged into ...
12342         * gimple.c: ... here.  New file.
12343         * tree-gimple.h: Removed.  Merged into ...
12344         * gimple.h: ... here.  New file.
12345
12346         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
12347         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
12348         --enable-checking=gimple flag.
12349         * config.in: Likewise.
12350         * configure: Regenerated.
12351
12352         * tree-ssa-operands.h: Tuplified.
12353         * tree-vrp.c: Likewise.
12354         * tree-loop-linear.c: Likewise.
12355         * tree-into-ssa.c: Likewise.
12356         * tree-ssa-loop-im.c: Likewise.
12357         * tree-dump.c: Likewise.
12358         * tree-complex.c: Likewise.
12359         * cgraphbuild.c: Likewise.
12360         * tree-ssa-threadupdate.c: Likewise.
12361         * tree-ssa-loop-niter.c: Likewise.
12362         * tree-pretty-print.c: Likewise.
12363         * tracer.c: Likewise.
12364         * gengtype.c: Likewise.
12365         * tree-loop-distribution.c: Likewise.
12366         * tree-ssa-loop-unswitch.c: Likewise.
12367         * cgraph.c: Likewise.
12368         * cgraph.h: Likewise.
12369         * tree-ssa-loop-manip.c: Likewise.
12370         * value-prof.c: Likewise.
12371         * tree-ssa-loop-ch.c: Likewise.
12372         * tree-tailcall.c: Likewise.
12373         * value-prof.h: Likewise.
12374         * tree.c: Likewise.
12375         * tree.h: Likewise.
12376         * tree-pass.h: Likewise.
12377         * ipa-cp.c: Likewise.
12378         * tree-scalar-evolution.c: Likewise.
12379         * tree-scalar-evolution.h: Likewise.
12380         * target.h: Likewise.
12381         * lambda-mat.c: Likewise.
12382         * tree-phinodes.c: Likewise.
12383         * diagnostic.h: Likewise.
12384         * builtins.c: Likewise.
12385         * tree-ssa-alias-warnings.c: Likewise.
12386         * cfghooks.c: Likewise.
12387         * fold-const.c: Likewise.
12388         * cfghooks.h: Likewise.
12389         * omp-low.c: Likewise.
12390         * tree-ssa-dse.c: Likewise.
12391         * ipa-reference.c: Likewise.
12392         * tree-ssa-uncprop.c: Likewise.
12393         * toplev.c: Likewise.
12394         * tree-gimple.c: Likewise.
12395         * tree-gimple.h: Likewise.
12396         * tree-chrec.c: Likewise.
12397         * tree-chrec.h: Likewise.
12398         * tree-ssa-sccvn.c: Likewise.
12399         * tree-ssa-sccvn.h: Likewise.
12400         * cgraphunit.c: Likewise.
12401         * tree-ssa-copyrename.c: Likewise.
12402         * tree-ssa-ccp.c: Likewise.
12403         * tree-ssa-loop-ivopts.c: Likewise.
12404         * tree-nomudflap.c: Likewise.
12405         * tree-call-cdce.c: Likewise.
12406         * ipa-pure-const.c: Likewise.
12407         * c-format.c: Likewise.
12408         * tree-stdarg.c: Likewise.
12409         * tree-ssa-math-opts.c: Likewise.
12410         * tree-ssa-dom.c: Likewise.
12411         * tree-nrv.c: Likewise.
12412         * tree-ssa-propagate.c: Likewise.
12413         * ipa-utils.c: Likewise.
12414         * tree-ssa-propagate.h: Likewise.
12415         * tree-ssa-alias.c: Likewise.
12416         * gimple-low.c: Likewise.
12417         * tree-ssa-sink.c: Likewise.
12418         * ipa-inline.c: Likewise.
12419         * c-semantics.c: Likewise.
12420         * dwarf2out.c: Likewise.
12421         * expr.c: Likewise.
12422         * tree-ssa-loop-ivcanon.c: Likewise.
12423         * predict.c: Likewise.
12424         * tree-ssa-loop.c: Likewise.
12425         * tree-parloops.c: Likewise.
12426         * tree-ssa-address.c: Likewise.
12427         * tree-ssa-ifcombine.c: Likewise.
12428         * matrix-reorg.c: Likewise.
12429         * c-decl.c: Likewise.
12430         * tree-eh.c: Likewise.
12431         * c-pretty-print.c: Likewise.
12432         * lambda-trans.c: Likewise.
12433         * function.c: Likewise.
12434         * langhooks.c: Likewise.
12435         * ebitmap.h: Likewise.
12436         * tree-vectorizer.c: Likewise.
12437         * function.h: Likewise.
12438         * langhooks.h: Likewise.
12439         * tree-vectorizer.h: Likewise.
12440         * ipa-type-escape.c: Likewise.
12441         * ipa-type-escape.h: Likewise.
12442         * domwalk.c: Likewise.
12443         * tree-if-conv.c: Likewise.
12444         * profile.c: Likewise.
12445         * domwalk.h: Likewise.
12446         * tree-data-ref.c: Likewise.
12447         * tree-data-ref.h: Likewise.
12448         * tree-flow-inline.h: Likewise.
12449         * tree-affine.c: Likewise.
12450         * tree-vect-analyze.c: Likewise.
12451         * c-typeck.c: Likewise.
12452         * gimplify.c: Likewise.
12453         * coretypes.h: Likewise.
12454         * tree-ssa-phiopt.c: Likewise.
12455         * calls.c: Likewise.
12456         * tree-ssa-coalesce.c: Likewise.
12457         * tree.def: Likewise.
12458         * tree-dfa.c: Likewise.
12459         * except.c: Likewise.
12460         * except.h: Likewise.
12461         * cfgexpand.c: Likewise.
12462         * tree-cfgcleanup.c: Likewise.
12463         * tree-ssa-pre.c: Likewise.
12464         * tree-ssa-live.c: Likewise.
12465         * tree-sra.c: Likewise.
12466         * tree-ssa-live.h: Likewise.
12467         * tree-predcom.c: Likewise.
12468         * lambda.h: Likewise.
12469         * tree-mudflap.c: Likewise.
12470         * ipa-prop.c: Likewise.
12471         * print-tree.c: Likewise.
12472         * tree-ssa-copy.c: Likewise.
12473         * ipa-prop.h: Likewise.
12474         * tree-ssa-forwprop.c: Likewise.
12475         * ggc-page.c: Likewise.
12476         * c-omp.c: Likewise.
12477         * tree-ssa-dce.c: Likewise.
12478         * tree-vect-patterns.c: Likewise.
12479         * tree-ssa-ter.c: Likewise.
12480         * tree-nested.c: Likewise.
12481         * tree-ssa.c: Likewise.
12482         * lambda-code.c: Likewise.
12483         * tree-ssa-loop-prefetch.c: Likewise.
12484         * tree-inline.c: Likewise.
12485         * tree-inline.h: Likewise.
12486         * tree-iterator.c: Likewise.
12487         * tree-optimize.c: Likewise.
12488         * tree-ssa-phiprop.c: Likewise.
12489         * tree-vect-transform.c: Likewise.
12490         * tree-object-size.c: Likewise.
12491         * tree-outof-ssa.c: Likewise.
12492         * cfgloop.c: Likewise.
12493         * system.h: Likewise.
12494         * tree-profile.c: Likewise.
12495         * cfgloop.h: Likewise.
12496         * c-gimplify.c: Likewise.
12497         * c-common.c: Likewise.
12498         * tree-vect-generic.c: Likewise.
12499         * tree-flow.h: Likewise.
12500         * c-common.h: Likewise.
12501         * basic-block.h: Likewise.
12502         * tree-ssa-structalias.c: Likewise.
12503         * tree-switch-conversion.c: Likewise.
12504         * tree-ssa-structalias.h: Likewise.
12505         * tree-cfg.c: Likewise.
12506         * passes.c: Likewise.
12507         * ipa-struct-reorg.c: Likewise.
12508         * ipa-struct-reorg.h: Likewise.
12509         * tree-ssa-reassoc.c: Likewise.
12510         * cfgrtl.c: Likewise.
12511         * varpool.c: Likewise.
12512         * stmt.c: Likewise.
12513         * tree-ssanames.c: Likewise.
12514         * tree-ssa-threadedge.c: Likewise.
12515         * langhooks-def.h: Likewise.
12516         * tree-ssa-operands.c: Likewise.
12517         * config/alpha/alpha.c: Likewise.
12518         * config/frv/frv.c: Likewise.
12519         * config/s390/s390.c: Likewise.
12520         * config/m32c/m32c.c: Likewise.
12521         * config/m32c/m32c-protos.h: Likewise.
12522         * config/spu/spu.c: Likewise.
12523         * config/sparc/sparc.c: Likewise.
12524         * config/i386/i386.c: Likewise.
12525         * config/sh/sh.c: Likewise.
12526         * config/xtensa/xtensa.c: Likewise.
12527         * config/stormy16/stormy16.c: Likewise.
12528         * config/ia64/ia64.c: Likewise.
12529         * config/rs6000/rs6000.c: Likewise.
12530         * config/pa/pa.c: Likewise.
12531         * config/mips/mips.c: Likewise.
12532
12533 2008-07-28  Simon Baldwin  <simonb@google.com>
12534
12535         * c-pragma.c (handle_pragma_message): New function.
12536         (init_pragma): Register handle_pragma_message.
12537         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
12538         documentation.
12539
12540 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
12541
12542         PR tree-optimization/35252
12543         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
12544         REALPART_EXPR to be considered as same load operation.
12545
12546 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
12547
12548         PR tree-optimization/36830
12549         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
12550         (expressions_equal_p): Return false if only one operand is null.
12551
12552 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
12553
12554         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
12555         version requirements.
12556
12557 2008-07-26  Olivier Hainque  <hainque@adacore.com>
12558
12559         * collect2.c (symkind): New enum.  Symbol kinds we care about.
12560         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
12561         code and head comment accordingly.
12562         (scan_prog_file): Use symkind names instead of bare integers.
12563
12564 2008-07-25  Jan Hubicka  <jh@suse.cz>
12565
12566         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
12567         DECL_INLINE.
12568         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
12569         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
12570         * dojump.c (clear_pending_stack_adjust): Likewise.
12571         * print-tree.c (print_node): Ignore DECL_INLINE.
12572         * tree-inline.c (inlinable_function_p): Likewise.
12573
12574 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
12575
12576         * doc/extend.texi (hot attribute): Document that the hot attribute
12577         turns on -O3 for some ports.
12578         (cold attribute): Document that the cold attribute turns on -Os
12579         for some ports
12580
12581         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
12582         reflect function specific option support.
12583
12584         * target.h (struct target_option_hooks): Add fields to say whether
12585         the cold attribute implies -Os and the hot attribute implies -O3.
12586
12587         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
12588         By default, do not turn on -Os for cold functions.
12589         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
12590         not turn on -O3 for hot functions.
12591
12592         * c-common.c (handle_hot_attribute): Use target hook to determine
12593         if hot functions should enable -O3.
12594         (handle_cold_attribute): Use target hook to determine if cold
12595         functions should enable -Os.
12596
12597         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
12598         (override_options): Move disable scheduling to
12599         optimization_options.
12600         (optimization_options): Disable scheduling here, not
12601         override_options.
12602         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12603         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12604
12605         * config/ia64/ia64.c (ia64_override_options): Move setting
12606         scheduling flags to ia64_optimization_options.
12607         (ia64_optimization_options): Disable scheduling options here, and
12608         not in ia64_override_options.
12609         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12610         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12611
12612 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
12613
12614         PR target/36936
12615         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
12616
12617 2008-07-25  Martin Jambor  <mjambor@suse.cz>
12618
12619         PR tree-optimization/36926
12620         * ipa-prop.c (ipa_analyze_call_uses): Call
12621         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
12622
12623 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
12624
12625         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
12626         movv2si_internal): Add mem = reg alternative.
12627
12628 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
12629
12630         PR bootstrap/36918
12631         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
12632         DEFAULT_PCC_STRUCT_RETURN to 127.
12633
12634 2008-07-24  Jan Hubicka  <jh@suse.cz>
12635
12636         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
12637         (build_cgraph_edges): Likewise.
12638         * cgraph.c (cgraph_node): Do not update assembler hash.
12639         (cgraph_remove_node): Drop non-unit-at-a-time code.
12640         * tree-pass.h (pass_O0_always_inline): Remove.
12641         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
12642         * toplev.c (process_options): Flag unit-at-a-time does not imply
12643         no section anchors.
12644         * cgraphunit.c: Update comments.
12645         (decide_is_function_needed): Drop non-unit-at-a-time mode.
12646         (cgraph_assemble_pending_functions): Remove.
12647         (cgraph_reset_node): Drop non-unit-at-a-time code.
12648         (cgraph_finalize_function): Likewise.
12649         (cgraph_analyze_function): Likewise.
12650         (cgraph_finalize_compilation_unit): Likewise.
12651         (cgraph_expand_function): Likewise.
12652         (cgraph_optimize): Likesise.
12653         (save_inline_function_body): Likewise.
12654         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
12655         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
12656         * ipa-inline.c: Update comments.
12657         (enum inlining_mode): remove INLINE_SPEED.
12658         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
12659         (cgraph_mark_inline_edge): Likewise.
12660         (try_inline): Likewise.
12661         (cgraph_decide_inlining_incrementally): Likewise.
12662         (cgraph_gate_inlining): Remove.
12663         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
12664         (cgraph_gate_early_inlining): Likewise.
12665         (gate_inline_passes): Remove.
12666         (pass_inline_parameters, pass_ipa_inline): Remove gates.
12667         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12668         pass_O0_always_inline): Remove.
12669         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
12670         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
12671         * opts.c (no_unit_at_a_time_default): Remove.
12672         (decode_options): Remove flag_unit_at_a_time reset and warning.
12673         * opts.h (no_unit_at_a_time_default): Remove.
12674         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
12675         early in GNU dialect.
12676         (merge_decls): Update comment; drop unit-at-a-time check.
12677         (finish_decl): Likewise.
12678         (grok_declaration): Remove flag_inline_trees code.
12679         (finish_functions): Return on function returning non-void on all
12680         statics.
12681         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
12682         * cfgexpand.c (expand_one_static_var): Remove.
12683         (expand_one_var): Remove expand_one_static_var call.
12684         (expand_used_vars_for_block): Remove flag_unit_a_time check.
12685         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
12686         and flag_unit_at_a-time compatibility checks.
12687         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
12688         * tree-inline.c (flag_inline_trees): Remove.
12689         (inlinable_function_p): Don't check it.
12690         (expand_call_inline): Remove non-unit-at-a-time code.
12691         * tree-inline.h (flag_inline_trees): Remove.
12692         * tree-optimize.c (execute_early_local_optimizations): Remove
12693         unit-at-a-time checks.
12694         (tree_rest_of_compilation): Likewise.
12695         * combine.c (setup_incoming_promotions): Likewise.
12696         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
12697         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
12698         * passes.c (pass_inline_parameters): Update comments; remove
12699         O0_alwaysinline pass.
12700         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
12701         (execute_one_pass): Likewise.
12702         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
12703         (ix86_function_sseregparm): Likewise.
12704         * arm.c (arm_function_in_section_p): Likewise.
12705         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
12706         * varpool.c: Update comments.
12707         (decide_is_variable_needed): Remove unit-at-a-time checks.
12708         (varpool_finalize_decl): Likewise.
12709
12710 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
12711
12712         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
12713         to 2 instead of -1.
12714         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
12715
12716 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
12717
12718         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
12719         imp symbol extension.
12720
12721         2008-07-23  Ian Lance Taylor  <iant@google.com>
12722
12723         * tree-vrp.c (infer_value_range): Ignore asm statements when
12724         looking for memory accesses for -fdelete-null-pointer-checks.
12725
12726 2008-07-24  Ben Elliston  <bje@au.ibm.com>
12727
12728         * config/spu/spu-c.c (__vector_keyword): New variable.
12729         (vector_keyword): Likewise.
12730         (spu_categorize_keyword): New function.
12731         (spu_macro_to_expand): Likewise.
12732         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
12733         compiling an ISO C dialect.
12734
12735 2008-07-24  Ben Elliston  <bje@au.ibm.com>
12736
12737         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
12738         conventional usage.
12739
12740 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
12741
12742         * configure: Regenerate.
12743         * configure.ac: Require texinfo 4.7.
12744         * doc/install.texi: Document texinfo 4.7 requirement.
12745
12746 2008-07-23  Martin Jambor  <mjambor@suse.cz>
12747
12748         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
12749         rather than for DECL_SAVED_TREE.
12750         * ipa-prop.c: Include diagnostic.h.
12751         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
12752         thoroughly.
12753         (ipa_detect_param_modifications): Function rewritten from scratch.
12754         (ipa_compute_jump_functions): Changed accesses to modification flags.
12755         (ipa_free_node_params_substructures): Update flags destruction.
12756         (ipa_node_duplication_hook): Update flags duplication.
12757         (ipa_print_all_params_modified): Updated flag access.
12758         * ipa-prop.h (struct ipa_param_flags): New structure.
12759         (struct ipa_node_params): New field modification_analysis_done,
12760         modified_flags changed into param_flags.
12761         (ipa_is_ith_param_modified): Changed to use new flags.
12762         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
12763
12764         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
12765         ipa-cp.c and split into two functions.
12766         (ipa_print_node_jump_functions): New function.
12767         (compute_scalar_jump_functions): New function.
12768         (type_like_member_ptr_p): New function.
12769         (compute_pass_through_member_ptrs): New function.
12770         (fill_member_ptr_cst_jump_function): New function.
12771         (determine_cst_member_ptr): New function.
12772         (compute_cst_member_ptr_arguments): New function.
12773         (ipa_compute_jump_functions): Complete rewrite.
12774         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
12775         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
12776         (struct ipa_member_ptr_cst): New structure.
12777         (union jump_func_value): New field member_cst.
12778         * ipa-cp.c (ipcp_lat_is_insertable): New function.
12779         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
12780         jump function types.
12781         (ipcp_print_all_lattices): Slight fprintf rearrangement.
12782         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
12783         instead of ipcp_print_all_jump_functions.
12784         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
12785         only for replacable scalars.
12786
12787         * doc/invoke.texi (Optimize options): Add description of
12788         -findirect-inlining.
12789         * common.opt (flag_indirect_inlining): New flag.
12790         * opts.c (decode_options): Set flag_indirect_inlining when
12791         optimize >= 3.
12792
12793         * ipa-inline.c: Include ipa-prop.h.
12794         (inline_indirect_intraprocedural_analysis): New function.
12795         (inline_generate_summary): Allocate parameter and argument info
12796         structures, call inline_indirect_intraprocedural_analysis on each
12797         node when doing indirect inlining and deallocate indirect inlining
12798         data structures in the end.
12799         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
12800         (free_all_ipa_structures_after_iinln): New function.
12801         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
12802         done.
12803         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
12804
12805         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
12806         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12807         of computing the frequency separately.
12808         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12809         of computing the frequency separately.
12810         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
12811         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
12812         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
12813         (ipa_get_stmt_member_ptr_load_param): New function.
12814         (ipa_is_ssa_with_stmt_def): New function.
12815         (ipa_note_param_call): New function.
12816         (ipa_analyze_call_uses): New function.
12817         (ipa_analyze_stmt_uses): New function.
12818         (ipa_analyze_params_uses): New function.
12819         (ipa_free_node_params_substructures): Also free the param_calls linked
12820         list.
12821         (ipa_node_duplication_hook): Also duplicate the param_calls
12822         linked list.
12823         (ipa_print_node_param_flags): New function.
12824         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
12825         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
12826         * ipa-prop.h (struct ipa_param_flags): New field called.
12827         (struct ipa_param_call_note): New structure.
12828         (struct ipa_node_params): New fields param_calls and
12829         uses_analysis_done.
12830         (ipa_is_ith_param_called): New function.
12831         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
12832         ipa_analyze_params_uses and dump parameter flags.
12833
12834         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
12835         ipa_propagate_indirect_call_infos if performing indirect inlining,
12836         pass a new parameter new_edges to it.
12837         (add_new_edges_to_heap): New fucntion.
12838         (cgraph_decide_inlining_of_small_functions): New vector
12839         new_indirect_edges for newly found indirect edges , call
12840         ipa_propagate_indirect_call_infos after inlining.
12841         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
12842         inlining if performing indirect inlining.  Call
12843         free_all_ipa_structures_after_iinln when doing so too.
12844         (inline_generate_summary): Do not call
12845         free_all_ipa_structures_after_iinln here.
12846         * ipa-prop.c (update_jump_functions_after_inlining): New function.
12847         (print_edge_addition_message): New function.
12848         (update_call_notes_after_inlining): New function.
12849         (propagate_info_to_inlined_callees): New function.
12850         (ipa_propagate_indirect_call_infos): New function.
12851         * ipa-prop.h: Include cgraph.h
12852         (struct ipa_param_call_note): Fields reordered, new field processed.
12853         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
12854         flag indirect_call.
12855         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
12856         rediscovered call statements.
12857         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
12858         (dump_cgraph_node): Dump also the indirect_call flag.
12859         (cgraph_clone_edge): Copy also the indirect_call flag.
12860         * tree-inline.c (copy_bb): Do not check for fndecls from call
12861         expressions, check for edge availability when moving clones.
12862         (get_indirect_callee_fndecl): New function.
12863         (expand_call_inline): If callee declaration is not apprent from
12864         the statement, try calling get_indirect_callee_fndecl.  Do not
12865         issue warnings or call sorry when not inlinings an indirect edge.
12866         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
12867
12868         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
12869         bit more frandly to matching.
12870         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
12871         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
12872         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
12873
12874 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
12875
12876         PR 36907
12877         * opth-gen.awk: Suppress function specific features when building
12878         target libraries.
12879         * optc-gen.awk: Ditto.
12880
12881 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12882
12883         PR 35058
12884         * diagnostic.c (pedwarn): Add opt parameter.
12885         (pedwarn0): New.
12886         * c-tree.h (pedwarn_init): Add opt parameter.
12887         (pedwarn_c90): Likewise.
12888         (pedwarn_c99): Likewise.
12889         * c-errors.c (pedwarn_c99): Likewise.
12890         (pedwarn_c90): Likewise.
12891         * toplev.h (pedwarn): Update declaration.
12892         (pedwarn0): Declare.
12893         * c-lex.c: All calls to pedwarn changed.
12894         * builtins.c: All calls to pedwarn changed.
12895         * toplev.c: All calls to pedwarn changed.
12896         * c-decl.c: All calls to pedwarn changed.
12897         * c-typeck.c: All calls to pedwarn changed.
12898         * c-common.c: All calls to pedwarn changed.
12899         * c-parser.c: All calls to pedwarn changed.
12900
12901 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
12902             Karthik Kumar  <karthikkumar@gmail.com>
12903
12904         * attribs.c (file scope): Include c-common.h.
12905         (decl_attributes): Add support for #pragma GCC optimize and
12906         #pragma GCC option.
12907
12908         * targhooks.c (default_can_inline_p): New function that is the
12909         default for the TARGET_CAN_INLINE_P target hook.
12910
12911         * targhooks.h (default_can_inline_p): Add declaration.
12912
12913         * tree.c (cl_optimization_node): New static tree for building
12914         OPTIMIZATION_NODE tree.
12915         (cl_target_option_node): New static tree for building
12916         TARGET_OPTION_NODE tree.
12917         (cl_option_hash_table): New hash table for hashing
12918         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12919         (cl_option_hash_hash): New function to provide the hash value for
12920         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12921         (cl_option_hash_eq): New function to provide an equality test for
12922         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12923         (tree_code_size): Add support for OPTIMIZATION_NODE and
12924         TARGET_OPTION_NODE trees.
12925         (tree_code_structure): Add support for OPTIMIZATION_NODE and
12926         TARGET_OPTION_NODE trees.
12927         (build_optimization_node): Build a tree that has all of the
12928         current optimization options.
12929         (build_target_option_node): Build a tree that has the target
12930         options that might be changed on a per function basis.
12931
12932         * tree.h (file scope): Include options.h.
12933         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
12934         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
12935         (TREE_OPTIMIZATION): Ditto.
12936         (TREE_TARGET_SPECIFIC): Ditto.
12937         (struct tree_function_decl): Add fields for remembering the
12938         current optimization options and target specific options.
12939         (struct tree_optimization_option): New tree variant that remembers
12940         the optimization options.
12941         (struct tree_target_option): New tree variant that remembers the
12942         target specific flags that might change for compiling a particular
12943         function.
12944         (union tree_node): Include tree_optimization_option and
12945         tree_target_option fields.
12946         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
12947         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
12948         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
12949         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
12950         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
12951         optimization and target options.
12952         (optimization_default_node): New macro to refer to global_trees
12953         field.
12954         (optimization_current_node): Ditto.
12955         (optimization_cold_node): Ditto.
12956         (optimization_hot_node): Ditto.
12957         (target_option_default_node): Ditto.
12958         (target_option_current_node): Ditto.
12959         (current_option_pragma): Ditto.
12960         (current_optimize_pragma): Ditto.
12961
12962         * target.h (struct gcc_target): Add valid_option_attribute_p,
12963         target_option_save, target_option_restore, target_option_print,
12964         target_option_pragma_parse, and can_inline_p hooks.
12965
12966         * toplev.h (parse_optimize_options): Add declaration.
12967         (fast_math_flags_struct_set_p): Ditto.
12968
12969         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
12970         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
12971         optimize is used.
12972
12973         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
12974         tree_can_inline_p hook to see if one function can inline another.
12975         (cgraph_decide_inlining): Ditto.
12976         (cgraph_decide_inlining_incrementally): Ditto.
12977
12978         * opts.c (decode_options): Add support for running multiple times
12979         to allow functions with different target or optimization options
12980         than was specified on the command line.
12981         (fast_math_flags_struct_set_p): New function that is similar to
12982         fast_math_flags_set_p, except it uses the values in the
12983         cl_optimization structure instead of global variables.
12984
12985         * optc-gen.awk: Add support for TargetSave to allow a back end to
12986         declare new fields that need to be saved when using function
12987         specific options.  Include flags.h and target.h in the options.c
12988         source.  Add support for Save to indicate which options can be set
12989         for individual functions.  Generate cl_optimize_save,
12990         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
12991         cl_target_option_restore, cl_target_option_print functions to
12992         allow functions to use different optimization or target options.
12993
12994         * opt-functions.awk (var_type_struct): Return the type used for
12995         storing the field in a structure.
12996
12997         * opth-gen.awk: Add support for TargetSave to allow a back end to
12998         declare new fields that need to be saved when using function
12999         specific options.  Add support for Save to indicate which options
13000         can be set for individual functions.  Only generate one extern for
13001         Mask fields.  Generate cl_optimization and cl_target_option
13002         structures to remember optimization and target options.
13003
13004         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
13005         collecting new tree nodes.
13006         (TS_TARGET_OPTION): Ditto.
13007
13008         * c-decl.c (merge_decls): Merge function specific target and
13009         optimization options.
13010
13011         * function.c (invoke_set_current_function_hook): If the function
13012         uses different optimization options, change the global variables
13013         to reflect this.
13014
13015         * coretypes.h (struct cl_optimization): Add forward reference.
13016         (struct cl_target_option): Ditto.
13017
13018         * c-pragma.c (option_stack): New static vector to remember the
13019         current #pragma GCC option stack.
13020         (handle_pragma_option): New function to support #pragma GCC option
13021         to change target options.
13022         (optimize_stack): New static vector to remember the current
13023         #pragma GCC optimize stack.
13024         (handle_pragma_optimize): New function to support #pragma GCC
13025         optimize to change optimization options.
13026         (init_pragma): Add support for #pragma GCC optimize and #pragma
13027         GCC option.
13028
13029         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
13030         optimization options.
13031         (TARGET_OPTION_NODE): New tree code for remembering certain target
13032         options.
13033
13034         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
13035         TARGET_OPTION_NODE trees.
13036
13037         * common.opt (-O): Add Optimization flag.
13038         (-Os): Ditto.
13039         (-fmath-errno): Ditto.
13040         (-falign-functions): Add UInteger flag to make sure flag gets full
13041         int in cl_optimization structure.
13042         (-falign-jumps): Ditto.
13043         (-falign-labels): Ditto.
13044         (-falign-loops): Ditto.
13045         (-fsched-stalled-insns): Ditto.
13046         (-fsched-stalled-insns-dep): Ditto.
13047
13048         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
13049         definition.
13050         (TARGET_OPTION_SAVE): Ditto.
13051         (TARGET_OPTION_RESTORE): Ditto.
13052         (TARGET_OPTION_PRINT): Ditto.
13053         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
13054         (TARGET_CAN_INLINE_P): Ditto.
13055         (TARGET_INITIALIZER): Add new hooks.
13056
13057         * tree-inline.c (tree_can_inline_p): New function to determine
13058         whether one function can inline another.  Check if the functions
13059         use compatible optimization options, and also call the backend
13060         can_inline_p hook.
13061
13062         * tree-inline.h (tree_can_inline_p): Add declaration.
13063
13064         * c-common.c (c_common_attribute): Add support for option and
13065         optimize attributes.
13066         (handle_option_attribute): Add support for the option attribute to
13067         allow the user to specify different target options for compiling a
13068         specific function.
13069         (handle_optimize_attribute): Add support for the optimize
13070         attribute to allow the user to specify different optimization
13071         options for compiling a specific function.
13072         (handle_hot_attribute): Turn on -O3 optimization for this one
13073         function if it isn't the default optimization level.
13074         (handle_cold_attribute): Turn on -Os optimization for this one
13075         function if it insn't the default optimization.
13076         (const_char_p): New const char * typedef.
13077         (optimize_args): New static vector to remember the optimization
13078         arguments.
13079         (parse_optimize_options): New function to set up the optimization
13080         arguments from either the optimize attribute or #pragma GCC optimize.
13081
13082         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
13083         (builtin_define_std): Ditto.
13084
13085         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
13086         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
13087         (x86_64-*-*): Ditto.
13088
13089         * Makefile.in (TREE_H): Add options.h.
13090         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
13091
13092         * doc/extend.texi (option attribute): Document new attribute.
13093         (optimize attribute): Ditto.
13094         (hot attribute): Document hot attribute sets -O3.
13095         (cold attribute): Document cold attribute sets -Os.
13096         (#pragma GCC option): Document new pragma.
13097         (#pragma GCC optimize): Ditto.
13098
13099         * doc/options.texi (TargetSave): Document TargetSave syntax.
13100         (UInteger): Document UInteger must be used for certain flags.
13101         (Save): Document Save option to create target specific options
13102         that can be saved/restored on a function specific context.
13103
13104         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
13105         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
13106
13107         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
13108         (TARGET_OPTION_SAVE): Ditto.
13109         (TARGET_OPTION_RESTORE): Ditto.
13110         (TARGET_OPTION_PRINT): Ditto.
13111         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
13112         (TARGET_CAN_INLINE_P): Ditto.
13113
13114         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
13115         -mfpmath=sse,387.
13116         (-mfpmath=both): Ditto.
13117
13118 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
13119             Karthik Kumar  <karthikkumar@gmail.com>
13120
13121         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
13122         (TARGET_POPCNT): Ditto.
13123         (TARGET_SAHF): Ditto.
13124         (TARGET_AES): Ditto.
13125         (TARGET_PCLMUL): Ditto.
13126         (TARGET_CMPXCHG16B): Ditto.
13127         (TARGET_RECIP): Move switch into target_flags.
13128         (TARGET_FUSED_MADD): Ditto.
13129         (ix86_arch_features): Make an unsigned char type.
13130         (ix86_tune_features): Ditto.
13131         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
13132         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
13133         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
13134
13135         * config/i386/i386.opt (arch): New TargetSave field to define
13136         fields that need to be saved for function specific option support.
13137         (tune): Ditto.
13138         (fpmath): Ditto.
13139         (branch_cost): Ditto.
13140         (ix86_isa_flags_explicit): Ditto.
13141         (tune_defaulted): Ditto.
13142         (arch_specified): Ditto.
13143         (-m128-long-double): Add Save flag to save option for target
13144         specific option support.
13145         (-m80387): Ditto.
13146         (-maccumulate-outgoing-args): Ditto.
13147         (-malign-double): Ditto.
13148         (-malign-stringops): Ditto.
13149         (-mfancy-math-387): Ditto.
13150         (-mhard-float): Ditto.
13151         (-mieee-fp): Ditto.
13152         (-minline-all-stringops): Ditto.
13153         (-minline-stringops-dynamically): Ditto.
13154         (-mms-bitfields): Ditto.
13155         (-mno-align-stringops): Ditto.
13156         (-mno-fancy-math-387): Ditto.
13157         (-mno-push-args): Ditto.
13158         (-mno-red-zone): Ditto.
13159         (-mpush-args): Ditto.
13160         (-mred-zone): Ditto.
13161         (-mrtd): Ditto.
13162         (-msseregparm): Ditto.
13163         (-mstack-arg-probe): Ditto.
13164         (-m32): Ditto.
13165         (-m64): Ditto.
13166         (-mmmx): Ditto.
13167         (-m3dnow): Ditto.
13168         (-m3dnowa): Ditto.
13169         (-msse): Ditto.
13170         (-msse2): Ditto.
13171         (-msse3): Ditto.
13172         (-msse4.1): Ditto.
13173         (-msse4.2): Ditto.
13174         (-msse4): Ditto.
13175         (-mno-sse4): Ditto.
13176         (-msse4a): Ditto.
13177         (-msse5): Ditto.
13178         (-mrecip): Move flag into target_flags.
13179         (-mcld): Ditto.
13180         (-mno-fused-madd): Ditto.
13181         (-mfused-madd): Ditto.
13182         (-mabm): Move flag into ix86_isa_flags.
13183         (-mcx16): Ditto.
13184         (-mpopcnt): Ditto.
13185         (-msahf): Ditto.
13186         (-maes): Ditto.
13187         (-mpclmul): Ditto.
13188
13189         * config/i386/i386-c.c: New file for #pragma support.
13190         (ix86_target_macros_internal): New function to #define or #undef
13191         target macros based when the user uses the #pragma GCC option to
13192         change target options.
13193         (ix86_pragma_option_parse): New function to add #pragma GCC option
13194         support.
13195         (ix86_target_macros): Move defining the target macros here from
13196         TARGET_CPU_CPP_BUILTINS in i386.h.
13197         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
13198         defined, initialize any subtarget #pragmas.
13199
13200         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
13201         REGISTER_TARGET_PRAGMAS.
13202
13203         * config/i386/t-i386: New file for x86 dependencies.
13204         (i386.o): Make dependencies mirror the include files used.
13205         (i386-c.o): New file, add dependencies.
13206
13207         * config/i386/i386-protos.h (override_options): Add bool argument.
13208         (ix86_valid_option_attribute_tree): Add declaration.
13209         (ix86_target_macros): Ditto.
13210         (ix86_register_macros): Ditto.
13211
13212         * config/i386/i386.c (ix86_tune_features): Move initialization of
13213         the target masks to initial_ix86_tune_features to allow functions
13214         to have different target options.  Make type unsigned char,
13215         instead of unsigned int.
13216         (initial_ix86_tune_features): New static vector to hold processor
13217         masks for the tune variables.
13218         (ix86_arch_features): Move initialization of the target masks to
13219         initial_ix86_arch_features to allow functions to have different
13220         target options.  Make type unsigned char, instead of unsigned int.
13221         (initial_ix86_arch_features): New static vector to hold processor
13222         masks for the arch variables.
13223         (enum ix86_function_specific_strings): New enum to describe the
13224         string options used for attribute((option(...))).
13225         (ix86_target_string): New function to return a string that
13226         describes the target options.
13227         (ix86_debug_options): New function to print the current options in
13228         the debugger.
13229         (ix86_function_specific_save): New function hook to save the
13230         function specific global variables in the cl_target_option structure.
13231         (ix86_function_specific_restore): New function hook to restore the
13232         function specific variables from the cl_target_option structure to
13233         the global variables.
13234         (ix86_function_specific_print): New function hook to print the
13235         target specific options in the cl_target_option structure.
13236         (ix86_valid_option_attribute_p): New function hook to validate
13237         attribute((option(...))) arguments.
13238         (ix86_valid_option_attribute_tree): New function that is common
13239         code between attribute((option(...))) and #pragma GCC option
13240         support that parses the options and returns a tree holding the options.
13241         (ix86_valid_option_attribute_inner_p): New helper function for
13242         ix86_valid_option_attribute_tree.
13243         (ix86_can_inline_p): New function hook to decide if one function
13244         can inline another on a target specific basis.
13245         (ix86_set_current_function); New function hook to switch target
13246         options if the user used attribute((option(...))) or #pragma GCC
13247         option.
13248         (ix86_tune_defaulted): Move to static file scope from
13249         override_options.
13250         (ix86_arch_specified): Ditto.
13251         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
13252         ix86_isa_flags.
13253         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
13254         (OPTION_MASK_ISA_ABM_SET): Ditto.
13255         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
13256         (OPTION_MASK_ISA_CX16_SET): Ditto.
13257         (OPTION_MASK_ISA_SAHF_SET): Ditto.
13258         (OPTION_MASK_ISA_AES_UNSET): Ditto.
13259         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
13260         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
13261         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
13262         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
13263         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
13264         (struct ptt): Move to static file scope from override_options.
13265         (processor_target_table): Ditto.
13266         (cpu_names): Ditto.
13267         (ix86_handle_option): Add support for options that are now isa options.
13268         (override_options): Add support for declaring functions that
13269         support different target options than were specified on the
13270         command line.  Move struct ptt, processor_target_table, cpu_names,
13271         ix86_tune_defaulted, ix86_arch_specified to static file scope.
13272         Add bool argument.  Fix up error messages so the appropriate error
13273         is given for either command line or attribute.
13274         (ix86_previous_fndecl): New static to remember previous function
13275         declaration to see if we need to change target options.
13276         (ix86_builtins_isa): New array to record the ISA of each builtin
13277         function.
13278         (def_builtin): Always create the builtin function, even if the
13279         current ISA doesn't support it.
13280         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
13281         tests for those builtins.
13282         (ix86_init_builtins): Remove TARGET_MMX test for calling
13283         ix86_init_mmx_sse_builtins.
13284         (ix86_expand_builtin): If the current ISA doesn't support a given
13285         builtin, signal an error.
13286         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
13287         (TARGET_SET_CURRENT_FUNCTION): Ditto.
13288         (TARGET_OPTION_SAVE): Ditto.
13289         (TARGET_OPTION_RESTORE): Ditto.
13290         (TARGET_OPTION_PRINT): Ditto.
13291         (TARGET_CAN_INLINE_P): Ditto.
13292
13293 2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>
13294
13295         * c-typeck.c (build_external_ref): Don't call assemble_external.
13296         * final.c (output_operand): Call assemble_external.
13297
13298 2008-07-21  DJ Delorie  <dj@redhat.com>
13299
13300         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
13301         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
13302
13303 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13304
13305         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
13306         original insn and splitter contents into ...
13307         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
13308         flag_unsafe_math_optimizations.  Add dummy scratch register.
13309         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
13310         !flag_unsafe_math_optimizations.  Returns number with next
13311         highest magnitude if this is still less or equal to the true
13312         quotient in magnitude.
13313
13314 2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>
13315
13316         * Makefile.in: Replace toplev.h with TOPLEV_H.
13317         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
13318         * c-lex.c (fe_file_change): Don't set in_system_header.
13319         * c-parser.c (c_token): Remove in_system_header.
13320         (c_lex_one_token): Don't set in_system_header.
13321         (c_parser_set_source_position_from_token): Don't set in_system_header.
13322         * diagnostic.c (diagnostic_report_diagnostic): Use location from
13323         diagnostic_info.
13324         (warning_at): New.
13325         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
13326         * flags.h (in_system_header): Remove.
13327         * function.c (saved_in_system_header): Remove.
13328         (push_cfun): Don't set in_system_header.
13329         (pop_cfun): Don't set in_system_header.
13330         (push_struct_function): Don't set in_system_header.
13331         * input.h (expanded_location): Add sysp.
13332         (in_system_header_at): New.
13333         (in_system_header): New.
13334         * toplev.c (in_system_header): Remove.
13335         * toplev.h: Include input.h
13336         (warning_at): New.
13337         * tree-cfg.c (execute_warn_function_return): Call warning_at.
13338         * tree-ssa.c (warn_uninit): Call warning_at.
13339         (warn_uninitialized_var): Update calls to warn_uninit.
13340         (warn_uninitialized_phi): Update calls to warn_uninit.
13341         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
13342         (expand_location): Initialize xloc.sysp.
13343         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
13344         (tree_decl_with_vis): Remove in_system_header_flag.
13345
13346 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
13347
13348         PR target/36822
13349         * recog.c (asm_operand_ok): Change the order of the extra
13350         memory constraint checks.
13351
13352 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13353
13354         PR tree-opt/36879
13355         * tree-switch-conversion.c (build_one_array): Call
13356         varpool_mark_needed_node and varpool_finalize_decl
13357         instead of assemble_variable.
13358
13359 2008-07-19  Jan Hubicka  <jh@suse.cz>
13360
13361         * cgraph.c (cgraph_add_new_function): Do early local passes.
13362         * tree-nrv.c (gate_pass_return_slot): New gate.
13363         (pass_nrv): Add the gate.
13364         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
13365         functions.
13366         (coalesce_ssa_name): Coalesce SSA names.
13367         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
13368         not optimizing so unused user vars remains visible.
13369         * common.opt (flag_tree_ter): Always enable by default.
13370         * tree-ssa-ter.c: Include flags.h
13371         (is_replaceable_p): Check that locations match; when aliasing
13372         is missing be conservative about loads.
13373         * tree-optimize.c (gate_init_datastructures): Remove.
13374         (pass_init_datastructures): New.
13375         * passes.c: Reorder passes so we always go into SSA.
13376
13377 2008-07-19  Jan Hubicka  <jh@suse.cz>
13378
13379         * doc/extend.texi (flatten attribute): Remove note about
13380         unit-at-a-time.
13381         * doc/invoke.texi (--combine): Likewise.
13382         (-finline-functions-called-once): Update levels when enabled.
13383         (-funit-at-a-time): Document new behaviour.
13384         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
13385         -fno-section-anchors when disabled explicitly.
13386         (inline params): They are not ignored now.
13387         (precompiled headers): Remove unit-at-a-time as being incompatible.
13388         * opts.c (decode_options): Handle unit-at-a-time as alias;
13389         imply -fno-section-anchors when toplevel reorder is disabled
13390         explicitly.
13391         * common.opt (ftoplevel-reorder): Set default value to 2.
13392         (funit-at-a-time): Set default value to 1.
13393         * config/rs6000/rs6000.c (optimization_options): Set section anchors
13394         to 2.
13395
13396 2008-07-19  Jan Hubicka  <jh@suse.cz>
13397
13398         * builtins.c (expand_builtin_int_roundingfn,
13399         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
13400         it is not useful.
13401
13402 2008-07-19  Richard Guenther  <rguenther@suse.de>
13403
13404         PR bootstrap/36864
13405         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
13406         * tree-ssa-sccvn.c (get_constant_value_id): New function.
13407         * tree-ssa-pre.c (get_expr_value_id): For newly created
13408         constant value-ids make sure to add the expression to its
13409         expression-set.
13410
13411 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
13412
13413         PR middle-end/36877
13414         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
13415         return value of the builtin is ignored.
13416
13417 2008-07-19  Olivier Hainque  <hainque@adacore.com>
13418
13419         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
13420         bits, a C conformant malloc implementation has to provide.
13421         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
13422
13423 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
13424
13425         PR target/36780
13426         PR target/36827
13427         * reload.c (find_reloads_subreg_address): Only reload address if
13428         reloaded == 0, not for reloaded != 1.
13429
13430         Revert:
13431         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
13432         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13433         (m32c_legitimate_address_p): Handle "++rii" addresses created by
13434         m32c_legitimize_reload_address.
13435
13436         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13437         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13438         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13439
13440 2008-07-19  Olivier Hainque  <hainque@adacore.com>
13441
13442         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
13443         argument, saying whether nested array are to be collapsed
13444         into a single array type DIE with multiple subscripts.
13445         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
13446         issues, centralize the nested array types collapsing control and
13447         disable the transformation for Ada.
13448
13449 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
13450
13451         PR target/36786
13452         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
13453         x86_64_shift_adj.
13454         (x86_64_shift_adj_2): New expander.
13455         (x86_64_shift_adj_3): Ditto.
13456         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
13457         to split TImode operands.
13458         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
13459         (ix86_split_lshr): Ditto.
13460
13461 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
13462
13463         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
13464         and __CHAR32_TYPE__.
13465         * c-typeck.c (digest_init): Support char16_t and char32_t.
13466         (set_nonincremental_init_from_string): Idem.
13467
13468 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
13469
13470         PR middle-end/36859
13471         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
13472         PREFERRED_STACK_BOUNDARY.
13473         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
13474
13475 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
13476
13477         PR middle-end/36858
13478         * function.c (locate_and_pad_parm): Cap boundary earlier.
13479
13480 2008-07-17  Julian Brown  <julian@codesourcery.com>
13481
13482         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
13483         no-op for targets which don't use DLLs.
13484
13485 2008-07-17  Martin Jambor  <mjambor@suse.cz>
13486
13487         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
13488         that nodes are relevant by examining the node->analyzed flag.
13489         (ipcp_init_stage): Check which nodes are relevant, assert that the
13490         relevant ones are also required.
13491         (ipcp_propagate_stage): Check on the side arrays are properly
13492         allocated.
13493         (ipcp_print_all_jump_functions): Make sure not to touch any node
13494         that is not analyzed or an edge that does not have a corresponding
13495         entry in the on-the-side vectors.
13496         (ipcp_function_scale_print): Likewise.
13497         (ipcp_update_callgraph): Check that the node is relevant.
13498         (ipcp_insert_stage): Check that the node is relevant.  Check there is
13499         an info for every node and edge.
13500         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
13501         (ipa_print_all_tree_maps): Likewise and a new variable info.
13502         (ipa_print_all_params_modified): Likewise.
13503         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
13504
13505 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
13506
13507         PR target/25343
13508         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
13509
13510 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
13511
13512         PR rtl-optimization/36753
13513         * fwprop.c (use_killed_between): Don't shortcut
13514         single-definition global registers.
13515
13516 2008-07-16  Jan Hubicka  <jh@suse.cz>
13517
13518         * cgraph.h (varpool_empty_needed_queue): Declare.
13519         * cgraphunit.c (output_in_order): Mark all variables as needed;
13520         empty the queue.
13521         * varpool.c (varpool_assemble_node): Update debug queue.
13522         (varpool_assemble_pending_decls): Don't do it here.
13523         (varpool_empty_needed_queue):  New function.
13524
13525 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13526
13527         * recog.c (peephole2_optimize): Fix formatting.
13528
13529 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13530
13531         * c-pch.c (get_ident): Avoid C++ keywords.
13532         * combine-stack-adj.c (single_set_for_csa): Likewise.
13533         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
13534         output_asm_insn): Likewise.
13535         * reload.c (push_secondary_reload, find_reusable_reload,
13536         push_reload, combine_reloads, find_reloads,
13537         debug_reload_to_stream): Likewise.
13538         * reload.h (struct reload): Likewise.
13539         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
13540         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
13541         emit_output_reload_insns): Likewise.
13542         * targhooks.c (default_secondary_reload): Likewise.
13543         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
13544
13545 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13546
13547         * recog.c (validate_change_1, validate_change,
13548         validate_unshare_change, validate_replace_rtx_1, struct
13549         funny_match, constrain_operands, peephole2_optimize): Avoid C++
13550         keywords.
13551         * reload.c (push_secondary_reload, secondary_reload_class,
13552         scratch_reload_class, find_valid_class, find_reusable_reload,
13553         push_reload, find_dummy_reload, find_reloads_address_1,
13554         find_reloads_address_part, find_equiv_reg): Likewise.
13555         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
13556         choose_reload_regs): Likewise.
13557         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
13558         Likewise.
13559         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
13560         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
13561         * sched-rgn.c (concat_INSN_LIST): Likewise.
13562         * stor-layout.c (mode_for_size, mode_for_size_tree,
13563         smallest_mode_for_size): Likewise.
13564
13565 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13566
13567         * cfg.c (dump_reg_info): Avoid C++ keywords.
13568         * dwarf2asm.c (dw2_force_const_mem,
13569         dw2_asm_output_encoded_addr_rtx): Likewise.
13570         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
13571         * expmed.c (expand_shift): Likewise.
13572         * global.c (find_reg): Likewise.
13573         * graph.c (draw_edge): Likewise.
13574         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
13575         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
13576         widen_clz, widen_bswap, expand_parity, expand_unop,
13577         emit_cmp_and_jump_insn_1): Likewise.
13578         * postreload.c (reload_cse_simplify_operands): Likewise.
13579         * ra.h (add_neighbor): Likewise.
13580         * reg-stack.c (remove_regno_note, change_stack): Likewise.
13581         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
13582         record_reg_classes, copy_cost, record_address_regs,
13583         invalid_mode_change_p): Likewise.
13584         * regrename.c (regrename_optimize, scan_rtx_reg,
13585         dump_def_use_chain, find_oldest_value_reg,
13586         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
13587
13588 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
13589
13590         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
13591         MASK_POWERPC64 for power4 in previous commit.
13592
13593 2008-07-16  Olivier Hainque  <hainque@adacore.com>
13594
13595         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
13596         instead of bare conversion to cast const-ness away.
13597
13598 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
13599
13600         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
13601         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
13602         * config/xtensa/xtensa.c (xtensa_function_value): New function.
13603         (TARGET_FUNCTION_VALUE): Define.
13604
13605 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
13606
13607         * config/rs6000/rs6000.c (processor_target_table): Add
13608         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
13609
13610 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
13611
13612         PR target/36827
13613         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13614         (m32c_legitimate_address_p): Handle "++rii" addresses created by
13615         m32c_legitimize_reload_address.
13616
13617 2007-07-16  Rafael Ávila de Espíndola  <espindola@google.com>
13618
13619         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
13620         DECL_IN_SYSTEM_HEADER in sync.
13621
13622 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
13623
13624         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
13625         * tree-ssa-pre.c (pre_expr_eq): Ditto
13626         (get_constant_for_value_id): Take a type as an argument.
13627         (fully_constant_expression): Pass in type.
13628         (find_or_generate_expression): Short circuit constant case.
13629         (create_expression_by_pieces): Remove special casing of
13630         pointer_plus.
13631         (do_regular_insertion): Short circuit constant case.
13632         (do_partial_partial_insertion): Ditto.
13633
13634 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13635
13636         PR target/36782
13637         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
13638
13639 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
13640
13641         * config/xtensa/libgcc-xtensa.ver: New file.
13642         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
13643
13644 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13645
13646         * df-problems.c (df_set_note): Avoid C++ keywords.
13647         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
13648         * dse.c (record_store, remove_useless_values): Likewise.
13649         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
13650         gen_reg_rtx_offset, operand_subword, change_address_1,
13651         change_address, adjust_address_1, offset_address,
13652         widen_memory_access, emit_copy_of_insn_after): Likewise.
13653         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
13654         * fwprop.c (should_replace_address, propagate_rtx_1,
13655         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
13656         Likewise.
13657         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
13658         gcse_emit_move_after, update_ld_motion_stores): Likewise.
13659         * lcm.c (compute_insert_delete, pre_edge_lcm,
13660         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
13661         * lower-subreg.c (resolve_reg_notes): Likewise.
13662         * mode-switching.c (optimize_mode_switching): Likewise.
13663
13664 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13665
13666         * bt-load.c (add_btr_def, migrate_btr_def,
13667         branch_target_load_optimize): Avoid C++ keywords.
13668         * caller-save.c (insert_restore, insert_save, insert_one_insn):
13669         Likewise.
13670         * combine.c (subst, simplify_set, make_extraction,
13671         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
13672         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
13673         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
13674
13675 2008-07-15  Richard Guenther  <rguenther@suse.de>
13676
13677         PR middle-end/36369
13678         * c-common.c (strict_aliasing_warning): Do not warn for
13679         TYPE_REF_CAN_ALIAS_ALL pointers.
13680         (c_common_get_alias_set): may_alias types are not special.
13681         * tree.c (build_pointer_type_for_mode): Look up the may_alias
13682         attribute and set can_ref_all accordingly.
13683         (build_reference_type_for_mode): Likewise.
13684         * doc/extend.texi (may_alias): Clarify.
13685
13686 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13687
13688         PR target/36780
13689         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13690         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13691
13692 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13693
13694         PR target/31568
13695         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
13696         gcc_assert, instead call output_operand_lossage.
13697
13698 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
13699
13700         * builtins.c (std_canonical_va_list): Treat structure based
13701         va_list types.
13702
13703 2008-07-15  Ben Elliston  <bje@au.ibm.com>
13704
13705         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
13706
13707 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
13708
13709         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
13710         is set.
13711
13712 2008-07-14  Jan Hubicka  <jh@suse.cz>
13713
13714         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
13715         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
13716         fix predicates and constraints.
13717         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
13718         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
13719
13720 2008-07-14  Doug Kwan  <dougkwan@google.com>
13721
13722         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
13723         additional option file arm/eabi.opt.
13724         * config/arm/eabi.h (File): New configuration file for EABI targets.
13725         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
13726         SUBSUBTARGET_EXTRA_SPECS.
13727         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
13728         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
13729         from STARTFILE_SPEC so that it can be referenced in an override.
13730         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
13731         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
13732         can be referenced in an override.
13733         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
13734         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
13735         so that it can be referenced in an override.
13736         (LINK_SPEC): Use BPABI_LINK_SPEC.
13737         * config/arm/eabi.opt (File): New.
13738
13739 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13740
13741         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
13742         (FIXED_VALUE_H): New variable.
13743         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
13744         input.h, fixed-value.h.
13745         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
13746         (BASIC_BLOCK_H): Use $(BITMAP_H).
13747         (FUNCTION_H): Add varray.h.
13748         (IPA_REFERENCE_H): Use $(BITMAP_H).
13749         (CGRAPH_H): Add $(BASIC_BLOCK_H).
13750         (DF_H): Use $(BITMAP_H).
13751         (GGC_H): Add statistics.h.
13752         (INSN_ADDR_H): New.
13753         (INSN_ATTR_H): Use it.
13754         (SYSTEM_H): Add safe-ctype.h, filenames.h.
13755         (INPUT_H): New.
13756         (SYMTAB_H): Add $(OBSTACK_H).
13757         (CPP_INTERNAL_H): New.
13758         (TREE_DUMP_H): Add tree-pass.h.
13759         (TREE_FLOW_H): Use $(BITMAP_H)
13760         (PRETTY_PRINT_H): Use $(INPUT_H).
13761         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
13762         (GSTAB_H): New.
13763         (BITMAP_H): New.
13764         (many object files): Fix lots of header dependencies throughout.
13765
13766 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13767
13768         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
13769         New macros.
13770         (s-gtyp-input): Use them to write tmp-gi.list.
13771         (echo_to_gi.list): Remove.
13772
13773 2008-07-14  Richard Guenther  <rguenther@suse.de>
13774
13775         * tree-ssa-sccvn.c (pre_info): Remove.
13776         (switch_to_PRE_table): Likewise.
13777         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
13778         (set_hashtable_value_ids): Do not create value-ids for the
13779         optimistic tables.
13780         (run_scc_vn): Remove double test.  Remove bogus special-case
13781         in value-number printing.
13782         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
13783         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
13784         SSA_NAME_VALUE.
13785         * tree-flow-inline.h (get_value_handle): Remove.
13786         * tree-flow.h (get_value_handle): Remove.
13787
13788 2008-07-14  Martin Jambor  <mjambor@suse.cz>
13789
13790         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
13791         in which we generate arithmetics is not a subrange.
13792
13793 2008-07-14  Martin Jambor  <mjambor@suse.cz>
13794
13795         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
13796
13797 2008-07-14  Richard Guenther  <rguenther@suse.de>
13798
13799         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
13800
13801 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
13802
13803         PR target/36745
13804         * config/s390/s390.c (s390_secondary_reload): Add a secondary
13805         reload for symbol refs moved to r0 with -fPIC.
13806         (legitimize_pic_address): Use the target register as temporary
13807         reg if possible.
13808         (emit_symbolic_move): Adjust comment.
13809         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
13810         New expanders.
13811
13812 2008-07-14  Ben Elliston  <bje@au.ibm.com>
13813
13814         * c-common.h (C_CPP_HASHNODE): New macro.
13815         * coretypes.h (struct cpp_token): Forward declare.
13816         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13817         the context-sensitive keyword method.
13818         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
13819         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
13820         expand_bool_pixel): New.
13821         (altivec_categorize_keyword): New function.
13822         (init_vector_keywords): New function.
13823         (rs6000_macro_to_expand): Likewise.
13824         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
13825         compiling an ISO C dialect.
13826
13827 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
13828
13829         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
13830         (create_expression_by_pieces): Fix typo.
13831         (do_regular_insertion): Use debug counter here too.
13832
13833 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
13834
13835         PR target/35492.
13836         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
13837         CONST_OK_FOR_LETTER_P.  All port-local users changed.
13838         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
13839         implement Kp matching power-of-two.
13840         (CONSTRAINT_LEN): Define to match.
13841         * config/cris/cris.md: Replace all use of constraint K with Kc.
13842         ("*btst*): Use Kp for operand 0 of last alternative.
13843
13844 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13845
13846         PR testsuite/36440
13847         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
13848         and quad formats.
13849
13850 2008-07-13  Jan Hubicka  <jh@suse.cz>
13851
13852         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
13853         to be mangled too.
13854
13855 2008-07-13  Richard Guenther  <rguenther@suse.de>
13856
13857         PR middle-end/36811
13858         * langhooks.c (lhd_print_error_function): Deal with recursive
13859         BLOCK trees.
13860
13861 2008-07-12  Jan Hubicka  <jh@suse.cz>
13862
13863         * cgraph.c (assembler_name_hash): New static var.
13864         (hash_node_by_assembler_name, eq_assembler_name): New.
13865         (cgraph_node_for_asm): Use hashtable.
13866         (cgraph_remove_node): Maintain hashtable.
13867         (change_decl_assembler_name): Sanity check that names are not changing
13868         after aliasing was processed.
13869         * cgraph.h (varpoon_node): Add next GGC marker.
13870         * tree.c (decl_assembler_name_equal): Constify.
13871         (decl_assembler_name_hash): New.
13872         * tree.h (decl_assembler_name_equal): Constify.
13873         (decl_assembler_name_hash): Update.
13874
13875 2008-07-12  David Daney  <ddaney@avtrex.com>
13876
13877         * config/mips/driver-native.c (host_detect_local_cpu): Handle
13878         sb1 and r5000 cpus.
13879
13880 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13881
13882         * doc/md.texi: Document the MIPS "v" constraint.
13883         * config/mips/mips.h (reg_class): Revert last change.
13884         (REG_CLASS_NAMES): Likewise.
13885         (REG_CLASS_CONTENTS): Likewise.
13886         * config/mips/mips.c (mips_regno_to_class): Likewise.
13887         * config/mips/constraints.md (v): Likewise, but add documentation.
13888         Add a comment to say that this constraint should not be used in
13889         gcc code.
13890
13891 2008-07-11  DJ Delorie  <dj@redhat.com>
13892
13893         * config/h8300/h8300.md (length): Fix branch offset limit.
13894
13895 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
13896
13897         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
13898         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
13899         (avr_hard_regno_scratch_ok): New function.
13900         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
13901         * config/avr/avr.md (all peepholes that request a scratch register):
13902         Remove avr_peep2_scratch_safe use.
13903
13904 2008-07-11  Tom Tromey  <tromey@redhat.com>
13905             Ian Lance Taylor  <iant@google.com>
13906
13907         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
13908         (struct c_common_resword): Define.
13909         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
13910         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
13911         (c_common_reswords, num_c_common_reswords): Declare.
13912         * c-common.c (c_common_reswords): New global const array.
13913         (num_c_common_reswords): New const int.
13914         * c-parser.c (struct resword, reswords): Don't define.
13915         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
13916         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
13917         than reswords.  If warning about C++ keywords, give them a special
13918         RID code.
13919         (c_lex_one_token): Warn about C++ keywords.  Call
13920         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
13921         (c_parser_external_declaration): Look for RID_xxx rather than
13922         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
13923         (c_parser_statement_after_labels): Likewise.
13924         (c_parser_objc_class_instance_variables): Likewise.
13925         (c_parser_objc_class_declaration): Likewise.
13926         (c_parser_objc_try_catch_statement): Likewise.
13927         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
13928         (declspecs_add_type): Likewise.
13929
13930 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
13931
13932         * ggc-page.c (alloc_page):
13933         Substituting xmalloc, xcalloc with
13934         XNEWVEC and XCNEWVAR macros which add the
13935         needed casts.
13936
13937 2008-07-11  Richard Guenther  <rguenther@suse.de>
13938
13939         PR tree-optimization/36765
13940         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
13941         aliases from HEAP vars to SMTs.
13942
13943 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13944
13945         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
13946         * configure.ac (loose_warn): Move -Wc++-compat from here...
13947         (strict_warn): ...to here.
13948         * configure: Regenerate.
13949
13950 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
13951
13952         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
13953         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
13954         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
13955         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
13956         excluding more specific h8300-*-* and sh-*-* targets.
13957
13958 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
13959
13960         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
13961         (eliminate): Ditto.
13962         (execute_pre): Call loop_optimizer_finalize in early exit.
13963
13964 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
13965
13966         PR middle-end/36790
13967         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
13968         uids in the bitmap, not just VAR_DECL uids.
13969
13970         PR rtl-optimization/36419
13971         * combine-stack-adj.c (adjust_frame_related_expr): New function.
13972         (combine_stack_adjustments_for_block): Call it if needed.  Delete
13973         correct insn.
13974         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
13975         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
13976         prologue sp adjustment.
13977
13978 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
13979
13980         PR other/28322
13981         * opts.c (print_ignored_options): Report postponed diagnostics for
13982         unknown -Wno-* options as warnings, not errors.
13983         (postpone_unknown_option_error): Renamed to...
13984         (postpone_unknown_option_warning): ... this.
13985
13986 2008-07-09  Doug Kwan  <dougkwan@google.com>
13987
13988         Revert:
13989         2008-07-08  Doug Kwan  <dougkwan@google.com>
13990
13991         * config/arm/arm.opt (mandroid): New option.
13992         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
13993         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
13994         (CC1_SPEC): Same.
13995         (CC1PLUS_SPEC): Same.
13996         (LIB_SPEC): Same.
13997         (STARTFILE_SPEC): Same.
13998         (ENDFILE_SPEC): Same.
13999         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
14000         used.
14001
14002 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
14003
14004         PR target/35802
14005         * config/mips/mips.h (reg_class): Remove V1_REG.
14006         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
14007         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
14008         instead of V1_REGS.
14009         (mips_get_tp): New function.
14010         (mips_legitimize_tls_address): Use it.
14011         * config/mips/constraints.md (v): Delete.
14012         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
14013         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
14014         After reload, split into a move and ...
14015         (*tls_get_tp_<mode>_split): ...this new instruction.
14016
14017 2008-07-09  David Daney  <ddaney@avtrex.com>
14018
14019         * config/mips/driver-native.c: Include coretypes.h and tm.h.
14020
14021 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
14022
14023         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
14024         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
14025         Add c argument.
14026         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
14027         htab_delete should be called.  Don't free c.
14028         (lookup_tmp_var): Create temp_htab lazily.
14029         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
14030         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
14031         callers.
14032         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
14033         lower_omp_ordered, lower_omp_critical, lower_omp_for,
14034         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
14035         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
14036         * tree-sra.c (generate_element_init): Likewise.
14037         * tree-mudflap.c (execute_mudflap_function_ops,
14038         execute_mudflap_function_decls): Likewise.
14039         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
14040         * tree-gimple.h (struct gimplify_ctx): New type.
14041         (push_gimplify_context): Adjust prototype.
14042
14043 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
14044
14045         * tree-ssa-pre.c (phi_translate_1): Update placement of
14046         add_to_value calls.
14047
14048 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
14049
14050         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
14051         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
14052         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
14053         * targhooks.c (default_hard_regno_scratch_ok): New function.
14054         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
14055         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
14056         * recog.c:  Include "target.h".
14057         (peep2_find_free_register): Add check for global regs. Add target
14058         specific check.
14059         * Makefile.in (recog.o): Depend on target.h.
14060
14061 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
14062
14063         * config/sh/sh.c (sh_canonical_va_list_type): New.
14064         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
14065
14066 2008-07-09  Raksit Ashok <raksit@google.com>
14067
14068         * doc/invoke.texi (Option Summary): Mention new option
14069         -Wdisallowed-function-list=...
14070         (Warning Options): Document -Wdisallowed-function-list=...
14071         * common.opt (Wdisallowed-function-list=): New flag.
14072         * flags.h (warn_disallowed_functions): External definition of new
14073         boolean warning flag.
14074         (warn_if_disallowed_function_p): Declare new function.
14075         * opts.c (warning_disallowed_functions): New static variable.
14076         (warn_disallowed_functions): New boolean warning flag.
14077         (warn_if_disallowed_function_p): New function.
14078         (add_comma_separated_to_vector): Rename
14079         add_instrument_functions_exclude_list to this.
14080         (common_handle_option): Handle new option. Rename calls to
14081         add_instrument_functions_exclude_list into calls to
14082         add_comma_separated_to_vector.
14083         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
14084         based on flag warn_disallowed_functions.
14085
14086 2008-07-09  Christian Bruel  <christian.bruel@st.com>
14087
14088         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
14089          instead of get_attr_length.
14090
14091 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14092
14093         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
14094         keywords.
14095         * genemit.c (gen_insn): Likewise.
14096         * gengtype.c (note_def_vec): Likewise.
14097         * gengtype.h (note_def_vec): Likewise.
14098         * genoutput.c (struct data, output_insn_data, process_template,
14099         gen_expand, gen_split, note_constraint): Likewise.
14100         * genrecog.c (new_decision, add_to_sequence, factor_tests,
14101         make_insn_sequence): Likewise.
14102         * gensupport.c (record_insn_name): Likewise.
14103
14104 2008-07-08  Doug Kwan  <dougkwan@google.com>
14105
14106         * config/arm/arm.opt (mandroid): New option.
14107         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
14108         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
14109         (CC1_SPEC): Same.
14110         (CC1PLUS_SPEC): Same.
14111         (LIB_SPEC): Same.
14112         (STARTFILE_SPEC): Same.
14113         (ENDFILE_SPEC): Same.
14114         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
14115         used.
14116
14117 2008-07-08  Raksit Ashok  <raksit@google.com>
14118
14119         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
14120         (set_storage_via_setmem): Fix expected_align parameter.
14121         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
14122         missing from the list.
14123         * doc/md.texi (movmem): Explicitly state that expected alignment is
14124         to be expressed in bytes.
14125         (setmem): Explicitly state that expected alignment is to be expressed
14126         in bytes.
14127
14128 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
14129
14130         * reload.c (find_reloads_subreg_address): Do not require validity
14131         of address in original mode before reloading address.
14132
14133 2008-07-07  Tianwei Sheng  <tianweis@google.com>
14134
14135         * df-core.c (df_remove_problem): Adjust the access to avoid out of
14136         bounds array access.
14137
14138 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
14139
14140         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
14141
14142 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
14143
14144         Fix PR tree-optimization/23455
14145         Fix PR tree-optimization/35286
14146         Fix PR tree-optimization/35287
14147         * Makefile.in (OBJS-common): Remove tree-vn.o.
14148         (tree-vn.o): Remove.
14149         * dbgcnt.def: Add treepre_insert debug counter.
14150         * gcc/tree-flow.h (add_to_value): Updated for other changes.
14151         (debug_value_expressions): Ditto.
14152         (print_value_expressions): Ditto.
14153         * tree-pretty-print.c (dump_generic_node): Updated for
14154         VALUE_HANDLE removal.
14155         * tree-ssa-dom.c (record_equality): Ditto.
14156         (cprop_operand): Ditto.
14157         (lookup_avail_expr): Ditto.
14158         * tree-ssa-threadedge.c
14159         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
14160         (simplify_control_stmt_condition): Ditto.
14161         * tree.c (tree_code_size): Ditto.
14162         (tree_node_structure): Ditto.
14163         (iterative_hash_expr): Ditto.
14164         * tree.def: Ditto.
14165         * tree.h (VALUE_HANDLE_ID): Ditto.
14166         (VALUE_HANDLE_EXPR_SET): Ditto.
14167         (struct tree_value_handle): Ditto.
14168         (union tree_node): Ditto.
14169         * treestruct.def: Ditto.
14170         * tree-vn.c: Removed.
14171         * tree-ssa-pre.c: Rewritten entirely.
14172         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
14173         (constant_value_ids): Ditto.
14174         (vn_nary_op_t): Moved to header.
14175         (vn_phi_t): Ditto.
14176         (vn_reference_op_t): Ditto
14177         (vn_reference_t): Ditto.
14178         (next_value_id): New variable.
14179         (VN_INFO): Add an assert.
14180         (vn_constant_eq): New function.
14181         (vn_constant_hash): Ditto.
14182         (get_or_alloc_constant_value_id): Ditto.
14183         (value_id_constant_p): Ditto.
14184         (vn_reference_compute_hash): De-staticify.
14185         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
14186         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
14187         (valueize_refs): Update opcode if it changes from ssa name to constant.
14188         (vn_reference_lookup_1): Add new argument.
14189         (vn_reference_lookup):  Ditto.
14190         (vn_reference_lookup_pieces): New function.
14191         (vn_reference_insert): Add return type. Modify to deal with value ids.
14192         (vn_reference_insert_pieces):  New function.
14193         (vn_nary_op_compute_hash): De-staticify.
14194         (vn_nary_op_eq): Ditto.
14195         (vn_nary_op_lookup_pieces): New function.
14196         (vn_nary_op_lookup): Add new argument.
14197         (vn_nary_op_insert_pieces): New function.
14198         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
14199         (vn_phi_insert): Ditto.
14200         (visit_unary_op): Update for callee changes.
14201         (visit_binary_op): Ditto.
14202         (visit_reference_op_load): Ditto.
14203         (visit_reference_op_store): Ditto.
14204         (init_scc_vn): Init next_value_id, constant_to_value_id and
14205         constant_value_ids.
14206         (free_scc_vn): Free them.
14207         (set_hashtable_value_ids): New function.
14208         (run_scc_vn): Use it.
14209         (get_max_value_id): New function.
14210         (get_next_value_id): Ditto.
14211         (expressions_equal_p): Moved from tree-vn.c
14212         (sort_vuses): Ditto.
14213         (sort_vuses_heap): Ditto.
14214         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
14215         above).
14216         * tree.c (iterative_hash_hashval_t): Made non-static
14217         * tree.h (iterative_hash_hashval_t): Declare it.
14218
14219 2008-07-08  Martin Jambor  <mjambor@suse.cz>
14220
14221         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
14222         instead of ipa_create_node_params.
14223         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
14224         ipa_check_create_edge_args, free them with
14225         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
14226
14227         * ipa-prop.c: Include flags.h and tree-inline.h.
14228         (ipa_node_params_vector): New variable.
14229         (ipa_edge_args_vector): New variable.
14230         (edge_removal_hook_holder): New variable.
14231         (node_removal_hook_holder): New variable.
14232         (edge_duplication_hook_holder): New variable.
14233         (node_duplication_hook_holder): New variable.
14234         (ipa_detect_param_modifications): Check for presence of modified flags.
14235         (ipa_compute_jump_functions): Check for presence of jump functions.
14236         (ipa_free_edge_args_substructures): New function.
14237         (ipa_create_node_params): Removed.
14238         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
14239         (ipa_free_node_params_substructures): New function.
14240         (ipa_free_all_node_params): Changed to deallocate the on-the-side
14241         vector.
14242         (ipa_edge_removal_hook): New function.
14243         (ipa_node_removal_hook): New function.
14244         (duplicate_array): New function.
14245         (ipa_edge_duplication_hook): New function.
14246         (ipa_node_duplication_hook): New function.
14247         (ipa_register_cgraph_hooks): New function.
14248         (ipa_unregister_cgraph_hooks): New function.
14249         (free_all_ipa_structures_after_ipa_cp): New function.
14250
14251         * ipa-prop.h: Include vec.h.
14252         (ipa_node_params_t): New typedef with vector types for it.
14253         (ipa_edge_args_t):  New typedef with vector types for it.
14254         (IPA_NODE_REF): Changed to access an on-the-side vector.
14255         (IPA_EDGE_REF): Changed to access an on-the-side vector.
14256         (ipa_check_create_node_params): New function.
14257         (ipa_check_create_edge_args): New function.
14258
14259         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
14260         all users.
14261
14262 2008-07-07  Tom Tromey  <tromey@redhat.com>
14263
14264         * configure, config.in: Rebuilt.
14265         * configure.ac: Don't check for scandir or alphasort.
14266
14267 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
14268
14269         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
14270         types immediately after creating them.
14271
14272 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
14273
14274         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
14275
14276 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
14277
14278         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
14279         dump_constraint_graph.
14280         (dump_constraint_edge): New function.
14281         (dump_constraint_graph): New function.
14282         (debug_constraint_graph): New function.
14283         (dump_constraint): Removed useless comparison.
14284         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
14285         (dump_constraint_graph): Declare.
14286         (debug_constraint_graph): Declare.
14287         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
14288
14289 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
14290
14291         * config/i386/i386.c (is_va_list_char_pointer): New.
14292         (ix86_va_start): Replace compare with ms_va_list_type_node
14293         by is_va_list_char_pointer.
14294         (ix86_gimplify_va_arg): Likewise.
14295
14296 2008-07-07  Martin Jambor  <mjambor@suse.cz>
14297
14298         * cgraph.c (cgraph_edge_max_uid): New variable.
14299         (struct cgraph_edge_hook_list): New type.
14300         (struct cgraph_node_hook_list): New type.
14301         (struct cgraph_2edge_hook_list): New type.
14302         (struct cgraph_2node_hook_list): New type.
14303         (first_cgraph_edge_removal_hook): New variable.
14304         (first_cgraph_node_removal_hook): New variable.
14305         (first_cgraph_edge_duplicated_hook): New variable.
14306         (first_cgraph_node_duplicated_hook): New variable.
14307         (cgraph_add_edge_removal_hook): New function.
14308         (cgraph_remove_edge_removal_hook): New function.
14309         (cgraph_call_edge_removal_hooks):  New function.
14310         (cgraph_add_node_removal_hook):  New function.
14311         (cgraph_remove_node_removal_hook):  New function.
14312         (cgraph_call_node_removal_hooks):  New function.
14313         (cgraph_add_edge_duplication_hook):  New function.
14314         (cgraph_remove_edge_duplication_hook):  New function.
14315         (cgraph_call_edge_duplication_hooks):  New function.
14316         (cgraph_add_node_duplication_hook):  New function.
14317         (cgraph_remove_node_duplication_hook):  New function.
14318         (cgraph_call_node_duplication_hooks):  New function.
14319         (cgraph_create_edge): Assign to edge uid.
14320         (cgraph_remove_edge): Call edge removal hooks.
14321         (cgraph_node_remove_callees): Call edge removal hooks.
14322         (cgraph_node_remove_callers): Call edge removal hooks.
14323         (cgraph_remove_node): Call node removal hooks.
14324         (cgraph_clone_edge): Call edge duplication hooks.
14325         (cgraph_clone_node): Call node duplication hooks.
14326
14327         * cgraph.h (cgraph_edge): New field uid.
14328         (cgraph_edge_hook): New type.
14329         (cgraph_node_hook): New type.
14330         (cgraph_2edge_hook): New type.
14331         (cgraph_2node_hook): New type.
14332
14333 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
14334
14335         * config.in: Regenerate.
14336
14337 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
14338
14339         * gcc.c (print_sysroot): New.
14340         (option_map, display_help, process_command): Handle the
14341         -print-sysroot option.
14342         (main): Print the sysroot if requested.
14343         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
14344
14345 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14346
14347         PR target/34780
14348         * unwind-pe.h (size_of_encoded_value): add attribute unused.
14349
14350 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
14351
14352         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
14353         (assign_parm_setup_block_p): Also check mode of entry_parm.
14354
14355 2008-07-07  Richard Guenther  <rguenther@suse.de>
14356
14357         * tree-ssa-structalias.h (set_used_smts): Remove.
14358         * tree-ssa-structalias.c (used_smts): Likewise.
14359         (set_used_smts): Likewise.
14360         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
14361         call to set_used_smts.
14362
14363 2008-07-07  Richard Guenther  <rguenther@suse.de>
14364
14365         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
14366         (new_var_info): Set it to false.
14367         (solution_set_add): Correctly handle pointers outside a var and
14368         inside a field.
14369         (type_safe): Treat variables with is_full_var properly.
14370         (do_sd_constraint): Likewise.
14371         (do_ds_constraint): Likewise.
14372         (process_constraint): Remove zeroing offset for !use_field_sensitive.
14373         (get_constraint_for_ptr_offset): New function.
14374         (get_constraint_for_component_ref): For addresses at least include
14375         the last field of the variable.  Handle is_full_vars properly.
14376         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
14377         (handle_ptr_arith): Remove.
14378         (find_func_aliases): Simplify assignment handling.
14379         (create_function_info_for): For parameter and result varinfos set
14380         is_full_var flag.
14381         (create_variable_info_for): Set is_full_var flag whenever we
14382         just created a single varinfo for a decl.
14383         (init_alias_vars): Initialize use_field_sensitive from
14384         max-fields-for-field-sensitive parameter.
14385
14386 2008-07-07  Richard Guenther  <rguenther@suse.de>
14387
14388         PR tree-optimization/36713
14389         * tree-flow-inline.h (is_call_used): New function.
14390         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
14391         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14392         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
14393
14394 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
14395
14396         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
14397
14398 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
14399
14400         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
14401
14402 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
14403             Nathan Sidwell  <nathan@codesourcery.com>
14404
14405         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
14406         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
14407         tmake_file.
14408         * config/m68k/t-linux: New.
14409         * doc/install.texi: Document m68k-*-linux is now multilibbed by
14410         default.
14411
14412 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
14413
14414         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
14415         * config/m68k/m68k-devices.def: Remove multilibs that only differ
14416         by MAC/EMAC.
14417
14418 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14419
14420         * gcc.c (execute): Fix -Wc++-compat warning.
14421
14422 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14423
14424         PR target/36720
14425         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
14426         constant for little endian.
14427
14428 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
14429
14430         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
14431         mips_base_mips16 instead of TARGET_MIPS16.
14432         (mips_base_mips16): Declare.
14433         * config/mips/mips.c (mips_base_mips16): Make global.
14434         (was_mips16_p): Remove GTY marker.
14435         (was_mips16_pch_p): New variable.
14436         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
14437         (mips_override_options): Force to non-MIPS16 mode initially.
14438         Do not complain about MIPS16 PIC incompatibilities here.
14439         Only allow -mgpopt if -mexplicit-relocs is in force for
14440         non-MIPS16 code.
14441
14442 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
14443
14444         * configure.ac: Check for caddr_t, define to char * if not defined.
14445         * configure: Regenerate.
14446         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
14447         (mmap_gt_pch_use_address): Likewise.
14448         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
14449
14450 2008-07-06  Richard Guenther  <rguenther@suse.de>
14451
14452         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
14453         (new_var_info): Deal with it.
14454         (solution_set_add): Likewise.
14455         (bitpos_of_field): Make signed, fix.
14456         (struct fieldoff): Remove type and decl fields.  Make size field
14457         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
14458         flags.
14459         (fieldoff_compare): Deal with it.
14460         (push_fields_onto_fieldstack): Remove has_union argument, glob
14461         adjacent non-pointer fields together.
14462         (create_function_info_for): Do not set has_union.
14463         (create_variable_info_for): Simplify.
14464
14465 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
14466
14467         * config.gcc (extra_headers): Add cross-stdarg.h for target
14468         x86_64-*-* and i?86-*-*.
14469         * config/i386/cross-stdarg.h: New.
14470         * builtins.c (std_fn_abi_va_list): New.
14471         (std_canonical_va_list_type): New.
14472         (stabilize_va_list): Replace va_list_type_node use by
14473         mtarget.canonical_va_list_type.
14474         (gimplify_va_arg_expr): Likewise.
14475         (expand_builtin_va_copy): Replace va_list_type_node use by
14476         mtarget.fn_abi_va_list.
14477         * tree-sra.c (is_va_list_type): New helper.
14478         (decl_can_be_decomposed_p): Replace
14479         va_list_type_node use by is_va_list_type.
14480         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
14481         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
14482         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
14483         * config/i386/i386-protos.h (ix86_get_valist_type): New.
14484         (ix86_enum_va_list): New.
14485         * config/i386/i386.c (sysv_va_list_type_node): New.
14486         (ms_va_list_type_node): New.
14487         (ix86_function_type_abi): Remove sorry.
14488         (ix86_build_builtin_va_list_abi): New.
14489         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
14490         for 64-bit targets.
14491         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
14492         (ix86_init_builtins_va_builtins_abi): New.
14493         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
14494         for 64-bit targets.
14495         (ix86_handle_abi_attribute): New.
14496         (attribute_spec): Add sysv_abi and ms_abi.
14497         (ix86_fn_abi_va_list): New.
14498         (ix86_canonical_va_list_type): New.
14499         (ix86_enum_va_list): New.
14500         (TARGET_FN_ABI_VA_LIST): New.
14501         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14502         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
14503         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
14504         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14505         (TARGET_ENUM_VA_LIST): New.
14506         * expr.h (std_fn_abi_va_list): New.
14507         (std_canonical_va_list_type): New.
14508         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
14509         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14510         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
14511         TARGET_CANONICAL_VA_LIST_TYPE.
14512         * target.h (struct gcc_target): Add fn_abi_va_list hook
14513         and canonical_va_list_type hook.
14514
14515 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14516
14517         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
14518         integral and pointer types.
14519
14520 2008-07-04  Roger Sayle  <roger@eyesopen.com>
14521
14522         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
14523         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
14524
14525 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
14526
14527         PR target/36684
14528         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
14529
14530 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
14531
14532         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
14533         build_gimple_modify_stmt.
14534         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
14535         gimple operand.  Use fold_build* instead of build*.
14536
14537 2008-07-04  Richard Guenther  <rguenther@suse.de>
14538
14539         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
14540         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
14541         properly to compute the reachability set if we do field-sensitive PTA.
14542         * invoke.texi (max-fields-for-field-sensitive): Document default.
14543         * opts.c (decode_options): Set max-fields-for-field-sensitive to
14544         100 for optimize >= 2.
14545
14546 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14547
14548         * ggc-zone.c (lookup_page_table_if_allocated,
14549         set_page_table_entry, zone_find_object_size, alloc_small_page,
14550         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
14551         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
14552         -Wc++-compat and/or -Wcast-qual warnings.
14553
14554 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
14555
14556         PR target/36634
14557         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
14558         pic_offset_table_rtx to be marked as used here.
14559         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
14560         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
14561         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
14562         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
14563         !TARGET_SECURE_PLT.
14564
14565 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14566
14567         * alloc-pool.c (hash_descriptor, eq_descriptor,
14568         alloc_pool_descriptor): Fix -Wc++-compat warnings.
14569         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
14570         Likewise.
14571         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
14572         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
14573         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
14574         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
14575         Likewise.
14576
14577 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
14578
14579         * tree-flow.h (loop_only_exit_p): Declare.
14580         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
14581         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
14582         the number of iterations if it is constant.  Otherwise, if this is the
14583         only possible exit of the loop, use the conservative estimate on the
14584         number of iterations of the entire loop if available.
14585
14586 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
14587
14588         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
14589         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
14590         Add synchronization functions.
14591         * config/sync.c: New file.
14592         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
14593         (LIBGCC_SYNC_CFLAGS): Likewise.
14594
14595 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
14596
14597         PR target/36710
14598         * config/i386/i386.md (mode): Add TF to "mode" attribute.
14599         (*pushtf_sse): New insn pattern.
14600         (pushtf splitters): New splitters.
14601
14602 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
14603
14604         PR middle-end/35736
14605         * predict.c (build_predict_expr): Use void_type_node for the tree
14606         type, instead of NULL_TREE.
14607
14608 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14609
14610         * config/i386/i386.c (contains_aligned_value_p): Return true
14611         for TCmode.
14612         (ix86_data_alignment): Align TCmode to 128bits.
14613         (ix86_local_alignment): Likewise.
14614
14615 2008-07-03  Andrew Haley  <aph@redhat.com>
14616
14617         PR bootstrap/33304
14618         * vec.h (VEC_TA): New.
14619         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
14620         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
14621         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
14622         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
14623         (C_COMMON_FIXED_TYPES): Remove first arg.
14624         (C_COMMON_FIXED_MODE_TYPES): Likewise.
14625         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
14626         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
14627         not to use empty macro arguments.
14628
14629 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
14630
14631         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
14632         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
14633         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
14634         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
14635         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
14636         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
14637         config/ia64/crtn.asm, config/m68hc11/larith.asm,
14638         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
14639         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
14640         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
14641         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
14642         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
14643         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
14644         config/rs6000/e500crtres64gpr.asm,
14645         config/rs6000/e500crtres64gprctr.asm,
14646         config/rs6000/e500crtrest32gpr.asm,
14647         config/rs6000/e500crtrest64gpr.asm,
14648         config/rs6000/e500crtresx32gpr.asm,
14649         config/rs6000/e500crtresx64gpr.asm,
14650         config/rs6000/e500crtsav32gpr.asm,
14651         config/rs6000/e500crtsav64gpr.asm,
14652         config/rs6000/e500crtsav64gprctr.asm,
14653         config/rs6000/e500crtsavg32gpr.asm,
14654         config/rs6000/e500crtsavg64gpr.asm,
14655         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
14656         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
14657         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
14658         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
14659         config/sparc/sol2-cn.asm: Remove .file directives.
14660
14661 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
14662
14663         * resource.c (mark_referenced_resources): Look inside
14664         UNSPEC_VOLATILEs and ASM_INPUTs.
14665
14666 2008-07-02  Ian Lance Taylor  <iant@google.com>
14667
14668         * rtlanal.c (add_reg_note): New function.
14669         * rtl.h (add_reg_note): Declare.
14670         * auto-inc-dec.c (attempt_change): Use add_reg_note.
14671         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
14672         * builtins.c (expand_builtin_longjmp): Likewise.
14673         (expand_builtin_nonlocal_goto): Likewise.
14674         * calls.c (emit_call_1, expand_call): Likewise.
14675         * cfgexpand.c (add_reg_br_prob_note): Likewise.
14676         * cfglayout.c (fixup_reorder_chain): Likewise.
14677         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
14678         (commit_one_edge_insertion): Likewise.
14679         * combine.c (move_deaths, distribute_notes): Likewise.
14680         * df-problems.c (df_set_note): Likewise.
14681         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
14682         (set_unique_reg_note): Likewise.
14683         (emit_copy_of_insn_after): Likewise.
14684         * expr.c (expand_expr_real): Likewise.
14685         * gcse.c (add_label_notes): Likewise.
14686         * haifa-sched.c (create_check_block_twin): Likewise.
14687         * jump.c (mark_jump_label_1): Likewise.
14688         * loop-doloop.c (add_test, doloop_modify): Likewise.
14689         * loop-unswitch.c (compare_and_jump_seq): Likewise.
14690         * lower-subreg.c (move_eh_region_note): Likewise.
14691         * optabs.c (emit_libcall_block): Likewise.
14692         * predict.c (predict_insn): Likewise.
14693         (combine_predictions_for_insn): Likewise.
14694         * recog.c (peephole2_optimize): Likewise.
14695         * regmove.c (try_auto_increment): Likewise.
14696         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
14697         * reload.c (find_reloads): Likewise.
14698         * reload1.c (fixup_eh_region_note): Likewise.
14699         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
14700         * reorg.c (delete_prior_computation): Likewise.
14701         (delete_computation, dbr_schedule): Likewise.
14702         * config/pa/pa.c (legitimize_pic_address): Likewise.
14703         * config/sh/sh.c (sh_reorg): Likewise.
14704
14705 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
14706
14707         PR target/36669
14708         * config/libgcc-glibc.ver: Add %exclude.
14709         * config/m32r/libgcc-glibc.ver: Likwise.
14710         * config/s390/libgcc-glibc.ver: Likwise.
14711         * config/sh/libgcc-glibc.ver: Likwise.
14712         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
14713
14714         * config/i386/libgcc-glibc.ver: New.
14715
14716         * config/i386/libgcc-x86_64-glibc.ver: Removed.
14717
14718 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
14719
14720         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
14721         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
14722         i[34567]86-*-linux*, x86_64-*-linux*.  Add
14723         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
14724         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
14725         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
14726         i[34567]86-*-linux*, x86_64-*-linux*.
14727
14728         * libgcc-std.ver: Add empty GCC_4.4.0.
14729
14730         * mkmap-symver.awk: Support multiple versions per symbol.
14731
14732         * config/i386/i386.c (ix86_init_builtins): Always define
14733         __builtin_fabsq and __builtin_copysignq with fallbacks.
14734         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
14735         and __builtin_copysignq if SSE2 isn't available.
14736
14737         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
14738         (LIBGCC2_TF_CEXT): Likwise.
14739         (TF_SIZE): Likwise.
14740
14741         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
14742
14743         * config/i386/sfp-machine.h: Moved to libgcc.
14744
14745         * config/i386/sfp-machine.h: New.
14746         * config/i386/t-linux: Likwise.
14747
14748         * config/i386/t-darwin: Remove softfp_wrap_start and
14749         softfp_wrap_end.
14750         * config/i386/t-darwin64: Likewise.
14751
14752         * config/i386/t-fprules-softfp64: Renamed to ...
14753         * config/i386/t-fprules-softfp: This.
14754
14755         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
14756         and softfp_wrap_end.
14757
14758 2008-07-02  Jason Merrill  <jason@redhat.com>
14759
14760         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
14761
14762         * tree.c (ctor_to_list): New fn.
14763         * tree.h: Declare it.
14764         (CONSTRUCTOR_ELT): New macro.
14765         (CONSTRUCTOR_NELTS): New macro.
14766
14767 2008-07-02  Richard Guenther  <rguenther@suse.de>
14768
14769         * tree-ssa-structalias.c (struct variable_info): Reorder
14770         to fill padding on 64bit hosts.  Make collapsed_to an int.
14771         (get_varinfo_fc): Deal with that.
14772         (new_var_info): Likewise.
14773         (collapse_rest_of_var): Likewise.
14774
14775 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
14776
14777         * doc/install.texi (--enable-java-home): Document.
14778         (--enable-aot-compile-rpm): Likewise.
14779         (--with-arch-directory): Likewise.
14780         (--with-os-directory): Likewise.
14781         (--with-origin-name): Likewise.
14782         (--with-arch-suffix): Likewise.
14783         (--with-jvm-root-dir): Likewise.
14784         (--with-jvm-jar-dir): Likewise.
14785         (--with-python-dir): Likewise.
14786
14787 2008-07-02  Richard Guenther  <rguenther@suse.de>
14788
14789         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
14790         from decls explicitly.  Merge operand checking from tuples.
14791
14792 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14793
14794         * tree-switch-conversion.c: Included timevar.h which I forgot before.
14795
14796 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14797
14798         * tree-switch-conversion.c: Included timevar.h
14799         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
14800
14801         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
14802
14803 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14804
14805         * tree-switch-conversion.c: Corrected various comments and
14806         whitespace issues
14807         (build_constructors): Fixed minor formatting mistakes.
14808
14809         * invoke.texi (Optimize Options): Corrected the
14810         switch-conversion-max-branch-ratio parameter.
14811
14812 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
14813
14814         * final.c (asm_insn_count): Return zero for an empty asm body.
14815
14816 2008-07-02  Richard Guenther  <rguenther@suse.de>
14817
14818         * bitmap.h (bitmap_set_bit): Return bool.
14819         (bitmap_clear_bit): Likewise.
14820         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
14821         write to the bitmap if it would.
14822         (bitmap_clear_bit): Likewise.
14823         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
14824         bitmap_set_bit return value.
14825         (add_pred_graph_edge): Likewise.
14826         (add_graph_edge): Likewise.
14827         (do_sd_constraint): Likewise.
14828         (do_ds_constraint): Likewise.
14829
14830 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14831
14832         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
14833         Fix -Wc++-compat and/or -Wcast-qual warnings.
14834         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
14835         gen_regparm_prefix): Likewise.
14836         * vmsdbgout.c (write_modbeg, lookup_filename,
14837         vmsdbgout_source_line, vmsdbgout_init): Likewise.
14838
14839 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
14840
14841         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
14842         defaults.h definition apply.
14843
14844 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
14845
14846         * function.c (assign_parm_remove_parallels): New.
14847         (assign_parm_setup_block_p): Do not return true for non-BLKmode
14848         PARALLELs.
14849         (assign_parm_setup_block): Do not handle them.
14850         (assign_parm_setup_reg, assign_parm_setup_stack): Call
14851         assign_parm_remove_parallels.
14852
14853 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
14854
14855         * c-typeck.c (convert_for_assignment): Use
14856         vector_targets_convertible_p.
14857         * c-common.c (vector_targets_convertible_p): New.
14858         * c-common.h (vector_targets_convertible_p): New prototype.
14859         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
14860         opaque_p_V2SI_type_node.
14861
14862 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
14863
14864         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
14865         RFmode constants.
14866
14867 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
14868
14869         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
14870         TFmode constants via two element DImode vector for hosts with
14871         HOST_BITS_PER_WIDE_INT < 64.
14872         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
14873         also for HOST_BITS_PER_WIDE_INT < 64.
14874
14875 2008-07-01  Richard Guenther  <rguenther@suse.de>
14876
14877         PR tree-optimization/36666
14878         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
14879         (get_constraint_exp_from_ssa_var): Split into ...
14880         (get_constraint_exp_for_temp): ... this ...
14881         (get_constraint_for_ssa_var): ... and that.
14882         Return constraint expressions for all touched sub-fields
14883         if the results address is not taken.
14884         (process_constraint): Remove assertion that aggregate
14885         assignments do not happen at this place.
14886         (get_constraint_for_component_ref): Add address_p argument.
14887         Return constraint expressions for all touched sub-fields
14888         if the results address is not taken.
14889         (do_deref): Use get_constraint_exp_for_temp.
14890         (get_constraint_for_1): Rename from ...
14891         (get_constraint_for): ... this.  Add the old function as wrapper.
14892         (do_structure_copy): Use get_constraint_for_1.
14893
14894 2008-07-01  Martin Jambor  <mjambor@suse.cz>
14895
14896         * Makefile.in (tree-switch-conversion.o): Add.
14897         (OBJS-common): Add tree-swtch-conversion.o.
14898         * passes.c (init_optimization_passes): Add pass_convert_switch.
14899         * tree-pass.h (pass_convert_switch): Add.
14900         * tree-switch-conversion.c: New file.
14901         * gcc.dg/tree-ssa/cswtch.c: New testcase.
14902         * common.opt (ftree-cswtch): New option.
14903         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14904         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14905         * opts.c (decode_options): Set flag_tree_switch_conversion when
14906         optimization level is >= 2.
14907         * doc/invoke.texi (Optimize Options): Added description of
14908         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
14909
14910 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14911
14912         * config/darwin-driver.c (darwin_default_min_version): Fix
14913         -Wc++-compat warnings.
14914
14915 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
14916
14917         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
14918         of operand 0.
14919
14920 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
14921
14922         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
14923
14924 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
14925
14926         PR rtl-optimization/34744
14927         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
14928         (df_scan_free_internal): Free data structures not
14929         allocated in storage pools.
14930         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
14931         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
14932         df_scan_free_mws_vec.
14933         * dse.c (dse_step6): Free offset_map_p and offset_map_n
14934         unconditionally.
14935
14936 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14937
14938         * config/i386/i386.c (contains_aligned_value_p): Return true
14939         for __float128.
14940         (ix86_function_arg_boundary): Return its natural boundary
14941         for __float128.
14942         (return_in_memory_32): Don't check TDmode.
14943         (ix86_split_to_parts): Support splitting into 4 parts and
14944         support TFmode for 32bit target.
14945         (ix86_split_long_move): Support splitting into 4 parts.
14946         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
14947         for SSE2.
14948         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
14949         (ix86_init_builtins): Here.
14950         (ix86_scalar_mode_supported_p): Always return true for TFmode.
14951         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
14952         'q' and 'w', respectively.
14953
14954         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
14955         TARGET_64BIT.
14956         (movtf_internal): Likewise.
14957         (<code>tf2): Likewise.
14958         (*absnegtf2_sse): Likewise.
14959         (copysign<mode>3): Likewise.
14960         (copysign<mode>3_const): Likewise.
14961         (copysign<mode>3_var): Likewise.
14962         (define_split UNSPEC_COPYSIGN): Likewise.
14963         * config/i386/sse.md (*nandtf3): Likewise.
14964         (<code>tf3): Likewise.
14965         (*<code>tf3): Likewise.
14966
14967 2008-06-30  Joey Ye  <joey.ye@intel.com>
14968             H.J. Lu  <hongjiu.lu@intel.com>
14969
14970         * global.c (compute_regsets): Set frame_pointer_needed here.
14971         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
14972
14973 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
14974
14975         * doc/install.texi (specific): Expand Windows build notes.
14976
14977 2008-06-30  Ira Rosen  <irar@il.ibm.com>
14978
14979         PR tree-optimization/36648
14980         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
14981         number of prolog iterations by step. Fix the comment.
14982
14983 2008-06-30  Richard Guenther  <rguenther@suse.de>
14984
14985         PR middle-end/36671
14986         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
14987         handle calls from ECF_MALLOC functions.
14988         (handle_pure_call): ECF_MALLOC functions do not return
14989         call-used memory.
14990         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
14991
14992 2008-06-29  Andreas Schwab  <schwab@suse.de>
14993
14994         * config/m68k/m68k.c (print_operand): Always print a float
14995         constant in hex.
14996         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
14997         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
14998         Remove macros.
14999
15000         * config/rs6000/x-linux64: Remove never used file.
15001
15002 2008-06-29  Richard Guenther  <rguenther@suse.de>
15003
15004         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
15005         prototype.
15006         (struct alias_info): Move ...
15007         * tree-ssa-alias.c: ... here.
15008         (update_alias_info): Declare.
15009         (compute_may_aliases): Call it.
15010         (update_alias_info): New function.
15011         * tree-ssa-structalias.c (update_alias_info): Move ...
15012         * tree-ssa-alias.c (update_alias_info_1): ... here.
15013         * tree-ssa-structalias.c (process_constraint_1): Remove
15014         unused from_call argument.  Rename to ...
15015         (process_constraint): ... this.  Delete old wrapper.
15016         (make_constraint_to): Adjust callers.
15017         (handle_const_call): Likewise.
15018         (handle_pure_call): Likewise.
15019         (init_base_vars): Likewise.
15020         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
15021         (find_func_aliases): We don't need structure copies for
15022         complex types.
15023         (make_constraint_from_anything): Remove.
15024         (create_variable_info_for): For globals make constraints
15025         from escaped, not from anything.
15026         (compute_points_to_sets): Do not call update_alias_info.
15027         (ipa_pta_execute): Use make_constraint_from.
15028
15029 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15030
15031         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
15032         (bitmap.o-warn, dominance.o-warn): New.
15033         * configure.ac (cxx_compat_warn): Delete.
15034         (loose_warn): Add -Wcast-qual and -Wc++-compat.
15035         * system.h: Remove #pragma diagnostic for -Wcast-qual and
15036         -Wc++-compat.
15037         * configure: Regenerate.
15038
15039         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
15040         warnings.
15041
15042 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15043
15044         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
15045         * df-scan.c (df_notes_rescan): Likewise.
15046         * ggc-page.c (set_page_table_entry): Likewise.
15047         * intl.c (gcc_gettext_width): Likewise.
15048         * varasm.c (get_unnamed_section, get_noswitch_section,
15049         get_section): Likewise.
15050
15051 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
15052
15053         * regrename.c (build_def_use): Don't copy RTX.
15054
15055 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
15056
15057         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
15058         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
15059         punctuation.  Use @ref instead of @xref.
15060         (Function Names): Remove stray @display/@end display.
15061         (C++ Attributes): Use @ref instead of @xref.
15062         (Deprecated Features): Fix punctuation around @xref.
15063         (Backwards Compatibility): Likewise.
15064         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
15065
15066 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
15067
15068         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
15069         constants for E500 double.
15070
15071 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15072
15073         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
15074         element type of const_vector.
15075
15076 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
15077
15078         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
15079         Remove FLAGS_REG clobber from expander pattern.
15080         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
15081         (anddi3, andsi3, andhi3, andqi3): Ditto.
15082         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
15083         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
15084         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
15085         (ashlsi3, ashlhi3, ashlqi3): Ditto.
15086         (ashrsi3, ashrhi3, ashrqi3): Ditto.
15087         (lshrsi3, lshrhi3, lshrqi3): Ditto.
15088         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
15089         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
15090
15091 2008-06-28  Richard Guenther  <rguenther@suse.de>
15092
15093         * tree-ssa-structalias.c (callused_id, var_callused,
15094         callused_tree): Add.
15095         (handle_pure_call): New function.
15096         (find_func_aliases): Call it.
15097         (find_what_p_points_to): Handle the call-used set.
15098         (clobber_what_escaped): Likewise.
15099         (compute_call_used_vars): New function.
15100         (init_base_vars): Init the call-used variable.
15101         (do_sd_constraint): Do not propagate the solution from CALLUSED
15102         but use CALLUSED as a placeholder.
15103         (solve_graph): Likewise.
15104         * tree-flow-inline.h (gimple_call_used_vars): New function.
15105         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
15106         (compute_call_used_vars): Declare.
15107         * tree-ssa-alias.c (set_initial_properties): Call
15108         compute_call_used_vars.
15109         (reset_alias_info): Clear call-used variables.
15110         (add_call_clobber_ops): Assert we are not called for const/pure
15111         functions.  Remove handling of them.
15112         (add_call_read_ops): Handle pure functions by adding the
15113         call-used set of variables as VUSEs.
15114         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
15115         (delete_tree_ssa): Free it.
15116         * tree-dfa.c (remove_referenced_var): Clear the var from the
15117         call-used bitmap.
15118
15119 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
15120
15121         * tree.c (build_varargs_function_type_list): New.
15122         (build_function_type_list_1): New.
15123         (build_function_type_list): Use build_function_type_list_1.
15124         * tree.h (build_varargs_function_type_list): New.
15125
15126 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15127
15128         PR target/34856
15129         * config/spu/spu.c (spu_builtin_splats): Do not generate
15130         invalid CONST_VECTOR expressions.
15131         (spu_expand_vector_init): Likewise.
15132
15133 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
15134
15135         * optabs.c (libfunc_decls): New variable.
15136         (libfunc_decl_hash, libfunc_decl_eq): New functions.
15137         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
15138         for the same function twice.
15139
15140 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
15141
15142         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
15143         ix86_expand_binary_operator directly.
15144         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
15145         for operand 2.
15146         (*ashrti3_1): Ditto.
15147         (*lshrti3_1): Ditto.
15148         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
15149         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
15150         using only one splitter.  Conditionaly execute splitter before or
15151         after peephole2 pass.
15152         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
15153         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
15154         Use only one alternative in asm template.
15155         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
15156         in asm template.
15157         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
15158         "J" operand constraint for operand 2.
15159         (*ashldi3_cconly_rex64): Ditto.
15160         (*ashrdi3_cmp_rex64): Ditto.
15161         (*ashrdi3_cconly_rex64): Ditto.
15162         (*lshrdi3_cmp_rex64): Ditto.
15163         (*lshrdi3_cconly_rex64): Ditto.
15164         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
15165         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
15166         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
15167         gen_x86_shrd_1.
15168
15169 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
15170
15171         * gimplify.c (omp_is_private): Don't return true if decl is not
15172         already private on #pragma omp for or #pragma omp parallel for.
15173
15174         PR debug/36617
15175         * tree-cfg.c (struct move_stmt_d): Replace block field with
15176         orig_block and new_block fields.
15177         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
15178         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
15179         (move_block_to_fn): Replace vars_map and new_label_map arguments
15180         with struct move_stmt_d pointer.
15181         (replace_block_vars_by_duplicates): New function.
15182         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
15183         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
15184         all subblocks of ORIG_BLOCK to the new function.  Call
15185         replace_block_vars_by_duplicates.
15186         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
15187         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
15188         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
15189         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
15190         (expand_omp): Temporarily set input_location to the location of
15191         region's controlling stmt.
15192         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
15193         BIND_EXPR, push ctx->block_vars and gimplification vars into
15194         the BIND_EXPR and its block's BLOCK_VARS instead of directly
15195         into dest function.
15196         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
15197         there are any BLOCK_VARS.
15198         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
15199         OMP_PARALLEL or OMP_TASK stmt.
15200         (lower_omp): Save and restore input_location around the lower_omp_1
15201         call.
15202
15203 2008-06-27  Richard Guenther  <rguenther@suse.de>
15204
15205         PR tree-optimization/36400
15206         PR tree-optimization/36373
15207         PR tree-optimization/36344
15208         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
15209         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
15210         (update_alias_info): Remove call clobbering code.
15211         (make_constraint_to): New helper function.
15212         (make_escape_constraint): Likewise.
15213         (handle_rhs_call): Use it on all pointer containing arguments.
15214         Also mark the static chain escaped.
15215         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
15216         instead of ANYTHING.
15217         (make_constraint_from): New helper split out from ...
15218         (make_constraint_from_anything): ... here.
15219         (find_func_aliases): Add constraints for escape sites.
15220         (intra_create_variable_infos): Make constraints from NONLOCAL
15221         for parameters.
15222         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
15223         as ANYTHING.
15224         (clobber_what_p_points_to): Remove.
15225         (clobber_what_escaped): New function.
15226         (init_base_vars): Init NONLOCAL and ESCAPED.
15227         (do_sd_constraint): Do not propagate the solution from ESCAPED
15228         but use ESCAPED as a placeholder.
15229         (solve_graph): Likewise.
15230         * tree-flow.h (clobber_what_p_points_to): Remove.
15231         (clobber_what_escaped): Declare.
15232         * tree-ssa-alias.c (set_initial_properties): Call it.
15233         Remove code clobbering escaped pointers.
15234
15235 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
15236
15237         * function.c (allocate_struct_function): Only allocate a unique
15238         funcdef_no if the decl is nonzero.
15239
15240 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
15241
15242         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
15243         * config/mips/mips.c (mips_split_const_insns): New function.
15244         * config/mips/mips.md (move_type): New attribute.
15245         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
15246         (dword_mode): New attribute.
15247         (type): Avoid long line.  Map "move_type"s to "type"s,
15248         choosing "multi" for doubleword moves if appropriate.
15249         Swap MTC/MFC comments to match their declaration order.
15250         (extended_mips16): Default to "yes" if "move_type" is "sll0",
15251         "type" is "branch" or "jal" is "direct".
15252         (length): Handle "extended_mips16" first.  Make the default
15253         "0" for "ghost" instructions.  Set the length from "move_type".
15254         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
15255         of "type", with "sll0" for the register alternative.  Remove the
15256         "extended_mips16" attribute.
15257         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
15258         of "type", with "shift_shift" for the register alternative.
15259         Remove the "length" attribute.
15260         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
15261         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
15262         of "type", with "andi" for the register alternative.
15263         (*zero_extendqihi2): Likewise.
15264         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
15265         of "andi" instead of a "type" of "arith".
15266         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
15267         instead of "type".
15268         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
15269         (mov_<store>r, *mov<mode>_ra): Likewise.
15270         (extendsidi2): Use "move_type" instead of "type", with "move"
15271         for the register alternative.
15272         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
15273         of "type", with "signext" for the register alternative.
15274         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
15275         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
15276         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
15277         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
15278         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
15279         (unnamed branch insn): Likewise.
15280         (*movdi_gp32_fp64): Fold into...
15281         (*movdi_32bit): ...here.
15282         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
15283         (*movdf_hardfloat): ...this new pattern.
15284         (*movdf_softfloat): Remove redundant FPR alternatives.
15285         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
15286         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
15287         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
15288         the "move" attribute.
15289         (*movdi_32bit): Use "move_type" instead of "type" and remove the
15290         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
15291         and "store" for COP loads and stores.
15292         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
15293         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
15294         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
15295         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
15296         (*movtf_mips16, *movv2sf): Likewise.
15297         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
15298         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
15299         (mfhc1<mode>): Use "move_type" instead of "move".
15300         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
15301         (loadgp_blockage): Remove the "length" attribute.
15302         (blockage, set_got_version, update_got_version): Likewise.
15303         (call_internal): Remove the "extended_mips16" attribute.
15304         (call_value_internal, call_value_multiple_internal): Likewise.
15305         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
15306         instead of "move".
15307         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
15308         the "length" attribute.
15309
15310 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15311
15312         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
15313         -Wcast-qual warnings.
15314         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
15315         handle_pragma_pop_macro): Likewise.
15316         * collect2.c (resolve_lib_name): Likewise.
15317         * config/arc/arc.c (arc_init): Likewise.
15318         * config/arm/arm.c (neon_builtin_compare,
15319         locate_neon_builtin_icode): Likewise.
15320         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
15321         * config/bfin/bfin.c (bfin_init_machine_status,
15322         bfin_optimize_loop): Likewise.
15323         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
15324         * config/cris/cris.c (cris_init_expanders): Likewise.
15325         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
15326         * config/darwin.c (machopic_indirection_eq,
15327         machopic_indirection_name, machopic_output_indirection): Likewise.
15328         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
15329         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
15330         frv_optimize_membar): Likewise.
15331         * config/i386/cygwin.h (mingw_scan,
15332         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
15333         * config/i386/cygwin1.c (mingw_scan): Likewise.
15334         * config/i386/i386.c (machopic_output_stub): Likewise.
15335         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
15336         i386_pe_unique_section): Likewise.
15337         * config/ia64/ia64.c (ia64_init_machine_status,
15338         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
15339         Likewise.
15340         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
15341         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
15342         * config/m68k/m68k.c (m68k_handle_option,
15343         m68k_sched_md_init_global): Likewise.
15344         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
15345         mcore_unique_section): Likewise.
15346         * config/mips/mips.c (mips_block_move_straight,
15347         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
15348         Likewise.
15349         * config/mmix/mmix.c (mmix_init_machine_status,
15350         mmix_encode_section_info): Likewise.
15351         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
15352         * config/rs6000/rs6000.c (rs6000_init_machine_status,
15353         print_operand_address, output_toc, redefine_groups,
15354         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
15355         * config/s390/s390.c (s390_init_machine_status): Likewise.
15356         * config/score/score.c (score_block_move_straight,
15357         score_block_move_loop_body): Likewise.
15358         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15359         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15360         * emit-rtl.c (find_auto_inc): Likewise.
15361         * gcc.c (translate_options, process_command): Likewise.
15362         * reorg.c (dbr_schedule): Likewise.
15363         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
15364         * xcoffout.c (xcoffout_declare_function): Likewise.
15365
15366 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
15367
15368         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
15369         ipa-pta working again.
15370
15371 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
15372
15373         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
15374         genautomata.
15375
15376 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
15377
15378         * config.gcc (powerpc*-*-*): Add new core e500mc.
15379         * config/rs6000/e500mc.md: New file.
15380         * config/rs6000/rs6000.c (processor_costs): Add new costs for
15381         e500mc.
15382         (rs6000_override_options): Add e500mc case to
15383         processor_target_table. Altivec and Spe options not allowed
15384         with e500mc. Add isel instruction to e500mc by
15385         default. Initialize rs6000_cost for e500mc.
15386         (rs6000_issue_rate): Set issue rate for e500mc.
15387         * config/rs6000/rs6000.h (processor_type): Add
15388         PROCESSOR_PPCE500MC.
15389         (ASM_CPU_SPEC): Add e500mc.
15390         Set TARGET_ISEL to rs6000_isel.
15391         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
15392         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
15393         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
15394         Include e500mc.md.
15395         * doc/invoke.texi: Add e500mc to list of cpus.
15396
15397 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15398
15399         PR c/34867
15400         * c-lex.c (lex_charconst): Initialize unsignedp.
15401
15402 2008-06-27  Olivier Hainque  <hainque@adacore.com>
15403
15404         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
15405         documented assumptions.
15406
15407 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
15408
15409         * dwarf2out.c: Remove trailing white spaces.  Break long line
15410         in comments.
15411
15412 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
15413
15414         * libfuncs.h (LTI_synchronize): New libfunc_index.
15415         (synchronize_libfunc): Declare.
15416         * builtins.c (expand_builtin_synchronize): Consider using
15417         synchronize_libfunc before falling back on an asm blockage.
15418         * config/mips/mips.c: Include libfuncs.h
15419         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
15420
15421 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
15422
15423         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
15424         parameter.  Copy stack_reg to r11 where appropriate.
15425         (no_global_regs_above): Add gpr parameter.
15426         (rs6000_stack_info): Only add padding for SPE save area if we
15427         are saving SPE GPRs and CR.
15428         (saveres_routine_syms): New variable.
15429         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
15430         Define.
15431         (rs6000_savres_routine_sym): New function.
15432         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
15433         split out of...
15434         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
15435         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
15436         Tweak FPR out-of-line saving.
15437         (rs6000_make_savres_rtx): New function.
15438         (rs6000_use_multiple_p): New function.
15439         (rs6000_savres_strategy): New function.
15440         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
15441         out-of-line if appropriate.
15442         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
15443         if we are optimizing for size.
15444         (GP_SAVE_INLINE): Define.
15445         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
15446         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
15447         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
15448         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
15449         (*save_fpregs_<mode>): Add use of r11.
15450         (*restore_gpregs_<mode>): New insn.
15451         (*return_and_restore_gpregs_<mode>): New insn.
15452         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
15453         use r11.
15454         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
15455         (*restore_gpregs_spe): New insn.
15456         (*return_and_restore_gpregs_spe): New insn.
15457         * config/rs6000/predicates.md (save_world_operation): Fix check.
15458
15459 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
15460
15461         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
15462         this point, so assert that.
15463
15464 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
15465
15466         * cfganal.c: Include vec.h and vecprim.h.
15467         (compute_idf): Import from...
15468         * tree-into-ssa (compute_idf): ...here.
15469         * basic-block.h (compute_idf): Export.
15470
15471 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
15472
15473         * c-decl.c (merge_decls): Use !current_function_decl to check for
15474         extern declaration of C99 inline function being at file scope.
15475
15476 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
15477
15478         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
15479
15480 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15481
15482         * alias.c (record_alias_subset, init_alias_analysis): Fix
15483         -Wc++-compat and/or -Wcast-qual warnings.
15484         * attribs.c (lookup_attribute_spec): Likewise.
15485         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
15486         copy_bb, connect_traces,
15487         find_rarely_executed_basic_blocks_and_cr): Likewise.
15488         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
15489         note_btr_set, migrate_btr_defs): Likewise.
15490         * builtins.c (result_vector, expand_builtin_memcpy,
15491         expand_builtin_mempcpy_args, expand_builtin_strncpy,
15492         builtin_memset_read_str, expand_builtin_printf,
15493         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
15494         Likewise.
15495         * caller-save.c (mark_set_regs): Likewise.
15496         * calls.c (expand_call, emit_library_call_value_1): Likewise.
15497         * cgraph.c (cgraph_edge): Likewise.
15498         * combine.c (likely_spilled_retval_1): Likewise.
15499         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
15500         htab_counts_entry_del, get_coverage_counts): Likewise.
15501         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
15502         new_cselib_val): Likewise.
15503         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
15504         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
15505         Likewise.
15506         * df-core.c (df_compact_blocks): Likewise.
15507         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
15508         * df-scan.c (df_grow_reg_info, df_ref_create,
15509         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
15510         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
15511         df_record_entry_block_defs, df_record_exit_block_uses,
15512         df_bb_verify): Likewise.
15513         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
15514         DF_REF_EXTRACT_MODE_CONST): New.
15515         * dominance.c (get_immediate_dominator, get_dominated_by,
15516         nearest_common_dominator, root_of_dom_tree,
15517         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
15518         -Wc++-compat and/or -Wcast-qual warnings.
15519         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
15520         record_store, replace_read, check_mem_read_rtx, scan_insn,
15521         dse_step1, dse_record_singleton_alias_set): Likewise.
15522         * dwarf2asm.c (dw2_force_const_mem): Likewise.
15523
15524 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15525
15526         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
15527         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
15528         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
15529         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
15530         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
15531         add_ranges_num, add_ranges_by_labels, file_info_cmp,
15532         file_name_acquire, output_file_names, add_const_value_attribute,
15533         premark_used_types_helper, file_table_eq, file_table_hash,
15534         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
15535         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
15536         -Wcast-qual warnings.
15537         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
15538         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
15539         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
15540         gen_reg_rtx, start_sequence, init_emit): Likewise.
15541         * et-forest.c (et_new_occ, et_new_tree): Likewise.
15542         * except.c (init_eh_for_function, gen_eh_region,
15543         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
15544         arh_to_landing_pad, arh_to_label, add_action_record,
15545         add_call_site, switch_to_exception_section): Likewise.
15546         * expmed.c (synth_mult): Likewise.
15547         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
15548         store_expr): Likewise.
15549         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
15550         Likewise.
15551         * function.c (assign_stack_temp_for_type,
15552         allocate_struct_function, match_asm_constraints_1): Likewise.
15553         * gcov-io.c (gcov_allocate): Likewise.
15554         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
15555         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
15556         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
15557         record_one_set, insert_expr_in_table, insert_set_in_table,
15558         dump_hash_table, compute_hash_table_work, alloc_hash_table,
15559         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
15560         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
15561         -Wcast-qual warnings.
15562
15563 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15564
15565         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
15566         -Wcast-qual warnings.
15567         * gcc.c (process_command): Likewise.
15568         * genattrtab.c (oballoc): Use XOBNEW.
15569         (oballocvec): Define.
15570         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
15571         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
15572         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
15573         -Wc++-compat and/or -Wcast-qual warnings.
15574         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
15575         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
15576         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
15577         gen_presence_absence_set, gen_automaton, gen_regexp_el,
15578         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
15579         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
15580         add_excls, process_presence_absence_names,
15581         process_presence_absence_patterns, add_presence_absence,
15582         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
15583         get_free_state, add_arc, get_free_automata_list_el,
15584         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
15585         transform_3, cache_presence, create_ainsns, create_automata,
15586         create_state_ainsn_table, dfa_insn_code_enlarge,
15587         output_trans_func, output_min_issue_delay_func,
15588         output_dead_lock_func, output_reset_func,
15589         output_get_cpu_unit_code_func, output_dfa_start_func,
15590         expand_automata): Likewise.
15591         * genextract.c (gen_insn): Likewise.
15592         * gengtype-lex.l: Likewise.
15593         * gengtype.c (read_input_list, adjust_field_type,
15594         process_gc_options): Likewise.
15595         * genoutput.c (note_constraint): Likewise.
15596         * genpreds.c (mangle, add_constraint): Likewise.
15597         * genrecog.c (process_define_predicate, new_decision,
15598         add_to_sequence): Likewise.
15599         * gensupport.c (record_insn_name): Likewise.
15600
15601 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15602
15603         * config/i386/driver-i386.c (detect_caches_amd,
15604         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
15605         and/or -Wcast-qual warnings.
15606         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
15607         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
15608         gt_pch_save): Likewise.
15609         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
15610         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
15611         * global.c (compute_regsets): Likewise.
15612         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
15613         finish_graph_dump_file): Likewise.
15614         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
15615         unlink_bb_notes): Likewise.
15616         * integrate.c (get_hard_reg_initial_val): Likewise.
15617         * ipa-prop.c (ipa_push_func_to_list): Likewise.
15618         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
15619         * local-alloc.c (update_equiv_regs): Likewise.
15620         * loop-invariant.c (check_invariant_table_size,
15621         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
15622         Likewise.
15623         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
15624         altered_reg_used, mark_altered): Likewise.
15625         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
15626         insert_var_expansion_initialization,
15627         combine_var_copies_in_loop_exit, apply_opt_in_copies,
15628         release_var_copies): Likewise.
15629         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
15630         analyze_matrix_decl, add_allocation_site, analyze_transpose,
15631         analyze_accesses_for_phi_node, check_var_notmodified_p,
15632         check_allocation_function, find_sites_in_func,
15633         record_all_accesses_in_func, transform_access_sites,
15634         transform_allocation_sites): Likewise.
15635         * omp-low.c (new_omp_region, create_omp_child_function_name,
15636         check_omp_nesting_restrictions, check_combined_parallel,
15637         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
15638         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
15639         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
15640         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
15641         Likewise.
15642         * opts-common.c (prune_options): Likewise.
15643         * opts.c (add_input_filename, print_filtered_help,
15644         get_option_state): Likewise.
15645         * params.c (add_params): Likewise.
15646         * passes.c (set_pass_for_id, next_pass_1,
15647         do_per_function_toporder, pass_fini_dump_file): Likewise.
15648         * postreload.c (reload_cse_simplify_operands): Likewise.
15649         * predict.c (tree_predicted_by_p, tree_predict_edge,
15650         clear_bb_predictions, combine_predictions_for_bb): Likewise.
15651
15652 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15653
15654         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
15655         warnings.
15656         * recog.c (check_asm_operands, validate_change_1): Likewise.
15657         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
15658         subst_asm_stack_regs): Likewise.
15659         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
15660         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
15661         * regmove.c (reg_is_remote_constant_p): Likewise.
15662         * regrename.c (regrename_optimize, scan_rtx_reg,
15663         kill_clobbered_value, kill_set_value, kill_autoinc_value):
15664         Likewise.
15665         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
15666         regstat_compute_calls_crossed): Likewise.
15667         * reload1.c (init_reload, new_insn_chain,
15668         has_nonexceptional_receiver, reload, copy_reloads,
15669         calculate_needs_all_insns, init_elim_table): Likewise.
15670         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
15671         * rtl.c (shallow_copy_rtx_stat): Likewise.
15672         * rtlanal.c (parms_set): Likewise.
15673         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
15674         sbitmap_resize, sbitmap_vector_alloc): Likewise.
15675         * sched-ebb.c (earliest_block_with_similiar_load,
15676         add_deps_for_risky_insns): Likewise.
15677         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
15678         schedule_region): Likewise.
15679         * see.c (eq_descriptor_pre_extension,
15680         hash_descriptor_pre_extension, hash_del_pre_extension,
15681         eq_descriptor_properties, hash_descriptor_properties,
15682         hash_del_properties, see_seek_pre_extension_expr,
15683         see_initialize_data_structures, see_print_register_properties,
15684         see_print_pre_extension_expr, see_delete_merged_def_extension,
15685         see_delete_unmerged_def_extension, see_emit_use_extension,
15686         see_pre_delete_extension, see_map_extension, see_commit_changes,
15687         see_analyze_merged_def_local_prop,
15688         see_analyze_merged_def_local_prop,
15689         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
15690         see_set_prop_merged_def, see_set_prop_unmerged_def,
15691         see_set_prop_unmerged_use, see_print_one_extension,
15692         see_merge_one_use_extension, see_merge_one_def_extension,
15693         see_store_reference_and_extension, see_update_uses_relevancy,
15694         see_update_defs_relevancy): Likewise.
15695         * statistics.c (hash_statistics_hash, hash_statistics_eq,
15696         hash_statistics_free, curr_statistics_hash): Likewise.
15697         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
15698         expand_asm_operands, expand_return, case_bit_test_cmp,
15699         expand_case): Likewise.
15700         * stor-layout.c (start_record_layout): Likewise.
15701         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
15702         gt_pch_save_stringpool): Likewise.
15703         * tree-data-ref.c (hash_stmt_vertex_info,
15704         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
15705         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
15706
15707 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
15708
15709         PR target/36627
15710         * config/i386/i386.md: Change constraints of HImode and QImode
15711         immediate operands from "i" to "n".  Change SImode "ni" constraint to
15712         "i" and SImode "rmi" constraint to "g".  Remove all constraints
15713         from const0_operand and const1_operand predicated operands.
15714         (i): Change QImode and HImode attribute from "i" to "n".
15715         (*subqi_2): Change HImode operands to QImode.
15716         (*subqi_3): Ditto.
15717
15718 2008-06-25  Olivier Hainque  <hainque@adacore.com>
15719
15720         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
15721         sed substitutions.
15722
15723 2008-06-25  Richard Guenther  <rguenther@suse.de>
15724
15725         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
15726         not overflow the result type.
15727
15728 2008-06-25  Richard Guenther  <rguenther@suse.de>
15729
15730         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
15731         (vn_lookup): Likewise.
15732
15733 2008-06-25  Richard Guenther  <rguenther@suse.de>
15734
15735         PR tree-optimization/35518
15736         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
15737         * tree-sra.c (instantiate_element): Use fold_build3 to build
15738         BIT_FIELD_REFs.
15739         (try_instantiate_multiple_fields): Likewise.
15740
15741 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15742
15743         * config/rs6000/rs6000.md: Change all string instruction's clobber to
15744         be early clobbers.
15745
15746 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15747
15748         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
15749         use_backchain_to_restore_sp to true
15750         if the offset of the link register save area would go over the 32k - 1
15751         offset limit of the load
15752         instructions.
15753
15754 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
15755
15756         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
15757         anchor for the type-punning blurb.  Cross-reference "Structures
15758         unions enumerations and bit-fields implementation".  Provide a
15759         cast-through-pointer example.  Make final sentence self-contained.
15760         * doc/implement-c.texi (Structures unions enumerations and
15761         bit-fields implementation): Cross-reference the type-punning blurb
15762         in the -fstrict-aliasing documentation.
15763
15764 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15765
15766         PR middle-end/36594
15767         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
15768         the memory instead of the memory itself for the save area.
15769
15770 2008-06-24  Olivier Hainque  <hainque@adacore.com>
15771             Nicolas Roche  <roche@adacore.com>
15772
15773         * gengtype.c (srcdir_len): size_t instead of int.
15774         (get_file_realbasename): New function.  For F a filename, the real
15775         basename of F, with all the path components stripped.
15776         (get_file_srcdir_relative_path): New function.  For F a filename, the
15777         relative path to F from $(srcdir).
15778         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
15779         get_file_realbasename.  Adjust the head comment.
15780         (get_prefix_langdir_index): New function. For F a filename, return the
15781         lang_dir_names[] relative index of the language directory that is
15782         a prefix in F.
15783         (get_file_langdir): For F a filename, return the name of the language
15784         directory where F is located.
15785         (get_file_gtfilename): New function. The gt- output file name for an
15786         input filename F.
15787         (get_output_file_with_visibility): Replace in-line computations with
15788         uses of get_file_gtfilename and get_prefix_langdir_index.
15789         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
15790
15791 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
15792
15793         PR tree-optimization/36504
15794         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
15795         references without base address.
15796
15797 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15798
15799         PR middle-end/36584
15800         * calls.c (expand_call): Increase alignment for recursive functions.
15801
15802 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
15803
15804         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
15805         (TARGET_FUNCTION_VALUE): New define.
15806         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
15807         * config/avr/avr.h (FUNCTION_VALUE): Remove.
15808
15809 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15810
15811         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
15812         (fmod<mode>3): Ditto.
15813         (remainderxf3): Ditto.
15814         (remainder<mode>3): Ditto.
15815
15816 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
15817
15818         PR target/36533
15819         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
15820         REG is a hard register.
15821
15822         PR tree-optimization/36508
15823         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
15824         499, don't check it at all in release compilers.
15825
15826 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15827
15828         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
15829         together with SSE_TARGET_MATH to disable insn pattern.
15830         (*fop_<MODEF:mode>_2_i387): Ditto.
15831         (*fop_<MODEF:mode>_3_i387): Ditto.
15832
15833 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
15834
15835         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
15836
15837 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15838
15839         PR middle-end/34906
15840         * gimplify.c (gimplify_asm_expr): Check the return code of
15841         parse_output_constraint call, set function return and is_inout
15842         value if it failed.
15843
15844 2008-06-22  Ian Lance Taylor  <iant@google.com>
15845
15846         * c-lex.c (narrowest_unsigned_type): Change itk to int.
15847         (narrowest_signed_type): Likewise.
15848         * c-typeck.c (c_common_type): Change local variable mclass to enum
15849         mode_class, twice.
15850         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
15851         tcc_comparison, not the tree code itself.
15852         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
15853         (c_expand_expr): Cast modifier to enum expand_modifier.
15854         * c-common.h (C_RID_CODE): Add casts.
15855         (C_SET_RID_CODE): Define.
15856         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
15857         (c_lex_one_token): Add cast to avoid warning.
15858         (c_parser_objc_type_name): Rename local typename to type_name.
15859         (check_no_duplicate_clause): Change code parameter to enum
15860         omp_clause_code.
15861         (c_parser_omp_var_list_parens): Change kind parameter to enum
15862         omp_clause_code.
15863         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
15864         c_parser_omp_list_var_parens.
15865         (c_parser_omp_threadprivate): Likewise.
15866         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
15867         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
15868         * c-format.c (NO_FMT): Define.
15869         (printf_length_specs): Use NO_FMT.
15870         (asm_fprintf_length_specs): Likewise.
15871         (gcc_diag_length_specs): Likewise.
15872         (scanf_length_specs): Likewise.
15873         (strfmon_length_specs): Likewise.
15874         (gcc_gfc_length_specs): Likewise.
15875         (printf_flag_specs): Change 0 to STD_C89.
15876         (asm_fprintf_flag_specs): Likewise.
15877         (gcc_diag_flag_specs): Likewise.
15878         (gcc_cxxdiag_flag_specs): Likewise.
15879         (scanf_flag_specs): Likewise.
15880         (strftime_flag_specs): Likewise.
15881         (strfmon_flag_specs): Likewise.
15882         (print_char_table): Likewise.
15883         (asm_fprintf_char_table): Likewise.
15884         (gcc_diag_char_table): Likewise.
15885         (gcc_tdiag_char_table): Likewise.
15886         (gcc_cdiag_char_table): Likewise.
15887         (gcc_cxxdiag_char_table): Likewise.
15888         (gcc_gfc_char_table): Likewise.
15889         (scan_char_table): Likewise.
15890         (time_char_table): Likewis.
15891         (monetary_char_table): Likewise.
15892         * c-format.h (BADLEN): Likewise.
15893
15894 2008-06-21  Ian Lance Taylor  <iant@google.com>
15895
15896         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
15897         Define END_OF_BASE_TREE_CODES around inclusion.
15898         * tree.c (tree_code_type): New global array.
15899         (tree_code_length, tree_code_name): Likewise.
15900         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
15901         $(lang_tree_files).
15902         (all-tree.def, s-alltree): New targets.
15903         (gencheck.h, s-gencheck): Remove.
15904         (tree.o): Depend upon all-tree.def.
15905         (build/gencheck.o): Remove gencheck.h dependency.
15906         (mostlyclean): Don't remove gencheck.h.
15907         * c-common.h (enum c_tree_code): Remove.
15908         * c-lang.c (tree_code_type): Remove.
15909         (tree_code_length, tree_code_name): Remove.
15910         * gencheck.c (tree_codes): Include all-tree.def, rather than
15911         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
15912         after it is used.
15913         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
15914         than tree.def.
15915         * cp/cp-tree.h (enum cplus_tree_code): Remove.
15916         (operator_name_info): Size to MAX_TREE_CODES.
15917         (assignment_operator_name_info): Likewise.
15918         * cp/cp-lang.c (tree_code_type): Remove.
15919         (tree_code_length, tree_code_name): Remove.
15920         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
15921         (assignment_operator_name_info): Likewise.
15922         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
15923         MAX_TREE_CODES.
15924         * cp/mangle.c (write_expression): Likewise.
15925         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
15926         * fortran/f95-lang.c (tree_code_type): Remove.
15927         (tree_code_length, tree_code_name): Remove.
15928         * java/java-tree.h (enum java_tree_code): Remove.
15929         * java/lang.c (tree_code_type): Remove.
15930         (tree_code_length, tree_code_name): Remove.
15931         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
15932         * objc/objc-act.h (enum objc_tree_code): Remove.
15933         * objc/objc-lang.c (tree_code_type): Remove.
15934         (tree_code_length, tree_code_name): Remove.
15935         * objcp/objcp-lang.c (tree_code_type): Remove.
15936         (tree_code_length, tree_code_name): Remove.
15937         * ada/ada-tree.h (enum gnat_tree_code): Remove.
15938         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
15939         * ada/misc.c (tree_code_type): Remove.
15940         (tree_code_length, tree_code_name): Remove.
15941
15942 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
15943
15944         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
15945         the grand_bitmap_obstack.
15946
15947 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15948
15949         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
15950         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
15951         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
15952         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
15953         move_stmt_r, new_label_mapper): Likewise.
15954         * tree-complex.c (cvc_lookup): Likewise.
15955         * tree-dfa.c (create_function_ann): Likewise.
15956         * tree-dump.c (dump_register): Likewise.
15957         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
15958         find_phi_replacement_condition): Likewise.
15959         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
15960         tree_function_versioning): Likewise.
15961         * tree-into-ssa.c (cmp_dfsnum): Likewise.
15962         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
15963         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
15964         get_nonlocal_debug_decl, convert_nonlocal_reference,
15965         convert_nonlocal_omp_clauses, get_local_debug_decl,
15966         convert_local_reference, convert_local_omp_clauses,
15967         convert_nl_goto_reference, convert_nl_goto_receiver,
15968         convert_tramp_reference, convert_call_expr): Likewise.
15969         * tree-outof-ssa.c (contains_tree_r): Likewise.
15970         * tree-parloops.c (reduction_phi, initialize_reductions,
15971         eliminate_local_variables_1, add_field_for_reduction,
15972         add_field_for_name, create_phi_for_local_result,
15973         create_call_for_reduction_1, create_loads_for_reductions,
15974         create_stores_for_reduction, create_loads_and_stores_for_name):
15975         Likewise.
15976         * tree-phinodes.c (allocate_phi_node): Likewise.
15977         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
15978         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
15979         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
15980         * tree-ssa-coalesce.c (compare_pairs): Likewise.
15981         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
15982         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
15983         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
15984         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
15985         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
15986         vn_nary_op_insert): Likewise.
15987         * tree-ssa.c (redirect_edge_var_map_add,
15988         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
15989         * tree-vectorizer.c (vectorize_loops): Likewise.
15990         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
15991         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
15992         tree_cons_stat, build1_stat, build_variant_type_copy,
15993         decl_init_priority_lookup, decl_fini_priority_lookup,
15994         decl_priority_info, decl_restrict_base_lookup,
15995         decl_restrict_base_insert, decl_debug_expr_lookup,
15996         decl_debug_expr_insert, decl_value_expr_lookup,
15997         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
15998         type_hash_add, get_file_function_name, tree_check_failed,
15999         tree_not_check_failed, tree_range_check_failed,
16000         omp_clause_range_check_failed, build_omp_clause,
16001         build_vl_exp_stat): Likewise.
16002         * value-prof.c (gimple_histogram_value,
16003         gimple_duplicate_stmt_histograms): Likewise.
16004         * var-tracking.c (attrs_list_insert, attrs_list_copy,
16005         unshare_variable, variable_union_info_cmp_pos, variable_union,
16006         dataflow_set_different_1, dataflow_set_different_2,
16007         vt_find_locations, variable_was_changed, set_variable_part,
16008         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
16009         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
16010         section_entry_hash, object_block_entry_eq,
16011         object_block_entry_hash, create_block_symbol,
16012         initialize_cold_section_name, default_function_rodata_section,
16013         strip_reg_name, set_user_assembler_name, const_desc_eq,
16014         build_constant_desc, output_constant_def, lookup_constant_def,
16015         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
16016         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
16017         default_internal_label): Likewise.
16018         * varray.c (varray_init, varray_grow): Likewise.
16019         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
16020
16021 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
16022
16023         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
16024         operators for "test" insn.  Macroize insn using SWI mode macro.
16025         (*jcc_fused_2): Ditto.
16026         (*jcc_fused_3): Macroize insn using SWI mode macro.
16027         (*jcc_fused_4): Ditto.
16028
16029 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
16030
16031         * tree-ssa-pre.c: Fix typo in comment.
16032         (init_antic, fini_antic): Add explicit funtions for
16033         initializing and deinitializing ANTIC and AVAIL sets.
16034         (create_expression_by_pieces): Fix typo in comment.
16035         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
16036         (execute_pre): Eventually dump details about ANTIC_IN.
16037
16038 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16039
16040         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
16041         * gcc.c (translate_options, init_spec, store_arg, read_specs,
16042         add_to_obstack, file_at_path, find_a_file, execute,
16043         add_preprocessor_option, add_assembler_option, add_linker_option,
16044         process_command, insert_wrapper, do_option_spec, do_self_spec,
16045         spec_path, do_spec_1, is_directory, main, used_arg,
16046         getenv_spec_function): Likewise.
16047         * tlink.c (symbol_hash_lookup, file_hash_lookup,
16048         demangled_hash_lookup, symbol_push, file_push, frob_extension):
16049         Likewise.
16050
16051 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
16052
16053         * doc/rtl.texi: Updated subreg section.
16054
16055 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
16056
16057         PR c++/36523
16058         * cgraphunit.c (cgraph_process_new_functions): Don't clear
16059         node->needed and node->reachable.
16060         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
16061         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
16062         (expand_task_call): Don't call expand_task_copyfn.
16063         (expand_task_copyfn): Renamed to...
16064         (finalize_task_copyfn): ... this.
16065
16066 2008-06-19  Jan Hubicka  <jh@suse.cz>
16067
16068         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
16069         clobbering framepointer.
16070
16071 2008-06-19  Jan Hubicka  <jh@suse.cz>
16072
16073         * tree-optimize.c (execute_early_local_optimizations): Set
16074         cgraph_state only at first invocation.
16075
16076 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16077
16078         * system.h (-Wc++-compat): Activate as a warning, no an error.
16079
16080 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
16081
16082         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
16083         instead of "#" in insn asm template.
16084         (*jcc_fused_2): Ditto.
16085
16086 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
16087
16088         * config/i386/i386.h (ix86_tune_indices)
16089         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
16090         (TARGET_FUSE_CMP_AND_BRANCH): New define.
16091         * config/i386/i386.md (*jcc_fused_1): New insn pattern
16092         (*jcc_fused_2): Ditto.
16093         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
16094         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
16095         (print operand): Handle 'E' and 'e' code.
16096
16097 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
16098
16099         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
16100         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16101         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
16102
16103 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
16104
16105         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
16106         node->decl.
16107         (cgraph_expand_function): Use local copy of decl.
16108         (cgraph_expand_all_functions): Remove redundant initialization of
16109         order_pos.
16110         (cgraph_optimize): Reword internal_error message.
16111
16112 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
16113
16114         * arm-protos.h (arm_return_in_memory): Remove public
16115         arm_return_in_memory() prototype.
16116         * arm.c (arm_return_in_memory): Add static prototype, add target
16117         hook macro, change definition and comments.
16118         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
16119
16120 2008-06-19  Ben Elliston  <bje@au.ibm.com>
16121
16122         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
16123         real.c: Remove references to IEEE 754R.
16124         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
16125         * doc/libgcc.texi (Decimal float library routines): Likewise.
16126
16127 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16128
16129         * targhooks.h (struct gcc_target): New member unwind_word_mode.
16130         (default_unwind_word_mode): Add prototype.
16131         * targhooks.c (default_unwind_word_mode): New function.
16132         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
16133         instead of word_mode.
16134         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
16135         (TARGET_INITIALIZER): Use it.
16136
16137         * c-common.c (handle_mode_attribute): Support "unwind_word"
16138         mode attribute.
16139         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
16140
16141         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
16142         word_mode to access SjLj_Function_Context member "data".
16143         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
16144         conversion from targetm.eh_return_filter_mode () to
16145         targetm.unwind_word_mode () if they differ.
16146
16147         * builtin-types.def (BT_UNWINDWORD): New primitive type.
16148         (BT_FN_UNWINDWORD_PTR): New function type.
16149         (BT_FN_WORD_PTR): Remove.
16150         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
16151         * except.c (expand_builtin_extend_pointer): Convert pointer to
16152         targetm.unwind_word_mode () instead of word_mode.
16153
16154         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
16155         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
16156         (spu_unwind_word_mode): New function.
16157         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
16158         (TARGET_UNWIND_WORD_MODE): Define.
16159         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
16160
16161 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16162
16163         * config/spu/spu.c (reg_align): Remove.
16164         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
16165         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
16166         (spu_split_store): Likewise.
16167
16168 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
16169
16170         * gcc/tree-vn.c: Fix typo in comment.
16171
16172 2008-06-18  Jan Hubicka  <jh@suse.cz>
16173
16174         * cgraphunit.c (cgraph_optimize): Output debug info when doing
16175         toplevel reorder too.
16176
16177 2008-06-18  Jan Hubicka  <jh@suse.cz>
16178
16179         * c-opts.c (c_common_post_options): PCH is not compatible with
16180         no-unit-at-a-time.
16181         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
16182         -fno-toplevel-reorder by default now.
16183
16184 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16185
16186         PR documentation/30739
16187         * doc/install.texi (Prerequisites): Document dependency on awk.
16188
16189 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
16190             Ian Lance Taylor  <iant@google.com>
16191
16192         PR rtl-optimization/35604
16193         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
16194         only want to change jump destinations, not eventual label comparisons.
16195
16196 2008-06-16  Jan Hubicka  <jh@suse.cz>
16197
16198         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
16199         syntax errors.
16200         (cgraph_analyze_function): Likewise.
16201
16202 2008-06-16  Jan Hubicka  <jh@suse.cz>
16203
16204         * cgraph.h (cgraph_mark_if_needed): New function.
16205         * cgraphunit.c (cgraph_mark_if_needed): New function.
16206         * c-decl.c (duplicate_decl): Use it.
16207
16208 2008-06-16  Jan Hubicka  <jh@suse.cz>
16209
16210         * cgraph.c (cgraph_add_new_function): When in expansion state, do
16211         lowering.
16212
16213 2008-06-16  Jan Hubicka  <jh@suse.cz>
16214
16215         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
16216
16217 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
16218             Kazu Hirata  <kazu@codesourcery.com>
16219             Maxim Kuvyrkov  <maxim@codesourcery.com
16220
16221         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
16222         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
16223         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
16224         EXTRA_SPEC_FUNCTIONS.
16225         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
16226         (DRIVER_SELF_SPECS): Adjust.
16227         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
16228         * config/mips/st.h, config/mips/t-st: New.
16229         * config/mips/driver-native.c, config/mips/x-native: New.
16230         * doc/invoke.texi (MIPS): Document 'native' value for -march and
16231         -mtune options.
16232
16233 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16234
16235         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
16236         from it.
16237         (ISA_HAS_FP_CONDMOVE): New macro.
16238         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
16239         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
16240         (ISA_HAS_NMADD3_NMSUB3): New macro.
16241         * config/mips/mips.c (mips_rtx_costs): Update.
16242         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
16243         compiling for ST Loongson 2E/2F.
16244         (madd<mode>): Rename to madd4<mode>.  Update.
16245         (madd3<mode>): New pattern.
16246         (msub<mode>): Rename to msub4<mode>.  Update.
16247         (msub3<mode>): New pattern.
16248         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
16249         (nmadd3<mode>): New pattern.
16250         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
16251         (nmadd3<mode>_fastmath): New pattern.
16252         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
16253         (nmsub3<mode>): New pattern.
16254         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
16255         (nmsub3<mode>_fastmath): New pattern.
16256         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
16257
16258 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
16259
16260         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
16261         (DF_REF_INSN_INFO): New.
16262         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
16263         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
16264         with a NULL DF_REF_INSN_INFO.
16265         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
16266         DF_INSN_SET.
16267         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
16268         DF_INSN_INFO_EQ_USES): New.
16269         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
16270         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
16271         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
16272         * df-core.c: Update comment for above changes.
16273         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
16274         DF_INSN_UID_* macros.
16275         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
16276         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
16277         insn rtx.  Update all callers.
16278         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
16279         df_ref_create_structure, df_insn_refs_collect): Likewise.
16280         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
16281         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
16282         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
16283         macros to access the insn refs.
16284         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
16285         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
16286         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
16287         for accessing the refs.
16288         (try_fwprop_subst): Likewise.
16289         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
16290         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
16291         for accessing the refs.
16292         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
16293         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
16294         to look at the insn refs.
16295         (record_uses): Likewise.
16296         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
16297         function anymore.
16298         (mark_artificial_uses): Don't mark_insn for artificial refs.
16299         (mark_reg_rependencies): Likewise.
16300
16301         * doc/rtl.texi: Remove documentation of ADDRESSOF.
16302
16303 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16304
16305         * configure: Regenerate.
16306
16307 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
16308
16309         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
16310         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16311         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16312
16313 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
16314
16315         * config/avr/avr.c (avr_mcu_t): Add attiny167.
16316         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16317         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16318
16319 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
16320
16321         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
16322         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16323         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16324
16325 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
16326
16327         * tree-ssa-sccvn.c: Fix format of comments.
16328
16329 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
16330
16331         * cgraph.c: Remove unneeded forward declarations of eq_node()
16332         and hash_node().
16333
16334 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
16335
16336         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
16337         REG_RETVAL notes.
16338         (see_update_relevancy): Likewise.
16339         * fwprop.c (try_fwprop_subst): Likewise.
16340         * rtlanal.c (noop_move_p): Likewise.
16341         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
16342         notes to non-existing libcall blocks.
16343         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
16344         Remove orig_set.
16345         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
16346         (dead_libcall_p): Remove.
16347         (delete_trivially_dead_insns): Don't use it.
16348         * web.c (union_defs): Remove comment about keeping nops.
16349         * gcse.c (hash_scan_insn): Don't take libcall pointers.
16350         (compute_hash_table_work): Don't track libcall notes.
16351         (do_local_cprop): Don't take libcall pointers.  Don't update
16352         libcall notes.
16353         (adjust_libcall_notes): Deleted.
16354         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
16355         ever have existed in the first place).
16356         (replace_store_insn): Don't try to remove libcall notes.
16357         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
16358         (resolve_reg_notes): Don't call them.
16359         (resolve_simple_move): Likewise.
16360         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
16361         Don't remove REG_RETVAL notes.
16362         * emit-rtl.c (try_split): Don't update libcall notes.
16363         (emit_copy_of_insn_after): Dito.
16364         * cselib.c (cselib_current_insn_in_libcall): Remove.
16365         (cselib_process_insn): Don't set/clear it.
16366         (new_elt_loc_list): Don't record it.
16367         (cselib_init): Don't initialize it.
16368         * cselib.c (struct elt_loc_list): Remove in_libcall field.
16369         * loop-invariant.c (find_invariant_insn): Don't look for libcall
16370         notes.
16371         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
16372         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
16373         (init_deps): Don't initialize it.
16374         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
16375         * combine.c (delete_noop_moves): Don't update libcall notes.
16376         (can_combine_p): Remove now pointless #if 0 block.
16377         (try_combine): Remove another obsolete #if 0 block.
16378         (distribute_notes): Don't distribute libcall notes.
16379         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
16380         * dce.c (libcall_dead_p): Remove.
16381         (delete_unmarked_insns): Don't handle libcall blocks.
16382         (preserve_libcall_for_dce): Remove.
16383         (prescan_insns_for_dce): Don't special-case libcall block insns.
16384         * reload1 (reload): Don't handle libcall notes.
16385         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
16386         documentation.
16387
16388 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
16389
16390         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
16391         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16392         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16393
16394 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
16395
16396         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
16397         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16398         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16399
16400 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16401
16402         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
16403
16404 2008-06-16  Ira Rosen  <irar@il.ibm.com>
16405
16406         PR tree-optimization/36493
16407         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
16408         the arguments list. Use VECTYPE to create vector pointer.
16409         (vectorizable_store): Fail if accesses through a pointer to vectype
16410         do not alias the original memory reference operands.
16411         Call vect_create_data_ref_ptr without the removed argument.
16412         (vectorizable_load): Likewise.
16413         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
16414         removed argument.
16415
16416 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
16417
16418         PR target/36336
16419         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
16420         reg_equiv_constant.
16421
16422 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
16423
16424         * config/mips/loongson2ef.md: New file.
16425         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
16426         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
16427         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
16428         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
16429         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
16430         and loongson_2f.
16431         (loongson2ef.md): New include.
16432         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
16433         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
16434         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
16435         (loongson_gt_<mode>, loongson_extract_halfword)
16436         (loongson_insert_halfword_0, loongson_insert_halfword_2)
16437         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
16438         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
16439         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
16440         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
16441         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
16442         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
16443         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
16444         (vec_interleave_low<mode>): Define type attribute.
16445         * config/mips/mips.c (mips_ls2): New static variable.
16446         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
16447         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
16448         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
16449         Implement target scheduling hooks.
16450         (mips_multipass_dfa_lookahead): Update to handle tuning for
16451         Loongson 2E/2F.
16452         (mips_sched_init): Initialize data for Loongson scheduling.
16453         (mips_ls2_variable_issue): New static function.
16454         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
16455         Add sanity check.
16456         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
16457         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
16458         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
16459         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
16460         Handle ST Loongson 2E/2F cores.
16461         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
16462
16463 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16464
16465         * omp-low.c (extract_omp_for_data): Fix comment typo.
16466         * c.opt: Fix typo.
16467
16468 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16469
16470         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
16471         FIXME note about gcc/config.guess.
16472         * doc/options.texi (Option file format): Remove non-ASCII bytes.
16473         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
16474         * doc/cppopts.texi: Likewise.
16475         * doc/extend.texi: Likewise.
16476         * doc/gcc.texi: Likewise.
16477         * doc/gccint.texi: Likewise.
16478         * doc/gcov.texi: Likewise.
16479         * doc/gty.texi: Likewise.
16480         * doc/hostconfig.texi: Likewise.
16481         * doc/install.texi: Likewise.
16482         * doc/invoke.texi: Likewise.
16483         * doc/loop.texi: Likewise.
16484         * doc/makefile.texi: Likewise.
16485         * doc/md.texi: Likewise.
16486         * doc/passes.texi: Likewise.
16487         * doc/tm.texi: Likewise.
16488         * doc/tree-ssa.texi: Likewise.
16489         * doc/trouble.texi: Likewise.
16490
16491 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
16492             Nathan Sidwell  <nathan@codesourcery.com>
16493             Maxim Kuvyrkov  <maxim@codesourcery.com>
16494             Richard Sandiford  <rdsandiford@googlemail.com>
16495
16496         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
16497         * config/mips/mips-protos.h (mips_expand_vector_init): New.
16498         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
16499         builtins.
16500         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
16501         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
16502         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
16503         V8QImode cases.
16504         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
16505         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
16506         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
16507         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
16508         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
16509         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
16510         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
16511         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
16512         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
16513         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
16514         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
16515         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
16516         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
16517         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
16518         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
16519         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
16520         (mips_builtins): Add Loongson builtins.
16521         (mips_loongson_2ef_bdesc): New.
16522         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
16523         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
16524         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
16525         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
16526         New.
16527         (mips_expand_vector_init): New.
16528         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
16529         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
16530         if appropriate.
16531         * config/mips/mips.md: Add unspec numbers for Loongson
16532         builtins.  Include loongson.md.
16533         (MOVE64): Include Loongson vector modes.
16534         (SPLITF): Include Loongson vector modes.
16535         (HALFMODE): Handle Loongson vector modes.
16536         * config/mips/loongson.md: New.
16537         * config/mips/loongson.h: New.
16538         * config.gcc: Add loongson.h header for mips*-*-* targets.
16539         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
16540
16541 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
16542
16543         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
16544         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
16545         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
16546         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
16547         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
16548         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
16549         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
16550         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
16551         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
16552         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
16553         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
16554         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
16555         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
16556         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
16557         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
16558         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
16559         Remove use_fixproto=yes.
16560         (ia64*-*-hpux*): Remove comment about using fixproto.
16561         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
16562
16563 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16564
16565         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
16566         library rebuilds.
16567         * configure: Regenerate.
16568
16569 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
16570
16571         PR middle-end/36520
16572         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
16573         before evaluating it.
16574
16575 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
16576
16577         PR c/36507
16578         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
16579         nested inline functions.
16580         (start_decl, start_function): Don't invert DECL_EXTERNAL
16581         for nested inline functions.
16582
16583 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
16584
16585         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
16586         splits that must be made for correctness.
16587
16588 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
16589
16590         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
16591         (AVAIL_NON_MIPS16): Likewise.
16592         (mips_builtin_description): Replace target_flags with a predicate.
16593         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
16594         (dspr2_32): New availability predicates.
16595         (MIPS_BUILTIN): New macro.
16596         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
16597         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
16598         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
16599         Replace the TARGET_FLAGS parameters with AVAIL parameters.
16600         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
16601         (mips_dsp_32only_bdesc): Merge into...
16602         (mips_builtins): ...this new array.
16603         (mips_bdesc_map, mips_bdesc_arrays): Delete.
16604         (mips_init_builtins): Update after above changes.
16605         (mips_expand_builtin_1): Merge into...
16606         (mips_expand_builtin): ...here and update after above changes.
16607
16608 2008-06-12  Paul Brook  <paul@codesourcery.com>
16609
16610         * longlong.h (__arm__): Define count_leading_zeros.
16611         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
16612         (clzsi2, clzdi2): New functions.
16613         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
16614         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
16615         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
16616         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
16617         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
16618         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
16619         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
16620         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
16621         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
16622         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
16623
16624 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
16625
16626         * config/m68k/m68k.c (m68k_tune_flags): New.
16627         (override_options): Compute m68k_tune_flags.
16628         (MULL_COST, MULW_COST): Update for various variants of CFV2.
16629         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
16630
16631 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
16632
16633         PR middle-end/36506
16634         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
16635
16636 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16637
16638         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
16639         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
16640
16641 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16642
16643         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
16644         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
16645
16646 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
16647
16648         PR middle-end/36506
16649         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
16650         reductions.
16651
16652 2008-06-12  Richard Guenther  <rguenther@suse.de>
16653
16654         PR tree-optimization/36345
16655         * tree-flow.h (struct ptr_info_def): Align escape_mask,
16656         add memory_tag_needed flag.
16657         (may_alias_p): Declare.
16658         * tree-ssa-alias.c (may_alias_p): Export.
16659         (set_initial_properties): Use memory_tag_needed flag.
16660         (update_reference_counts): Likewise.
16661         (reset_alias_info): Reset memory_tag_needed flag.
16662         (create_name_tags): Check memory_tag_needed flag.
16663         (dump_points_to_info_for): Dump it.
16664         * tree-ssa-structalias.c (struct variable_info): Remove
16665         directly_dereferenced flag.
16666         (new_var_info): Do not initialize it.
16667         (process_constraint_1): Do not set it.
16668         (update_alias_info): Set is_dereferenced flag.
16669         (set_uids_in_ptset): Use may_alias_p.
16670         (set_used_smts): Check memory_tag_needed flag.
16671         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
16672         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
16673         memory_tag_needed flag.
16674         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
16675         from broken design.
16676
16677 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
16678
16679         * config/i386/i386.c (ix86_compute_frame_layout): Disable
16680         red zone for w64 abi.
16681         (ix86_expand_prologue): Likewise.
16682         (ix86_force_to_memory): Likewise.
16683         (ix86_free_from_memory): Likewise.
16684
16685 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
16686
16687         PR target/36425
16688         * config/rs6000/rs6000.c (rs6000_override_options): Set
16689         rs6000_isel conditionally to the absence of comand line override.
16690         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16691         Remove duplicate rs6000_isel setting.
16692         * config/rs6000/eabispe.h: Ditto.
16693
16694 2008-06-11  Richard Guenther  <rguenther@suse.de>
16695
16696         * alias.c (get_alias_set): Use the element alias-set for arrays.
16697         (record_component_aliases): For arrays and vectors do nothing.
16698         * c-common.c (strict_aliasing_warning): Handle the cases
16699         of alias set zero explicitly.
16700         * Makefile.in (dfp.o-warn): Add -Wno-error.
16701
16702 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
16703
16704         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
16705         tune_32 tune_64.
16706         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
16707         tune_32 tune_64 to supported_defaults.  Allow values not
16708         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
16709         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
16710         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
16711         with_cpu_64 to generic for 64-bit-supporting configurations, not
16712         with_cpu.  Remove FIXMEs.
16713         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
16714         --with-arch-64, --with-tune-32, --with-tune-64): Document.
16715         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
16716         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
16717         arch_32 and arch_64.
16718
16719 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
16720             Olivier Hainque  <hainque@adacore.com>
16721
16722         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
16723         Use DECL_SIZE_UNIT to retrieve the size of the field.
16724
16725 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
16726
16727         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
16728         with function calls after declarations.  Lay out
16729         neon_float_type_node before further use.
16730
16731 2008-06-11  Richard Guenther  <rguenther@suse.de>
16732
16733         * tree-flow.h (may_point_to_global_var): Declare.
16734         * tree-ssa-alias.c (may_point_to_global_var): New function.
16735         * tree-ssa-sink.c (is_hidden_global_store): Use it.
16736
16737 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
16738
16739         * configure.ac: Teach that fido supports .debug_line.
16740         * configure: Regenerate.
16741
16742 2008-06-10  Tom Tromey  <tromey@redhat.com>
16743
16744         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
16745         debug hook.
16746
16747 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
16748
16749         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
16750         (encode_decimal64, decode_decimal64, encode_decimal128,
16751         decode_decimal128): Reverse order of 32-bit parts of value if host
16752         and target endianness differ.
16753
16754 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
16755
16756         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
16757         Avoid division by 0.
16758         (tree_mod_pow2_value_transform): Likewise.
16759         (tree_ic_transform): Likewise.
16760         (tree_stringops_transform): Likewise.
16761         (tree_mod_subtract_transform): Likewise.
16762         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
16763         (copy_edges_for_bb): Likewise.
16764         (initialize_cfun): Likewise.
16765
16766 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
16767
16768         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
16769         nonmemory_operand. Add "N" operand constraint.
16770         (*btsi): Ditto.
16771         (*jcc_btdi_mask_rex64): New instruction and split pattern.
16772         (*jcc_btsi_mask): Ditto.
16773         (*jcc_btsi_mask_1): Ditto.
16774
16775 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
16776
16777         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
16778         TYPE_CANONICAL for copied element type.
16779
16780 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
16781
16782         PR target/36473
16783         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
16784         Add m_CORE2 and m_GENERIC.
16785         * config/i386/predicates.md (bt_comparison_operator): New predicate.
16786         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
16787         (*btsi): Ditto.
16788         (*jcc_btdi_rex64): New instruction and split pattern.
16789         (*jcc_btsi): Ditto.
16790         (*jcc_btsi_1): Ditto.
16791         (*btsq): Fix Intel asm dialect operand order.
16792         (*btrq): Ditto.
16793         (*btcq): Ditto.
16794
16795 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
16796
16797         PR middle-end/36447
16798         * simplify-rtx.c (simplify_subreg): Add check for shift count
16799         greater than size.
16800
16801 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
16802
16803         * doc/md.texi: Synchronize with later constraints.md change.
16804         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
16805         with a C implementation.
16806         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
16807         MFLO handling.
16808         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
16809         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
16810         when moving to and from MD_REGNUM.
16811         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
16812         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
16813         Handle byte and halfword moves.
16814         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
16815         separately.
16816         * config/mips/constraints.md (h): Turn into NO_REGS.
16817         (l, x): Update documentation.
16818         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
16819         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
16820         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
16821         (HILO): New mode iterator.
16822         (MOVE128): Add TI.
16823         (any_div): New code iterator.
16824         (u): Extend code attribute to div and udiv.
16825         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
16826         d_operand in the splitters.  Remove redundant CONST_INT checks.
16827         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
16828         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
16829         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
16830         accordingly, using normal moves instead of unspecs to move LO into
16831         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
16832         (<u>mulsidi3): Handle expansion in C code.
16833         (<u>mulsidi3_32bit_internal): Rename to...
16834         (<u>mulsidi3_32bit): ...this.
16835         (<u>mulsidi3_32bit_r4000): Fix insn separator.
16836         (*<u>mulsidi3_64bit): Rename to...
16837         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
16838         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
16839         to set LO and HI to the multiplication result.  Use a normal move
16840         for MFLO and an unspec for MFHI.
16841         (*<u>mulsidi3_64bit_parts): Replace with...
16842         (<u>mulsidi3_64bit_hilo): ...this new instruction.
16843         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
16844         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
16845         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
16846         instead of HI.  Split the instruction into a separate multiplication
16847         and MFHI if !TARGET_FIX_R4000.
16848         (<su>muldi3_highpart): Likewise.
16849         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
16850         and the "=h" clobber.
16851         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
16852         (<u>mulditi3): New expander.
16853         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
16854         (madsi): Remove "=h" clobber.
16855         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
16856         Force the modulus result to be a GPR and split the instruction into
16857         a division followed by an MFHI after reload.
16858         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
16859         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
16860         the MIPS16 HIGH define_split.
16861         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
16862         of acc<->gpr moves to "multi".
16863         (*movdi_64bit): Replace the single "x" alternative with
16864         alternatives for moving into and out of "a".
16865         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
16866         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
16867         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
16868         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
16869         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
16870         (movti): New expander.
16871         (*movti, *movti_mips16): New insns.
16872         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
16873         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
16874         (mthi<GPR:mode>_<HILO:mode>): Likewise.
16875         * config/mips/predicates.md (fpr_operand): Delete.
16876         (d_operand): New predicate.
16877
16878 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
16879
16880         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
16881         failure on some Bourne shells.
16882         (x86_64-*-*): Ditto.
16883
16884 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
16885
16886         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
16887
16888 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16889
16890         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
16891         (sparc-sun-solaris2*): Likewise.
16892
16893 2008-06-09  Arnaud Charlet  <charlet@adacore.com
16894
16895         * doc/install.texi: Update requirements to build the Ada compiler.
16896
16897 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
16898
16899         * df-scan.c (struct df_scan_problem_data): Remove the
16900         mw_link_pool alloc pool.
16901         (df_scan_free_internal): Don't free it.
16902         (df_scan_alloc): Don't allocate it.
16903         * df.h (struct df_link): Update comment.
16904
16905 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
16906
16907         * except.h: Correct checks for when SJLJ exceptions must be used.
16908
16909 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16910
16911         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
16912         default.
16913
16914 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
16915
16916         PR tree-optimization/36218
16917         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
16918         configure for the build system.
16919         (BUILD_LDFLAGS): Define.
16920         * configure: Regenerate.
16921         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
16922
16923 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
16924
16925         PR target/36424
16926         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
16927         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
16928         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
16929
16930 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
16931
16932         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
16933
16934 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
16935
16936         * config.gcc (Obsolete configurations): Remove list of
16937         configurations.
16938         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
16939         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
16940         targets matched by those patterns.
16941         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
16942         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
16943         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
16944         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
16945         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
16946         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
16947         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
16948         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
16949         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
16950         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
16951         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
16952         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
16953         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
16954         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
16955         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
16956         Make code for Solaris 7 and greater unconditional for Solaris.
16957         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
16958         Remove --with-* handling.
16959         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
16960         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
16961         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
16962         LINK_OS_WINDISS_SPEC): Remove.
16963         * config/rs6000/sysv4.opt (mwindiss): Remove.
16964         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
16965         * configure: Regenerate.
16966         * doc/cpp.texi: Don't mention BeOS.
16967         * doc/extend.texi (interrupt): Don't mention MS1.
16968         * doc/install.texi (i386-@var{any}-sysv, m68k-bull-sysv,
16969         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
16970         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
16971         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
16972         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
16973         Remove.
16974         * doc/invoke.texi (MT Options): Remove.
16975         (-mwindiss): Remove.
16976         (CRIS Options): Remove cris-axis-aout references.
16977         (HPPA Options): Don't mention hppa1.1-*-pro.
16978         * doc/md.texi (MorphoTech family): Remove.
16979         * libgcc2.c: Don't handle UWIN.
16980         * config/alpha/t-unicosmk: Remove.
16981         * config/alpha/unicosmk.h: Remove.
16982         * config/arm/kaos-arm.h: Remove.
16983         * config/arm/kaos-strongarm.h: Remove.
16984         * config/arm/strongarm-coff.h: Remove.
16985         * config/arm/strongarm-elf.h: Remove.
16986         * config/arm/strongarm-pe.h: Remove.
16987         * config/arm/t-strongarm-pe: Remove.
16988         * config/arm/t-xscale-coff: Remove.
16989         * config/arm/t-xscale-elf: Remove.
16990         * config/arm/xscale-coff.h: Remove.
16991         * config/arm/xscale-elf.h: Remove.
16992         * config/chorus.h: Remove.
16993         * config/cris/aout.h: Remove.
16994         * config/cris/aout.opt: Remove.
16995         * config/cris/t-aout: Remove.
16996         * config/i386/beos-elf.h: Remove.
16997         * config/i386/kaos-i386.h: Remove.
16998         * config/i386/ptx4-i.h: Remove.
16999         * config/i386/sco5.h: Remove.
17000         * config/i386/sco5.opt: Remove.
17001         * config/i386/sysv4-cpp.h: Remove.
17002         * config/i386/sysv5.h: Remove.
17003         * config/i386/t-beos: Remove.
17004         * config/i386/t-sco5: Remove.
17005         * config/i386/t-uwin: Remove.
17006         * config/i386/uwin.asm: Remove.
17007         * config/i386/uwin.h: Remove.
17008         * config/kaos.h: Remove.
17009         * config/mips/windiss.h: Remove.
17010         * config/mt: Remove directory.
17011         * config/pa/pa-osf.h: Remove.
17012         * config/pa/pa-pro-end.h: Remove.
17013         * config/pa/t-pro: Remove.
17014         * config/ptx4.h: Remove.
17015         * config/rs6000/beos.h: Remove.
17016         * config/rs6000/kaos-ppc.h: Remove.
17017         * config/rs6000/t-beos: Remove.
17018         * config/rs6000/windiss.h: Remove.
17019         * config/sh/kaos-sh.h: Remove.
17020         * config/sol2-6.h: Remove.
17021         * config/sparc/sol26-sld.h: Remove.
17022         * config/sparc/sysv4-only.h: Remove.
17023         * config/vax/bsd.h: Remove.
17024         * config/vax/t-memfuncs: Remove.
17025         * config/vax/ultrix.h: Remove.
17026         * config/vax/vaxv.h: Remove.
17027         * config/windiss.h: Remove.
17028
17029 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
17030
17031         PR rtl-optimization/36438
17032         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
17033         for vector shifts with constant scalar shift operands.
17034
17035 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
17036
17037         * doc/invoke.texi: Document -march=xlr.
17038         * config/mips/xlr.md: New file.
17039         * config/mips/mips.md: Include it.
17040         (cpu): Add "xlr".
17041         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
17042         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
17043         (mips_rtx_cost_data): Likewise.
17044
17045 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
17046
17047         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
17048         PRE_INC and PRE_DEC cases.
17049
17050 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
17051
17052         PR rtl-optimization/36419
17053         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
17054         the emitting jump insn.
17055
17056         PR target/36362
17057         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
17058         is not bool, boolify the whole *expr_p and convert to the desired type.
17059
17060 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
17061
17062         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
17063         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
17064         Add omp_private_outer_ref hook, add another argument to
17065         omp_clause_default_ctor hook.
17066         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
17067         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
17068         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
17069         hook_tree_tree_tree_tree_null.
17070         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
17071         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
17072         * hooks.c (hook_tree_tree_tree_tree_null): New function.
17073         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
17074         * tree.def (OMP_TASK): New tree code.
17075         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
17076         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
17077         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
17078         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
17079         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
17080         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
17081         OMP_CLAUSE_COLLAPSE_EXPR): Define.
17082         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
17083         (OMP_DIRECTIVE_P): Add OMP_TASK.
17084         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
17085         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
17086         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
17087         and OMP_CLAUSE_UNTIED entries.
17088         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
17089         num_ops to 2.
17090         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17091         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
17092         * tree-pretty-print.c (dump_omp_clause): Handle
17093         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
17094         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
17095         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
17096         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
17097         warning about unsigned iterators.  Change decl/init/cond/incr
17098         arguments to TREE_VECs, check arguments for all collapsed loops.
17099         (c_finish_omp_taskwait): New function.
17100         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
17101         ws_clauses.
17102         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
17103         default_function_array_conversion on init.  Add par_clauses argument.
17104         If decl is present in parallel's lastprivate clause, change it to
17105         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
17106         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
17107         collapse count in clauses.
17108         (c_parser_omp_for, c_parser_omp_parallel): Adjust
17109         c_parser_omp_for_loop callers.
17110         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
17111         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
17112         (c_parser_omp_clause_name): Handle collapse and untied clauses.
17113         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
17114         functions.
17115         (c_parser_omp_clause_schedule): Handle schedule(auto).
17116         Include correct location in the error message.
17117         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
17118         and PRAGMA_OMP_CLAUSE_UNTIED.
17119         (OMP_TASK_CLAUSE_MASK): Define.
17120         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
17121         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
17122         * tree-nested.c (convert_nonlocal_omp_clauses,
17123         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
17124         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
17125         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17126         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
17127         OMP_CLAUSE_DECL.
17128         (conver_nonlocal_reference, convert_local_reference,
17129         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
17130         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
17131         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
17132         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
17133         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
17134         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
17135         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
17136         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
17137         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
17138         OMP_CLAUSE_UNTIED.
17139         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
17140         * c-common.h (c_finish_omp_taskwait): New prototype.
17141         * gimple-low.c (lower_stmt): Handle OMP_TASK.
17142         * tree-parloops.c (create_parallel_loop): Create 1 entry
17143         vectors for OMP_FOR_{INIT,COND,INCR}.
17144         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
17145         (make_edges): Handle OMP_TASK.
17146         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
17147         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17148         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
17149         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
17150         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
17151         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
17152         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
17153         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
17154         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
17155         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
17156         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
17157         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
17158         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
17159         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
17160         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
17161         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
17162         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
17163         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
17164         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
17165         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
17166         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
17167         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
17168         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
17169         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
17170         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
17171         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
17172         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
17173         original iterator is present in lastprivate clause or if
17174         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
17175         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17176         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
17177         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
17178         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
17179         if it is set, lookup var in outer contexts too.  Handle
17180         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
17181         to be implicitly determined firstprivate for task regions.
17182         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
17183         if it is set, lookup var in outer contexts too.  Set
17184         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
17185         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
17186         OMP_CLAUSE_UNTIED.  Take region_type as last argument
17187         instead of in_parallel and in_combined_parallel.
17188         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
17189         Adjust callers.
17190         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
17191         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
17192         (new_omp_context): Set default_kind to
17193         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
17194         (omp_region_type): New enum.
17195         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
17196         fields, add region_type.
17197         (new_omp_context): Take region_type as argument instead of is_parallel
17198         and is_combined_parallel.
17199         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
17200         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
17201         ctx->is_combined_parallel checks.
17202         (gimplify_omp_task): New function.
17203         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
17204         OMP_CLAUSE_UNTIED.
17205         * omp-low.c (extract_omp_for_data): Use schedule(static)
17206         for schedule(auto).  Handle pointer and unsigned iterators.
17207         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
17208         Add loops argument.  Extract data for collapsed OMP_FOR loops.
17209         (expand_parallel_call): Assert sched_kind isn't auto,
17210         map runtime schedule to index 3.
17211         (struct omp_for_data_loop): New type.
17212         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
17213         Add loop, loops, collapse and iter_type fields.
17214         (workshare_safe_to_combine_p): Disallow combined for if
17215         iter_type is unsigned long long.  Don't combine collapse > 1 loops
17216         unless all bounds and steps are constant.  Adjust extract_omp_for_data
17217         caller.
17218         (expand_omp_for_generic): Handle pointer, unsigned and long long
17219         iterators.  Handle collapsed OMP_FOR loops.  Adjust
17220         for struct omp_for_data changes.  If libgomp function doesn't return
17221         boolean_type_node, add comparison of the return value with 0.
17222         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
17223         pointer, unsigned and long long iterators.  Adjust for struct
17224         omp_for_data changes.
17225         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
17226         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
17227         unsigned long long.  Allocate loops array, pass it to
17228         extract_omp_for_data.  For collapse > 1 loops use always
17229         expand_omp_for_generic.
17230         (omp_context): Add sfield_map and srecord_type fields.
17231         (is_task_ctx, lookup_sfield): New functions.
17232         (use_pointer_for_field): Use is_task_ctx helper.  Change first
17233         argument's type from const_tree to tree.  Clarify comment.
17234         In OMP_TASK disallow copy-in/out sharing.
17235         (build_sender_ref): Call lookup_sfield instead of lookup_field.
17236         (install_var_field): Add mask argument.  Populate both record_type
17237         and srecord_type if needed.
17238         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
17239         in srecord_type.
17240         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
17241         and DECL_FIELD_OFFSET.
17242         (scan_sharing_clauses): Adjust install_var_field callers.  For
17243         firstprivate clauses on explicit tasks allocate the var by value in
17244         record_type unconditionally, rather than by reference.
17245         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
17246         Use is_taskreg_ctx instead of is_parallel_ctx.
17247         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17248         (create_omp_child_function_name): Add task_copy argument, use
17249         *_omp_cpyfn* names if it is true.
17250         (create_omp_child_function): Add task_copy argument, if true create
17251         *_omp_cpyfn* helper function.
17252         (scan_omp_parallel): Adjust create_omp_child_function callers.
17253         Rename parallel_nesting_level to taskreg_nesting_level.
17254         (scan_omp_task): New function.
17255         (lower_rec_input_clauses): Don't run constructors for firstprivate
17256         explicit task vars which are initialized by *_omp_cpyfn*.
17257         Pass outer var ref to omp_clause_default_ctor hook if
17258         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
17259         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
17260         OMP_CLAUSE_REDUCTION_INIT.
17261         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
17262         avoid duplicate setting of fields.  Handle
17263         OMP_CLAUSE_PRIVATE_OUTER_REF.
17264         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
17265         copy-out if TREE_READONLY, only copy-in.
17266         (expand_task_copyfn): New function.
17267         (expand_task_call): New function.
17268         (struct omp_taskcopy_context): New type.
17269         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
17270         New functions.
17271         (lower_omp_parallel): Rename to...
17272         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
17273         Call create_task_copyfn if srecord_type is needed.  Adjust
17274         sender_decl type.
17275         (task_shared_vars): New variable.
17276         (check_omp_nesting_restrictions): Warn if work-sharing,
17277         barrier, master or ordered region is closely nested inside OMP_TASK.
17278         Add warnings for barrier if closely nested inside of work-sharing,
17279         ordered, or master region.
17280         (scan_omp_1): Call check_omp_nesting_restrictions even for
17281         GOMP_barrier calls.  Rename parallel_nesting_level to
17282         taskreg_nesting_level.  Handle OMP_TASK.
17283         (lower_lastprivate_clauses): Even if some lastprivate is found on a
17284         work-sharing construct, continue looking for them on parent parallel
17285         construct.
17286         (lower_omp_for_lastprivate): Add lastprivate clauses
17287         to the beginning of dlist rather than end.  Adjust for struct
17288         omp_for_data changes.
17289         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
17290         not after it.  Handle collapsed OMP_FOR loops, adjust for
17291         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
17292         (get_ws_args_for): Adjust extract_omp_for_data caller.
17293         (scan_omp_for): Handle collapsed OMP_FOR
17294         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17295         (lower_omp_single_simple): If libgomp function doesn't return
17296         boolean_type_node, add comparison of the return value with 0.
17297         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
17298         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
17299         (parallel_nesting_level): Rename to...
17300         (taskreg_nesting_level): ... this.
17301         (is_taskreg_ctx): New function.
17302         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
17303         of is_parallel_ctx.
17304         (execute_lower_omp): Rename parallel_nesting_level to
17305         taskreg_nesting_level.
17306         (expand_omp_parallel): Rename to...
17307         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
17308         Call omp_task_call for OMP_TASK regions.
17309         (expand_omp): Adjust caller, handle OMP_TASK.
17310         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
17311
17312         * bitmap.c (bitmap_default_obstack_depth): New variable.
17313         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
17314         if argument is NULL and bitmap_default_obstack is already initialized.
17315         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
17316         at the end.
17317         * matrix-reorg.c (matrix_reorg): Likewise.
17318
17319 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
17320
17321         * config/i386/i386.md (*indirect_jump): Macroize using P
17322         mode iterator.  Remove !TARGET_64BIT from insn constraints.
17323         (*tablejump_1): Ditto.
17324         (*indirect_jump_rex64): Remove insn pattern.
17325         (*tablejump_1_rex64): Ditto.
17326         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
17327         and eh_return_si insn patterns.
17328
17329 2008-06-06  Richard Guenther  <rguenther@suse.de>
17330
17331         * tree-ssa-structalias.c (merge_smts_into): Remove.
17332         (find_what_p_points_to): Do not bother to compute the
17333         points-to set for pt_anything pointers.
17334         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
17335         for pt_anything pointers is ok.
17336
17337 2008-06-06  Jan Hubicka  <jh@suse.cz>
17338
17339         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
17340
17341 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17342
17343         * cgraph.c: Fix typos in comments.
17344         (cgraph_availability_names): Fix string typo.
17345         * fold-const.c: Fix typos in comments.
17346         (fold_binary): Fix typo in warning.
17347         * genautomata.c: Fix typos in comments.
17348         (check_presence_pattern_sets): Fix typo in local variable.
17349         (output_description): Fix typo in output.
17350         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
17351         * hwint.h: Likewise.
17352         * matrix-reorg.c (check_allocation_function): Likewise.
17353         * omega.c (smooth_weird_equations): Likewise.
17354         * auto-inc-dec.c: Fix typos in comments.
17355         * bb-reorder.c: Likewise.
17356         * builtins.c: Likewise.
17357         * c-common.c: Likewise.
17358         * c-cppbuiltin.c: Likewise.
17359         * c-parser.c: Likewise.
17360         * c-pretty-print.c: Likewise.
17361         * cfgcleanup.c: Likewise.
17362         * cfgexpand.c: Likewise.
17363         * cfghooks.c: Likewise.
17364         * cfglayout.c: Likewise.
17365         * cfgloopmanip.c: Likewise.
17366         * cgraphunit.c: Likewise.
17367         * coverage.c: Likewise.
17368         * dbxout.c: Likewise.
17369         * df-byte-scan.c: Likewise.
17370         * df-core.c: Likewise.
17371         * df-problems.c: Likewise.
17372         * df-scan.c: Likewise.
17373         * dfp.c: Likewise.
17374         * dominance.c: Likewise.
17375         * domwalk.c: Likewise.
17376         * dse.c: Likewise.
17377         * dwarf2out.c: Likewise.
17378         * emit-rtl.c: Likewise.
17379         * et-forest.c: Likewise.
17380         * function.c: Likewise.
17381         * function.h: Likewise.
17382         * gcc.c: Likewise.
17383         * gcov-io.c: Likewise.
17384         * gcov.c: Likewise.
17385         * gcse.c: Likewise.
17386         * genattrtab.c: Likewise.
17387         * ggc-page.c: Likewise.
17388         * gimplify.c: Likewise.
17389         * gthr-lynx.h: Likewise.
17390         * haifa-sched.c: Likewise.
17391         * ipa-cp.c: Likewise.
17392         * ipa-inline.c: Likewise.
17393         * ipa-prop.h: Likewise.
17394         * ipa-pure-const.c: Likewise.
17395         * ipa-struct-reorg.c: Likewise.
17396         * ipa-struct-reorg.h: Likewise.
17397         * ipa-type-escape.c: Likewise.
17398         * ipa.c: Likewise.
17399         * loop-doloop.c: Likewise.
17400         * mips-tfile.c: Likewise.
17401         * mkmap-flat.awk: Likewise.
17402         * mkmap-symver.awk: Likewise.
17403         * modulo-sched.c: Likewise.
17404         * omp-low.c: Likewise.
17405         * optabs.c: Likewise.
17406         * optabs.h: Likewise.
17407         * opts.c: Likewise.
17408         * passes.c: Likewise.
17409         * postreload-gcse.c: Likewise.
17410         * postreload.c: Likewise.
17411         * predict.c: Likewise.
17412         * pretty-print.h: Likewise.
17413         * profile.c: Likewise.
17414         * protoize.c: Likewise.
17415         * ra-conflict.c: Likewise.
17416         * real.c: Likewise.
17417         * recog.c: Likewise.
17418         * regclass.c: Likewise.
17419         * regs.h: Likewise.
17420         * reload.c: Likewise.
17421         * rtl-error.c: Likewise.
17422         * rtlanal.c: Likewise.
17423         * scan.h: Likewise.
17424         * sched-rgn.c: Likewise.
17425         * see.c: Likewise.
17426         * stmt.c: Likewise.
17427         * target.h: Likewise.
17428         * tree-dfa.c: Likewise.
17429         * tree-eh.c: Likewise.
17430         * tree-flow-inline.h: Likewise.
17431         * tree-inline.c: Likewise.
17432         * tree-into-ssa.c: Likewise.
17433         * tree-loop-distribution.c: Likewise.
17434         * tree-nested.c: Likewise.
17435         * tree-parloops.c: Likewise.
17436         * tree-pass.h: Likewise.
17437         * tree-pretty-print.c: Likewise.
17438         * tree-profile.c: Likewise.
17439         * tree-scalar-evolution.c: Likewise.
17440         * tree-sra.c: Likewise.
17441         * tree-ssa-alias-warnings.c: Likewise.
17442         * tree-ssa-ccp.c: Likewise.
17443         * tree-ssa-coalesce.c: Likewise.
17444         * tree-ssa-dom.c: Likewise.
17445         * tree-ssa-dse.c: Likewise.
17446         * tree-ssa-forwprop.c: Likewise.
17447         * tree-ssa-live.c: Likewise.
17448         * tree-ssa-live.h: Likewise.
17449         * tree-ssa-loop-im.c: Likewise.
17450         * tree-ssa-loop-ivopts.c: Likewise.
17451         * tree-ssa-loop-niter.c: Likewise.
17452         * tree-ssa-loop-prefetch.c: Likewise.
17453         * tree-ssa-phiopt.c: Likewise.
17454         * tree-ssa-phiprop.c: Likewise.
17455         * tree-ssa-sccvn.c: Likewise.
17456         * tree-ssa-ter.c: Likewise.
17457         * tree-ssa-threadupdate.c: Likewise.
17458         * tree-ssa.c: Likewise.
17459         * tree-vect-analyze.c: Likewise.
17460         * tree-vect-transform.c: Likewise.
17461         * tree-vectorizer.c: Likewise.
17462         * tree-vn.c: Likewise.
17463         * tree-vrp.c: Likewise.
17464         * tree.c: Likewise.
17465         * tree.def: Likewise.
17466         * tree.h: Likewise.
17467         * unwind-dw2-fde.c: Likewise.
17468         * unwind.inc: Likewise.
17469         * value-prof.c: Likewise.
17470         * vmsdbgout.c: Likewise.
17471
17472 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
17473
17474         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
17475         always place FP constants in the TOC for TARGET_POWERPC64.
17476         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
17477
17478 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
17479
17480         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
17481         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
17482         enable for TARGET_E500_DOUBLE.
17483         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
17484         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
17485         floating-point modes like integer modes for E500 double.
17486         (rs6000_legitimate_offset_address_p): Likewise.
17487         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
17488         addressing for DDmode for E500 double.
17489         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
17490         modes as using 64-bits of registers for E500 double.
17491         (spe_build_register_parallel): Do not handle DDmode or TDmode.
17492         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
17493         specially for E500 double.
17494         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
17495         TDmode for E500 double.
17496         (rs6000_gimplify_va_arg): Only handle SDmode in registers
17497         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
17498         (rs6000_split_multireg_move): Do not handle TDmode specially for
17499         E500 double.
17500         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
17501         using 64-bit registers for E500 double.
17502         (emit_frame_save): Do not handle DDmode specially for E500 double.
17503         (gen_frame_mem_offset): Likewise.
17504         (rs6000_function_value): Do not call spe_build_register_parallel
17505         for DDmode or TDmode.
17506         (rs6000_libcall_value): Likewise.
17507         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
17508         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
17509         for E500 double.
17510
17511 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
17512
17513         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
17514         in comments.
17515
17516 2008-06-04  Junjie Gu <jgu@tensilica.com>
17517
17518         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
17519         comparison for frame pointers.
17520
17521 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
17522
17523         PR target/27386
17524         * config/avr/avr.h (PUSH_ROUNDING): Remove.
17525
17526 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
17527
17528         PR target/30243
17529         * builtins.c (expand_builtin_signbit): Don't take lowpart when
17530         register is already smaller or equal to required mode.
17531
17532 2008-06-04  Xinliang David Li  <davidxl@google.com>
17533
17534         * tree-call-cdce.c: New file.
17535         (cond_dead_built_in_calls): New static variable.
17536         (input_domain): New struct.
17537         (check_pow): New function.
17538         (check_builtin_call): Ditto.
17539         (check_target_format): Ditto.
17540         (is_call_dce_candidate): Ditto.
17541         (gen_one_condition): Ditto.
17542         (gen_conditions_for_domain): Ditto.
17543         (get_domain): Ditto.
17544         (gen_conditions_for_pow_cst_base): Ditto.
17545         (gen_conditions_for_pow_int_base): Ditto.
17546         (gen_conditions_for_pow): Ditto.
17547         (get_no_error_domain): Ditto.
17548         (gen_shrink_wrap_conditions): Ditto.
17549         (shrink_wrap_one_built_in_call): Ditto.
17550         (shink_wrap_conditional_dead_built_in_calls): Ditto.
17551         (tree_call_cdce): Ditto.
17552         (gate_call_cdce): Ditto.
17553         (pass_call_cdce): New gimple pass.
17554         * passes.c (init_optimization_passes): New pass.
17555         * tree-pass.h: New pass declaration.
17556         * opts.c (decode_options): New flag setting.
17557         * common.opt: Add -ftree-builtin-call-dce flag.
17558         * Makefile.in: Add new source file.
17559         * tempvar.def: New tv_id.
17560         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
17561
17562 2008-06-04  Richard Guenther  <rguenther@suse.de>
17563
17564         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
17565         (is_call_clobbered): Always check var_ann->call_clobbered.
17566         (mark_call_clobbered): Always set var_ann->call_clobbered.
17567         (clear_call_clobbered): Always clear var_ann->call_clobbered.
17568         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
17569         (reset_alias_info): Clear call clobbering info on MTAGs and
17570         globals as well.
17571         (set_pt_anything): Set pt_global_mem.
17572         (create_tag_raw): Adjust comment.
17573         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
17574
17575 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
17576             Maxim Kuvyrkov  <maxim@codesourcery.com>
17577
17578         * config/m68k/m68k.opt (mxgot): New option.
17579         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
17580         (m68k_output_addr_const_extra): New.
17581         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
17582         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
17583         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
17584         * doc/invoke.texi (M680x0 Options): Document -mxgot.
17585
17586 2008-06-04  Richard Guenther  <rguenther@suse.de>
17587
17588         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
17589         negative or non-representable offsets.
17590
17591 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
17592
17593         * config/i386/i386.c (ix86_gen_leave): New.
17594         (ix86_gen_pop1): Likewise.
17595         (ix86_gen_add3): Likewise.
17596         (ix86_gen_sub3): Likewise.
17597         (ix86_gen_sub3_carry): Likewise.
17598         (ix86_gen_one_cmpl2): Likewise.
17599         (ix86_gen_monitor): Likewise.
17600         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
17601         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
17602         ix86_gen_one_cmpl2 and ix86_gen_monitor.
17603         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
17604         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
17605         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
17606         (ix86_expand_epilogue): Updated.
17607         (print_operand): Handle integer register operand for 'z'.
17608         (ix86_expand_strlensi_unroll_1): Likewise.
17609         (ix86_expand_strlen): Likewise.
17610         (ix86_expand_builtin): Likewise.
17611         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
17612         mov{q}/mov{l} and add{q}/add{l}.
17613
17614 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17615
17616         * config/i386/i386.md (P): New mode iterator.
17617         (SFmode push_operand splitter): Macroize DImode and SImode pushes
17618         using P mode iterator.
17619         (DFmode push_operand splitter): Ditto.
17620         (XFmode push_operand splitter): Ditto.
17621         (DFmode float_extend SFmode push_operand splitter): Ditto.
17622         (XFmode float_extend SFmode push_operand splitter): Do not generate
17623         SImode pushes for 64bit target.  Macroize Dimode and SImode
17624         pushes using P mode iterator.
17625         (XFmode float_extend DFmode push_operand splitter): Ditto.
17626
17627 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17628
17629         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
17630         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
17631         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
17632         return type to int.
17633         (ix86_call_abi_override): Remove check for call_used_regs.
17634
17635 2008-06-03  Richard Guenther  <rguenther@suse.de>
17636
17637         * tree-ssa-structalias.c (find_func_aliases): Add constraints
17638         for the lhs of calls if the return type contains pointers.
17639
17640 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17641
17642         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
17643         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
17644         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
17645         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
17646         of cfun and DEFAULT_ABI to deceide abi mode.
17647         (DEFAULT_ABI): New.
17648         (REG_PARM_STACK_SPACE): Removed.
17649         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
17650         (STACK_BOUNDARY): Use default target to deceide stack boundary.
17651         * config/i386/i386-protos.h (ix86_cfun_abi): New.
17652         (ix86_function_abi): Likewise.
17653         (ix86_function_type_abi): Likewise.
17654         (ix86_call_abi_override): Likewise.
17655         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
17656         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
17657         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
17658         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
17659         specific defines.
17660         (X86_64_REGPARM_MAX): New.
17661         (X86_64_SSE_REGPARM_MAX): New.
17662         (X64_REGPARM_MAX): New.
17663         (X64_SSE_REGPARM_MAX): New.
17664         (X86_32_REGPARM_MAX): New.
17665         (X86_32_SSE_REGPARM_MAX): New.
17666         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
17667         (ix86_function_regparm): Handle user calling abi.
17668         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
17669         by DEFAULT_ABI versus SYSV_ABI check.
17670         (ix86_reg_parm_stack_space): New.
17671         (ix86_function_type_abi): New.
17672         (ix86_call_abi_override): New.
17673         (ix86_function_abi): New.
17674         (ix86_cfun_abi): New.
17675         (init_cumulative_args): Call abi specific initialization.
17676         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
17677         (function_arg_64): Extend SSE_REGPARM_MAX check.
17678         (function_arg (): Remove TARGET_64BIT_MS_ABI.
17679         (ix86_pass_by_reference): Likewise.
17680         (ix86_function_value_regno_p): Likewise.
17681         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
17682         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
17683         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
17684         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
17685         (setup_incoming_varargs_64): Adjust regparm for call abi.
17686         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
17687         (ix86_va_start): Likewise.
17688         (ix86_gimplify_va_arg): Likewise.
17689         (ix86_expand_prologue): Likewise.
17690         (output_pic_addr_const): Likewise.
17691         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
17692         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
17693         (x86_output_mi_thunk): Likewise.
17694         (x86_function_profiler): Likewise.
17695         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
17696         (SYSV_ABI, MS_ABI): New constants.
17697         (DEFAULT_ABI): New.
17698         (init_regs): Add prototype of function in regclass.c file.
17699         (OVERRIDE_ABI_FORMAT): New.
17700         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
17701         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
17702         (OUTGOING_REG_PARM_STACK_SPACE): New.
17703         (ix86_reg_parm_stack_space): New prototype.
17704         (CUMULATIVE_ARGS): Add call_abi member.
17705         (machine_function): Add call_abi member.
17706         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
17707         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
17708
17709 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
17710
17711         PR target/34879
17712         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
17713         (avr_builtin_setjmp_frame_value): New function.
17714         * config/avr/avr.md (nonlocal_goto_receiver): Define.
17715         (nonlocal_goto): Define.
17716
17717 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
17718
17719         * config/mips/mips.c (mips_emit_loadgp): Return early if
17720         there is nothing do to, otherwise emit a blockage if
17721         !TARGET_EXPLICIT_RELOCS || crtl->profile.
17722         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
17723
17724 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17725
17726         * configure.ac: Drop unneeded backslash ending up in config.in.
17727         * acinclude.m4: Likewise.
17728         * config.in: Regenerate.
17729
17730 2008-05-26  Jan Hubicka  <jh@suse.cz>
17731
17732         * predict.c (maybe_hot_frequency_p): Break out of...
17733         (maybe_hot_bb_p): ... here.
17734         (maybe_hot_edge_p): New.
17735         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
17736         * basic-block.h (maybe_hot_edge_p): Declare.
17737
17738 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
17739
17740         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
17741         (*cmpfp_<mode>_cc): Ditto.
17742         (*fp_jcc_8<mode>_387): Ditto.
17743         (*fop_<MODEF:mode>_2_i387): Ditto.
17744         (*fop_<MODEF:mode>_3_i387): Ditto.
17745         (*fop_xf_2_i387): Ditto.
17746         (*fop_xf_3_i387): Ditto.
17747
17748 2008-06-02  Tomas Bily  <tbily@suse.cz>
17749
17750         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
17751
17752 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17753
17754         * config/mips/mips.c (mips_valid_offset_p): New function.
17755         (mips_valid_lo_sum_p): Likewise.
17756         (mips_classify_address): Use them.
17757         (mips_force_address): New function.
17758         (mips_legitimize_address): Use it.
17759         * config/mips/mips.md (MOVE128): New mode iterator.
17760         (movtf): Require TARGET_64BIT.  Remove empty strings.
17761         (*movtf_internal): Rename to...
17762         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
17763         of "R" and use {,fp}{load,store} attributes instead of "multi".
17764         Use a separate define_split.
17765         (*movtf_mips16): New pattern.
17766
17767 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17768
17769         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
17770         * config/mips/mips.c (mips_expand_before_return): New function.
17771         (mips_expand_epilogue): Call it.
17772         * config/mips/mips.md (return): Turn into a define_expand.
17773         (*return): New insn.
17774
17775 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17776
17777         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
17778         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
17779         functions.  Do not emit uses and clobbers of CONCATs; individually
17780         use and clobber their operands.
17781         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
17782         gen_clobber, emit_use and gen_use.
17783         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
17784         (expand_builtin_return): Likewise.
17785         * cfgbuild.c (count_basic_blocks): Likewise.
17786         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
17787         * explow.c (emit_stack_restore): Likewise.
17788         * expmed.c (extract_bit_field_1): Likewise.
17789         * expr.c (convert_move, emit_move_complex_parts): Likewise.
17790         (emit_move_multi_word, store_constructor): Likewise.
17791         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
17792         (thread_prologue_and_epilogue_insns): Likewise.
17793         * lower-subreg.c (resolve_simple_move): Likewise.
17794         * optabs.c (widen_operand, expand_binop): Likewise.
17795         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
17796         * reload.c (find_reloads): Likewise.
17797         * reload1.c (eliminate_regs_in_insn): Likewise.
17798         * stmt.c (expand_nl_goto_receiver): Likewise.
17799         * config/alpha/alpha.md (builtin_longjmp): Likewise.
17800         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
17801         * config/arm/arm.c (arm_load_pic_register): Likewise.
17802         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
17803         * config/arm/arm.md (untyped_return): Likewise.
17804         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
17805         * config/avr/avr.c (expand_prologue): Likewise.
17806         * config/bfin/bfin.c (do_unlink): Likewise.
17807         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
17808         * config/cris/cris.c (cris_expand_prologue): Likewise.
17809         * config/darwin.c (machopic_indirect_data_reference): Likewise.
17810         (machopic_legitimize_pic_address): Likewise.
17811         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
17812         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
17813         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
17814         (ix86_expand_convert_uns_didf_sse): Likewise.
17815         (ix86_expand_vector_init_general): Likewise.
17816         * config/ia64/ia64.md (eh_epilogue): Likewise.
17817         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
17818         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
17819         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
17820         (config/iq2000/iq2000.c): Likewise.
17821         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
17822         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
17823         (builtin_longjmp): Likewise.
17824         * config/mn10300/mn10300.md (call, call_value): Likewise.
17825         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
17826         * config/pdp11/pdp11.md (abshi2): Likewise.
17827         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
17828         * config/s390/s390.c (s390_emit_prologue): Likewise.
17829         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
17830         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
17831         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
17832         * config/sh/sh.c (prepare_move_operands): Likewise.
17833         (output_stack_adjust, sh_expand_epilogue): Likewise.
17834         (sh_set_return_address, sh_expand_t_scc): Likewise.
17835         * config/sparc/sparc.c (load_pic_register): Likewise.
17836         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
17837         * config/spu/spu.c (spu_expand_epilogue): Likewise.
17838         * config/v850/v850.c (expand_epilogue): Likewise.
17839
17840 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
17841
17842         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
17843         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
17844         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
17845         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
17846         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
17847         stack pointer register.
17848         (output_movhi): Remove code for interrupt specific writing to the
17849         stack pointer register.
17850
17851 2008-05-31  Richard Guenther  <rguenther@suse.de>
17852
17853         PR tree-optimization/34244
17854         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
17855         (tree_expr_nonzero_warnv_p): Likewise.
17856         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
17857         ssa_name_nonnegative_p.
17858         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
17859         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
17860         not tree_expr_nonzero_warnv_p.
17861
17862         PR tree-optimization/36262
17863         Revert
17864         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
17865
17866         PR tree-optimization/34244
17867         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
17868         (record_numbers_of_iterations): New function.
17869         (execute_vrp): Cache the numbers of iterations of loops.
17870         * tree-scalar-evolution.c (scev_reset_except_niters):
17871         New function.
17872         (scev_reset): Use scev_reset_except_niters.
17873         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
17874
17875 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
17876
17877         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17878         __WORKAROUND_RETS when appropriate.
17879
17880 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
17881
17882         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
17883         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
17884         mode iterator.
17885         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
17886         *fop_df_comm_sse insn patterns using MODEF mode iterator.
17887         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
17888         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
17889         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
17890         *fop_df_1_mixed insn patterns using MODEF mode iterator.
17891         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
17892         *fop_df_1_sse insn patterns using MODEF mode iterator.
17893         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
17894         *fop_df_1_i387 insn patterns using MODEF mode iterator.
17895         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
17896         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
17897         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
17898         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
17899         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
17900         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
17901         (*fop_xf_4_i387): Use <MODE> for mode attribute.
17902         (*fop_xf_5_i387): Ditto.
17903         (*fop_xf_6_i387): Ditto.
17904
17905 2008-05-30  Richard Guenther  <rguenther@suse.de>
17906
17907         * builtins.c (build_string_literal): Avoid generating
17908         a non-gimple_val result.
17909
17910 2008-05-30  DJ Delorie  <dj@redhat.com>
17911
17912         * exec-tool.in: Use an environment variable (private) instead of a
17913         file (shared) as a semaphore, so as to not break parallel builds.
17914
17915 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
17916
17917         * optabs.c (maybe_encapsulate_block): Remove.
17918         (emit_libcall_block): Adjust accordingly.
17919         * optabs.h (maybe_encapsulate_block): Remove prototype.
17920
17921         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
17922         Don't use maybe_encapsulate_block.
17923
17924 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
17925
17926         * config/rs6000/rs6000.c (rs6000_legitimize_address,
17927         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
17928         rtx is a SYMBOL_REF before calling get_pool_constant.
17929
17930 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
17931
17932         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
17933
17934 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
17935
17936         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
17937         rather than OS names to choose INO_T_EQ definition.
17938         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
17939         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
17940
17941 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
17942
17943         PR target/36348
17944         * config/darwin-f.c: New.
17945         * config/t-darwin: Added rule to build darwin-f.o.
17946         * config.gcc: Defined new variable, fortran_target_objs.
17947         (*-*-darwin*): Set fortran_target_objs.
17948         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
17949         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
17950         * configure: Regenerated.
17951
17952 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17953
17954         PR target/35771
17955         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
17956         canonical type if needed.
17957
17958 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
17959
17960         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
17961
17962 2008-05-29  Richard Guenther  <rguenther@suse.de>
17963
17964         PR tree-optimization/36343
17965         PR tree-optimization/36346
17966         PR tree-optimization/36347
17967         * tree-flow.h (clobber_what_p_points_to): Declare.
17968         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
17969         pointed-to variable is dereferenced is irrelevant to whether
17970         the pointer can access the pointed-to variable.
17971         (clobber_what_p_points_to): New function.
17972         * tree-ssa-alias.c (set_initial_properties): Use it.
17973         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
17974         call clobber check for NMTs.
17975
17976 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
17977
17978         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
17979         for printing gcov_type.
17980
17981 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
17982
17983         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
17984         and the eh region information.
17985         * value-prof.c (gimple_move_stmt_histograms): New function.
17986         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
17987
17988 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
17989
17990         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
17991
17992 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
17993
17994         * value-prof.c (tree_ic_transform): Print counts.
17995         * tree-profile.c (tree_gen_ic_func_profiler):
17996         Clear __gcov_indreict_call_callee variable to avoid misattribution
17997         of the profile.
17998
17999 2008-05-28  Rafael Espíndola  <espindola@google.com>
18000
18001         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
18002         invalid sharing.
18003
18004 2008-05-28  Richard Guenther  <rguenther@suse.de>
18005
18006         PR tree-optimization/36339
18007         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
18008         and clobbering code out of the loop.
18009
18010 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
18011
18012         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
18013         letters defined.
18014
18015         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
18016         s390_contiguous_bitmask_p, s390_symref_operand_p,
18017         s390_check_symref_alignment, s390_reload_larl_operand,
18018         s390_reload_symref_address): New functions.
18019         (s390_branch_condition_mnemonic): Support compare and branch
18020         instructions.
18021         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
18022         and 'W' constraints.
18023         (s390_secondary_reload): Add secondary reloads for unaligned
18024         symbol refs or symbol refs to floating point or QI/TI mode
18025         integer values.
18026         (legitimate_address_p): Accept symbol references as addresses.
18027         (s390_expand_insv): Use rotate and insert selected bits
18028         instruction for insv when building for z10.
18029         (print_operand_address): Handle symbol ref addresses.
18030         (print_operand): Output modifier 'c' added for signed byte values.
18031         (s390_encode_section_info): Mark symbol refs with
18032         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
18033
18034         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
18035         (length attribute): RRF, RRR have 4 byte length.
18036         (FPALL, INTALL): New mode iterators added.
18037         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
18038         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
18039         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
18040         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
18041         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
18042         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
18043         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
18044         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
18045         instructions.
18046         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
18047         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
18048         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
18049         reload<INTALL:mode><P:mode>_toreg_z10,
18050         reload<FPALL:mode><P:mode>_tomem_z10,
18051         reload<FPALL:mode><P:mode>_toreg_z10,
18052         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
18053         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
18054         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
18055         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
18056         definition.
18057         (movmem, clrmem, cmpmem): New splitters added.
18058
18059         * config/s390/predicates.md (larl_operand): Use
18060         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
18061         SYMBOL_REF_ALIGN1_P.
18062         (s390_signed_integer_comparison,
18063         s390_unsigned_integer_comparison): New predicates.
18064
18065         * config/s390/s390-protos.h (s390_check_symref_alignment,
18066         s390_contiguous_bitmask_p, s390_reload_larl_operand,
18067         s390_reload_symref_address,
18068         s390_compare_and_branch_condition_mask): Prototypes added.
18069
18070         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
18071         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
18072         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
18073
18074 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
18075
18076         * config/s390/s390.c (z10_cost): New cost function for z10.
18077         (s390_handle_arch_option, override_options): Support -march=z10 switch.
18078         (s390_issue_rate): Adjust issue rate for z10.
18079         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
18080         (processor_flags): Add PF_Z10.
18081         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
18082         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
18083         * gcc/config.gcc: Add z10.
18084
18085 2008-05-28  Richard Guenther  <rguenther@suse.de>
18086
18087         PR tree-optimization/36291
18088         * tree-flow. h (struct gimple_df): Remove var_anns member.
18089         * tree-flow-inline.h (gimple_var_anns): Remove.
18090         (var_ann): Simplify.
18091         * tree-dfa.c (create_var_ann): Simplify.
18092         (remove_referenced_var): Clear alias info from var_anns of globals.
18093         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
18094         (delete_tree_ssa): Clear alias info from var_anns of globals.
18095         Do not free var_anns.
18096         (var_ann_eq): Remove.
18097         (var_ann_hash): Likewise.
18098
18099 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
18100
18101         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
18102         and loongson2f entries.
18103         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
18104         * config/mips/mips.h (processor_type): Add Loongson-2E
18105         and Loongson-2F entries.
18106         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
18107         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
18108         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
18109         * doc/invoke.texi (MIPS Options): Document loongson2e
18110         and loongson2f processor names.
18111
18112 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
18113
18114         PR target/35767
18115         PR target/35771
18116         * config/i386/i386.c (ix86_function_arg_boundary): Use
18117         alignment of canonical type.
18118         (ix86_expand_vector_move): Check unaligned memory access for
18119         all SSE modes.
18120
18121 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
18122
18123         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
18124         Moved to the front of file.
18125
18126 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
18127             H.J. Lu  <hongjiu.lu@intel.com>
18128
18129         * dwarf2out.c (current_fde): New.
18130         (add_cfi): Use it.
18131         (lookup_cfa:): Likewise.
18132         (dwarf2out_end_epilogue): Likewise.
18133         (dwarf2out_note_section_used): Likewise.
18134
18135 2008-05-27  Michael Matz  <matz@suse.de>
18136
18137         PR c++/27975
18138         * c.opt (Wenum-compare): New warning option.
18139         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
18140
18141 2008-05-27  Michael Matz  <matz@suse.de>
18142
18143         PR middle-end/36326
18144         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
18145         non-BLKmode types.
18146         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
18147         into memory as tail calls.
18148
18149 2008-05-27  Richard Guenther  <rguenther@suse.de>
18150
18151         PR tree-optimization/36339
18152         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
18153         pointers cause all addressable variables to be call clobbered.
18154
18155 2008-05-27  Richard Guenther  <rguenther@suse.de>
18156
18157         PR tree-optimization/36245
18158         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
18159
18160 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18161
18162         * config/s390/s390.md: Replace all occurences of the 'm'
18163         constraint with 'RT'.
18164
18165 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18166
18167         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
18168         definitions added.
18169         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
18170         "*movdi_64".
18171         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
18172         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
18173         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
18174
18175 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18176
18177         * reload.c (find_reloads): Skip alternatives according to the
18178         "enabled" attribute. Constify the constraint variable.
18179         * recog.c (get_attr_enabled): Add default implementation.
18180         (extract_insn): Set the alternative_enabled_p array
18181         in the recog_data struct.
18182         (preprocess_constraints, constrain_operands): Skip
18183         alternatives according to the "enabled" attribute
18184         * recog.h (struct recog_data): New field alternative_enabled_p.
18185         (skip_alternative): New inline function.
18186         * regclass.c (record_operand_costs): Check the "enabled" attribute.
18187         (record_reg_classes): Skip alternative according to the
18188         "enabled" attribute.
18189
18190         * doc/md.texi: Add documention for the "enabled" attribute.
18191
18192 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
18193
18194         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
18195         * postreload.c (reload_cse_simplify_operands): Replace 'm'
18196         constraint with TARGET_MEM_CONSTRAINT.
18197         * recog.c (asm_operand_ok, preprocess_constraints,
18198         constrain_operands): Likewise.
18199         * regclass.c (record_reg_classes): Likewise.
18200         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
18201         * reload1.c (maybe_fix_stack_asms): Likewise.
18202         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
18203         * recog.h: Adjust comment.
18204         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
18205         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
18206         * doc/md.texi: Add a note to description of 'm' constraint.
18207         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
18208
18209 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18210
18211         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
18212         that the bitfield is of integral type before testing its precision.
18213
18214 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
18215             Sa Liu  <saliu@de.ibm.com>
18216
18217         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
18218         __modti3, __udivti3, __umodti3 and __udivmodti4.
18219         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
18220         that implement TImode mul and div functions.
18221         * config/spu/multi3.c: New. Implement __multi3.
18222         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
18223         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
18224         functions on SPU.
18225
18226 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
18227
18228         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
18229         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
18230         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
18231         tls_sysv_suffix): New mode and mode attribute iterators.
18232         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
18233         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
18234         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
18235         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
18236         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
18237         iterators.
18238
18239 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
18240
18241         PR tree-optimization/36329
18242         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
18243         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
18244         * cgraphbuild.c (initialize_inline_failed): Use the latter
18245         macro in lieu of the former.
18246         * ipa-inline.c (cgraph_mark_inline): Likewise.
18247         (cgraph_decide_inlining_of_small_function): Likewise.
18248         (cgraph_decide_inlining): Likewise.
18249         (cgraph_decide_inlining_incrementally): Likewise.
18250
18251 2008-05-26  Tristan Gingold  <gingold@adacore.com>
18252             Anatoly Sokolov  <aesok@post.ru>
18253
18254         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
18255         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
18256         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
18257         optimization for 'avr6' architecture.
18258
18259 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
18260
18261         PR target/34932
18262         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
18263
18264 2008-05-26  Richard Guenther  <rguenther@suse.de>
18265
18266         * tree-ssa-sccvn.c (expr_has_constants): Declare.
18267         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
18268
18269 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
18270
18271         PR middle-end/36253
18272         * caller-save.c (insert_restore): Verify alignment of spill space.
18273         (insert_save): Likewise.
18274         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
18275         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
18276         (STACK_SLOT_ALIGNMENT): Likewise.
18277         * function.c (LOCAL_ALIGNMENT): Removed.
18278         (get_stack_local_alignment): New.
18279         (assign_stack_local): Use it.  Set alignment on stack slot.
18280         (assign_stack_temp_for_type): Use get_stack_local_alignment.
18281         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
18282         (STACK_SLOT_ALIGNMENT): New.
18283         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
18284         stack slot in XFmode.
18285
18286         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
18287
18288 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
18289
18290         PR/36321
18291         * config/i386/i386.md (allocate_stack_worker_64): Make sure
18292         argument operand in rax isn't removed.
18293
18294 2008-05-26  Richard Guenther  <rguenther@suse.de>
18295
18296         PR middle-end/36300
18297         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
18298         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
18299
18300 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
18301
18302         PR bootstrap/36331
18303         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
18304
18305 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
18306
18307         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
18308         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
18309
18310 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
18311
18312         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
18313         build a trampoline if we don't want one.
18314         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
18315         return zero for nested functions if we don't want a trampoline.
18316
18317 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
18318
18319         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
18320
18321 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
18322
18323         PR fortran/18428
18324         * c.opt: Removed undocumented option '-lang-fortran'.
18325         * c-common.h: Removed global variable 'lang_fortran'.
18326         * c-opts.c (c_common_handle_option): Removed code to handle
18327         option '-lang-fortran'. Updated includes.
18328         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
18329         definition of '__GFORTRAN__'.
18330         (define__GNUC__): Reimplemented to use BASEVER and
18331         cpp_define_formatted.
18332         (builtin_define_with_value_n): Removed.
18333         * c-incpath.h: Renamed to ...
18334         * incpath.h: ... this.
18335         * c-incpath.c: Renamed to ...
18336         * incpath.c: ... this. Updated includes.
18337         * fix-header.c: Updated includes.
18338         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
18339         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
18340         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
18341
18342 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
18343
18344         * tree.h: Update the table of flags used on tree nodes.
18345         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
18346         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
18347         (FORCED_LABEL): Add access check.
18348         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
18349         (ASM_INPUT_P): Likewise.
18350         (ASM_VOLATILE_P): Likewise.
18351         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
18352         (OMP_SECTION_LAST): Access private_flag directly.
18353         (OMP_RETURN_NOWAIT): Likewise.
18354         (OMP_PARALLEL_COMBINED): Likewise.
18355         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
18356         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
18357         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
18358         deprecated_flag directly.
18359
18360 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
18361
18362         * final.c (frame_pointer_needed): Removed.
18363         * flags.h (frame_pointer_needed): Likewise.
18364
18365         * function.h (rtl_data): Add frame_pointer_needed.
18366         (frame_pointer_needed): New.
18367
18368 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
18369
18370         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
18371
18372 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
18373
18374         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
18375         SRC is a REG.
18376
18377 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
18378
18379         * c-common.c (strip_array_types): Move function to..
18380         * tree.c: ..here.
18381         (get_inner_array_type): Delete.
18382         * c-common.h (strip_array_types): Move declaration to..
18383         * tree.h: ..here.
18384         (get_inner_array_type): Delete.
18385         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
18386         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
18387         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18388         * config/pa/pa.c (emit_move_sequence): Likewise.
18389
18390 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
18391
18392         * config/i386/i386.md (*sse_prologue_save_insn): Set length
18393         attribute to 34.
18394
18395 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
18396
18397         * function.c: Include target hook for nonlocal_goto frame value.
18398
18399 2008-05-24  Richard Guenther  <rguenther@suse.de>
18400
18401         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
18402         variable can be only accessed through a pointer or a union.
18403
18404 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18405
18406         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
18407         * doc/extend.texi: Likewise.
18408
18409 2008-05-23  DJ Delorie  <dj@redhat.com>
18410
18411         * config/m32c/jump.md (untyped_call): Add.
18412
18413         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
18414         for A24 to PSImode.
18415         (m32c_address_cost): Detail costs for indirect offsets.
18416
18417 2008-05-23  Rafael Espíndola  <espindola@google.com>
18418
18419         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
18420         if a node is a SUBREG.
18421         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
18422         is a SUBREG.
18423
18424 2008-05-23  Paul Brook  <paul@codesourcery.com>
18425             Carlos O'Donell  <carlos@codesourcery.com>
18426
18427         * doc/extend.texi: Clarify use of __attribute__((naked)).
18428         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18429         * target.h (gcc_target): Add allocate_stack_slots_for_args.
18430         * function.c (use_register_for_decl): Use
18431         targetm.calls.allocate_stack_slots_for_args.
18432         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18433         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
18434         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
18435
18436 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
18437
18438         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
18439
18440 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
18441
18442         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
18443         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
18444         is only rounded once.
18445
18446 2008-05-23  Richard Guenther  <rguenther@suse.de>
18447
18448         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
18449
18450 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
18451             Jakub Jelinek  <jakub@redhat.com>
18452
18453         PR target/36079
18454         * configure.ac: Handle --enable-cld.
18455         * configure: Regenerated.
18456         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
18457         * config/i386/i386.h (struct machine_function): Add needs_cld field.
18458         (ix86_current_function_needs_cld): New define.
18459         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
18460         (cld): New isns pattern.
18461         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
18462         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
18463         * config/i386/i386.opt (mcld): New option.
18464         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
18465         TARGET_CLD and ix86_current_function_needs_cld.
18466         (override_options): Use -mcld by default for 32-bit code if
18467         USE_IX86_CLD.
18468
18469         * doc/install.texi (Options specification): Document --enable-cld.
18470         * doc/invoke.texi (Machine Dependent Options)
18471         [i386 and x86-64 Options]: Add -mcld option.
18472         (Intel 386 and AMD x86-64 Options): Document -mcld option.
18473
18474 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
18475         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
18476         (return_in_memory_64): Likewise.
18477         (return_in_memory_ms_64): Likewise.
18478
18479 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18480
18481         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
18482         * builtins.c (fold_builtin_fpclassify): New.
18483         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
18484         * builtins.def (BUILT_IN_FPCLASSIFY): New.
18485         * c-common.c (handle_type_generic_attribute): Adjust to accept
18486         fixed arguments before an elipsis.
18487         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
18488         * doc/extend.texi: Document __builtin_fpclassify.
18489
18490 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
18491
18492         * omp-low.c (gate_expand_omp_ssa): Remove.
18493         (pass_expand_omp_ssa): Remove.
18494         (gate_expand_omp): Do not check for flag_openmp_ssa.
18495         * common.opt (-fopenmp-ssa): Remove.
18496         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
18497
18498 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
18499
18500         * config/sh/sh.opt (mfixed-range): New option.
18501         * config/sh/sh-protos.h (sh_fix_range): Declare.
18502         * config/sh/sh.c (sh_fix_range): New function.
18503         * config/sh/sh.h (sh_fixed_range_str): Declare.
18504         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
18505         is not empty.
18506         * doc/invoke.texi (SH Options): Document -mfixed-range.
18507
18508 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
18509
18510         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
18511         it before the redeclaration.
18512
18513 2008-05-22  Anatoly Sokolov <aesok@post.ru>
18514
18515         * config/avr/avr.c (get_sequence_length): Add new function.
18516         (expand_prologue, expand_epilogue): Remove duplicate code.
18517
18518 2008-05-22  Rafael Espíndola  <espindola@google.com>
18519
18520         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
18521         sharing.
18522
18523 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
18524
18525         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
18526         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
18527
18528         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
18529         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
18530         (vect_update_misalignment_for_peel): Likewise.
18531         (vector_alignment_reachable_p): Likewise.
18532         * tree-vect-transform.c (vectorizable_load): Likewise.
18533         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
18534         (get_vectype_for_scalar_type): Pass mode of scalar_type
18535         to UNITS_PER_SIMD_WORD.
18536
18537         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
18538         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
18539         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
18540         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
18541         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
18542
18543 2008-05-22  Ira Rosen  <irar@il.ibm.com>
18544
18545         PR tree-optimization/36293
18546         * tree-vect-transform.c (vect_transform_strided_load): Don't check
18547         if the first load must be skipped because of a gap.
18548
18549 2008-05-22  Richard Guenther  <rguenther@suse.de>
18550
18551         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
18552         more cases of offset disambiguation that is possible if
18553         strict-aliasing rules apply.
18554         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
18555         for basic offset and type-based disambiguation.
18556
18557 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18558
18559         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
18560         ix86_expand_vector_set on V16QImode for SSE4.1.
18561
18562 2008-05-21  Tom Tromey  <tromey@redhat.com>
18563
18564         * c.opt (Wimport): Mark as undocumented.
18565         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
18566         -Wno-import.
18567         (Warning Options): Likewise.
18568         * doc/cppopts.texi: Don't mention -Wimport.
18569
18570 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
18571
18572         PR tree-optimization/36287
18573         PR tree-optimization/36286
18574         * lambda-code.c (build_access_matrix): Do not use the loop->num
18575         for computing the number of induction variables: use the loop depth
18576         instead.
18577
18578 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
18579
18580         PR/36280
18581         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
18582         option -f(no-)leading-underscore.
18583
18584 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18585
18586         * config/i386/i386.c (ix86_expand_vector_init_general): Use
18587         GET_MODE_NUNITS (mode).
18588
18589 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
18590
18591         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
18592         (-mmulhw): Add 464 to description.
18593         (-mdlmzb): Likewise.
18594         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
18595         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
18596         464fp entries.
18597         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
18598         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
18599         * config/rs6000/rs6000.md: Update comments for 464.
18600
18601 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
18602
18603         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
18604
18605 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18606
18607         * config/i386/sse.md (vec_extractv4sf): Removed.
18608         (vec_extractv2df): Likewise.
18609         (vec_extractv2di): Likewise.
18610         (vec_extractv4si): Likewise.
18611         (vec_extractv8hi): Likewise.
18612         (vec_extractv16qi): Likewise.
18613         (vec_extract<mode>): New.
18614
18615 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18616
18617         * config/i386/sse.md (vec_setv4sf): Removed.
18618         (vec_setv2df): Likewise.
18619         (vec_setv2di): Likewise.
18620         (vec_setv4si): Likewise.
18621         (vec_setv8hi): Likewise.
18622         (vec_setv16qi): Likewise.
18623         (vec_set<mode>): New.
18624
18625 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18626
18627         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
18628         goto for vec_concat and vec_interleave.
18629
18630 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18631
18632         * config/i386/sse.md (vec_initv4sf): Removed.
18633         (vec_initv2df): Likewise.
18634         (vec_initv2di): Likewise.
18635         (vec_initv4si): Likewise.
18636         (vec_initv8hi): Likewise.
18637         (vec_initv16qi): Likewise.
18638         (vec_init<mode>): New.
18639
18640 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
18641
18642         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
18643
18644 2008-05-21  Tom Tromey  <tromey@redhat.com>
18645
18646         * ggc-zone.c (lookup_page_table_if_allocated): New function.
18647         (zone_find_object_offset): Likewise.
18648         (gt_ggc_m_S): Likewise.
18649         (highest_bit): Likewise.
18650         * ggc-page.c (gt_ggc_m_S): New function.
18651         * stringpool.c (string_stack): Remove.
18652         (init_stringpool): Update.
18653         (ggc_alloc_string): Use ggc_alloc.
18654         (maybe_delete_ident): New function.
18655         (ggc_purge_stringpool): Likewise.
18656         (gt_ggc_m_S): Remove.
18657         * ggc-common.c (ggc_protect_identifiers): New global.
18658         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
18659         ggc_protect_identifiers.
18660         * ggc.h (ggc_protect_identifiers): Declare.
18661         (gt_ggc_m_S): Update.
18662         (ggc_purge_stringpool): Declare.
18663         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
18664         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
18665         special case.
18666         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
18667
18668 2008-05-21  David S. Miller  <davem@davemloft.net>
18669
18670         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
18671         tmake_file.
18672
18673 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
18674
18675         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
18676         once finished.
18677
18678 2008-05-20  David Daney  <ddaney@avtrex.com>
18679
18680         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
18681         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
18682         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18683         UNSPEC_UPDATE_GOT_VERSION): Renumber.
18684         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
18685         (atomic_hiqi_op): New define_code_iterator.
18686         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
18687         mips_expand_compare_and_swap_12.
18688         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
18689         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
18690         (sync_<optab><mode>, sync_old_<optab><mode>,
18691         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
18692         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
18693         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
18694         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
18695         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
18696         (test_and_set_12): New insn.
18697         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
18698         sync_new_<optab><mode>, sync_old_nand<mode>,
18699         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
18700         clobber to operand 0 for SI and DI mode insns.
18701         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
18702         mips_gen_fn_4): New typedefs.
18703         (mips_gen_fn_ptrs): Define new union type.
18704         (mips_expand_compare_and_swap_12): Remove declaration.
18705         (mips_expand_atomic_qihi): Declare function.
18706         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
18707         (mips_expand_atomic_qihi): ... this.  Use new generator function
18708         parameter.
18709         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
18710         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
18711         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
18712         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
18713         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
18714         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
18715         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
18716         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
18717         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
18718         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
18719         New macros.
18720
18721 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
18722
18723         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
18724         the missing break.
18725
18726 2008-05-20  Anatoly Sokolov <aesok@post.ru>
18727
18728         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
18729         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
18730         (avr_attribute_table): Add 'OS_main' function attribute.
18731         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
18732         functions with 'OS_main' attribute.
18733
18734 2008-05-20  Richard Guenther  <rguenther@suse.de>
18735
18736         PR tree-optimization/35204
18737         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
18738         helper, split out from ...
18739         (DFS): ... here.  Make the DFS walk non-recursive.
18740
18741 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
18742             Jan Sjodin  <jan.sjodin@amd.com>
18743
18744         PR tree-optimization/36181
18745         * tree-parloops.c (loop_has_vector_phi_nodes): New.
18746         (parallelize_loops): Don't parallelize when the loop has vector
18747         phi nodes.
18748
18749 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18750             Sebastian Pop  <sebastian.pop@amd.com>
18751
18752         * tree-loop-linear.c (gather_interchange_stats): Look in the access
18753         matrix, and never look at the tree representation of the memory
18754         accesses.
18755         (linear_transform_loops): Computes parameters and access matrices.
18756         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
18757         when fails.
18758         (access_matrix_get_index_for_parameter): New.
18759         * tree-data-ref.h (struct access_matrix): New.
18760         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
18761         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
18762         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
18763         am_vector_index_for_loop): New.
18764         (struct data_reference): Add field access_matrix.
18765         (DR_ACCESS_MATRIX): New.
18766         (compute_data_dependences_for_loop): Update declaration.
18767         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
18768         * lambda.h (lambda_vector_vec_p): Declared.
18769         * lambda-code.c: Depend on pointer-set.h.
18770         (lambda_collect_parameters_from_af, lambda_collect_parameters,
18771         av_for_af_base, av_for_af, build_access_matrix,
18772         lambda_compute_access_matrices): New.
18773         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
18774
18775 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
18776
18777         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
18778         $SOURCEDIR/include.
18779
18780 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18781             Sebastian Pop  <sebastian.pop@amd.com>
18782
18783         PR tree-optimization/36206
18784         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
18785         FOLD_CONVERSIONS.
18786         (instantiate_scev_1): Rename flags to fold_conversions.
18787         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
18788         outeside instantiation_loop.
18789         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
18790         (evolution_function_is_affine_or_constant_p): Removed.
18791         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
18792         instantiate_scev.
18793         (analyze_siv_subscript): Pass in the loop nest number.
18794         Call evolution_function_is_affine_in_loop instead of
18795         evolution_function_is_affine_p.
18796         (analyze_overlapping_iterations): Pass in the loop nest number.
18797
18798 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18799             Sebastian Pop  <sebastian.pop@amd.com>
18800
18801         PR tree-optimization/36206
18802         * tree-chrec.h (chrec_fold_op): New.
18803         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
18804         and other trees.
18805
18806 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
18807
18808         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
18809         (DIRS_EQ): New.
18810         (remove_duplicates): Do not set inode on non-inode systems.
18811         Use DIRS_EQ.
18812
18813 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
18814
18815         * config.gcc (tm_file): Update comments about relative pathnames.
18816
18817 2008-05-20  Richard Guenther  <rguenther@suse.de>
18818
18819         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
18820         * tree-ssa-sccvn.c (process_scc): Likewise.
18821         * tree-ssa-sink.c (execute_sink_code): Likewise.
18822         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
18823         * tree-vrp.c (process_assert_insertions): Likewise.
18824         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
18825         (perform_tree_ssa_dce): Likewise.
18826         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
18827         (dump_dominator_optimization_stats): Likewise.
18828         * tree-vectorizer.c (vectorize_loops): Likewise.
18829
18830 2008-05-20  Richard Guenther  <rguenther@suse.de>
18831
18832         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
18833
18834 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
18835
18836         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
18837         (ix86_i386elf_return_in_memory): Likewise.
18838         (ix86_i386interix_return_in_memory): Likewise.
18839         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
18840         (SUBTARGET_RETURN_IN_MEMORY): New.
18841         * config/i386/i386elf.h: Likewise.
18842         * config/i386/ptx4-i.h: Likewise.
18843         * config/i386/sol2-10.h: Likewise.
18844         * config/i386/sysv4.h: Likewise.
18845         * config/i386/vx-common.h: Likewise.
18846         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
18847         * config/i386/i386.c (ix86_return_in_memory): Made static and
18848         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
18849         (ix86_i386elf_return_in_memory): Removed.
18850         (ix86_i386interix_return_in_memory): Removed.
18851         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
18852         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
18853
18854 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
18855
18856         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
18857
18858 2008-05-19  Xinliang David Li  <davidxl@google.com>
18859
18860         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
18861         * opts.c: Ditto.
18862         * common.opt: Ditto.
18863         * doc/invoke.texi: Ditto.
18864
18865 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
18866
18867         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
18868         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
18869
18870 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
18871
18872         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
18873         sizes of operand array from 8/4 to 4/2.
18874         (ix86_expand_vector_init_general): Change size of operand array
18875         from 32 to 16.  Remove op0, op1 and half_mode.
18876
18877 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
18878
18879         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
18880         (ix86_expand_vector_init_interleave): Likewise.
18881         (ix86_expand_vector_init_general): Use them.  Assert
18882         word_mode == SImode when n_words == 4.
18883
18884 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
18885
18886         * config/i386/i386.c (ix86_secondary_reload): New static function.
18887         (TARGET_SECONDARY_RELOAD): New define.
18888         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
18889         * config/i386/i386.md (reload_outqi): Remove.
18890
18891 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18892
18893         PR middle-end/35509
18894         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
18895         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
18896         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
18897         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
18898         (fold_builtin_1): Likewise.
18899         * builtins.def (BUILT_IN_ISINF_SIGN): New.
18900         c-common.c (check_builtin_function_arguments): Handle
18901         BUILT_IN_ISINF_SIGN.
18902         * doc/extend.texi: Document __builtin_isinf_sign.
18903         * fold-const.c (operand_equal_p): Handle COND_EXPR.
18904
18905 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
18906
18907         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
18908         EH cleanup at the end of the pass, search for those that have been
18909         turned into forwarder blocks and do the cleanup on their successor.
18910
18911 2008-05-18  Richard Guenther  <rguenther@suse.de>
18912
18913         * tree-cfg.c (verify_gimple_expr): Allow conversions from
18914         pointers to sizetype and vice versa.
18915
18916 2008-05-18 Xinliang David Li   <davidxl@google.com>
18917
18918         * gcc/tree-ssa-dce.c: Coding style fix.
18919         (check_pow): Documentation comment.
18920         (check_log): Documenation comment. Coding style fix.
18921         (is_unnecessary_except_errno_call): Ditto.
18922         (gen_conditions_for_pow): Ditto.
18923         (gen_conditions_for_log): Ditto.
18924         (gen_shrink_wrap_conditions): Ditto.
18925         (shrink_wrap_one_built_in_calls): Ditto.
18926         * gcc/doc/invoke.texi: Better documentation string.
18927         * ChangeLog: Fix wrong change log entries from
18928         May 17 checkin on function call DCE.
18929
18930 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
18931
18932         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
18933
18934 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
18935
18936         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
18937         * df-problems.c (simulation routines): Fixed block comment to
18938         properly say how to add forwards scanning functions.
18939
18940 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
18941
18942         * tree-inline.c (setup_one_parameter): Remove dead code.
18943
18944 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
18945
18946         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
18947         a BIT_AND_EXPR only for an INTEGER_TYPE.
18948
18949 2008-05-17 Xinliang David Li   <davidxl@google.com>
18950
18951         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
18952         (check_pow, check_log, is_unnecessary_except_errno_call): New
18953         functions to check for eliminating math functions that are pure
18954         except for setting errno.
18955         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
18956         general condition expressions for shrink-wrapping pow/log calls.
18957         (gen_shrink_wrap_conditions): Ditto.
18958         (shrink_wrap_one_built_in_call): Ditto.
18959         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
18960         (mark_operand_necessary): If debugging, output if OP is necessary.
18961         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
18962         unnecessary.
18963         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
18964         opt level >= 2.
18965         * gcc/common.opt: New user flag -ftree-builtin-dce.
18966         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
18967
18968 2008-05-16  David S. Miller  <davem@davemloft.net>
18969
18970         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
18971         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
18972
18973 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
18974
18975         PR target/36246
18976         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
18977
18978 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
18979
18980         * ifcvt.c (dead_or_predicable): Rename
18981         df_simulate_one_insn_backwards to df_simulate_one_insn.
18982         * recog.c (peephole2_optimize): Ditto.
18983         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
18984         Ditto.
18985         * df.h: Rename df_simulate_one_insn_backwards to
18986         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
18987         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
18988         scanning of defs and uses.
18989         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
18990         (df_simulate_one_insn_forwards): Removed.
18991
18992 2008-05-16  Doug Kwan  <dougkwan@google.com>
18993
18994         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
18995         QNaN & SNaN.
18996         (real_from_string): Handle NaNs and Inf as approriate.
18997
18998 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
18999
19000         * doc/gty.texi (Source Files Containing Type Information): Note
19001         that headers should appear first in the gtfiles list.
19002
19003 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19004
19005         * tree.def (COND_EXEC): Properly documented this code.
19006
19007 2008-05-16  Diego Novillo  <dnovillo@google.com>
19008
19009         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
19010         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
19011         the new field.
19012
19013 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19014
19015         * tree-ssa-dse (max_stmt_uid): Removed.
19016         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
19017         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
19018         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
19019         * function.h (cfun.last_stmt_uid): New field.
19020         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
19021         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
19022         New functions.
19023         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
19024         (create_stmt_ann): Initialize the ann->uid field.
19025         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
19026         with new calls.
19027         * tree-flow.h (renumber_gimple_stmt_uids): New function.
19028
19029 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
19030
19031         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
19032         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
19033         (init_empty_tree_cfg): Call it.
19034
19035 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19036
19037         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
19038         Update all users.
19039
19040 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
19041
19042         * doc/invoke.text (-fdump-tree-*-verbose): New option.
19043         * tree-dump.c (dump_options): New verbose option.
19044         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
19045         Add verbose dump.
19046         * tree-pass.h (TDF_VERBOSE): New dump flag.
19047         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
19048         (tree-flow.h): Added include.
19049         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
19050
19051 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
19052
19053         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
19054
19055         From Jie Zhang  <jie.zhang@analog.com>
19056         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19057         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
19058         mcpu=bf561-none and mcpu=bf561-0.2.
19059         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19060         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
19061         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19062         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
19063         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
19064         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
19065         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
19066         option.
19067         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
19068         (cputype_selected): Remove.
19069         (bfin_handle_option): Don't use cputype_selected.
19070         (override_options): When no mcpu option, enable all workarounds.
19071         Don't use bfin_workarounds.
19072         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
19073         processor type.
19074         (DEFAULT_CPU_TYPE): Don't define.
19075
19076 2008-05-16  Richard Guenther  <rguenther@suse.de>
19077
19078         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
19079         on deletion of the last stmt.
19080
19081 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
19082
19083         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
19084         V8HImode for SSE2 and V16QImode for SSE4.1.
19085
19086 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
19087
19088         * cgraph.h (compute_inline_parameters): Made public.
19089         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
19090         variable_generate_summary, function_write_summary,
19091         variable_write_summary, variable_read_summary.  Added generate_summary,
19092         write_summary, read_summary.
19093         * cgraphunit.c (cgraph_process_new_functions): Changed call from
19094         pass_ipa_inline.function_generate_summary, to
19095         compute_inline_parameters.
19096         * ipa-inline.c (compute_inline_parameters): Made public and added
19097         node parameter.
19098         (compute_inline_parameters_for_current): New function.
19099         (pass_inline_param): Now calls compute_inline_parameters_for_current.
19100         (inline_generate_summary): Removed parameter and made to loop over
19101         all cgraph nodes.
19102         (pass_ipa_inline): Updated for new IPA_PASS structure.
19103         * passes.c (execute_ipa_summary_passes): Now is called once per
19104         pass rather than once per node*pass.
19105
19106 2008-05-15  Anatoly Sokolov <aesok@post.ru>
19107
19108         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
19109         avr_have_mul_p, avr_asm_only_p): Remove variables.
19110         (avr_override_options): Remove initialization of removed variables.
19111         (avr_file_start):  Convert removed variables to fields of
19112         'struct base_arch_s *avr_current_arch'.
19113         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
19114         (AVR_HAVE_MUL): (Ditto.).
19115         (AVR_HAVE_MOVW): (Ditto.).
19116         (AVR_HAVE_LPMX): (Ditto.).
19117         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
19118         avr_asm_only_p): Remove declaration.
19119
19120 2008-05-15  Diego Novillo  <dnovillo@google.com>
19121
19122         * config/arm/arm.c (arm_return_in_memory): Fix return type.
19123         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
19124
19125 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
19126
19127         PR middle-end/36194
19128         * combine.c (check_conversion): Rename back to check_promoted_subreg.
19129         Don't call record_truncated_value from here.
19130         (record_truncated_value): Turn it into a for_each_rtx callback.
19131         (record_truncated_values): New function.
19132         (combine_instructions): Call note_uses with record_truncated_values.
19133         Change name of check_conversion to check_promoted_subreg.
19134
19135 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
19136
19137         * doc/sourcebuild.texi: Document support for torture tests.
19138
19139 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
19140
19141         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
19142         to alternative 4 of operand 2.
19143
19144 2008-05-15  Richard Guenther  <rguenther@suse.de>
19145
19146         * tree-pass.h (current_pass): Declare.
19147         (get_pass_for_id): Likewise.
19148         * passes.c (passes_by_id, passes_by_id_size): New globals.
19149         (set_pass_for_id): New function.
19150         (get_pass_for_id): Likewise.
19151         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
19152         (execute_function_todo): Flush per function statistics.
19153         * toplev.c (compile_file): Init statistics.
19154         (general_init): Do early statistics initialization.
19155         (finalize): Finish statistics.
19156         * statistics.h (statistics_early_init): Declare.
19157         (statistics_init): Likewise.
19158         (statistics_fini): Likewise.
19159         (statistics_fini_pass): Likewise.
19160         (statistics_counter_event): Likewise.
19161         (statistics_histogram_event): Likewise.
19162         * statistics.c: New file.
19163         * Makefile.in (OBJS-common): Add statistics.o.
19164         (statistics.o): Add dependencies.
19165         * doc/invoke.texi (-fdump-statistics): Document.
19166
19167         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
19168         (insert): Likewise.
19169         (execute_pre): Use statistics_counter_event.
19170         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
19171         (substitute_and_fold): Increment it.  Use statistics_counter_event.
19172
19173 2008-05-15  Diego Novillo  <dnovillo@google.com>
19174
19175         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
19176
19177         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
19178         * tree-ssa-alias.c (new_type_alias): Remove references to
19179         sub-variables from comment.
19180         * tree-ssa-operands.c (swap_tree_operands): Likewise.
19181
19182 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
19183
19184         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
19185         attribute to 1 only for insertps alternative.
19186
19187 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
19188
19189         * config/bfin/bfin.md (loadbytes): New pattern.
19190         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
19191         (bfin_init_builtins): Initialize it.
19192         (bdesc_1arg): Add it.
19193
19194 2008-05-15  Sa Liu  <saliu@de.ibm.com>
19195
19196         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
19197         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
19198         * testsuite/lib/target-supports.exp: Add
19199         check_effective_target_fortran_integer_16.
19200
19201 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
19202
19203         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
19204         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
19205         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
19206         (TARGET_RETURN_IN_MEMORY): Define.
19207
19208 2008-05-15  Richard Guenther  <rguenther@suse.de>
19209
19210         PR middle-end/36244
19211         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
19212         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
19213         represent unmodifiable vars.
19214
19215 2008-05-15  Richard Guenther  <rguenther@suse.de>
19216
19217         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
19218         INDIRECT_REF and TARGET_MEM_REF.
19219         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
19220         TARGET_MEM_REF.
19221
19222 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
19223             H.J. Lu  <hongjiu.lu@intel.com>
19224
19225         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
19226         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
19227         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
19228         insn alternatives.  Add missing alternatives.
19229         (*vec_concatv2di_rex64_sse4_1): Likewise.
19230         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
19231         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
19232         Require TARGET_SSE.
19233
19234 2008-05-15  Richard Guenther  <rguenther@suse.de>
19235
19236         PR tree-optimization/36009
19237         PR tree-optimization/36204
19238         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
19239         (determine_invariantness_stmt): Record the loop a store is
19240         always executed in.
19241         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
19242         dependency.
19243
19244 2008-05-15  Richard Guenther  <rguenther@suse.de>
19245
19246         PR tree-optimization/34330
19247         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
19248         through the pointer will alias the SMT.
19249
19250 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
19251
19252         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
19253
19254 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
19255
19256         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
19257
19258 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
19259             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
19260
19261         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
19262         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
19263         (vashl_optab): New optab for vector/vector shifts.
19264         (vashr_optab): Ditto.
19265         (vlshr_optab): Ditto.
19266         (vrotl_optab): Ditto.
19267         (vrotr_optab): Ditto.
19268         (optab_subtype): New enum for optab_for_tree_code call.
19269         (optab_for_tree_code): Add enum optab_subtype argument.
19270
19271         * optabs.c (optab_for_tree_code): Take an additional argument to
19272         distinguish between a vector shift by a scalar and vector shift by
19273         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
19274         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
19275         vector shift by a vector.
19276         (expand_widen_pattern_expr): Pass additional argument to
19277         optab_for_tree_code.
19278
19279         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
19280         vrotl_optab, vrotr_optab.
19281
19282         * expr.c (expand_expr_real_1): Update calls to
19283         optab_for_tree_code to distinguish between vector shifted by a
19284         scalar and vector shifted by a vector.
19285         * tree-vectorizer.c (supportable_widening_operation): Ditto.
19286         (supportable_narrowing_operation): Ditto.
19287         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
19288         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
19289         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
19290         (vect_create_epilog_for_reduction): Ditto.
19291         (vectorizable_reduction): Ditto.
19292         (vectorizable_operation): Ditto.
19293         (vect_strided_store_supported): Ditto.
19294         (vect_strided_load_supported): Ditto.
19295         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
19296         * expmed.c (expand_shift): Ditto.
19297
19298         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
19299         scalar type.
19300         (ashr@var{m}3): Ditto.
19301         (vashl@var{m}3): Document new vector/vector shift standard name.
19302         (vashr@var{m}3): Ditto.
19303         (vlshr@var{m}3): Ditto.
19304         (vrotl@var{m}3): Ditto.
19305         (vrotr@var{m}3): Ditto.
19306
19307         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
19308         (PPERM_INVERT): Ditto.
19309         (PPERM_REVERSE): Ditto.
19310         (PPERM_REV_INV): Ditto.
19311         (PPERM_ZERO): Ditto.
19312         (PPERM_ONES): Ditto.
19313         (PPERM_SIGN): Ditto.
19314         (PPERM_INV_SIGN): Ditto.
19315         (PPERM_SRC1): Ditto.
19316         (PPERM_SRC2): Ditto.
19317
19318         * config/i386/sse.md (mulv2di3): Add SSE5 support.
19319         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
19320         allows a memory operand to be the value being added, and split it
19321         to improve vectorization.
19322         (sse5_pmacsdqh_mem): Ditto.
19323         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
19324         (sse5_mulv2div2di3_high): Ditto.
19325         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
19326         (vec_pack_trunc_v4si): Ditto.
19327         (vec_pack_trunc_v2di): Ditto.
19328         (sse5_pcmov_<mode>): Remove code that tried to use use
19329         andps/andnps instead of pcmov.
19330         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
19331         pmacsdqh instructions.
19332         (vec_widen_smult_lo_v4si): Ditto.
19333
19334         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
19335         (PPERM_INVERT): Ditto.
19336         (PPERM_REVERSE): Ditto.
19337         (PPERM_REV_INV): Ditto.
19338         (PPERM_ZERO): Ditto.
19339         (PPERM_ONES): Ditto.
19340         (PPERM_SIGN): Ditto.
19341         (PPERM_INV_SIGN): Ditto.
19342         (PPERM_SRC1): Ditto.
19343         (PPERM_SRC2): Ditto.
19344         (ix86_expand_sse_movcc): Move the SSE5 test after the if
19345         true/false tests.
19346         (ix86_expand_int_vcond): If SSE5 generate all possible integer
19347         comparisons.
19348         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
19349         says ignore whether the last reference is a memory operand.
19350
19351 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
19352             Paolo Bonzini <bonzini at gnu dot org>
19353
19354         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
19355         shift patterns.
19356
19357         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
19358         (vlshr<mode>3): Rename from vlshr<mode>3.
19359         (vashr<mode>3): Rename from vashr<mode>3.
19360         (mulv4sf3): Change the names of vector shift patterns.
19361         (mulv4si3): Ditto.
19362         (negv4sf2): Ditt.
19363
19364         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
19365         shift insns.
19366
19367         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
19368         (SI_SHLHI): Ditto.
19369         (SI_SHL): Ditto.
19370         (SI_SHLI): Ditto.
19371         (SI_ROTH): Ditto.
19372         (SI_ROTHI): Ditto.
19373         (SI_ROT): Ditto.
19374         (SI_ROTI): Ditto.
19375         (SPU_RL_0): Ditto.
19376         (SPU_RL_1): Ditto.
19377         (SPU_RL_2): Ditto.
19378         (SPU_RL_3): Ditto.
19379         (SPU_RL_4): Ditto.
19380         (SPU_RL_5): Ditto.
19381         (SPU_RL_6): Ditto.
19382         (SPU_RL_7): Ditto.
19383         (SPU_SL_0): Ditto.
19384         (SPU_SL_1): Ditto.
19385         (SPU_SL_2): Ditto.
19386         (SPU_SL_3): Ditto.
19387         (SPU_SL_4): Ditto.
19388         (SPU_SL_5): Ditto.
19389         (SPU_SL_6): Ditto.
19390         (SPU_SL_7): Ditto.
19391
19392         * config/spu/spu.md (v): New iterator macro to add v for vector types.
19393         (floatunssidf2_internal): Change vector/vector shift names.
19394         (floatunsdidf2_internal): Ditto.
19395         (mulv8hi3): Ditto.
19396         (ashrdi3): Ditto.
19397         (ashrti3): Ditto.
19398         (cgt_df): Ditto.
19399         (cgt_v2df): Ditto.
19400         (dftsv): Ditto.
19401         (vashl<mode>3): Rename from ashl<mode>3.
19402         (vashr<mode>3): Rename from ashr<mode>3.
19403         (vlshr<mode>3): Rename from lshr<mode>3.
19404         (vrotl<mode>3): Rename from rotl<mode>3.
19405
19406 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
19407
19408         PR target/36224
19409         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
19410         multiply gives the wrong value when doing widening multiplies.
19411         (vec_widen_smult_lo_v4si): Ditto.
19412
19413 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
19414
19415         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
19416         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
19417         emit_library_call_value.
19418         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
19419         * tree.h (ECF_LIBCALL_BLOCK): Removed.
19420         * calls.c (initialize_argument_information, precompute_arguments,
19421         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
19422         (precompute_arguments): Removed flags parameter.
19423         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
19424
19425 2008-05-14  Richard Guenther  <rguenther@suse.de>
19426
19427         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
19428         Make sure to register the store if the use is a PHI_NODE.
19429
19430 2008-05-14  Olivier Hainque  <hainque@adacore.com>
19431
19432         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
19433         memory if the component is to be referenced in BLKmode according
19434         to get_inner_reference.
19435
19436 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
19437
19438         * calls.c (emit_library_call_value_1): Restore code clearing
19439         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
19440
19441 2008-05-14  Olivier Hainque  <hainque@adacore.com>
19442             Nicolas Roche  <roche@adacore.com>
19443
19444         * configure.ac: Add support for a "gcc_subdir" variable in
19445         config-lang.in, to denote a subdirectory where the language/GCC
19446         integration files are to be found.
19447         * configure: Regenerate.
19448
19449 2008-05-14  Ira Rosen  <irar@il.ibm.com>
19450
19451         PR tree-optimization/36098
19452         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
19453         value for the first load in the group in case of a gap.
19454         (vect_build_slp_tree): Check that there are no gaps in loads.
19455
19456 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
19457
19458         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
19459         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
19460         expand_copysign_bit): Change call to emit_no_conflict_block to
19461         emit_insn and remove unneeded code to construct extra args.
19462         (emit_no_conflict_block): Removed.
19463         * optabls.h (emit_no_conflict_block): Removed.
19464         * cse.c (cse_extended_basic_block): Remove search for
19465         REG_NO_CONFLICT note.
19466         * global.c: Removed incorrect comment added in revision 117.
19467         * expr.c (convert_move): Change call to emit_no_conflict_block to
19468         emit_insn.
19469         * recog.c: Change comments so that they do not mention
19470         REG_NO_CONFLICT.
19471         * local_alloc.c (combine_regs): Removed last parameter.
19472         (no_conflict_p): Removed.
19473         (block_alloc): Removed note, no_conflict_combined_regno and set
19474         local vars. Removed all code to process REG_NO_CONFLICT blocks.
19475         (combine_regs): Removed already_dead and code to look for
19476         REG_NO_CONFLICT notes.
19477         * lower_subreg (remove_retval_note): Removed code to look for
19478         REG_NO_CONFLICT block.
19479         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
19480         (resolve_clobber): Remove code to process libcalls that have
19481         REG_NO_CONFLICT notes.
19482         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
19483         case.
19484         * combine.c (can_combine_p, distribute_notes):  Removed
19485         REG_NO_CONFLICT case.
19486         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
19487         to emit_insns.
19488         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
19489         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
19490         Ditto.
19491         * reg-notes.def (NO_CONFLICT): Removed.
19492
19493 2008-05-14  David S. Miller  <davem@davemloft.net>
19494
19495         * config/sparc/sparc.c (sparc_profile_hook): If
19496         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
19497         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
19498         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
19499
19500 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
19501
19502         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
19503
19504 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
19505
19506         PR target/36222
19507         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
19508         and op1 expansion before vector concat to have less live pseudos.
19509
19510 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
19511
19512         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
19513         ix86_expand_vector_set if supported.
19514
19515 2008-05-13  Diego Novillo  <dnovillo@google.com>
19516             Kenneth Zadeck  <zadeck@naturalbridge.com>
19517
19518         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
19519
19520         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
19521         phinodes_print_statistics, init_ssanames, fini_ssanames,
19522         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
19523         release_ssa_name, release_defs, replace_ssa_name_symbol,
19524         ssanames_print_statistics): Move ...
19525         * tree-flow.h: ... here.
19526         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
19527         Use FN instead of cfun.
19528         (make_ssa_name_fn): Rename from make_ssa_name.
19529         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
19530         * tree-flow-inline.h (make_ssa_name): Move from
19531         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
19532         * omp-low.c (expand_omp_parallel):
19533         * tree-flow-inline.h (redirect_edge_var_map_result):
19534         * tree-ssa.c (init_tree_ssa): Add argument FN.
19535         Use it instead of cfun.  Update all users.
19536
19537 2008-05-13  Tom Tromey  <tromey@redhat.com>
19538
19539         PR preprocessor/22168:
19540         * doc/cpp.texi (Top): Update menu.
19541         (Alternatives to Wrapper #ifndef): New node.
19542         (Other Directives): Document deprecation.
19543         (Obsolete Features): Remove menu.
19544         (Assertions): Merge node into Obsolete Features.
19545         (Obsolete once-only headers): Move earlier; rename to Alternatives
19546         to Wrapper #ifndef.
19547         * doc/cppopts.texi: Update.
19548         * c.opt (Wdeprecated): Enable for C and ObjC.
19549         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
19550         (C++ Dialect Options): Move -Wno-deprecated from here to...
19551         (Warning Options): ... here.
19552
19553 2008-05-13  Richard Guenther  <rguenther@suse.de>
19554
19555         PR middle-end/36227
19556         * fold-const.c (fold_sign_changed_comparison): Do not allow
19557         changes in pointer-ness.
19558
19559 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
19560
19561         PR target/24713
19562         * config/sh/sh.c (sh_expand_prologue): Don't clear
19563         RTX_FRAME_RELATED_P for push insns.
19564
19565 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
19566
19567         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
19568
19569 2008-05-12  Anatoly Sokolov <aesok@post.ru>
19570
19571         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
19572         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
19573         Use 'machine->is_leaf' instead of 'leaf_func_p'.
19574
19575 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
19576
19577         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
19578         (*vec_concatv4sf_sse): This.
19579         (*sse2_concatv2si): Renamed to ...
19580         (*vec_concatv2si_sse2): This.
19581         (*sse1_concatv2si): Renamed to ...
19582         (*vec_concatv2si_sse): This.
19583         (*vec_concatv2di_rex): Renamed to ...
19584         (*vec_concatv2di_rex64): This.
19585         (*vec_concatv2si_sse4_1): New.
19586         (*vec_concatv2di_rex64_sse4_1): Likewise.
19587
19588 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
19589
19590         PR rtl-optimization/36111
19591         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
19592         that was created for swappable operands.
19593
19594 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
19595
19596         PR ada/36001
19597         * Makefile.in: Substitute GNATMAKE and GNATBIND.
19598         * configure.ac: Add call to ACX_PROG_GNAT.
19599
19600 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
19601
19602         * optc-gen.awk: Fix comment typo.
19603
19604 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19605
19606         * pretty-print.c (pp_integer_with_precision): Use
19607         HOST_LONG_LONG_FORMAT.
19608
19609 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
19610
19611         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
19612
19613 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
19614
19615         * config/i386/i386.c (bdesc_ptest): Removed.
19616         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
19617         (bdesc_args): Add __builtin_ia32_ptestz128,
19618         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
19619         (ix86_init_mmx_sse_builtins): Updated.
19620         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
19621         (ix86_expand_builtin): Updated.
19622
19623 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
19624
19625         * tree-cfg.c (valid_fixed_convert_types_p): New function.
19626         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
19627
19628 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
19629
19630         * value-prof.c (interesting_stringop_to_profile): Do not
19631         return early for BUILT_IN_MEMPCPY.
19632
19633 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
19634
19635         * calls.c (expand_call): Don't use callgraph to increase
19636         preferred_stack_boundary.
19637
19638         * cgraph.h (cgraph_rtl_info): Use unsigned on
19639         preferred_incoming_stack_boundary.
19640
19641         * final.c (rest_of_clean_state): Use unsigned on
19642         preferred_stack_boundary.
19643
19644 2008-05-09  Tom Tromey  <tromey@redhat.com>
19645
19646         PR preprocessor/22231:
19647         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
19648         proceeding.
19649
19650 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
19651
19652         PR tree-optimization/36129
19653         * tree-ssa-ccp.c: Include value-prof.h.
19654         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
19655         built-in function was folded to a constant.
19656         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
19657
19658 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
19659             Sebastian Pop  <sebastian.pop@amd.com>
19660
19661         * tree-scalar-evolution.c: Document instantiate_scev.
19662         (instantiate_parameters_1): Renamed instantiate_scev_1.
19663         Don't use the same loop for instantiation_loop and evolution_loop.
19664         (instantiate_scev): New.
19665         (instantiate_parameters): Moved...
19666         (resolve_mixers): Update call to instantiate_scev_1 to pass the
19667         same loop twice.  Maintains the semantics for this function.
19668         * tree-scalar-evolution.h (instantiate_scev): Declare.
19669         (instantiate_parameters): ...here.  Now static inline.
19670         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
19671         instead of resolve_mixers.
19672
19673 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
19674
19675         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
19676
19677 2008-05-09  Tomas Bily  <tbily@suse.cz>
19678
19679         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
19680         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
19681         * tree-ssa-structalias.c (get_constraint_for): Likewise.
19682         * c-common.c (c_common_truthvalue_conversion): Likewise.
19683         * tree-object-size.c (compute_object_offset): Likewise.
19684         * tree-inline.c (estimate_num_insns_1): Likewise.
19685         * varasm.c (const_hash_1, compare_constant, copy_constant)
19686         (compute_reloc_for_constant, output_addressed_constants)
19687         (initializer_constant_valid_p): Likewise.
19688         * c-omp.c (check_omp_for_incr_expr): Likewise.
19689         * gimplify.c (gimplify_expr): Likewise.
19690         * c-typeck.c (c_finish_return): Likewise.
19691         * tree-vectorizer.c (supportable_widening_operation)
19692         (supportable_narrowing_operation): Likewise.
19693         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
19694         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
19695         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
19696         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
19697         (descr_info_loc): Likewise.
19698         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19699         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
19700         (fold_unary): Likewise.
19701         * builtins.c (get_pointer_alignment): Likewise.
19702         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
19703         (instantiate_parameters_1): Likewise.
19704         * tree.c (expr_align, stabilize_reference): Likewise.
19705         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
19706         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19707         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
19708         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19709         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
19710         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
19711         Likewise.
19712         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
19713         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
19714         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
19715         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
19716         (forward_propagate_comparison)
19717         (tree_ssa_forward_propagate_single_use_vars): Likewise.
19718         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
19719         * emit-rtl.c (component_ref_for_mem_expr)
19720         (set_mem_attributes_minus_bitpos): Likewise.
19721         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
19722         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
19723         Likewise.
19724         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
19725         (build_function_call, pointer_diff, build_compound_expr)
19726         (c_finish_return): Likewise.
19727         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
19728         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
19729         Likewise.
19730         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
19731         * expr.c (is_aligning_offset): Likewise.
19732         * tree-ssa-alias.c (is_escape_site): Likewise.
19733         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
19734         (check_all_va_list_escapes): Likewise.
19735         * tree-ssa-loop-ivopts.c (determine_base_object)
19736         (determine_common_wider_type): Likewise.
19737         * dojump.c (do_jump): Likewise.
19738         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
19739         * tree-gimple.c (is_gimple_cast): Likewise.
19740         * fold-const.c (decode_field_reference)
19741         (fold_sign_changed_comparison, fold_unary, fold_comparison)
19742         (fold_binary): Likewise.
19743         * tree-ssa-alias-warnings.c (find_alias_site_helper)
19744         (already_warned_in_frontend_p): Likewise.
19745         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
19746         * tree.c (really_constant_p, get_unwidened): Likewise.
19747         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
19748         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
19749         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
19750         Likewise.
19751         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
19752         CONVERT_EXPR_P.
19753         (CONVERT_EXPR_P): Define.
19754         (CASE_CONVERT): Define.
19755
19756 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
19757
19758         PR middle-end/36117
19759         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
19760         (delete_unmarked_insns): When deleting a call, call
19761         delete_unreachable_blocks.
19762         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
19763         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
19764
19765 2008-05-08  Richard Guenther  <rguenther@suse.de>
19766
19767         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
19768         (-ftree-salias): Likewise.
19769         (salias-max-implicit-fields): Remove param documentation.
19770         (salias-max-array-elements): Likewise.
19771         * tree-pass.h (pass_create_structure_vars): Remove.
19772         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19773         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19774         * tree-ssa-alias.c (create_structure_vars): Remove.
19775         (gate_structure_vars): Likewise.
19776         (pass_create_structure_vars): Likewise.
19777         (gate_build_alias): Likewise.
19778         (pass_build_alias): Adjust to run always and dump the function.
19779         * common.opt (ftree-salias): Hide.
19780         * passes.c (init_optimization_passes): Remove
19781         pass_create_structure_vars, adjust comment.
19782         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19783         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19784         * opts.c (decode_options): Do not set flag_tree_salias.
19785         (common_handle_option): Add OPT_ftree_salias to the backward
19786         compatibility section.
19787
19788 2008-05-08  Richard Guenther  <rguenther@suse.de>
19789
19790         * tree-flow-inline.h (var_can_have_subvars): Move ...
19791         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
19792         * tree-flow.h (var_can_have_subvars): Remove.
19793         (push_fields_onto_fieldstack): Remove.
19794         (sort_fieldstack): Likewise.
19795         (struct fieldoff): Move ...
19796         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
19797         alias_set and base_for_components fields.
19798         (sort_fieldstack): Make static.
19799         (push_fields_onto_fieldstack): Likewise.  Remove code that
19800         handles anything but RECORD_TYPEs.  Remove alias_set and
19801         base_for_components handling.
19802         (create_variable_info_for): Adjust.
19803
19804 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
19805
19806         * common.opt (Wframe-larger-than=): Shorten the help message
19807         to one line.
19808         * doc/invoke.texi (Wframe-larger-than=): Add more description.
19809
19810 2008-05-08  Rafael Espíndola  <espindola@google.com>
19811
19812         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
19813         trap.
19814         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
19815         trap and that both operands are gimple values.
19816         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
19817         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
19818         is a fp operation.
19819
19820 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
19821
19822         * read-rtl.c (join_c_conditions): Return the first string if the
19823         two strings are equal.
19824
19825 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
19826
19827         * gensupport.h (pred_data): Add a "num_codes" field.
19828         (add_predicate_code): Declare.
19829         * gensupport.c (add_predicate_code): New function.
19830         (std_pred_table): Add an "allows_const_p" field.
19831         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
19832         Remove the (incomplete) list of such codes from the codes field.
19833         (init_predicate_table): Use add_predicate_code.  Add all
19834         RTX_CONST_OBJs if allows_const_p is true.
19835         * genrecog.c (process_define_predicate): Use add_predicate_code.
19836
19837 2008-05-08  David Daney  <ddaney@avtrex.com>
19838             Richard Sandiford  <rsandifo@nildram.co.uk>
19839
19840         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
19841         special case of constant zero operands.
19842         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
19843         old and new values.  Special case constant zero values.
19844         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
19845         fails.
19846         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
19847         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
19848
19849 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
19850
19851         PR target/36090
19852         * simplify-rtx.c (simplify_plus_minus): Create CONST of
19853         similar RTX_CONST_OBJ before CONST_INT.
19854
19855 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
19856
19857         * stmt.c (expand_stack_restore): Change sa mode if needed.
19858
19859 2008-05-08  Richard Guenther  <rguenther@suse.de>
19860
19861         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
19862         return type to bool.
19863         (ix86_sol10_return_in_memory): Likewise.
19864         (ix86_i386elf_return_in_memory): Likewise.
19865         (ix86_i386interix_return_in_memory): Likewise.
19866         * config/i386/i386.c (ix86_return_in_memory): Likewise.
19867         (ix86_sol10_return_in_memory): Likewise.
19868         (ix86_i386elf_return_in_memory): Likewise.
19869         (ix86_i386interix_return_in_memory): Likewise.
19870
19871 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
19872
19873         PR bootstrap/36180
19874         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
19875         fndecl argument.
19876         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
19877         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
19878         declared in front.
19879
19880 2008-05-08  Richard Guenther  <rguenther@suse.de>
19881
19882         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
19883         * tree-data-ref.h (struct dr_alias): Remove subvars field.
19884         (DR_SUBVARS): Remove.
19885         * tree-dfa.c (dump_subvars_for): Remove.
19886         (debug_subvars_for): Likewise.
19887         (dump_variable): Do not dump subvars.
19888         (remove_referenced_var): Do not remove subvars.
19889         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
19890         (lookup_subvars_for_var): Remove.
19891         (get_subvars_for_var): Likewise.
19892         (get_subvars_at): Likewise.
19893         (get_first_overlapping_subvar): Likewise.
19894         (overlap_subvar): Likewise.
19895         * tree-flow.h (subvar_t): Remove.
19896         (struct var_ann_d): Remove subvars field.
19897         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
19898         argument.  Remove special handling of SFTs.
19899         (compute_tag_properties): Likewise.
19900         (set_initial_properties): Likewise.
19901         (compute_call_clobbered): Likewise.
19902         (count_mem_refs): Likewise.
19903         (compute_memory_partitions): Likewise.
19904         (compute_flow_insensitive_aliasing): Likewise.
19905         (setup_pointers_and_addressables): Likewise.
19906         (new_type_alias): Likewise.
19907         (struct used_part): Remove.
19908         (used_portions): Likewise.
19909         (struct used_part_map): Likewise.
19910         (used_part_map_eq): Likewise.
19911         (used_part_map_hash): Likewise.
19912         (free_used_part_map): Likewise.
19913         (up_lookup): Likewise.
19914         (up_insert): Likewise.
19915         (get_or_create_used_part_for): Likewise.
19916         (create_sft): Likewise.
19917         (create_overlap_variables_for): Likewise.
19918         (find_used_portions): Likewise.
19919         (create_structure_vars): Likewise.
19920         * tree.def (STRUCT_FIELD_TAG): Remove.
19921         * tree.h (MTAG_P): Adjust.
19922         (struct tree_memory_tag): Remove base_for_components and
19923         unpartitionable flags.
19924         (struct tree_struct_field_tag): Remove.
19925         (SFT_PARENT_VAR): Likewise.
19926         (SFT_OFFSET): Likewise.
19927         (SFT_SIZE): Likewise.
19928         (SFT_NONADDRESSABLE_P): Likewise.
19929         (SFT_ALIAS_SET): Likewise.
19930         (SFT_UNPARTITIONABLE_P): Likewise.
19931         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
19932         (union tree_node): Remove sft field.
19933         * alias.c (get_alias_set): Remove special handling of SFTs.
19934         * print-tree.c (print_node): Remove handling of SFTs.
19935         * tree-dump.c (dequeue_and_dump): Likewise.
19936         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
19937         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
19938         * tree-predcom.c (set_alias_info): Do not set subvars.
19939         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
19940         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
19941         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
19942         (add_vars_for_offset): Remove.
19943         (add_virtual_operand): Remove special handling of SFTs.
19944         (add_call_clobber_ops): Likewise.
19945         (add_call_read_ops): Likewise.
19946         (get_asm_expr_operands): Likewise.
19947         (get_modify_stmt_operands): Likewise.
19948         (get_expr_operands): Likewise.
19949         (add_to_addressable_set): Likewise.
19950         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
19951         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
19952         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
19953         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
19954         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
19955         (tree_node_structure): Likewise.
19956         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
19957         handling of SFTs.
19958         (find_what_p_points_to): Likewise.
19959
19960 2008-05-08  Sa Liu  <saliu@de.ibm.com>
19961
19962         * config/spu/spu.md: Fixed subti3 pattern.
19963
19964 2008-05-08  Richard Guenther  <rguenther@suse.de>
19965
19966         PR middle-end/36154
19967         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
19968         sure to create a representative for trailing arrays for PTA.
19969
19970 2008-05-08  Richard Guenther  <rguenther@suse.de>
19971
19972         PR middle-end/36172
19973         * fold-const.c (operand_equal_p): Two objects which types
19974         differ in pointerness are not equal.
19975
19976 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
19977
19978         * calls.c (compute_argument_block_size): Add argument tree fndecl.
19979         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
19980         (emit_library_call_value_1): Add new variable fndecl initialized by
19981         NULL_TREE. It should be the decl type of orgfun, but this information
19982         seems not to be available here, so it uses the default calling abi.
19983         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
19984         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
19985         by TARGET_RETURN_IN_MEMORY.
19986         * config/i386/i386-interix.h: Likewise.
19987         * config/i386/i386.h: Likewise.
19988         * config/i386/i386elf.h: Likewise.
19989         * config/i386/ptx4-i.h: Likewise.
19990         * config/i386/sol2-10.h: Likewise.
19991         * config/i386/sysv4.h: Likewise.
19992         * config/i386/vx-common.h: Likewise.
19993         * config/cris/cris.h: Removed #if 0 clause.
19994         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
19995         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
19996         argument.
19997         (ix86_sol10_return_in_memory): Likewise.
19998         (ix86_i386elf_return_in_memory): New.
19999         (ix86_i386interix_return_in_memory): New.
20000         * config/mt/mt-protos.h (mt_return_in_memory): New.
20001         * config/mt/mt.c: Likewise.
20002         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
20003         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
20004         * config/bfin/bfin.h: Likewise.
20005         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
20006         argument.
20007         * config/bfin/bfin.c: Likewise.
20008         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
20009         * config/alpha/unicosmk.h: Likewise.
20010         * config/i386/cygming.h: Likewise.
20011         * config/iq2000/iq2000.h: Likewise.
20012         * config/mips/mips.h: Likewise.
20013         * config/mn10300/mn10300.h: Likewise.
20014         * config/rs6000/rs6000.h: Likewise.
20015         * config/score/score.h: Likewise.
20016         * config/spu/spu.h: Likewise.
20017         * config/v850/v850.h: Likewise.
20018         * defaults.h: Likewise.
20019         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
20020         * expr.c (emit_block_move): Adjust use of
20021         OUTGOING_REG_PARM_STACK_SPACE.
20022         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
20023         OUTGOING_REG_PARM_STACK_SPACE.
20024         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
20025
20026 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
20027
20028         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
20029         on OMP_RETURN for OMP_FOR.
20030
20031         PR debug/35896
20032         * dwarf2out.c (dw_expand_expr, common_check): Removed.
20033         (fortran_common): New function.
20034         (gen_variable_die): Call fortran_common instead of common_check,
20035         adjust for it returning tree instead of rtx.  Formatting.
20036
20037 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
20038
20039         PR rtl/7335
20040         PR rtl/33826
20041         * see.c (see_copy_insn): Copy new pure const attributes for new call.
20042         * c-decl.c (merge_decls): Ditto.
20043         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
20044         to RTL_CONST_OR_PURE_CALL_P.
20045         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
20046         Initialized DECL_LOOPING_CONST_PURE.
20047         (process_call_operands): Set tree_side_effects properly.
20048         * tree.h (TREE_READONLY_DECL_P): Removed.
20049         (DECL_IS_PURE): Renamed to DECL_PURE_P.
20050         (DECL_LOOPING_OR_CONST_P): New macro.
20051         (struct tree_function_decl): Added looping_const_or_pure_p.
20052         (ECF_*) Renumbered.
20053         (ECF_LOOPING_OR_CONST_P): New macro.
20054         * rtlanal.c (pure_const_p): Removed.
20055         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
20056         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
20057         to RTL_CONST_CALL_P.
20058         * ipa-pure-const.c (pure_const_state_e): Added looping field.
20059         (check_decl, check_tree, check_call, scan_function): Initialize
20060         looping.
20061         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
20062         (static_execute): Set looping true for recursive functions.
20063         Undo setting state to IPA_NEITHER for recursive functions.
20064         * cse.c (cse_insn):
20065         * ifcvt.c (noce_can_store_speculate_p): Changed
20066         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
20067         RTL_CONST_OR_PURE_CALL_P.
20068         * dse.c (scan_insn): Ditto.
20069         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
20070         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
20071         RTL_CONST_OR_PURE_CALL_P.
20072         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
20073         pure_call_p to RTL_CONST_CALL_P.
20074         * gimplify.c (gimplify_call_expr): Clear side effects for
20075         non-looping pure and constant calls.
20076         * calls.c (emit_call_1): Set rtl flags from ecf flags.
20077         (flags_from_decl_or_type): Set ecf flags from decl flags.
20078         (initialize_argument_information): Turn off
20079         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
20080         Change const to pure if callee_copies is true rather than just
20081         turning off const.
20082         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
20083         way of marking pure calls.
20084         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
20085         Remove hack that was supposed to fix pr7335 and remove old
20086         way of marking pure calls.
20087         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
20088         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
20089         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
20090         RTL_CONST_OR_PURE_CALL_P.
20091         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
20092         * loop-invariant.c (find_exits, find_invariant_bb): Changed
20093         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
20094         * sched-deps.c (schedule_analyze): Ditto.
20095         * rtl.h (struct rtx_def): Use call field, unchanging field, and
20096         return_val field of calls to represent pure and const function info.
20097         (CONST_OR_PURE_CALL_P): Deleted macro.
20098         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
20099         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
20100         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
20101         TREE_READONLY.
20102         * tree-optimize.c (execute_fixup_cfg): Added test for
20103         ECF_LOOPING_CONST_OR_PURE.
20104         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
20105         DECL_PURE_P.
20106         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
20107         effects for looping pure or const calls.
20108         (verify_gimple_expr): Added verification code.
20109         * config/alpha/alpha.c (alpha_legitimize_address,
20110         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
20111         RTL_CONST_CALL_P.
20112         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
20113         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
20114         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
20115         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
20116         RTL_CONST_OR_PURE_CALL_P.
20117         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
20118         and const calls to be deleted.
20119
20120 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
20121
20122         PR target/35714
20123         * config/i386/mmx.md (mmx_subv2sf3): New expander.
20124         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
20125         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
20126         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20127         to handle nonimmediate operands.
20128         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
20129         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
20130         to handle nonimmediate operands.
20131         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
20132         (mmx_pmulhrwv4hi3): New expander.  Use
20133         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20134         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
20135         (sse2_umulv1siv1di3): New expander.  Use
20136         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20137         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
20138         (mmx_eq<mode>3): New expander.  Use
20139         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20140         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
20141         (mmx_uavgv8qi3): New expander.  Use
20142         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20143         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
20144         (mmx_uavgv4hi3): New expander.  Use
20145         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20146
20147         * config/i386/sse.md
20148         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
20149         to handle nonimmediate operands.
20150         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
20151         to handle nonimmediate operands.
20152         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
20153         to handle nonimmediate operands.
20154         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
20155         to handle nonimmediate operands.
20156         (sse2_unpckhpd_exp): New expander.  Use
20157         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20158         (sse2_unpcklpd_exp): New expander.  Use
20159         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20160         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
20161         to handle nonimmediate operands.
20162         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
20163         to handle nonimmediate operands.
20164         (*sse2_<plusminus_insn><mode>3): Rename from
20165         sse2_<plusminus_insn><mode>3 insn pattern.
20166         (sse2_<plusminus_insn><mode>3): New expander.  Use
20167         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20168         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
20169         (sse2_umulv2siv2di3): New expander.  Use
20170         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20171         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
20172         (sse4_1_mulv2siv2di3): New expander.  Use
20173         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20174         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
20175         (sse2_pmaddwd): New expander.  Use
20176         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20177         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
20178         (sse2_eq<mode>3): New expander.  Use
20179         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20180         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
20181         (sse4_1_eqv2di3): New expander.  Use
20182         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20183         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
20184         (sse2_uavgv16qi3): New expander.  Use
20185         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20186         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
20187         (sse2_uavgv16qi3): New expander.  Use
20188         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20189         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
20190         (sse2_uavgv8hi3): New expander.  Use
20191         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20192         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
20193         (ssse3_pmulhrswv8hi3): New expander.  Use
20194         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20195         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
20196         (ssse3_pmulhrswv4hi3): New expander.  Use
20197         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20198
20199         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
20200         (<sse>_vmmul<mode>3): Ditto.
20201         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
20202         (divv2df3): Ditto.
20203         (ssse3_pmaddubsw128): Use register_operand for operand 1.
20204         (ssse3_pmaddubsw): Ditto.
20205
20206         * config/i386/i386.c (struct_builtin_description)
20207         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
20208         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
20209         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
20210         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
20211         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
20212         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
20213         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
20214         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
20215         (ix86_fixup_binary_operands): Assert that src1
20216         and src2 must have the same mode when swapped.
20217         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
20218         and ix86_binary_operator_ok.  Do not force operands in registers
20219         when optimizing.
20220
20221 2008-05-07  Jan Hubicka  <jh@suse.cz>
20222
20223         * cgraph.c (dump_cgraph_node): Update.
20224         * cgraph.h (cgraph_local_info): Break out inline summary.
20225         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
20226         hook.
20227         * ipa-inline (inline_summary): New accestor function.
20228         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
20229         cgraph_decide_inlining, compute_inline_parameters): Update.
20230         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
20231
20232 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
20233
20234         Cleanup ColdFire scheduling support and add V4 pipeline model.
20235
20236         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
20237         (define_attr cpu): Add cfv4 value.
20238         (define_attr type, define_attr type1): Merge into a single 'type'
20239         attribute.  Update all uses.
20240         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
20241         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
20242         Update all uses.
20243         (define_attr opx_mem, define_attr opy_mem): Remove.
20244         (define_attr op_mem): Clean up, update comment.
20245         (define_attr size): Use specific values instead of general int.
20246         (define_attr guess, define_attr split): Remove.  Update all uses.
20247         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
20248         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
20249         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
20250         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
20251         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
20252         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
20253         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
20254         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
20255         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
20256         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
20257         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
20258         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
20259         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
20260         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
20261         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
20262         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
20263         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
20264         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
20265         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
20266         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
20267         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
20268         Update or set attributes.
20269         (stack_tie): New fake instruction.
20270
20271         * config/m68k/m68k.h (TUNE_CFV4): New macro.
20272         (m68k_sched_attr_size): Update declaration.
20273         (m68k_sched_attr_type2): Remove.
20274         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
20275         Declare new bypass predicates.
20276
20277         * config/m68k/m68k.c (m68k_sched_issue_rate,
20278         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
20279         implementations.
20280         (TARGET_SCHED_ISSUE_RATE,
20281         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
20282         (override_options): Handle scheduling for ColdFire V4 core.
20283         (m68k_expand_prologue): Emit stack_tie.
20284         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
20285         'OP_TYPE_FPN'.  Update all uses.
20286         (sched_guess_p): Remove.
20287         (sched_address_type): Handle symbolic addresses.
20288         (sched_get_operand): New static function.
20289         (sched_operand_type): Merge into sched_attr_op_type.
20290         (sched_attr_op_type): Handle FP registers, handle quick constants,
20291         update.
20292         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
20293         (m68k_sched_attr_size): Update.  Move logic to ...
20294         (sched_get_attr_size_int): New static function.
20295         (sched_get_opxy_mem_type): New static function.
20296         (m68k_sched_attr_op_mem): Update.
20297         (m68k_sched_attr_type2): Remove.
20298         (sched_cfv4_bypass_data): New static variable.
20299         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
20300         (m68k_sched_issue_rate): Implement scheduler hook.
20301         (struct _sched_ib: enabled_p): New field.
20302         (m68k_sched_variable_issue): Update.  Handle V4.
20303         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
20304         sched_dump_class_func_t, sched_dump_split_class,
20305         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
20306         sched_dump_dfa_class, m68k_sched_dump): Remove.
20307         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
20308         hook.
20309         (m68k_sched_init_global): Remove statisctics dumping, introduce
20310         sanity check that all instructions have pipeline reservations.  Handle
20311         ColdFire V4 core.
20312         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
20313         Handle ColdFire V4 core.
20314         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
20315         New static functions.
20316         (m68k_sched_address_bypass_p): New bypass predicate.
20317         (sched_get_indexed_address_scale): New static function.
20318         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
20319
20320         * cf.md: Update comments.
20321         (define_attr type2): Remove.  Use 'type' attribute instead.
20322         Update all uses.
20323         (cf_ib): Rename to cfv123_ib.  Update all uses.
20324         (cf_oep): Rename to cfv123_oep.  Update all uses.
20325         (cf_chr): Rename to cfv123_chr.  Update all uses.
20326         (cf_mem): Rename to cfv123_mem.  Update all uses.
20327         (cf_mac): Move to more appropriate place.
20328         (cfv123_guess): New automaton and cpu_unit.
20329         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
20330         Update uses of 'size' attribute.  Handle before reload scheduling.
20331         (cfv123_guess): New dummy reservation for unhandled instructions.
20332         (cfv4_*): Pipeline description of ColdFire V4 core.
20333         (ignore): New reservation to handle 'ignore' type.
20334
20335 2008-05-07  Ian Lance Taylor  <iant@google.com>
20336
20337         PR middle-end/36013
20338         * gimplify.c (find_single_pointer_decl_1): Don't look through
20339         indirections.
20340         (find_single_pointer_decl): Adjust comments.
20341
20342 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
20343
20344         PR middle-end/36137
20345         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
20346         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
20347
20348         PR middle-end/36106
20349         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
20350         integral type rather than floating point, then VIEW_CONVERT_EXPR
20351         to the floating point type.
20352
20353 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
20354
20355         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
20356         TFmode op0 to register.
20357
20358 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
20359
20360         * c-decl.c (grokdeclarator): Comment typo.
20361
20362 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
20363
20364         * tree-flow.h: Remove prototype for computed_goto_p.
20365         * tree-cfg.c (computed_goto_p): Make static.
20366
20367 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
20368
20369         PR target/35657
20370         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
20371         (contains_aligned_value_p): This.  Handle _Decimal128.
20372         (ix86_function_arg_boundary): Only align _Decimal128 to its
20373         natural boundary and handle it properly.
20374
20375 2008-05-06  Martin Jambor  <mjambor@suse.cz>
20376
20377         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
20378         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
20379         (ipcp_method_set_orig_node): Removed.
20380         (ipcp_cval_get_cvalue_type): Removed.
20381         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
20382         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
20383         (ipcp_cval_set_cvalue_type): Removed.
20384         (ipcp_cval_get_cvalue): Removed.
20385         (ipcp_cval_set_cvalue): Removed.
20386         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
20387         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
20388         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
20389         (ipcp_cval_meet): Renamed to ipa_lattice_meet
20390         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
20391         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
20392         (ipcp_get_ith_lattice): Changed parameters.
20393         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
20394         (ipcp_lattice_from_jfunc): Changed parameters.
20395         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
20396         (ipcp_method_cval_print): Added temporary variable info.
20397         (ipcp_redirect): Removed already unused local variable caller.
20398         (ipcp_redirect): New temporary variable orig_callee_info
20399         (ipcp_redirect): Removed newly unused local variable callee.
20400         (ipcp_redirect): Removed (a bit confusing) local variable type.
20401         (ipcp_insert_stage): Added local variable info.
20402         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
20403         renamed too
20404         (ipcp_formal_create): Removed.
20405         (ipcp_method_cval_set): Removed.
20406         (ipcp_propagate_stage): Renamed lattice variables.
20407         (ipcp_method_cval_set_cvalue_type): Removed.
20408         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
20409         (ipcp_print_all_lattices): Changed printed strings to refer to
20410         lattices rather than cvals.
20411         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
20412         (ipcp_propagate_const): Changed formal parameters.
20413         (build_const_val): Changed formal parameters.
20414         (ipcp_insert_stage): Removed useless variable cvalue
20415         (build_const_val): Changed formal parameters.
20416         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
20417         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
20418         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
20419         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
20420         (ipcp_print_func_profile_counts): Changed string from "method" to
20421         "function"
20422         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
20423         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
20424         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
20425         (ipcp_structures_print): Renamed to ipcp_print_all_structures
20426         (ipcp_profile_print): Renamed to ipcp_print_profile_data
20427         (ipcp_lat_is_const): Changed parameters and made inline.
20428         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
20429         (ipcp_redirect): Renamed to ipcp_need_redirect_p
20430         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
20431         the predicate condition directly
20432         (ipcp_propagate_stage): Added local variable args. Removed local
20433         variable callee.  (Both are mere code simplifications.)
20434         (ipcp_method_dont_insert_const): Renamed to
20435         ipcp_node_not_modifiable_p.
20436         (ipcp_node_not_modifiable_p): Made inline.
20437         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
20438         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
20439         (ipcp_print_all_lattices): Removed variable cvalue
20440         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
20441         Updated comments.
20442
20443 2008-05-06  Olivier Hainque  <hainque@adacore.com>
20444
20445         * tree-sra.c (try_instantiate_multiple_fields): Early return
20446         if field has POINTER_TYPE.
20447
20448 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
20449
20450         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
20451         by using 'q' specifier for instruction.
20452         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
20453
20454 2008-05-06  Anatoly Sokolov <aesok@post.ru>
20455
20456         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
20457         Change mode of zero_extract from QImode to HImode.
20458         (sign bit tests peepholes): (Ditto.).
20459
20460 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
20461
20462         * config/i386/mmx.md: Remove double backslashes from asm templates.
20463         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
20464         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20465         to handle nonimmediate operands.
20466         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
20467         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20468         to handle nonimmediate operands.
20469         (*mmx_<code>v2sf3_finite): New insn pattern.
20470         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
20471         (mmx_<code>v2sf3): New expander.  Use
20472         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20473         (mmx_<plusminus_insn><mode>3): New expander.  Use
20474         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20475         (*mmx_<plusminus_insn><mode>3): New insn pattern.
20476         (mmx_add<mode>3): Removed.
20477         (mmx_ssadd<mode>3): Ditto.
20478         (mmx_usadd<mode>3): Ditto.
20479         (mmx_sub<mode>3): Ditto.
20480         (mmx_sssub<mode>3): Ditto.
20481         (mmx_ussub<mode>3): Ditto.
20482         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
20483         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
20484         to handle nonimmediate operands.
20485         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
20486         insn pattern.
20487         (mmx_smulv4hi3_highpart): New expander.  Use
20488         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20489         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
20490         insn pattern.
20491         (mmx_umulv4hi3_highpart): New expander.  Use
20492         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20493         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
20494         (mmx_<code>v4hi3): New expander.  Use
20495         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20496         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
20497         (mmx_<code>v8qi3): New expander.  Use
20498         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20499         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
20500         (mmx_<code><mode>3): New expander.  Use
20501         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20502
20503 2008-05-05  Jan Hubicka  <jh@suse.cz>
20504
20505         PR tree-optimization/36118
20506         * passes.c (pass_init_dump_file): Fix dump header.
20507
20508 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20509
20510         PR middle-end/36141
20511         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
20512         VCE for function decls.
20513
20514 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
20515
20516         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
20517
20518 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
20519
20520         * config/i386/i386.md (sat_plusminus): New.
20521         (plusminus_insn): Likewise.
20522         (plusminus_mnemonic): Likewise.
20523         (addsub): Removed.
20524         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
20525         (*<addsub><mode>3_cc_overflow): Renamed to ...
20526         (*<plusminus_insn><mode>3_cc_overflow): This.
20527         (*<addsub>si3_zext_cc_overflow): Renamed to ...
20528         (*<plusminus_insn>si3_zext_cc_overflow): This.
20529
20530         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
20531         (<plusminus_insn><mode>3): This.
20532         (*<addsub><mode>3): Renamed to ...
20533         (*<plusminus_insn><mode>3): This.
20534         (<sse>_vm<addsub><mode>3): Renamed to ...
20535         (<sse>_vm<plusminus_insn><mode>3): This.
20536         (sse3_h<addsub>v4sf3): Renamed to ...
20537         (sse3_h<plusminus_insn>v4sf3): This.
20538         (sse3_h<addsub>v2df3): Renamed to ...
20539         (sse3_h<plusminus_insn>v2df3): This.
20540         (<plusminus_insn><mode>3): New.
20541         (*<plusminus_insn><mode>3): Likewise.
20542         (sse2_<plusminus_insn><mode>3): Likewise.
20543         (add<mode>): Removed.
20544         (*add<mode>3): Likewise.
20545         (sse2_ssadd<mode>3): Likewise.
20546         (sse2_usadd<mode>3): Likewise.
20547         (sub<mode>3): Likewise.
20548         (*sub<mode>3): Likewise.
20549         (sse2_sssub<mode>3): Likewise.
20550         (sse2_ussub<mode>3): Likewise.
20551
20552 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
20553
20554         * gthr-single.h: Add in required interface elements as per gthr.h.
20555         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
20556         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
20557         Generalize UNUSED macro.
20558         (__gthread_once): Add.
20559         (__gthread_key_create): Add.
20560         (__gthread_key_delete): Add.
20561         (__gthread_getspecific): Add.
20562         (__gthread_setspecific): Add.
20563
20564 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
20565
20566         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
20567         the same size types for the indirect reference on the rhs, then
20568         create a VCE.
20569
20570 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
20571
20572         * config/i386/i386.md
20573         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
20574         one insn template instead of template series.
20575         (*xordi_1_rex64): Ditto.
20576         (*xordi_2_rex64): Ditto.
20577
20578 2008-05-05  Ira Rosen  <irar@il.ibm.com>
20579
20580         PR tree-optimization/36119
20581         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
20582         in case of SLP.
20583
20584 2008-06-04  Jan Hubicka  <jh@suse.cz>
20585
20586         tree-optimization/36100
20587         * tree-pass.h (pass_O0_always_inline): Declare.
20588         * ipa-inline.c (inline_transform): Remove dead code.
20589         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
20590         pass_O0_always_inline): New.
20591         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
20592
20593 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
20594
20595         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
20596         mnemonic in this_param move for TARGET_64BIT.
20597
20598 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
20599
20600         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
20601         (*strmovsi_rex_1): Ditto.
20602         (*strsetsi_1): Ditto.
20603         (*strsetsi_rex_1): Ditto.
20604
20605         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
20606         adddicc expanders using SWI mode iterator.
20607
20608 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20609
20610         PR target/36121
20611         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
20612         argument handling.
20613
20614 2008-05-04  David S. Miller  <davem@davemloft.net>
20615
20616         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
20617         (sparc*-*-linux*): Use linux.h in tm_file.
20618         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
20619         compiler defaulting to 32-bit.
20620         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
20621         no longer needed.
20622         * config/sparc/linux.h: Remove definitions now obtained
20623         properly from linux.h
20624         * config/sparc/linux64.h: Likewise.
20625         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
20626         don't want this setting for 32-bit builds in a biarch compiler.
20627         * doc/install.texi: Add sparc-linux to list of targets
20628         supporting --enable-targets=all.
20629
20630 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
20631
20632         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
20633
20634 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
20635
20636         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
20637         after V4SI_FTYPE_V8HI.
20638         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
20639         case V4SI_FTYPE_V2DF.
20640
20641 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
20642
20643         * doc/invoke.texi (max-flow-memory-locations): Removed.
20644         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
20645
20646 2008-05-03  Richard Guenther  <rguenther@suse.de>
20647
20648         PR middle-end/34973
20649         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
20650
20651 2008-05-02  David S. Miller  <davem@davemloft.net>
20652
20653         * config.gcc (need_64bit_hwint): Document libcpp dependency.
20654
20655 2008-05-02  Simon Baldwin <simonb@google.com>
20656
20657         PR bootstrap/36108
20658         * c-common.h (warn_array_subscript_range): Removed.
20659         * c-common.c (warn_array_subscript_range): Ditto.
20660         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
20661         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
20662
20663 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
20664
20665         * config/i386/i386.c (ix86_special_builtin_type): New.
20666         (bdesc_special_args): Likewise.
20667         (ix86_expand_special_args_builtin): Likewise.
20668         (ix86_init_mmx_sse_builtins): Updated.
20669         (ix86_expand_builtin): Updated.
20670         (ix86_expand_store_builtin): Removed.
20671         (ix86_expand_unop_builtin): Likewise.
20672
20673         * config/i386/mm3dnow.h (__v2sf): Moved to ...
20674         * config/i386/mmintrin.h (__v2sf): Here.
20675
20676         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
20677         const __v2sf.
20678         (_mm_loadl_pi): Likewise.
20679         (_mm_storeh_pi): Replace __v2si with __v2sf.
20680         (_mm_storel_pi): Likewise.
20681
20682         * doc/extend.texi: Correct __builtin_ia32_loadhps,
20683         __builtin_ia32_loadlps, __builtin_ia32_storehps,
20684         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
20685         __builtin_ia32_loadlpd.
20686
20687 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
20688
20689         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
20690         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
20691         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
20692         (ix86_init_mmx_sse_builtins): Updated.
20693         (ix86_expand_args_builtin): Likewise.
20694         (ix86_expand_builtin): Likewise.
20695         (ix86_expand_unop1_builtin): Renamed to ...
20696         (ix86_expand_unop_vec_merge_builtin): This.
20697
20698 2008-05-01  Jan Hubicka  <jh@suse.cz>
20699
20700         PR bootstrap/36100
20701         * ipa-inline.c (inline_generate_summary): Make static.
20702         (inline_transform): Do not call inlining at -O0; make static.
20703         * passes.c (execute_todo): Add sanity check.
20704         (execute_one_ipa_transform_pass): Execute proper flags.
20705
20706 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
20707
20708         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
20709         (DECL_NONADDRESSABLE_P): Likewise.
20710         * alias.c (record_component_aliases): Fix comment.
20711
20712 2008-05-01  Simon Baldwin <simonb@google.com>
20713
20714         * c-common.h (warn_array_subscript_range): New function.
20715         * c-common.c (warn_array_subscript_range): Ditto.
20716         * tree-vrp.c (check_array_ref): Corrected code to agree with
20717         comment, ignoring only arrays of size 0 or size 1.
20718         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
20719
20720 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20721
20722         * config/i386/i386.c (ix86_builtin_type): Replace
20723         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
20724         (bdesc_args): Updated.
20725         (ix86_init_mmx_sse_builtins): Likewise.
20726         (ix86_expand_args_builtin): Likewise.
20727
20728         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
20729         with __v1di.
20730
20731         * doc/extend.texi: Correct __builtin_ia32_palignr.
20732
20733 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20734
20735         PR target/36095
20736         * config/i386/i386.c (bdesc_crc32): Removed.
20737         (ix86_expand_crc32): Likewise.
20738         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
20739         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
20740         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
20741         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
20742         UINT_FTYPE_UINT_UCHAR.
20743         (bdesc_args): Updated. Add crc32 builtins.
20744         (ix86_init_mmx_sse_builtins): Updated.
20745         (ix86_expand_args_builtin): Updated to support subreg.
20746
20747         * doc/extend.texi: Correct __builtin_ia32_crc32di.
20748
20749 2008-05-01  Jan Hubicka  <jh@suse.cz>
20750
20751         * tree-pass.h (opt_pass): Add IPA_PASS.
20752         (varpool_node, cgraph_node): Forward declare.
20753         (ipa_opt_pass): Define.
20754         (pass_ipa_inline): Turn into ipa_opt_pass.
20755         (pass_apply_inline): Remove.
20756         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
20757         (apply_inline): Turn into ....
20758         (inline_transform): ... this one.
20759         (inline_generate_summary): New function.
20760         (pass_apply_inline): Remove.
20761         * function.h (ipa_opt_pass): Forward declare structure; typedef;
20762         vector.
20763         (struct function): Add ipa_transforms_to_apply.
20764         * passes.c (register_one_dump_file): Work on IPA_PASS.
20765         (init_optimization_passes): Remove pass_inline_parameters and
20766         pass_apply_inline.
20767         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
20768         (execute_one_pass) ... here; apply transforms when possible.
20769         (add_ipa_transform_pass, execute_ipa_summary_asses,
20770         execute_one_ipa_transform_pass): New.
20771         (execute_ipa_pass_list): Update for IPA_PASS type.
20772
20773 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20774
20775         * config/i386/i386.c (ix86_builtin_type): Add
20776         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
20777         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
20778         (bdesc_args): Add SSE4a builtins.
20779         (ix86_init_mmx_sse_builtins): Updated.
20780         (ix86_expand_args_builtin): Likewise.
20781         (ix86_expand_builtin): Likewise.
20782
20783 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20784
20785         * config/i386/i386.c (ix86_builtin_type): Add
20786         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
20787         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
20788         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
20789         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
20790         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
20791         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
20792         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
20793         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
20794         and DI_FTYPE_DI_DI_INT.
20795         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
20796         (ix86_init_mmx_sse_builtins): Updated.
20797         (ix86_expand_args_builtin): Likewise.
20798         (ix86_expand_builtin): Likewise.
20799         (ix86_expand_binop_imm_builtin): Removed.
20800
20801         * doc/extend.texi: Correct __builtin_ia32_palignr128.
20802
20803 2008-04-30  Richard Guenther  <rguenther@suse.de>
20804
20805         PR tree-optimization/32921
20806         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
20807
20808 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
20809
20810         * config/arm/arm.c (arm_unwind_emit): Use
20811         crtl->all_throwers_are_sibcalls instead of
20812         cfun->all_throwers_are_sibcalls.
20813         (arm_output_fn_unwind): Likewise.
20814         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
20815         instead of cfun->uses_pic_offset_table.
20816         (frv_expand_prologue): Likewise.
20817         (frv_frame_pointer_required): Likewise.
20818         (frv_expand_fdpic_call): Likewise.
20819         (frv_emit_movsi): Likewise.
20820         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
20821         cfun->returns_pcc_struct instead of
20822         current_function_returns_pcc_struct.
20823         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
20824         instead of cfun->calls_eh_return.
20825         (m32c_pushm_popm): Likewise.
20826         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
20827         "extern" declaration.
20828
20829 2008-04-30  Richard Guenther  <rguenther@suse.de>
20830
20831         PR tree-optimization/21636
20832         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
20833         constant address.
20834         (evaluate_stmt): Print the likely value.
20835         (ccp_visit_stmt): Avoid excessive vertical spacing.
20836
20837 2008-04-30  Rafael Espíndola  <espindola@google.com>
20838
20839         * builtins.c (fold_call_expr): Return realret.
20840         * tree-ssa-threadedge.c
20841         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
20842         __builtin_object_size.
20843
20844 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
20845
20846         * gcc.c (wrapper_string): New variable.
20847         (insert_wrapper): New function.
20848         (execute): New option -wrapper.
20849         * doc/invoke.texi (Overall Options): New driver option -wrapper.
20850
20851 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
20852
20853         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
20854         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
20855         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
20856         from...
20857         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
20858         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
20859         config/rs6000/e500crtres64gprctr.asm,
20860         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
20861         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
20862         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
20863         config/rs6000/e500crtsav64gprctr.asm,
20864         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
20865         config/rs6000/e500crtsavg64gprctr.asm: New files.
20866         * config/rs6000/t-ppccomm: Add build rules for new files.
20867         (LIB2FUNCS_STATIC_EXTRA): Add new files.
20868         * config/rs6000/t-netbsd: Add build rules for new files.
20869         (LIB2FUNCS_STATIC_EXTRA): New variable.
20870         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
20871         (CRTSAVRES_DEFAULT_SPEC): Likewise.
20872         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
20873
20874 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
20875
20876         * config/i386/i386.c (ix86_builtin_type): Add
20877         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
20878         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
20879         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
20880         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
20881         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
20882         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
20883         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
20884         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
20885         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
20886         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
20887         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
20888         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
20889         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
20890         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
20891         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
20892         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
20893         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
20894         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
20895         V1DI_FTYPE_V2SI_V2SI.
20896         (bdesc_2arg): Moved to ...
20897         (bdesc_args): Here.
20898         (ix86_init_mmx_sse_builtins): Updated.
20899         (ix86_expand_args_builtin): Updated.  Take a pointer
20900         to const struct builtin_description.  Handle comparison
20901         builtin functions.
20902         (ix86_expand_sse_compare): Take a new argument for swapping operands.
20903         (ix86_expand_builtin): Updated.
20904
20905         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
20906         (ssse3_pmaddubsw128): This.
20907         (ssse3_pmaddubswv4hi3): Renamed to ...
20908         (ssse3_pmaddubsw): This.
20909
20910         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
20911         (__builtin_ia32_packssdw128): Likewise.
20912         (__builtin_ia32_packuswb128): Likewise.
20913         (__builtin_ia32_pmaddubsw): Likewise.
20914         (__builtin_ia32_pmaddubsw128): Likewise.
20915
20916 2008-04-30  Richard Guenther  <rguenther@suse.de>
20917
20918         PR tree-optimization/14847
20919         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
20920         (recognize_bits_test): Use it.
20921         (recognize_single_bit_test): Likewise.
20922
20923 2008-04-30  Martin Jambor  <mjambor@suse.cz>
20924
20925         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
20926         instead of setting number of formal parameters to zero.
20927         (ipcp_init_stage): Do not set the number of actual parameters to zero
20928         either.
20929         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
20930         which are called with variable number of arguments.
20931         (ipcp_insert_stage): Explicitely skipping all nodes which are
20932         called with variable number of arguments.
20933         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
20934         number of parameters.
20935
20936         * ipa-prop.h (struct ipa_node_params): Added flag
20937         called_with_var_arguments
20938         (ipa_set_param_count): Added.  Changed sole setter to use it.
20939         (ipa_get_param_count): Added.  All readers of param_count
20940         converted to use it instead.
20941         (ipa_set_called_with_variable_arg): Added.
20942         (ipa_is_called_with_var_arguments): Added.
20943         (ipa_get_ith_param): Added.  All readers of param_decls converted
20944         to use it instead.
20945         (ipa_set_cs_argument_count): Added, sole writer to argument_count
20946         changed to use it.
20947         (ipa_get_cs_argument_count): Added, all readers of argument_count
20948         changed to cal it.
20949         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
20950         to use it.
20951
20952         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
20953         (struct ipcp_lattice): Renamed cval_type to type
20954         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
20955
20956         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
20957         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
20958         (ipcp_insert_stage): Changed the type of variable cvalue to tree
20959         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
20960         (build_const_val): Changed the type of parameter cvalue to tree
20961         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
20962         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
20963
20964         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
20965         constant
20966
20967         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
20968         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
20969         (ipa_add_method): Renamed to ipa_push_func_to_list
20970         (ipa_remove_method): Renamed to ipa_pop_func_from_list
20971         (ipa_callsite_param_count): Removed.
20972         (ipa_callsite_param_count_set): Removed.
20973         (ipa_callsite_param): Removed.
20974         (ipa_callsite_callee): Removed.
20975         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
20976         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
20977         (ipa_method_formal_count): Removed.
20978         (ipa_method_formal_count_set): Removed.
20979         (ipa_method_get_tree): Removed.
20980         (ipa_method_tree_map_create): Removed.
20981         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
20982         (ipa_create_param_decls_array): Creates the array itself
20983         (ipa_create_param_decls_array): Temporary variable info instead of
20984         a few dereferences.
20985         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
20986         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
20987         (get_type): Removed.
20988         (ipa_jf_get_info_type): Removed.
20989         (ipa_node_create): Renamed to ipa_create_node_params
20990         (ipa_free): Renamed to ipa_free_all_node_params
20991         (ipa_nodes_create): Renamed to ipa_create_all_node_params
20992         (ipa_edges_create): Renamed to ipa_create_all_edge_args
20993         (ipa_edges_free): Renamed to ipa_free_all_edge_args
20994         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
20995         (ipa_free_all_node_params): Deallocation to jump_functions moved to
20996         ipa_free_all_edge_args
20997         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
20998         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
20999         (ipa_create_methodlist_node): Removed.
21000         (ipa_methodlist_method): Removed.
21001         (ipa_methodlist_method_set): Removed.
21002         (ipa_methodlist_next_method): Removed.
21003         (ipa_methodlist_next_method_set): Removed.
21004         (ipa_method_is_modified): Removed.
21005         (ipa_method_modify_create): Removed.
21006         (ipa_method_modify_init): Temporary variable info instead of a few
21007         dereferences.
21008         (ipa_detect_param_modifications): Temporary variable info instead of
21009         a few dereferences.
21010         (ipa_compute_jump_functions): Temporary variable info instead of
21011         a few dereferences.
21012         (ipa_method_modify_set): Removed.
21013         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
21014         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
21015         than craph_node as the first parameter.
21016         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
21017         (ipa_method_modify_init): Removed.
21018         (ipa_compute_jump_functions): Added a temp variable instead of
21019         repeatadly dereferencing the cgraph_edge.aux pointer
21020         (ipa_callsite_param_set_type): Removed.
21021         (ipa_compute_jump_functions): i renamed to index and moved to
21022         an inner block
21023         (ipa_callsite_param_set_info_type_formal): Removed.
21024         (ipa_callsite_param_set_info_type): Removed.
21025         (ipa_callsite_param_map_create): Removed.
21026         (ipa_callsite_tree): Removed.
21027         (ipa_callsite_caller): Removed.
21028         (ipa_pop_func_from_list): return_method removed to return_func
21029
21030         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
21031         prefixed all values with IPA_. Changed all users.
21032         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
21033         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
21034         and FORMAL_IPATYPE IPA_PASS_THROUGH.
21035         (union parameter_info): Renamed to jump_func_value.
21036         (union jump_func_value): Renamed value to constant
21037         (struct ipa_jump_func): Renamed info_type to value
21038         (struct ipa_node): Renamed to ipa_node_params
21039         (struct ipa_node_params): Renamed ipa_arg_num to param_count
21040         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
21041         (struct ipa_node_params): Renamed ipa_mod to modified_flags
21042         (struct ipa_edge): Renamed to ipa_edge_args
21043         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
21044         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
21045         (struct ipa_methodlist): Renamed to ipa_func_list
21046         (struct ipa_func_list): method_p renamed to node, next_method
21047         renamed to next
21048         (ipa_methodlist_p): Removed, switched all users to struct pointer
21049         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
21050
21051 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
21052
21053         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
21054         (rs6000_emit_epilogue): Use backchain to restore only when we
21055         have a large frame.  Make use of frame pointer to restore if we
21056         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
21057
21058 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
21059
21060         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
21061         Add mode to zero_extract.
21062         (sign bit tests peepholes): (Ditto.).
21063
21064 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21065
21066         * config/i386/i386.c (ix86_builtins): Replace Prescott New
21067         Instructions in comments with SSE3.
21068         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
21069         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
21070         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
21071         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
21072         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
21073         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
21074         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
21075         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
21076         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
21077         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
21078         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
21079         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
21080         (bdesc_sse_args): Renamed to ...
21081         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
21082         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
21083         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
21084         IX86_BUILTIN_FABSQ.
21085         (bdesc_1arg): Moved to ...
21086         (bdesc_args): Here.
21087         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
21088         Instructions in comments with SSE3.
21089         (ix86_expand_sse_operands_builtin): Renamed to ...
21090         (ix86_expand_args_builtin): This.  Updated.
21091         (ix86_expand_unop1_builtin): Update comments.
21092         (ix86_expand_builtin): Updated.
21093
21094 2008-04-29  Richard Guenther  <rguenther@suse.de>
21095
21096         PR tree-optimization/36078
21097         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
21098         Update virtual SSA form after cleaning up the CFG.
21099
21100 2008-04-29  Richard Guenther  <rguenther@suse.de>
21101
21102         PR middle-end/15255
21103         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
21104
21105 2008-04-29  Richard Guenther  <rguenther@suse.de>
21106
21107         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
21108         (compute_may_aliases): Do not call finalize_ref_all_pointers.
21109         (compute_flow_insensitive_aliasing): Do not treat
21110         PTR_IS_REF_ALL pointers special.
21111         (get_smt_for): Likewise.
21112         (may_alias_p): Re-structure.
21113         (is_escape_site): A ref-all pointer conversion is not an escape site.
21114         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
21115         PTR_IS_REF_ALL pointers special.
21116         * tree-ssa-structalias.h (struct alias_info): Remove
21117         ref_all_symbol_mem_tag field.
21118         (PTR_IS_REF_ALL): Remove.
21119
21120 2008-04-29  Richard Guenther  <rguenther@suse.de>
21121
21122         PR middle-end/36077
21123         * fold-const.c (extract_muldiv_1): In combining division constants
21124         make sure to never overflow.
21125
21126 2008-04-29  Nick Clifton  <nickc@redhat.com>
21127
21128         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
21129
21130 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21131
21132         PR bootstrap/35169
21133         * optc-gen.awk: Work around HP-UX/IA awk bug.
21134
21135 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
21136
21137         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
21138         2008-04-25 commit.
21139
21140 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
21141
21142         PR target/36073
21143         * config/i386/i386.md
21144         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
21145         Change operand 1 predicate to nonimmediate_operand.
21146
21147 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
21148
21149         PR debug/36060
21150         * dwarf2out.c (struct die_struct): Mark as chain_circular through
21151         die_sub field.
21152         * gengtype.c (walk_type, write_func_for_structure): Handle
21153         chain_circular.
21154         * doc/gty.texi: Document chain_circular.
21155
21156 2008-04-28  Richard Guenther  <rguenther@suse.de>
21157
21158         PR tree-optimization/36066
21159         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
21160         SCEV and loop.
21161
21162 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
21163
21164         PR target/36064
21165         * config/i386/i386.md
21166         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
21167         Use match_scratch instead of match_operand for operands 3 and 4.
21168
21169 2008-04-27  Richard Guenther  <rguenther@suse.de>
21170
21171         PR tree-optimization/18754
21172         PR tree-optimization/34223
21173         * tree-pass.h (pass_complete_unrolli): Declare.
21174         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
21175         loop size before and after unconditionally of UL_NO_GROWTH in effect.
21176         Rewrite loop into loop closed SSA form if it is not already.
21177         (tree_unroll_loops_completely): Re-structure to iterate over
21178         innermost loops with intermediate CFG cleanups.
21179         Unroll outermost loops only if requested or the code does not grow
21180         doing so.
21181         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
21182         loops are available.
21183         (tree_vectorize): Instead do so here.
21184         (tree_complete_unroll): Also unroll outermost loops.
21185         (tree_complete_unroll_inner): New function.
21186         (gate_tree_complete_unroll_inner): Likewise.
21187         (pass_complete_unrolli): New pass.
21188         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
21189         uses outside of the loop.
21190         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
21191         form if it is available.
21192         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
21193         * passes.c (init_optimization_passes): Schedule complete inner
21194         loop unrolling pass before the first CCP pass after final inlining.
21195
21196 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
21197
21198         * targhooks.h (default_emutls_var_fields,
21199         default_emutls_var_init): Declare.
21200         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
21201         * target.h (struct gcc_target): Add struct emutls member.
21202         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
21203         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
21204         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
21205         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
21206         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
21207         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
21208         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
21209         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
21210         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
21211         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
21212         emit debug information.
21213         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
21214         * varasm.c: Include targhooks.h.
21215         (emutls_object_section, emutls_tmpl_section): New.
21216         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
21217         (EMUTLS_SEPARATOR): New.
21218         (prefix_name): New.
21219         (get_emutls_object_name): New.
21220         (default_emutls_var_fields): New, broken out of ...
21221         (get_emutls_object_type): ... here.  Adjust to use target hooks.
21222         (get_emutls_init_templ_addr): Adjust to use target hooks.
21223         (emutls_decl): Adjust to use target hooks.
21224         (emutls_finish): Likewise.
21225         (default_emutls_var_init): New, broken out of ...
21226         (assemble_variable): ... here.  Adjust to use target hooks.
21227         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
21228         SECCAT_EMUTLS_TMPL.
21229         * c-common.c (handle_section_attribute): Prevent overriding
21230         sections for emulated tls with special sections.
21231         * config/i386/i386.c (x86_64_elf_select_section): Add
21232         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
21233         (x86_64_elf_unique_section): Likewise.
21234         * config/vxworks.c: Include tree.h.
21235         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
21236         (vxworks_override_options): Set TLS scheme.
21237         * doc/tm.texi (Emulated TLS): New node.
21238
21239 2008-04-26  Simon Baldwin <simonb@google.com>
21240
21241         PR c/35652
21242         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
21243         with propagated string constants.
21244
21245 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
21246
21247         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
21248         constraint for operand 2 when operand 0 is memory operand.
21249         (fix_truncdi_i387_with_temp): Use 'X' constraint for operand 4 when
21250         operand 0 is memory operand.
21251         (fix_trunc<mode>_i387_with_temp): Ditto.
21252         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
21253         operand 2 when operand 1 is memory operand.
21254         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
21255         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
21256         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
21257         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
21258         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
21259         operands 2,3 and 4 when operand 1 is memory operand.
21260         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
21261         is memory operand.
21262         (fistdi2_floor_with_temp): Ditto.
21263         (fist<mode>2_floor_with_temp): Ditto.
21264         (fistdi2_ceil_with_temp): Ditto.
21265         (fist<mode>2_ceil_with_temp): Ditto.
21266         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
21267
21268 2008-04-26  David Daney  <ddaney@avtrex.com>
21269
21270         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
21271         unspec_volitile.
21272         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
21273         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
21274         UNSPEC_UPDATE_GOT_VERSION): Renumber.
21275         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
21276         (compare_and_swap_12): New insn.
21277         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
21278         * config/mips/mips.c (mips_force_binary): New function.
21279         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
21280         (mips_expand_compare_and_swap_12): New function.
21281         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
21282
21283 2008-04-25  Jan Hubicka  <jh@suse.cz>
21284
21285         PR testsuite/35843
21286         * cfgexpand.c (pass_expand): Turn into RTL pass.
21287         * passes.c (execute_one_pass): Do pass typechecking after execution.
21288         * tree-pass.h (pass_expand): Turn into RTL pass.
21289
21290         * function.h (struct rtl_data): Move here fields
21291         accesses_prior_frames, calls_eh_return, saves_all_registers,
21292         has_nonlocal_goto, has_asm_statement, is_thunk,
21293         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
21294         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
21295         arg_pointer_save_area_init from struct function; turn into bool.
21296         (struct function): Move
21297         calls_eh_return, saves_all_registers, has_nonlocal_goto,
21298         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
21299         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
21300         tail_call_emit, arg_pointer_save_area_init
21301         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
21302         (current_function_returns_struct, current_function_returns_pcc_struct,
21303         current_function_calls_setjmp, current_function_calls_alloca,
21304         current_function_accesses_prior_frames,
21305         current_function_calls_eh_return, current_function_is_thunk,
21306         current_function_stdarg, current_function_profile,
21307         current_function_limit_stack, current_function_uses_pic_offset_table,
21308         current_function_uses_const_pool, current_function_has_nonlocal_label,
21309         current_function_saves_all_registers,
21310         current_function_has_nonlocal_goto,
21311         current_function_has_asm_statement): Remove accesor macros.
21312         * ra-conflict.c (global_conflicts): Update.
21313         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
21314         (suitable_for_tail_call_opt_p): Update.
21315         * builtins.c (expand_builtin_return_addr): Update.
21316         (expand_builtin_setjmp_setup): Update.
21317         (expand_builtin_nonlocal_goto): Update.
21318         * final.c (final_start_function): Update.
21319         (profile_function): Update.
21320         (leaf_function_p): Update.
21321         (only_leaf_regs_used): Update.
21322         * df-scan.c (df_get_exit_block_use_set): Update.
21323         * dojump.c (clear_pending_stack_adjust): Update.
21324         * tree-stdarg.c (gate_optimize_stdarg): Update.
21325         * gimple-low.c (lower_function_body): Update.
21326         * global.c (compute_regsets): Update.
21327         (global_alloc): Update.
21328         * dwarf2out.c (dwarf2out_begin_prologue): Update.
21329         * expr.c (expand_assignment): Update.
21330         * dse.c (dse_step0): Update.
21331         (dse_step1): Update.
21332         * c-decl.c (store_parm_decls): Update.
21333         * local-alloc.c (combine_regs): Update.
21334         (find_free_reg): Update.
21335         * function.c (assign_parms_augmented_arg_list): Update.
21336         (assign_parm_find_data_types): Update.
21337         (assign_parms): Update.
21338         (allocate_struct_function): Update.
21339         (expand_function_start): Update.
21340         (expand_function_end): Update.
21341         (get_arg_pointer_save_area): Update.
21342         (thread_prologue_and_epilogue_insns): Update.
21343         (rest_of_match_asm_constraints): Update.
21344         * stor-layout.c (variable_size): Update.
21345         * gcse.c (gcse_main): Update.
21346         (bypass_jumps): Update.
21347         * gimplify.c (gimplify_function_tree): Update.
21348         * calls.c (emit_call_1): Update.
21349         (expand_call): Update.
21350         * bt-load.c (compute_defs_uses_and_gen): Update.
21351         * except.c (sjlj_assign_call_site_values): Update.
21352         (sjlj_emit_function_enter): Update.
21353         (can_throw_external): Update.
21354         (set_nothrow_function_flags): Update.
21355         (expand_builtin_unwind_init): Update.
21356         (expand_eh_return): Update.
21357         (convert_to_eh_region_ranges): Update.
21358         (output_function_exception_table): Update.
21359         * emit-rtl.c (gen_tmp_stack_mem): Update.
21360         * cfgexpand.c (expand_used_vars): Update.
21361         (tree_expand_cfg): Update.
21362         * cfgcleanup.c (rest_of_handle_jump): Update.
21363         * explow.c (allocate_dynamic_stack_space): Update.
21364         * varasm.c (assemble_start_function): Update.
21365         (force_const_mem): Update.
21366         (mark_constant_pool): Update.
21367         * tree-optimize.c (tree_rest_of_compilation): Update.
21368         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
21369         * tree-cfg.c (notice_special_calls): Update.
21370         (is_ctrl_altering_stmt): Update.
21371         (tree_can_make_abnormal_goto): Update.
21372         (tree_purge_dead_abnormal_call_edges): Update.
21373         * config/alpha/predicates.md: Update.
21374         * config/alpha/alpha.c (alpha_sa_mask): Update.
21375         (alpha_sa_size): Update.
21376         (alpha_does_function_need_gp): Update.
21377         (alpha_expand_prologue): Update.
21378         (alpha_start_function): Update.
21379         (alpha_output_function_end_prologue): Update.
21380         (alpha_expand_epilogue): Update.
21381         * config/frv/frv.c (frv_stack_info): Update.
21382         (frv_expand_epilogue): Update.
21383         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
21384         (s390_register_info): Update.
21385         (s390_frame_info): Update.
21386         (s390_init_frame_layout): Update.
21387         (s390_can_eliminate): Update.
21388         (save_gprs): Update.
21389         * config/spu/spu.c (spu_split_immediate): Update.
21390         (need_to_save_reg): Update.
21391         (spu_expand_prologue): Update.
21392         (spu_expand_epilogue): Update.
21393         * config/sparc/sparc.md: Update.
21394         * config/sparc/sparc.c (eligible_for_return_delay): Update.
21395         (sparc_tls_got): Update.
21396         (legitimize_pic_address): Update.
21397         (sparc_emit_call_insn): Update.
21398         (sparc_expand_prologue): Update.
21399         (output_return): Update.
21400         (print_operand): Update.
21401         (sparc_function_ok_for_sibcall): Update.
21402         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
21403         * config/m32r/m32r.md: Update.
21404         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
21405         (m32r_compute_frame_size): Update.
21406         (m32r_expand_prologue): Update.
21407         (m32r_expand_epilogue): Update.
21408         (m32r_legitimize_pic_address): Update.
21409         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
21410         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21411         * config/i386/i386.c (ix86_frame_pointer_required): Update.
21412         (gen_push): Update.
21413         (ix86_save_reg): Update.
21414         (ix86_compute_frame_layout): Update.
21415         (ix86_expand_prologue): Update.
21416         (ix86_expand_epilogue): Update.
21417         * config/sh/sh.c (output_stack_adjust): Update.
21418         (calc_live_regs): Update.
21419         (sh5_schedule_saves): Update.
21420         (sh_expand_prologue): Update.
21421         (sh_expand_epilogue): Update.
21422         (sh_setup_incoming_varargs): Update.
21423         (sh_allocate_initial_value): Update.
21424         (sh_get_pr_initial_val): Update.
21425         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
21426         * config/sh/sh.md (label:): Update.
21427         * config/avr/avr.c (out_movhi_mr_r): Update.
21428         * config/crx/crx.h (enum): Update.
21429         * config/xtensa/xtensa.h (along): Update.
21430         * config/stormy16/stormy16.c Update.
21431         (xstormy16_compute_stack_layout): Update.
21432         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
21433         (fr30_expand_prologue): Update.
21434         * config/cris/cris.c (cris_conditional_register_usage): Update.
21435         (cris_reg_saved_in_regsave_area): Update.
21436         (cris_initial_frame_pointer_offset): Update.
21437         (cris_simple_epilogue): Update.
21438         (cris_expand_prologue): Update.
21439         (cris_expand_epilogue): Update.
21440         (cris_expand_pic_call_address): Update.
21441         (cris_asm_output_symbol_ref): Update.
21442         (cris_asm_output_label_ref): Update.
21443         * config/cris/cris.md Update.
21444         * config/iq2000/iq2000.c (compute_frame_size): Update.
21445         (iq2000_expand_epilogue): Update.
21446         * config/mt/mt.h (save_direction): Update.
21447         * config/mn10300/mn10300.c (mn10300_function_value): Update.
21448         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
21449         (ia64_secondary_reload_class): Update.
21450         * config/m68k/m68k.c (m68k_save_reg): Update.
21451         (m68k_expand_prologue): Update.
21452         (m68k_expand_epilogue): Update.
21453         (legitimize_pic_address): Update.
21454         * config/rs6000/rs6000.c (rs6000_got_register): Update.
21455         (first_reg_to_save): Update.
21456         (first_altivec_reg_to_save): Update.
21457         (compute_vrsave_mask): Update.
21458         (compute_save_world_info): Update.
21459         (rs6000_stack_info): Update.
21460         (spe_func_has_64bit_regs_p): Update.
21461         (rs6000_ra_ever_killed): Update.
21462         (rs6000_emit_eh_reg_restore): Update.
21463         (rs6000_emit_allocate_stack): Update.
21464         (rs6000_emit_prologue): Update.
21465         (rs6000_emit_epilogue): Update.
21466         (rs6000_output_function_epilogue): Update.
21467         (output_profile_hook): Update.
21468         (rs6000_elf_declare_function_name): Update.
21469         * config/rs6000/rs6000.h (rs6000_args): Update.
21470         * config/rs6000/rs6000.md: Update.
21471         * config/mcore/mcore.c (mcore_expand_prolog): Update.
21472         * config/arc/arc.c (arc_output_function_epilogue): Update.
21473         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
21474         * config/darwin.c (machopic_function_base_name): Update.
21475         * config/score/score3.c (score3_compute_frame_size): Update.
21476         (rpush): Update.
21477         (rpop): Update.
21478         (score3_epilogue): Update.
21479         * config/score/score7.c (score7_compute_frame_size): Update.
21480         (score7_prologue): Update.
21481         (score7_epilogue): Update.
21482         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
21483         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21484         * config/arm/arm.c (use_return_insn): Update.
21485         (require_pic_register): Update.
21486         (arm_load_pic_register): Update.
21487         (arm_compute_save_reg0_reg12_mask): Update.
21488         (arm_compute_save_reg_mask): Update.
21489         (thumb1_compute_save_reg_mask): Update.
21490         (output_return_instruction): Update.
21491         (arm_output_function_prologue): Update.
21492         (arm_output_epilogue): Update.
21493         (arm_get_frame_offsets): Update.
21494         (arm_expand_prologue): Update.
21495         (thumb_pushpop): Update.
21496         (thumb_exit): Update.
21497         (thumb1_expand_prologue): Update.
21498         (thumb1_expand_epilogue): Update.
21499         (arm_unwind_emit): Update.
21500         (arm_output_fn_unwind): Update.
21501         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
21502         * config/arm/arm.md: Update.
21503         * config/pa/pa.md: Update.
21504         * config/pa/pa.c (legitimize_pic_address): Update.
21505         (compute_frame_size): Update.
21506         (hppa_expand_prologue): Update.
21507         (hppa_expand_epilogue): Update.
21508         (borx_reg_operand): Update.
21509         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
21510         (HARD_REGNO_RENAME_OK): Update.
21511         * config/mips/mips.c (mips_global_pointer): Update.
21512         (mips_save_reg_p): Update.
21513         (mips_compute_frame_info): Update.
21514         (mips_frame_pointer_required): Update.
21515         (mips_expand_prologue): Update.
21516         (mips_expand_epilogue): Update.
21517         (mips_can_use_return_insn): Update.
21518         (mips_reorg_process_insns): Update.
21519         * config/v850/v850.c (compute_register_save_size): Update.
21520         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
21521         * config/mmix/mmix.c (along): Update.
21522         (mmix_expand_epilogue): Update.
21523         * config/bfin/bfin.c (legitimize_pic_address): Update.
21524         (must_save_p): Update.
21525         (stack_frame_needed_p): Update.
21526         (add_to_reg): Update.
21527         (bfin_expand_prologue): Update.
21528         * stmt.c (expand_asm_operands): Update.
21529         * reload1.c (reload): Update.
21530         (init_elim_table): Update.
21531
21532 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
21533
21534         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
21535
21536 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
21537
21538         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
21539         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
21540         (mov<mode>): Removed.
21541         (*movv4sf_internal): Likewise.
21542         (*movv2df_internal): Likewise.
21543
21544 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
21545
21546         * config.gcc (crx-*-elf): Remove deprecation.
21547
21548 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
21549
21550         * config/i386/cygming-crtend.c (register_frame_ctor): Register
21551         __gcc_deregister_frame with atexit.
21552         (deregister_frame_dtor): Remove.
21553
21554 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
21555             Nathan Sidwell  <nathan@codesourcery.com>
21556
21557         * config/rs6000/rs6000.opt (mspe): Remove Var property.
21558         (misel): Likewise.
21559         * config/rs6000/rs6000.h (rs6000_spe): Declare.
21560         (rs6000_isel): Likewise.
21561         * config/rs6000/rs6000.c (rs6000_spe): New variable.
21562         (rs6000_isel): New variable.
21563         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
21564
21565 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21566
21567         PR c++/35758
21568         * c-common.c (handle_vector_size_attribute): Call
21569         lang_hooks.types.reconstruct_complex_type instead of
21570         reconstruct_complex_type.
21571         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
21572         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
21573         * langhooks.h (struct lang_hooks_for_types): Add
21574         reconstruct_complex_type hook.
21575         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
21576         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
21577
21578 2008-04-24  Richard Guenther  <rguenther@suse.de>
21579
21580         * c-common.h (check_builtin_function_arguments): Declare.
21581         * c-common.c (validate_nargs): New function.
21582         (check_builtin_function_arguments): Likewise.
21583         * c-typeck.c (build_function_call): Call
21584         check_builtin_function_arguments.
21585         * builtins.c (fold_builtin_classify): Remove error reporting code.
21586         (fold_builtin_unordered_cmp): Likewise.
21587         (fold_builtin_1): Likewise.
21588         (fold_builtin_n): Likewise.
21589
21590 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21591
21592         PR tree-optimization/36008
21593         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
21594         the original op1, rather than delta by step.
21595
21596 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
21597             Sebastian Pop  <sebastian.pop@amd.com>
21598
21599         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
21600         eliminate_local_variables_stmt, eliminate_local_variables,
21601         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
21602         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
21603         of code delimited by two edges in the CFG.
21604         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
21605         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
21606         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
21607         the case of parallelisation of reductions.
21608         (expr_invariant_in_region_p): New.
21609
21610         * tree-flow.h (gather_blocks_in_sese_region): Declared.
21611         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
21612
21613 2008-04-24  Ira Rosen  <irar@il.ibm.com>
21614             Richard Guenther  <rguenther@suse.de>
21615
21616         PR tree-optimization/36034
21617         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
21618         incapable of dealing with loads with gaps.
21619
21620 2008-04-24  Rafael Espíndola  <espindola@google.com>
21621
21622         * tree-flow.h (vrp_evaluate_conditional): Change signature.
21623         * tree-ssa-propagate.c (fold_predicate_in): Update call to
21624         vrp_evaluate_conditional.
21625         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
21626         (vrp_evaluate_conditional): Split the cond argument.
21627         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
21628         (simplify_stmt_for_jump_threading): Update call to
21629         vrp_evaluate_conditional.
21630
21631 2008-04-24  Ira Rosen  <irar@il.ibm.com>
21632
21633         PR tree-optimization/35982
21634         * tree-vect-analyze.c (vect_check_interleaving): Check that the
21635         interleaved data-refs are of the same type.
21636
21637 2008-04-24  Danny Smith  <dannysmith@users.net>
21638
21639         * c-format.c (check_format_info_main): Use strncmp rather than a
21640         magic prefix to handle multichar length specs.
21641         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
21642         Don't prefix "I64" and "I32" with '\0'.
21643
21644 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21645
21646         PR target/36015
21647         * config/i386/i386.c (init_cumulative_args): Don't pass anything
21648         in registers for -m32 only if stdarg_p (fntype).
21649
21650 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
21651
21652         PR rtl-optimization/36006
21653         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
21654         temp to op0 in order to avoid invalid rtx sharing.
21655
21656 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
21657
21658         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
21659         check TREE_INVARIANT.
21660         * tree-gimple.c (is_gimple_address): New.
21661         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
21662         * tree-gimple.h (is_gimple_address): New.
21663         * tree.h (decl_address_invariant_p): New.
21664         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
21665         (build_string): Likewise.
21666         (decl_address_invariant_p): New, from is_gimple_invariant_address.
21667         (tree_invariant_p_1): Likewise.
21668         (save_expr): Use it.
21669         (tree_invariant_p): New.
21670         (skip_simple_arithmetic): Use it.
21671         (stabilize_reference_1): Use it.
21672         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
21673         simplify.
21674         (build1_stat): Drop code to compute TREE_INVARIANT.
21675         (build2_stat): Drop code to compute TREE_INVARIANT.
21676         (build3_stat): Drop code to compute TREE_INVARIANT.
21677         (build4_stat): Drop code to compute TREE_INVARIANT.
21678         (build5_stat): Drop code to compute TREE_INVARIANT.
21679         (build7_stat): Drop code to compute TREE_INVARIANT.
21680         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
21681         * tree.h (struct tree_base): Remove invariant_flag.
21682         (TREE_INVARIANT): Remove.
21683         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
21684         (fold_builtin_expect): Check TREE_CONSTANT.
21685         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
21686         * c-tree.h (c_expr_to_decl): Drop third parameter.
21687         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
21688         (build_c_cast): Don't set TREE_INVARIANT.
21689         (pop_init_level): Don't set TREE_INVARIANT.
21690         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
21691         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
21692         TREE_CONSTANT.
21693         (gimplify_init_constructor): Don't set TREE_INVARIANT.
21694         (gimplify_addr_expr): Adjust comment.
21695         * tree-mudflap.c (mf_build_string):
21696         * print-tree.c (print_node): Don't print TREE_INVARIANT.
21697         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
21698         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
21699         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
21700         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
21701         * langhooks.h (struct lang_hooks): Drop third parameter from
21702         expr_to_decl.
21703
21704 2008-04-23  Richard Guenther  <rguenther@suse.de>
21705
21706         PR tree-optimization/27799
21707         PR tree-optimization/32921
21708         PR tree-optimization/32624
21709         * tree-ssa-structalias.c (merge_smts_into): Only merge the
21710         SMTs aliases and the tag itself into the solution.
21711         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
21712         merge the points-to solution back into the SMT aliases.
21713         (may_alias_p): Use alias_set_subset_of instead of
21714         aliases_conflict_p.  A pointer which points to
21715         memory with alias set zero may access any variable.
21716
21717 2008-04-23  Richard Guenther  <rguenther@suse.de>
21718
21719         * alias.c (alias_set_subset_of): Correctly handle asking
21720         if zero is a subset of an alias set with zero child.
21721         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
21722         (compute_flow_insensitive_aliasing): Correctly walk all
21723         pointers.  Do not unnecessarily union sets.
21724
21725 2008-04-23  Richard Guenther  <rguenther@suse.de>
21726
21727         PR middle-end/36021
21728         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
21729
21730 2008-04-22  Tomas Bily  <tbily@suse.cz>
21731
21732         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
21733         unreachable case.
21734         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
21735         NON_LVALUE_EXPR.
21736         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21737         * tree-ssa-structalias.c (get_constraint_for): Likewise.
21738         * tree-inline.c (estimate_num_insns_1): Likewise.
21739         * varasm.c (const_hash_1, compare_constant, copy_constant)
21740         (compute_reloc_for_constant, output_addressed_constants): Likewise.
21741         * emit-rtl.c (component_ref_for_mem_expr)
21742         (set_mem_attributes_minus_bitpos): Likewise.
21743         * expr.c (highest_pow2_factor, expand_expr_real_1)
21744         (is_aligning_offset): Likewise.
21745         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
21746         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
21747         * dojump.c (do_jump): Likewise.
21748         * builtins.c (get_pointer_alignment, get_memory_rtx)
21749         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
21750         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
21751
21752 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
21753
21754         PR rtl-optimization/36017
21755         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
21756         expanding the library call.
21757
21758 2008-04-22  Ian Lance Taylor  <iant@google.com>
21759
21760         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
21761         than size_in_bytes.
21762
21763 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
21764
21765         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
21766         of LR/CTR moves for Power6.
21767
21768 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
21769
21770         PR middle-end/36003
21771         * passes.c (init_optimization_passes): Remove
21772         pass_fast_rtl_byte_dce.
21773
21774 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
21775
21776         PR target/29096
21777         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
21778         builtin functions to generate faster code.
21779         (_mm_cvtpu16_ps): Ditto.
21780         (_mm_cvtpi32x2_ps): Ditto.
21781
21782 2008-04-22  Nick Clifton  <nickc@redhat.com>
21783
21784         * common.opt (ftree-loop-distribution): Add Optimization
21785         attribute.
21786
21787         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
21788         (frv_expand_builtin_va_start): Likewise.
21789
21790         * config/arm/arm.c (thumb_find_work_register): Fix location of
21791         argument register count.
21792
21793 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
21794
21795         Support scheduling for ColdFire V1 and V3 microarchitecture.
21796         Improve scheduling of multiplication instructions.
21797
21798         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
21799         (mac): New instruction attribute.
21800         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
21801         (m68k_sched_mac): New variable.
21802         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
21803         Handle cfv1 and cfv3.
21804         (max_insn_size): New static variable.
21805         (struct _sched_ib): New type.
21806         (sched_ib): New static variable.
21807         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
21808         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
21809         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
21810         Update.
21811         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
21812         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
21813         new variables.  Update.
21814         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
21815         Add modeling of cfv3 instruction buffer.  Update.
21816         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
21817         * config/m68k/m68k.h (TUNE_CFV3): New macro.
21818         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
21819         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
21820         a particular reservation applies to.
21821         (type2): Reorganize attribute values.  Rename alu to alu_reg,
21822         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
21823         to mul_l and mul_w.
21824         (cf_ib_*): Simplify description of instruction buffer.
21825         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
21826         (cf_mem): Split into cf_mem1 and cf_mem2.
21827         (cf_v2_move_??): Rename to cfv12_alu_??.
21828         (cf_v2_move_l_??): Rename to cfv12_omove_??.
21829         (cf_v2_mul_??): Remove reservations.
21830         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
21831         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
21832         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
21833         appropriate place.
21834         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
21835         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
21836         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
21837         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
21838         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
21839         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
21840         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
21841         expansions of the above reservations for instructions of sizes
21842         1, 2 and 3 words.
21843
21844 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
21845
21846         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
21847
21848 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
21849
21850         * coverage.c: Include tree-pass.h.
21851         (coverage_counter_alloc): Print da_file_name to the dump file.
21852
21853 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
21854
21855         * sbitmap.c (sbitmap_range_empty_p): New function.
21856         * sbitmap.h (sbitmap_range_empty_p): New function.
21857         * bitmap.h: Now includes obstack.h.
21858
21859 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
21860             Kenneth Zadeck  <zadeck@naturalbridge.com>
21861
21862         * dbgcnt.def (ra_byte_scan): Added.
21863         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
21864         when the last hit happens for a counter.
21865         * timevar.def (TV_DF_BYTE_LR): New variable.
21866         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
21867         * passes.c (pass_fast_rtl_byte_dce): New pass.
21868         * fwprop.c (update_df): Added mode to call df_ref_create.
21869         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21870         DF_REF_EXTRACT_OFFSET.
21871         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
21872         DF_BYTE_LR_OUT, df_byte_lr): New macro.
21873         (df_mm): New enum.
21874         (df_ref_extract): Added mode field.
21875         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
21876         DF_REF_EXTRACT_OFFSET.
21877         (DF_REF_EXTRACT_MODE): New macro.
21878         (df_byte_lr_bb_info): New structure.
21879         (df_print_byte_regset, df_compute_accessed_bytes,
21880         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
21881         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
21882         df_byte_lr_simulate_uses,
21883         df_byte_lr_simulate_artificial_refs_at_top,
21884         df_byte_lr_simulate_artificial_refs_at_end,
21885         df_compute_accessed_bytes): New function.
21886         (df_ref_create): Add parameter.
21887         (df_byte_lr_get_bb_info): New inline function.
21888         * df-scan.c (df_ref_record, df_uses_record,
21889         df_ref_create_structure): Added mode parameter.
21890         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
21891         df_defs_record, df_uses_record, df_get_conditional_uses,
21892         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
21893         df_entry_block_defs_collect, df_exit_block_uses_collect):
21894         Added mode parameter to calls to df_ref_record, df_uses_record,
21895         df_ref_create_structure.
21896         (df_ref_equal_p, df_ref_compare): Added test for modes.
21897         (df_ref_create_structure): Added code to set mode.  Renamed
21898         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21899         DF_REF_EXTRACT_OFFSET.
21900         * df-core.c (df_print_byte_regset): New function.
21901         * df-byte-scan.c: New file.
21902         * df-problems.c (df_rd_transfer_function): Removed unnecessary
21903         calls to BITMAP_FREE.
21904         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
21905         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
21906         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
21907         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
21908         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
21909         df_byte_lr_local_compute, df_byte_lr_init,
21910         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
21911         df_byte_lr_transfer_function, df_byte_lr_free,
21912         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
21913         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
21914         df_byte_lr_simulate_uses,
21915         df_byte_lr_simulate_artificial_refs_at_top,
21916         df_byte_lr_simulate_artificial_refs_at_end): New function.
21917         * dce.c (byte_dce_process_block): New function.
21918         (dce_process_block): au is now passed in rather than computed
21919         locally.  Changed loops that look at artificial defs to not look
21920         for conditional or partial ones, because there never are any.
21921         (fast_dce): Now is able to drive byte_dce_process_block or
21922         dce_process_block depending on the kind of dce being done.
21923         (rest_of_handle_fast_dce): Add parameter to fast_dce.
21924         (rest_of_handle_fast_byte_dce): New function.
21925         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
21926         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
21927
21928 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
21929
21930         PR fortran/35019
21931         * gcc.h: Added fortran options that take arguments to
21932         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
21933         macros.
21934
21935 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
21936
21937         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
21938         scalarization if on the LHS and not a full access.
21939
21940 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21941
21942         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
21943
21944 2008-04-18  Rafael Espíndola  <espindola@google.com>
21945
21946         * tree-vrp.c (find_case_label_index): Fix the binary search.
21947         (find_case_label_range): New.
21948         (vrp_visit_switch_stmt): Use find_case_label_range.
21949         (simplify_switch_using_ranges): Use find_case_label_range.
21950
21951 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
21952
21953         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
21954         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
21955
21956 2008-04-18  Tom Tromey  <tromey@redhat.com>
21957
21958         PR libcpp/15500:
21959         * doc/cpp.texi (Implementation-defined behavior): Mention
21960         -finput-charset.
21961
21962 2008-04-18  Ian Lance Taylor  <iant@google.com>
21963
21964         * fold-const.c (pointer_may_wrap_p): New static function.
21965         (fold_comparison): Add another test for pointer overflow.  Use
21966         pointer_may_wrap_p to disable some false positives.
21967
21968 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
21969
21970         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
21971         (fname_as_string): Match updated cpp_interpret_string prototype.
21972         (fix_string_type): Support char16_t* and char32_t*.
21973         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
21974         derivative) nodes.  Register as builtin if C++0x.
21975         (c_parse_error): Support CPP_CHAR{16,32}.
21976         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
21977         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
21978         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
21979         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
21980         CTI_CHAR32_ARRAY_TYPE>: New elements.
21981         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
21982         char32_type_node, signed_char32_type_node, char16_array_type_node,
21983         char32_array_type_node): New defines.
21984         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
21985         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
21986         (lex_string): Support CPP_STRING{16,32}, match updated
21987         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
21988         (lex_charconst): Support CPP_CHAR{16,32}.
21989         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
21990         and CPP_STRING{16,32}.
21991
21992 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
21993
21994         PR bootstrap/35457
21995         * aclocal.m4: Regenerate.
21996         * configure: Regenerate.
21997
21998 2008-04-18  Jan Hubicka  <jh@suse.cz>
21999
22000         * except.c (dw2_size_of_call_site_table,
22001         sjlj_size_of_call_site_table): Use vector API for call_site_record.
22002
22003         * cgraphbuild.c (build_cgraph_edges): Update.
22004         * tree-pass.h: Update comment.
22005         * final.c (leaf_function_p): Update.
22006         (leaf_renumber_regs): Update.
22007         (rest_of_clean_state): Update.
22008         * omp-low.c (expand_omp_parallel): Update.
22009         * ipa-reference.c (analyze_function): Update.
22010         * reorg.c (find_end_label): Update.
22011         (optimize_skip): Update.
22012         (fill_simple_delay_slots): Update.
22013         (fill_simple_delay_slots): Update.
22014         (make_return_insns): Update.
22015         (dbr_schedule): Update.
22016         * gimple-low.c (record_vars_into): Update.
22017         * cfgbuild.c (make_edges): Update.
22018         * function.c (assign_stack_local): Update.
22019         (assign_parm_adjust_stack_rtl): Update.
22020         (locate_and_pad_parm): Update.
22021         (allocate_struct_function): Do not initialize stack_alignment_needed
22022         and preferred_stack_boundary here.
22023         (stack_protect_prologue): Update.
22024         (stack_protect_epilogue): Update.
22025         (expand_function_start): Initialize stack_alignment_needed,
22026         preferred_stack_boundary and max_jumptable_ents.
22027         (expand_function_end): Update.
22028         (free_after_compilation): Do not NULLify epilogue_delay_list.
22029         * function.h (struct rtl_data): Add stack_protect_guard,
22030         stack_alignment_needed,
22031         preferred_stack_boundary, epilogue_delay_list.
22032         (struct function): Remove value_histograms, stack_alignment_needed,
22033         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
22034         last_label_uid,
22035         unexpanded_var_list, stack_protect_guard.
22036         (current_function_epilogue_delay_list): Remove.
22037         * ipa-type-escape.c (analyze_function): Update.
22038         * gimplify.c (pop_gimplify_context): Update comment.
22039         * calls.c (expand_call): Update.
22040         (emit_library_call_value_1): Update.
22041         * except.c (set_nothrow_function_flags): Update.
22042         * cfgexpand.c (get_decl_align_unit): Update.
22043         (create_stack_guard): Update.
22044         (estimated_stack_frame_size): Update.
22045         (expand_used_vars): Update.
22046         (tree_expand_cfg): Free histogram earliers, init expansion variables.
22047         * explow.c (allocate_dynamic_stack_space): Update.
22048         * tree-ssa-live.c (remove_unused_locals): Update.
22049         * varasm.c (mark_constant_pool): Update.
22050         * tree-inline.c (remap_decls): Update.
22051         (initialize_cfun): Update.
22052         (declare_return_variable): Update.
22053         (inline_forbidden_p): Update.
22054         (expand_call_inline): Update.
22055         (declare_inline_vars): Update.
22056         (tree_function_versioning): Update.
22057         * tree-flow.h (value_histograms): New.
22058         (VALUE_HISTOGRAMS): New macro.
22059         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
22060         last_label_uid.
22061         * tree-cfg.c (set_bb_for_stmt): Update.
22062         (replace_by_duplicate_decl): Update.
22063         (move_block_to_fn): Update.
22064         (new_label_mapper): Update.
22065         (dump_function_to_file): Update.
22066         * ipa-struct-reorg.c (build_data_structure): Update.
22067         * cfgrtl.c (print_rtl_with_bb): Update.
22068         * reload1.c (reload): Update.
22069         (reload): Update.
22070         * config/i386/i386.c (setup_incoming_varargs_64,
22071         ix86_compute_frame_layout): Update.
22072         * config/arc/arc.c (arc_output_function_epilogue): Update.
22073
22074 2008-04-18  Marius Strobl <marius@FreeBSD.org>
22075
22076         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
22077         for FreeBSD as well.
22078         * gthr-posix95.h: Likewise.
22079
22080 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
22081
22082         PR rtl-optimization/35838
22083         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
22084         out the byte offset of the first subreg.
22085
22086 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
22087
22088         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
22089         to split_ti instead of three separate calls with single member arrays.
22090         (subti3 splitter): Ditto.
22091         (adddi3 splitter): Ditto with split_di.
22092         (subdi3 splitter): Ditto.
22093         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
22094         two separate calls with single member arrays.  Swap match_dup
22095         operands 1 and 2 to better fit into the array.
22096         (negdi2 splitter): Ditto with split_di.
22097         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
22098         two separate calls with single member arrays.  Swap match_dup operands
22099         6 and 7 to better fit into the array.
22100
22101 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
22102
22103         * config/i386/i386.c (sse_builtin_type): New.
22104         (bdesc_sse_args): Likewise.
22105         (bdesc_sse_3arg): Removed.
22106         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
22107         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
22108         IX86_BUILTIN_ROUNDPS.
22109         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
22110         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
22111         IX86_BUILTIN_ROUNDPS.
22112         (ix86_expand_sse_4_operands_builtin): Removed.
22113         (ix86_expand_sse_operands_builtin): New.
22114         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
22115         and CODE_FOR_sse4_1_roundps.
22116         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
22117         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
22118
22119 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
22120
22121         PR target/35907
22122         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
22123         regs before frame pop when needed.  If use_backchain_to_restore_sp
22124         then load backchain into a temp reg to restore vr and vrsave.  Add
22125         code to restore vr after frame pop if possible.
22126
22127 2008-04-17  Richard Guenther  <rguenther@suse.de>
22128
22129         * tree-vn.c (expressions_equal_p): Do not check type
22130         equality or compatibility before calling operand_equal_p.
22131         * fold-const.c (operand_equal_p): Check equivalence of
22132         integer constants before bailing out due to signedness or
22133         precision differences.
22134         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
22135         spurious differences in type qualification.  Ignore types
22136         for COMPONENT_REFs at all.
22137
22138 2008-04-17  Christian Bruel  <christian.bruel@st.com>
22139
22140         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
22141         msw_skip comparison.
22142
22143 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
22144
22145         PR c/35739
22146         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
22147         reg type.
22148
22149         PR tree-optimization/35899
22150         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
22151         rather than TREE_OPERAND.
22152
22153 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
22154
22155         PR target/35944
22156         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
22157         temporary registers.  Change operand predicate to general_operand.
22158         (remainderxf3): Ditto.
22159
22160 2008-04-16  Richard Guenther  <rguenther@suse.de>
22161
22162         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
22163         * tree-affine.c (aff_combination_expand): Look through some
22164         conversions.
22165
22166 2008-04-15  Doug Kwan  <dougkwan@google.com>
22167
22168         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
22169         for hex printing.
22170         * tree-pretty-print.c (dump_generic_node): Ditto.
22171         * final.c (output_addr_const): Ditto.
22172         * dwarf2out.c (output_cfi): Ditto.
22173         * c-pretty-print.c (pp_c_integer_constant): Ditto.
22174         * print-rtl.c (print_rtx): Ditto.
22175         * print-tree.c (print_node_brief, print_node): Ditto.
22176         * c-common.c (match_case_to_enum_1): Ditto.
22177         * sched-vis.c (print_value): Ditto.
22178         * config/i386/i386.c (print_operand): Cast to long unsigned int
22179         for hex printing.
22180
22181 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
22182         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
22183         MS Windows VirtualProtect function.
22184
22185 2008-04-15  Jan Hubicka  <jh@suse.cz>
22186
22187         * gengtype.c (write_root): Param_is argument is OK.
22188         * expr.c (expand_expr_real_1): Update call of get_exception_*.
22189         * function.h: Include varray.h
22190         (rtl_eh): New stucture based on except.c one.
22191         (call_site_record): New forward declaration and vector type.
22192         * calls.c (emit_call_1): Do not call
22193         note_current_region_may_contain_throw.
22194         * except.c (eh_status): Remove cur_region, try_region since they are
22195         unused.
22196         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
22197         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22198         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
22199         Remove call_site_data_used, call_site_data_size.
22200         Turn call_site_record into vector in function.h.
22201         (note_current_region_may_contain_throw): Remove.
22202         (get_exception_pointer, get_exception_filter): Do not take struct
22203         function argument; update.
22204         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
22205         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
22206         build_post_landing_pads, dw2_build_landing_pads,
22207         sjlj_assign_call_site_values, sjlj_mark_call_sites,
22208         sjlj_emit_function_enter, sjlj_emit_function_enter,
22209         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
22210         sjlj_build_landing_pads, finish_eh_generation,
22211         remove_exception_handler_label, remove_eh_handler,
22212         maybe_remove_eh_handler, add_reachable_handler,
22213         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
22214         add_action_record, collect_one_action_chain, add_call_site,
22215         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
22216         sjlj_output_call_site_table, output_function_exception_table,
22217         * except.h (note_current_region_may_contain_throw): Remove
22218         (get_exception_pointer, get_exception_filter): Do not take struct
22219         function argument.
22220         * Makefile.in (GTFILES): Put varargs before struct function.
22221
22222 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
22223
22224         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
22225         punt for STRING_CST.
22226         (get_constraint_for): Deal with STRING_CST here instead.
22227
22228 2008-04-15  Richard Guenther  <rguenther@suse.de>
22229
22230         * tree-ssa-propagate.c (substitute_and_fold): Substitute
22231         statements in a basic-block with a backward walk.  Do not
22232         substitute into dead statements but instead remove those.
22233
22234 2008-04-15  Richard Guenther  <rguenther@suse.de>
22235
22236         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
22237         to zero, thus disable creation of SFTs.
22238
22239 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
22240
22241         * tree-predcom.c (suitable_reference_p): Return false if the
22242         reference can throw.
22243
22244 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
22245
22246         PR c/35751
22247         * c-decl.c (finish_decl): If extern or static var has variable
22248         size, set TREE_TYPE (decl) to error_mark_node.
22249
22250 2008-04-15  Rafael Espíndola  <espindola@google.com>
22251
22252         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
22253         variable arg1.
22254
22255 2008-04-15  Richard Guenther  <rguenther@suse.de>
22256
22257         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
22258         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
22259         (visit_reference_op_load): Do walk vuse-vdef chains on
22260         vn_reference_lookup.
22261         (visit_reference_op_store): But do not here.
22262         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
22263         vn_reference_lookup.
22264         (vn_lookup_with_vuses): But do so here.
22265
22266 2008-04-14  Ian Lance Taylor  <iant@google.com>
22267
22268         * fold-const.c (fold_overflow_warning): Remove assertion.
22269
22270 2008-04-15  Ben Elliston  <bje@au.ibm.com>
22271
22272         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
22273         temp1 local variables.
22274
22275 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
22276
22277         PR target/35661
22278         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
22279         ".text.unlikely" section as executable.
22280
22281 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
22282
22283         * config/ia64/ia64.c (rtx_needs_barrier): Handle
22284         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
22285         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
22286         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
22287         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
22288         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
22289         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
22290
22291 2008-04-14  Ian Lance Taylor  <iant@google.com>
22292
22293         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
22294         * fold-const.c (fold_comparison): If appropriate, test
22295         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
22296         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
22297         reassociating a pointer type.
22298         * doc/invoke.texi (Optimize Options): Document that
22299         -fstrict-overflow applies to pointer wraparound.
22300
22301 2008-04-13  Jan Hubicka  <jh@suse.cz>
22302
22303         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
22304
22305 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
22306
22307         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
22308         we are going to "save the world".
22309
22310 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
22311
22312         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
22313         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
22314         operand 0 constraint, not "=".
22315
22316 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
22317
22318         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
22319
22320 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
22321
22322         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
22323         of size of positions_needed * CHAR_BIT.
22324
22325 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
22326
22327         PR middle-end/35897
22328         * dse.c (store_info): Change positions_needed to unsigned
22329         HOST_WIDE_INT.
22330         (lowpart_bitmask): New.
22331         (record_store): Cast to unsigned HOST_WIDE_INT for
22332         positions_needed.  Assert width <= size of positions_needed *
22333         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
22334         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
22335         lowpart_bitmask to set mask.
22336
22337 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
22338
22339         * config/bfin/constraints.md: New file.
22340         * config/bfin/bfin.md: Include it.
22341         (adddi3): Use satisfies_constraint functions instead of the old macros.
22342         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
22343         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
22344         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
22345         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
22346         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
22347         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
22348         EXTRA_CONSTRAINT): Delete.
22349         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
22350         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
22351         of the old macros.
22352         * config/bfin/bfin.c: Include "tm-constrs.h".
22353         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
22354         Use satisfies_constraint functions instead of the old macros.
22355         * doc/md.texi (Blackfin Constraints): Update file name reference.
22356
22357 2008-04-11  Richard Guenther  <rguenther@suse.de>
22358
22359         PR tree-optimization/35869
22360         * tree-vrp.c (execute_vrp): Move switch statement update after
22361         jump threading.  Schedule another cfg cleanup run.
22362
22363 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
22364
22365         PR c/35744
22366         * attribs.c (decl_attributes): Return early on errorneous node.
22367
22368 2008-04-10  Oleg Ryjkov  <olegr@google.com>
22369
22370         * tree.h (struct tree_base): Added a new flag default_def_flag.
22371         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
22372
22373 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
22374
22375         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
22376
22377 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22378
22379         PR target/35768
22380         * pa.md: Define mode iterator P.  Define mode attribute dwc.
22381         (dcacheflush): Update pattern to use iterator P and attribute dwc.
22382         (icacheflush): Likewise.
22383         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
22384         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
22385
22386 2008-04-11  Ben Elliston  <bje@au.ibm.com>
22387
22388         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
22389
22390 2008-04-10  Rafael Espíndola  <espindola@google.com>
22391
22392         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
22393         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
22394         (extract_range_from_expr): The same.
22395
22396 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
22397
22398         * config/mips/mips.md (GPR2): New mode iterator.
22399         (seq): Add comment.
22400         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
22401         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
22402         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
22403         Rewrite these to take two modes, the mode of comparison and the
22404         mode of the destination.
22405         * config/mips/mips.c (mips_expand_scc): Instead of having
22406         paradoxical subreg as destination, expand "narrowing" scc if mode
22407         of comparison is SI and target is requested in DI mode.
22408         (mips_emit_int_order_test): Update comment.  Make mode of
22409         comparison match CMP0 rather than TARGET.  When creating inverse
22410         target use mode of TARGET.
22411
22412 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
22413
22414         * gcov-dump.c (tag_summary): Only print summaries for the first
22415         GCOV_COUNTERS_SUMMABLE counters.
22416
22417 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
22418
22419         * config/i386/i386.md (absneg): New code iterator.
22420         (absnegprefix): New code attribute.
22421         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
22422         patterns using absneg code iterator.
22423         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
22424         using absneg code iterator.
22425         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
22426         *neg<mode>2 patterns using absneg code iterator.
22427         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22428         *negextendsfdf2 patterns using absneg code iterator.
22429         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
22430         *negextendsfxf2 patterns using absneg code iterator.
22431         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22432         *negextendsfdf2 patterns using absneg code iterator.
22433         * config/i386/sse.md (<code><mode>2): Macroize expander from
22434         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
22435
22436 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
22437
22438         * config/s390/s390.h: Remove the remains of the recent search
22439         & replace action of current_function_outgoing_args_size.
22440
22441 2008-04-10  Ira Rosen  <irar@il.ibm.com>
22442
22443         PR tree-optimization/35821
22444         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
22445         NEW_STMT_LIST is not NULL.
22446
22447 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
22448
22449         PR libstdc++/35597
22450         * toplev.c (process_options): Remove -ffunction-sections debugging
22451         warning.
22452
22453 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
22454
22455         PR middle-end/PR28690
22456         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
22457         than gen_rtx_fmt_ee to perform more canonicalizations.
22458
22459 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22460
22461         PR driver/35665
22462         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
22463
22464 2008-04-09  Richard Guenther  <rguenther@suse.de>
22465
22466         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
22467         (dump_function_to_file): Dump function arguments with types.
22468
22469 2008-04-08  Richard Guenther  <rguenther@suse.de>
22470
22471         * fold-const.c (fold_widened_comparison): Do not allow
22472         sign-changes that change the result.
22473
22474 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
22475
22476         PR target/35839
22477         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
22478         kinds of indirect references.
22479
22480 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
22481
22482         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
22483         GNU Fortran language string.
22484
22485 2008-04-08  Rafael Espíndola  <espindola@google.com>
22486
22487         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
22488         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
22489         * tree.h (tree_call_nonnegative_warnv_p): New.
22490
22491 2008-04-08  Jan Hubicka  <jh@suse.cz>
22492
22493         * function.c (free_after_compilation): Clear out regno_reg_rtx
22494         pointer.
22495
22496 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
22497
22498         Revert
22499         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
22500
22501         PR middle-end/PR28690
22502         * rtlanal.c (commutative_operand_precedence): Give SYMBOL_REF's the
22503         same precedence as REG_POINTER and MEM_POINTER operands.
22504
22505 2008-04-08  Richard Guenther  <rguenther@suse.de>
22506
22507         PR middle-end/35834
22508         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
22509         for adding index to base.
22510
22511 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
22512
22513         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
22514         (MINGW_ENABLE_EXECUTE_STACK): New.
22515         (IN_LIBGCC2): For libgcc include windows.h file for
22516         function declarations.
22517
22518 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
22519
22520         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
22521         and tem2 if tem1 is not a REG or MULT.
22522
22523 2008-04-08  Jan Hubicka  <jh@suse.cz>
22524
22525         * function.h (incomming_args): Break out of struct function.
22526         (function_subsections): Break out of struct function.
22527         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
22528         return_rtx and hard_reg_initial_vals from struct function.
22529         Kill inl_max_label_num.
22530         (current_function_pops_args, current_function_args_info,
22531         current_function_args_size, current_function_args_size,
22532         current_function_pretend_args_size,
22533         current_function_outgoing_args_size,
22534         current_function_internal_arg_pointer, current_function_return_rtx):
22535         Kill compatibility accestor macros.
22536         * builtins.c (expand_builtin_apply_args_1): Update.
22537         (expand_builtin_next_arg): Update.
22538         * df-scan.c (df_get_call_refs): Update.
22539         * dbxout.c (dbxout_function_end): Update.
22540         * dwarf2out.c (dwarf2out_switch_text_section): Update.
22541         (output_line_info): Update.
22542         (secname_for_decl): Update.
22543         (dwarf2out_var_location): Update.
22544         * function.c (free_after_compilation): Update.
22545         (assign_parm_find_stack_rtl): Update.
22546         (assign_parms): Update.
22547         (expand_dummy_function_end): Update.
22548         (expand_function_end): Update.
22549         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
22550         (expand_call): Update.
22551         (emit_library_call_value_1): Update.
22552         (store_one_arg): Update.
22553         * varasm.c (initialize_cold_section_name): Update.
22554         (unlikely_text_section): Update.
22555         (unlikely_text_section_p): Update.
22556         (assemble_start_function): Update.
22557         (assemble_end_function): Update.
22558         (default_section_type_flags): Update.
22559         (switch_to_section): Update.
22560         * integrate.c (set_decl_abstract_flags): Update.
22561         (get_hard_reg_initial_val): Update.
22562         (has_hard_reg_initial_val): Update.
22563         (allocate_initial_values): Update.
22564         * resource.c (init_resource_info): Update.
22565         * config/alpha/alpha.c (NUM_ARGS): Update.
22566         (direct_return): Update.
22567         (alpha_va_start): Update.
22568         (alpha_sa_size): Update.
22569         (alpha_initial_elimination_offset): Update.
22570         (alpha_expand_prologue): Update.
22571         (alpha_start_function): Update.
22572         (alpha_expand_epilogue): Update.
22573         (unicosmk_initial_elimination_offset):
22574         * config/alpha/alpha.md (call expander): Update.
22575         * config/s390/s390.c (s390_register_info): Update.
22576         (s390_register_info): Update.
22577         (s390_frame_info): Update.
22578         (s390_initial_elimination_offset): Update.
22579         (s390_build_builtin_va_list): Update.
22580         (s390_va_start): Update.
22581         * config/spu/spu.c (direct_return): Update.
22582         (spu_expand_prologue): Update.
22583         (spu_initial_elimination_offset): Update.
22584         (spu_build_builtin_va_list): Update.
22585         (spu_va_start): Update.
22586         * config/sparc/sparc.c (sparc_init_modes): Update.
22587         (sparc_compute_frame_size): Update.
22588         (function_value): Update.
22589         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
22590         * config/i386/i386.md (return expander): Update.
22591         * config/i386/i386.c (ix86_va_start): Update.
22592         (ix86_can_use_return_insn_p): Update.
22593         (ix86_compute_frame_layout): Update.
22594         (ix86_expand_epilogue): Update.
22595         * config/sh/sh.c (output_stack_adjust): Update.
22596         (calc_live_regs): Update.
22597         (sh_expand_prologue): Update.
22598         (sh_builtin_saveregs): Update.
22599         (sh_va_start): Update.
22600         (initial_elimination_offset): Update.
22601         (sh_allocate_initial_value): Update.
22602         (sh_function_ok_for_sibcall): Update.
22603         (sh_get_pr_initial_val): Update.
22604         * config/sh/sh.md (return expander): Update.
22605         * config/avr/avr.c (frame_pointer_required_p): UPdate.
22606         * config/crx/crx.c (crx_compute_frame): UPdate.
22607         (crx_initial_elimination_offset): UPdate.
22608         * config/xtensa/xtensa.c (compute_frame_size): Update
22609         (xtensa_builtin_saveregs): Update.
22610         (xtensa_va_start): Update.
22611         (order_regs_for_local_alloc): Update.
22612         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
22613         (xstormy16_expand_builtin_va_start): Update.
22614         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
22615         * config/m68hc11/m68hc11.md (return expanders): Update.
22616         * config/m68hc11/m68hc11.c (expand_prologue): Update.
22617         (expand_epilogue): Update.
22618         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
22619         (cris_simple_epilogue): Update.
22620         (cris_expand_prologue): Update.
22621         (cris_expand_epilogue): Update.
22622         * config/iq2000/iq2000.c (iq2000_va_start): Update.
22623         (compute_frame_size): Update.
22624         * config/mt/mt.c (mt_compute_frame_size): Update.
22625         * config/mn10300/mn10300.c (expand_prologue): Update.
22626         (expand_epilogue): Update.
22627         (initial_offset): Update.
22628         (mn10300_builtin_saveregs):
22629         * config/mn10300/mn10300.md (return expander): Update.
22630         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
22631         (ia64_initial_elimination_offset): Update.
22632         (ia64_initial_elimination_offset): Update.
22633         (ia64_expand_prologue): Update.
22634         * config/m68k/m68k.md (return expander): Update.
22635         * config/rs6000/rs6000.c (rs6000_va_start): Update.
22636         (rs6000_stack_info): Update.
22637         * config/mcore/mcore.c (layout_mcore_frame): Update.
22638         (mcore_expand_prolog): Update.
22639         * config/arc/arc.c (arc_compute_frame_size): Update.
22640         * config/score/score3.c (score3_compute_frame_size): Update.
22641         * config/score/score7.c (score7_compute_frame_size): Update.
22642         * config/arm/arm.c (use_return_insn): Update.
22643         (thumb_find_work_register): Update.
22644         (arm_compute_save_reg_mask): Update.
22645         (arm_output_function_prologue): Update.
22646         (arm_output_epilogue): Update.
22647         (arm_size_return_regs): Update.
22648         (arm_get_frame_offsets): Update.
22649         (arm_expand_prologue): Update.
22650         (thumb_exit): Update.
22651         (thumb_unexpanded_epilogue): Update.
22652         (thumb1_output_function_prologue): Update.
22653         * config/pa/pa.md (return expander): Update.
22654         * config/pa/pa.c (compute_frame_size): Update.
22655         (hppa_builtin_saveregs): Update.
22656         * config/mips/mips.c (mips_va_start): Update.
22657         (mips16_build_function_stub): Update.
22658         (mips_compute_frame_info): Update.
22659         (mips_restore_gp): Update.
22660         (mips_output_function_prologue): Update.
22661         (mips_expand_prologue): Update.
22662         * config/v850/v850.c (compute_frame_size): Update.
22663         (expand_prologue): * config/mmix/mmix.c (along): update.
22664         (mmix_initial_elimination_offset): update.
22665         (mmix_reorg): update.
22666         (mmix_use_simple_return): update.
22667         (mmix_expand_prologue): update.
22668         (mmix_expand_epilogue): Update.
22669         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
22670         (emit_link_insn): Update.
22671
22672 2008-04-08  Anatoly Sokolov <aesok@post.ru>
22673
22674         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
22675         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
22676         instructions.
22677         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
22678         atmega103 device.
22679
22680 2008-04-07  Jan Hubicka  <jh@suse.cz>
22681
22682         * function.h (rtl): Rename to x_rtl.
22683         (crtl): New define.
22684         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
22685         frame_offset, stack_check_probe_note, arg_pointer_save_area,
22686         used_temp_slots avail_temp_slots, temp_slot_level,
22687         nonlocal_goto_handler_labels): Update accesstors.
22688         (rtl): New global variable.
22689         (struct function): Move some fileds to rtl_data.
22690         (get_arg_pointer_save_area): Update prototype.
22691         * builtins.c (expand_builtin_setjmp_receiver): Update call of
22692         get_arg_pointer_save_area.
22693         * expr.c (init_expr): Update
22694         * function.c (get_frame_size): Update
22695         (assign_stack_local): Update
22696         (expand_function_end): Update.
22697         (get_art_pointer_save_area): Update
22698         * function.h
22699         * emit-rtl.c (rtl): Declare.
22700         (regno_reg_rtx): Declare.
22701         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
22702         Update.
22703         (gen_reg_rtx): Update.
22704         * varasm.c (n_deferred_constatns): Update accestor.
22705         (init_varasm_status): Do not allocate varasm_status.
22706         (force_const_mem, get_pool_size, output_constant_pool): Update.
22707         * stmt.c (force_label_rtx): Do not use x_ prefixes.
22708         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
22709         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
22710         * sparc/sparc.h (INIT_EXPANDERS): Update.
22711         * ia64/ia64.h (INIT_EXPANDERS): Update.
22712
22713 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
22714
22715         * reload.c (push_secondary_reload): Add missing break to for loop.
22716
22717 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
22718
22719         PR middle-end/PR28690
22720         * rtlanal.c: Update copyright years.
22721         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
22722         as REG_POINTER and MEM_POINTER operands.
22723         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
22724         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
22725         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
22726         * gcse.c: Update copyright years.
22727         (pre_delete): Call gen_reg_rtx_and_attrs.
22728         (hoist_code): Likewise.
22729         (build_store_vectors): Likewise.
22730         (delete_store): Likewise.
22731         * loop-invariant.c (move_invariant_reg): Likewise.
22732         Update copyright years.
22733
22734 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
22735
22736         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
22737         control string instead of quoted.
22738
22739 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
22740
22741         * doc/rtl.texi: Rewrite of subreg section.
22742
22743 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
22744
22745         PR/35842
22746         * config/i386/i386.c (legitimize_pic_address): Add treating
22747         of dllimport SYM_REF's.
22748         (legitimize_dllimport_symbol): Add prototype.
22749
22750 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22751
22752         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
22753         reference in constructor with non self-referential type.
22754
22755 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22756
22757         Removal of Return with Depressed Stack Pointer support
22758         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
22759         (ECF_SP_DEPRESSED): Likewise.
22760         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
22761         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
22762         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22763         (expand_call): Do not test ECF_SP_DEPRESSED.
22764         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22765         * function.c (keep_stack_depressed): Delete.
22766         (handle_epilogue_set): Likewise.
22767         (update_epilogue_consts): Likewise.
22768         (emit_equiv_load): Likewise.
22769         (thread_prologue_and_epilogue_insns): Remove support for Return with
22770         Depressed Stack Pointer.
22771         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22772
22773 2008-04-06  Richard Guenther  <rguenther@suse.de>
22774
22775         PR tree-optimization/35400
22776         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
22777         information from SSA_NAMEs.
22778
22779 2008-04-06  Anatoly Sokolov <aesok@post.ru>
22780
22781         * config/avr/avr.h (avr_mega_p): Remove declaration.
22782         (AVR_MEGA): Remove macro.
22783         * config/avr/avr.c (avr_mega_p): Remove variable.
22784         (avr_override_options): Remove inicializion of avr_mega_p.
22785         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22786         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22787         (avr_jump_mode): (Ditto.).
22788         (avr_output_progmem_section_asm_op): (Ditto.).
22789         (avr_asm_init_sections): (Ditto.).
22790         (avr_asm_init_sections): (Ditto.).
22791         (avr_rtx_costs): (Ditto.).
22792         * config/avr/avr.md: (Ditto.).
22793         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
22794         '__AVR_MEGA__'.
22795
22796 2008-04-06  Richard Guenther  <rguenther@suse.de>
22797
22798         PR tree-optimization/35842
22799         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
22800         is_gimple_invariant_address.
22801
22802 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
22803
22804         * gcc.c (default_compilers): Sync Fortran extensions list with
22805         that in fortran/lang-specs.h.
22806         * doc/invoke.texi: Likewise.
22807         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
22808         * dwarf2out.c (gen_compile_unit_die): Likewise.
22809
22810 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
22811
22812         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
22813
22814 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
22815
22816         PR target/12329
22817         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
22818         attribute is used for nested functions.
22819
22820 2008-04-05  Jan Hubicka  <jh@suse.cz>
22821
22822         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
22823
22824         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
22825         letter argument.
22826         (dump_files): Update.
22827         (enable_rtl_dump_file): Do not accept letter argument.
22828         * tree-pass.h (dump_file_info): Remove letter argument.
22829         * toplev.c (decode_d_option): Update -da handling.
22830         * toplev.h (enable_rtl_dump_file): Update prototype.
22831         * passes.c (register_one_dump_file): Do not accept IPA argument; work
22832         it out based on pass type.
22833         (register_dump_files_1): Likewise.
22834         (init_optimization_passes): Update register_one_dump_file calls.
22835         (execute_one_pass): Sanity check that IPA passes are called at IPA
22836         level and RTL passes at RTL level.
22837         (execute_pass_list): IPA pass can not be after or subpass of
22838         GIMPLE/RTL pass.
22839         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
22840         disallov RTL subpasses of IPA subpasses.
22841
22842 2008-04-05  Ben Elliston  <bje@au.ibm.com>
22843
22844         * tree-cfg.c (need_fake_edge_p): Return false for calls to
22845         builtins that return exactly once and do not throw. Cache call to
22846         call_expr_flags.
22847
22848 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
22849
22850         PR rtl-optimization/34916
22851         PR middle-end/35519
22852         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
22853         between instruction pairs.
22854
22855 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
22856
22857         * doc/invoke.texi: Document -mbitops for SH.
22858         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
22859         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
22860         * config/sh/sh.c (print_operand): Add %t operand code.
22861         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
22862         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
22863         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
22864         (extendqihi2): Likewise.
22865         (movqi_i): Likewise.
22866         (insv): Use bset, bclr and bst instructions for SH2A if possible.
22867         (extv): Use bld instruction for SH2A if possible.
22868         (extzv): Likewise.
22869         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
22870         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
22871         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
22872         (bset.b, bclr.b): Define peepholes.
22873         * config/sh/sh.opt (mbitops): New option.
22874
22875 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
22876
22877         PR target/35620
22878         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
22879         and view convert expression.
22880
22881 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
22882
22883         PR target/35364
22884         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
22885
22886 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
22887
22888         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
22889
22890         * config/i386/cpuid.h (bit_AES): New.
22891         (bit_PCLMUL): Likewise.
22892
22893         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
22894         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
22895         SSE2 if AES or PCLMUL is enabled.
22896         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
22897         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22898         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
22899         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
22900         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
22901         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
22902         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22903         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
22904         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
22905         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
22906         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
22907         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
22908         __builtin_ia32_aeskeygenassist128 and
22909         __builtin_ia32_pclmulqdq128.
22910         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
22911         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
22912         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
22913
22914         * config/i386/i386.h (TARGET_AES): New.
22915         (TARGET_PCLMUL): Likewise.
22916         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
22917
22918         * config/i386/i386.md (UNSPEC_AESENC): New.
22919         (UNSPEC_AESENCLAST): Likewise.
22920         (UNSPEC_AESDEC): Likewise.
22921         (UNSPEC_AESDECLAST): Likewise.
22922         (UNSPEC_AESIMC): Likewise.
22923         (UNSPEC_AESKEYGENASSIST): Likewise.
22924         (UNSPEC_PCLMUL): Likewise.
22925
22926         * config/i386/i386.opt (maes): New.
22927         (mpclmul): Likewise.
22928
22929         * config/i386/sse.md (aesenc): New pattern.
22930         (aesenclast): Likewise.
22931         (aesdec): Likewise.
22932         (aesdeclast): Likewise.
22933         (aesimc): Likewise.
22934         (aeskeygenassist): Likewise.
22935         (pclmulqdq): Likewise.
22936
22937         * config/i386/wmmintrin.h: New.
22938
22939         * doc/extend.texi: Document AES and PCLMUL built-in function.
22940
22941         * doc/invoke.texi: Document -maes and -mpclmul.
22942
22943 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
22944
22945         * function.c (free_after_parsing): Replace with
22946         cxx_push_function_context from C++ front-end.
22947         (allocate_struct_function): Don't call langhook.
22948         * langhooks.h (struct lang_hooks_for_functions): Delete.
22949         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
22950         member "function".
22951         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
22952         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
22953         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
22954         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
22955         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
22956         remove LANG_HOOKS_FUNCTION_INITIALIZER.
22957         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
22958
22959         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
22960         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22961
22962 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
22963
22964         PR c/35440
22965         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
22966         for all types.
22967
22968 2008-04-04  Richard Guenther  <rguenther@suse.de>
22969
22970         PR middle-end/35823
22971         * fold-const.c (optimize_minmax_comparison): Use the correct
22972         type for the constant in the simplified comparison.
22973
22974 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
22975
22976         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
22977         Pass L2 size as "--param l2-cache-size" to the compiler.
22978         (decode_l2_cache): New function to decode L2 cache parameters using
22979         0x8000006 extended cpuid function.
22980         (detect_caches_amd): Determine parameters of L2 cache using
22981         decode_l2_caches function.
22982         (decode_caches_intel): Decode L2 cache parameters.
22983         (detect_caches_intel): Determine L2 cache parameters using
22984         decode_caches_intel and decode_l2_caches functions.
22985
22986 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
22987
22988         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
22989         secondary input reload for subword loads from the constant pool.
22990
22991 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
22992
22993         PR target/35713
22994         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
22995           constants of the appropriate size for runtime calculations.
22996
22997         PR c/35712
22998         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
22999           decimal-float literal constant zero.
23000
23001 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
23002
23003         PR c/35738
23004         * c-parser.c (c_parser_omp_atomic): Call
23005         default_function_array_conversion on the RHS.
23006
23007         PR middle-end/35818
23008         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
23009         call is_variable_sized if decl has incomplete type.
23010
23011 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
23012
23013         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
23014
23015 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
23016
23017         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
23018         iterators.
23019         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
23020         (sgt<u>): Merge sgt and sgtu into new expander.
23021         (sgt, sgtu): Remove expanders.
23022         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
23023         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
23024         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
23025         *sgtu_<mode>_mips16 into new pattern.
23026         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
23027         (sge<u>): Merge sge and sgeu into new expander.
23028         (sge, sgeu): Remove expanders.
23029         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
23030         new pattern.
23031         (*sge_<mode>, second *sge_<mode>): Remove patterns.
23032         (slt<u>): Merge slt and sltu into new expander.
23033         (slt, sltu): Remove expanders.
23034         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
23035         (*slt_<mode>, *sltu_<mode>): Remove patterns.
23036         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
23037         *sltu_<mode>_mips16 into new pattern.
23038         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
23039         (sle<u>): Merge sle and sleu into new expander.
23040         (sle, sleu): Remove expanders.
23041         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
23042         (*sle_<mode>, *sleu_<mode>): Remove patterns.
23043         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
23044         *sleu_<mode>_mips16 into new pattern.
23045         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
23046
23047 2008-04-03  Jan Hubicka  <jh@suse.cz>
23048
23049         PR tree-optimization/35795
23050         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
23051         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
23052         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
23053         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
23054         * score/score3.c (score3_output_mi_thunk): Likewise.
23055         * score/score7.c (score7_output_mi_thunk): Likewise.
23056         * mips/mips.c (mips_output_mi_thunk): Likewise.
23057
23058 2008-04-03  Richard Guenther  <rguenther@suse.de>
23059
23060         * tree-vrp.c (extract_range_from_unary_expr): Handle all
23061         conversions.  Simplify code.
23062
23063 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
23064
23065         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
23066
23067 2008-04-03  Tom Tromey  <tromey@redhat.com>
23068             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23069
23070         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
23071         * config/bfin/t-bfin-linux (generated_files): Add
23072         linux-sysroot-suffix.h.
23073         * doc/install.texi (Prerequisites): Require make 3.80.
23074         * doc/sourcebuild.texi (Front End Directory): Document new
23075         variable.
23076         * Makefile.in (generated_files): New variable.
23077         (ALL_HOST_OBJS): New variable.
23078         ($(ALL_HOST_OBJS)): New target.
23079
23080 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
23081
23082         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
23083         (remap_block): Call id->transform_lang_insert_block instead
23084         of langhook.
23085         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
23086         Set id.transform_lang_insert_block to NULL.
23087         (clone_body): Move to cp/optimize.c
23088         * tree-inline.h (struct copy_body_data): Change
23089         transform_lang_insert_block to function pointer.
23090         (copy_generic_body, copy_decl_no_change): Export.
23091         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
23092         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
23093         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
23094
23095         * c-tree.h (insert_block): Kill.
23096         * c-decl.c (insert_block): Kill.
23097
23098 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
23099
23100         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
23101         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
23102         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
23103         argument.
23104         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
23105         argument, call {push,pop}_function_context from here.
23106         * c-parser.c: Use c_{push,pop}_function_context.
23107
23108         * function.c (push_function_context_to): Move meat ...
23109         (push_function_context): ... here.  Simplify.
23110         * function.c (pop_function_context_from): Move meat ...
23111         (pop_function_context): ... here.  Simplify.
23112         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
23113         leave_nested).
23114         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
23115         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
23116         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
23117         * tree.h (push_function_context_to, pop_function_context_from): Remove.
23118
23119 2008-04-03  Ben Elliston  <bje@au.ibm.com>
23120
23121         * expmed.c (extract_force_align_mem_bit_field): Remove.
23122
23123 2008-04-03  Richard Guenther  <rguenther@suse.de>
23124
23125         PR middle-end/35800
23126         * expr.h (try_casesi): Adjust prototype.
23127         * expr.c (try_casesi): Take fallback label as extra parameter.
23128         Use that for gen_casesi if default_label is NULL.
23129         * stmt.c (expand_case): Pass fallback label to try_casesi,
23130         make sure to fill gaps with a fallback label if default_label
23131         is not present.
23132
23133 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
23134
23135         PR target/35801
23136         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
23137
23138 2008-04-03  Ben Elliston  <bje@au.ibm.com>
23139
23140         * expmed.c (extract_split_bit_field): Remove if (0) code.
23141         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
23142         (do_ds_constraint): Likewise.
23143
23144 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
23145
23146         * doc/cppopts.texi (-dU): Document.
23147         * c-common.h (flag_dump_macros): Update comment.
23148         * c-opts.c (handle_OPT_d): Handle -dU.
23149         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
23150         dump_queued_macros, cb_used_define, cb_used_undef): New.
23151         (init_pp_output): Handle -dU.
23152         (cb_line_change): Call dump_queued_macros.
23153         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
23154
23155 2008-04-02  Anatoly Sokolov <aesok@post.ru>
23156
23157         * config/avr/predicates.md (io_address_operand): New predicate.
23158         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
23159         * config/avr/avr.c (avr_io_address_p): Remove function.
23160         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
23161         'avr_io_address_p' function.
23162         (out_movhi_r_mr): (Ditto.).
23163         (out_movqi_mr_r): (Ditto.).
23164         (out_movhi_mr_r): (Ditto.).
23165         (avr_address_cost): (Ditto.).
23166
23167 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
23168
23169         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
23170         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
23171         in 32bit mode when XMM registers are available to avoid store
23172         forwarding stalls.
23173         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
23174         corresponding post-reload splitters.
23175
23176 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
23177
23178         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
23179         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
23180         __builtin_ia32_roundss.
23181         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
23182         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
23183         __builtin_ia32_roundss.
23184         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
23185         IX86_BUILTIN_SHUFPD here.
23186
23187 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
23188
23189         * config/i386/i386.md (plogic): New.
23190         (plogicprefix): Likewise.
23191
23192         * config/i386/mmx.md (mmx_<code><mode>3): New.
23193         (mmx_and<mode>3): Removed.
23194         (mmx_ior<mode>3): Likewise.
23195         (mmx_xor<mode>3): Likewise.
23196
23197         * config/i386/sse.md (<code><mode>3): New.
23198         (*<code><mode>3): Likewise.
23199         (*<code><mode>3): Likewise.
23200         (<code><mode>3): Likewise.
23201         (*sse_<code><mode>3): Likewise.
23202         (*sse2_<code><mode>3): Likewise.
23203         (<code>tf3): Likewise.
23204         (*<code>tf3): Likewise.
23205         (and<mode>3): Likewise.
23206         (*and<mode>3): Likewise.
23207         (ior<mode>3): Removed.
23208         (*ior<mode>3): Likewise.
23209         (xor<mode>3): Likewise.
23210         (*xor<mode>3): Likewise.
23211         (*and<mode>3): Likewise.
23212         (*ior<mode>3): Likewise.
23213         (*xor<mode>3): Likewise.
23214         (and<mode>3): Likewise.
23215         (*sse_and<mode>3): Likewise.
23216         (*sse2_and<mode>3): Likewise.
23217         (andtf3): Likewise.
23218         (*andtf3): Likewise.
23219         (ior<mode>3): Likewise.
23220         (*sse_ior<mode>3): Likewise.
23221         (*sse2_ior<mode>3): Likewise.
23222         (iortf3): Likewise.
23223         (*iortf3): Likewise.
23224         (xor<mode>3): Likewise.
23225         (*sse_xor<mode>3): Likewise.
23226         (*sse2_xor<mode>3): Likewise.
23227         (xortf3): Likewise.
23228         (*xortf3): Likewise.
23229
23230 2008-04-02  Richard Guenther  <rguenther@suse.de>
23231
23232         PR tree-optimization/14495
23233         PR tree-optimization/34793
23234         * tree-vrp.c (struct switch_update): New structure.
23235         (to_remove_edges, to_update_switch_stmts): New VECs.
23236         (simplify_switch_using_ranges): New function.  Remove not taken
23237         case labels and edges.
23238         (simplify_stmt_using_ranges): Call it.
23239         (identify_jump_threads): Mark edges we have queued for removal
23240         so we don't thread them.
23241         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
23242         case label vector.
23243         * tree-cfg.c (group_case_labels): Deal with missing default label.
23244         (tree_verify_flow_info): Allow missing default label.
23245         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
23246         (emit_case_nodes): Likewise.
23247         (expand_case): Do not rely on the default label to be present.
23248         * expr.c (try_casesi): Deal with NULL default_label.
23249         (do_tablejump): Likewise.
23250
23251 2008-04-02  Richard Guenther  <rguenther@suse.de>
23252
23253         PR tree-optimization/14495
23254         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
23255         SWITCH_EXPR here ...
23256         (vrp_visit_switch_stmt): ... but here (new function).
23257         (find_case_label_index): New helper function.
23258         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
23259
23260 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23261
23262         * fwprop.c: Fix ISO-C99ism.
23263
23264 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23265
23266         PR bootstrap/35752
23267         * Makefile.in (objdir): Set it here.
23268         * configure.ac: Not here.  Find dynamic linker characteristics.
23269         * exec-tool.in: Use them.
23270         * aclocal.m4: Regenerate.
23271         * configure: Regenerate.
23272
23273 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23274
23275         * expr.c (expand_var): Delete it.
23276         * expr.h (expand_var): Delete prototype.
23277         * function.c (expand_function_start): Use expand_decl instead.
23278         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
23279         langhook.
23280
23281 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
23282
23283         PR rtl-optimization/35542
23284         * fwprop.c (forward_propagate_and_simplify): Replace
23285         loc_reg_mentioned_in_p with reg_mentioned_p.
23286
23287 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
23288
23289         PR rtl-optimization/35281
23290         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
23291         (propagate_rtx_1): Handle PR_HANDLE_MEM.
23292         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
23293         (varying_mem_p): Move above propagate_rtx.
23294         (all_uses_available_at): Do not check MEMs.
23295
23296 2008-04-02  Rafael Espíndola  <espindola@google.com>
23297
23298         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
23299         (register_edge_assert_for_2): Split the cond argument.
23300         (register_edge_assert_for_1): Adjust for the change in
23301         register_edge_assert_for_2.
23302         (register_edge_assert_for): Split the cond argument.
23303         (find_switch_asserts): Adjust for the change in
23304         register_edge_assert_for.
23305
23306 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
23307
23308         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
23309         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
23310         offsets for 64-bit mingw.
23311         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
23312         abi for x86_64-pc-mingw.
23313
23314 2008-04-02  Richard Guenther  <rguenther@suse.de>
23315
23316         * tree-vrp.c (extract_range_from_assert): Make sure to not
23317         produce range min/max with TREE_OVERFOW set.
23318         If merging a anti-range and a range keep the anti-range if
23319         the range covers all values of the type.
23320         (register_edge_assert_for_2): Only allow sign-changing
23321         conversions in detecting canonical range checks.  Also
23322         register an assert for the unsigned name if useful.
23323
23324         PR tree-optimization/35787
23325         * tree-vrp.c (vrp_val_max): New function.
23326         (vrp_val_min): Likewise.
23327         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
23328         (vrp_val_is_min): Likewise.
23329         (supports_overflow_infinity): Use vrp_val_{min,max}.
23330         (negative_overflow_infinity): Likewise.
23331         (positive_overflow_infinity): Likewise.
23332         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
23333         (is_positive_overflow_infinity): Likewise.
23334         (is_overflow_infinity): Likewise.
23335         (avoid_overflow_infinity): Use vrp_val_{min,max} and
23336         vrp_val_is_{min,max}.
23337         (set_and_canonicalize_value_range): Canonicalize anti-ranges
23338         to ranges if possible.  Avoid empty ranges.
23339
23340 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23341
23342         PR middle-end/35705
23343         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
23344         the expression is a function address.
23345
23346 2008-04-01  George Helffrich  <george@gcc.gnu.org>
23347
23348         PR fortran/35154, fortran/23057
23349         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
23350         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
23351         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
23352         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
23353         in common.
23354         (dbxout_syms): Check for COMMON-based symbol and wrap in
23355         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
23356         in bracket for efficiency.
23357
23358         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
23359         using DW_TAG_common_block + member offset.
23360         (add_pubname_string): New function.
23361         (dw_expand_expr): New function to find block name and offset for
23362         COMMON var.
23363         (common_check): New function to check whether symbol in Fortran COMMON.
23364         (gen_variable_die): If COMMON, use DW_TAG_common_block.
23365
23366 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
23367
23368         PR c/35436
23369         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
23370
23371 2008-04-02  Ben Elliston  <bje@au.ibm.com>
23372
23373         * config/v850/v850.md (casesi): Remove if (0) code.
23374         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
23375         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
23376
23377 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
23378
23379         * config/i386/i386.md (rex64suffix): New mode attribute.
23380         (floathi<mode>2): Disable expander for SSE math.
23381         (*floathi<mode>2_1): New insn insn_and_split pattern.
23382         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
23383         corresponding post-reload splitters.
23384         (*floathi<mode>2_i387): New macroized insn pattern.
23385         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
23386         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
23387         insn_and_split pattern.
23388         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
23389         New macroized instruction patterns and corresponding post-reload
23390         splitters.
23391         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
23392         and corresponding post-reload splitters.
23393         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
23394         New macroized instruction patterns.
23395         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
23396         macroized instruction patterns and corresponding post-reload splitters.
23397         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
23398         corresponding post-reload splitters.
23399         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
23400         New macroized instruction patterns.
23401         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
23402         corresponding post-reload splitters.
23403         (*floatsi<mode>2_i387): New macroized instruction patterns.
23404
23405 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
23406
23407         * config/i386/i386.md (smaxmin): New.
23408         (umaxmin): Likewise.
23409         (maxminiprefix): Likewise.
23410         (maxminfprefix): Likewise.
23411         (<code><mode>3): Likewise.
23412         (smin<mode>3): Removed.
23413         (smax<mode>3): Likewise.
23414
23415         * config/i386/mmx.md (mmx_<code>v2sf3): New.
23416         (mmx_<code>v4hi3): Likewise.
23417         (mmx_<code>v8qi3): Likewise.
23418         (mmx_smaxv2sf3): Removed.
23419         (mmx_sminv2sf3): Likewise.
23420         (mmx_umaxv8qi3): Likewise.
23421         (mmx_smaxv4hi3): Likewise.
23422         (mmx_uminv8qi3): Likewise.
23423         (mmx_sminv4hi3): Likewise.
23424
23425         * config/i386/sse.md (<addsub><mode>3): New.
23426         (*<addsub><mode>3): Likewise.
23427         (<sse>_vm<addsub><mode>3): Likewise.
23428         (<maxmin><mode>3): Likewise.
23429         (*<maxmin><mode>3_finite): Likewise.
23430         (*<maxmin><mode>3): Likewise.
23431         (<sse>_vm<maxmin><mode>3): Likewise.
23432         (sse3_h<addsub>v4sf3): Likewise.
23433         (sse3_h<addsub>v2df3): Likewise.
23434         (<maxmin>v16qi3): Likewise.
23435         (*<maxmin>v16qi3): Likewise.
23436         (<maxmin>v8hi3): Likewise.
23437         (*<maxmin>v8hi3): Likewise.
23438         (*sse4_1_<maxmin><mode>3): Likewise.
23439         (*sse4_1_<maxmin><mode>3): Likewise.
23440         (add<mode>3): Removed.
23441         (*add<mode>3): Likewise.
23442         (<sse>_vmadd<mode>3): Likewise.
23443         (sub<mode>3): Likewise.
23444         (*sub<mode>3): Likewise.
23445         (<sse>_vmsub<mode>3): Likewise.
23446         (smin<mode>3): Likewise.
23447         (*smin<mode>3_finite): Likewise.
23448         (*smin<mode>3): Likewise.
23449         (<sse>_vmsmin<mode>3): Likewise.
23450         (smax<mode>3): Likewise.
23451         (*smax<mode>3_finite): Likewise.
23452         (*smax<mode>3): Likewise.
23453         (<sse>_vmsmax<mode>3): Likewise.
23454         (sse3_haddv4sf3): Likewise.
23455         (sse3_haddv2df3): Likewise.
23456         (sse3_hsubv4sf3): Likewise.
23457         (sse3_hsubv2df3): Likewise.
23458         (umaxv16qi3): Likewise.
23459         (*umaxv16qi3): Likewise.
23460         (smaxv8hi3): Likewise.
23461         (*smaxv8hi3): Likewise.
23462         (*sse4_1_smax<mode>3): Likewise.
23463         (*sse4_1_umax<mode>3): Likewise.
23464         (uminv16qi3): Likewise.
23465         (*uminv16qi3): Likewise.
23466         (sminv8hi3): Likewise.
23467         (*sminv8hi3): Likewise.
23468         (*sse4_1_smin<mode>3): Likewise.
23469         (*sse4_1_umin<mode>3): Likewise.
23470
23471 2008-04-01  Rafael Espíndola  <espindola@google.com>
23472
23473         * tree-cfg.c (verify_expr): remove in_phi.
23474         (verify_stmt): Don't call walk_tree with verify_expr. Use
23475         is_gimple_min_invariant instead of is_gimple_val.
23476
23477 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
23478
23479         * doc/include/gpl_v3.texi: Update for manpage generation.
23480         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
23481         gpl.texi.
23482         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
23483         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
23484         gpl_v3.texi instead of gpl.texi.
23485         (gpl.pod): New.
23486
23487 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
23488
23489         PR pch/13675
23490         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
23491
23492 2008-04-01  Rafael Espíndola  <espindola@google.com>
23493
23494         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
23495         (extract_code_and_val_from_cond): Use
23496         extract_code_and_val_from_cond_with_ops.
23497
23498 2008-04-01  Jan Hubicka  <jh@suse.cz>
23499
23500         * function.c (free_after_compilation): Free epilogue_delay_list.
23501         (prepare_function_start): Assert that previous compilation was freed.
23502
23503 2008-04-01  Jan Hubicka  <jh@suse.cz>
23504             Jim Wilson  <wilson@tuliptree.org>
23505             Andreas Tobler <andreast@gcc.gnu.org>
23506
23507         PR middle-end/35781
23508         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
23509         rtl.emit instead cfun->emit.
23510         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
23511         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
23512
23513 2008-04-01  Ben Elliston  <bje@au.ibm.com>
23514
23515         * doc/c-tree.texi (Function Basics): Fix grammatical error.
23516
23517 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
23518
23519         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
23520         New options
23521         (fprofile-use): Add var flag_profile_use
23522         * coverage.c (coverage_begin_output): Do not open a gcno file for
23523         output only if -ftest-coverage is set.
23524         Do not add getpwd() to gcda file path.
23525         (build_gcov_info): Check the new flag
23526         flag_profile_datafile_relative_path.
23527         (coverage_init): Use profile_data_prefix.
23528         Read profile counter only if flag_profile_use is set.
23529         * opts.c (common_handle_option): New option fprofile-use=,
23530         fprofile-dir=, fprofile-generate=.
23531         * toplev.c (profile_data_prefix): New variable definition.
23532         * toplev.h (profile_data_prefix): New declaration.
23533         * doc/invoke.tex (Option Summary, Optimization Options):
23534         Add new options.
23535
23536 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
23537
23538         * varasm.c (output_constant_pool_1): In LABEL_REF check,
23539         use tmp consistently.
23540
23541         PR target/35695
23542         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
23543         * config/ia64/ia64.c (rtx_needs_barrier): Handle
23544         UNSPEC_FR_RECIP_APPROX_RES.
23545         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
23546
23547 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
23548
23549         PR c/35750
23550         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
23551
23552 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23553
23554         PR middle-end/30186
23555         * fold-const.c (fold_indirect_ref_1): Support accessing non first
23556         element of the vector via a pointer.
23557
23558 2008-03-31  Ian Lance Taylor  <iant@google.com>
23559
23560         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
23561
23562 2008-03-31  Jan Hubicka  <jh@suse.cz>
23563
23564         * builtins.c (expand_builtin_setjmp_receiver): Update call of
23565         get_arg_pointer_save_area.
23566         * expr.c (init_expr): Just clear out rtl.expr.
23567         * function.c (free_after_compilation): Clear out whole RTL structure.
23568         (get_func_frame_size): Merge into ...
23569         (get_frame_size): ... this one.
23570         (assign_stack_local_1): Merge into ...
23571         (assign_stack_local): ... this one.
23572         (expand_function_end): Update call of get_arg_pointer_save_area.
23573         (get_art_pointer_save_area): Remove cfun argument.
23574         * function.h (emit_status): regno_pointer_align does not need length
23575         attribute. Move x_regno_reg_rtx to ...
23576         (regno_reg_rtx): ... new global array.
23577         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
23578         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
23579         apply_args_value, forced_labels, stack_pointer_delta):
23580         Update accestors.
23581         (struct varasm_status): Move here from varasm.c
23582         (struct rtl_data): New. Move here some fields from struct function.
23583         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
23584         frame_offset, stack_check_probe_note, arg_pointer_save_area,
23585         used_temp_slots avail_temp_slots, temp_slot_level,
23586         nonlocal_goto_handler_labels): Update accesstors.
23587         (rtl): New global variable.
23588         (struct function): Move some fileds to rtl_data.
23589         (get_arg_pointer_save_area): Update prototype.
23590         * emit-rtl.c (rtl): Declare.
23591         (regno_reg_rtx): Declare.
23592         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
23593         Update.
23594         (gen_reg_rtx): Update.
23595         (init_virtual_regs): Do not tate emit_status argument.
23596         (init_emit): Do not allocate emit.
23597         * varasm.c (varasm_statuc): Move to function.h.
23598         (n_deferred_constatns): Update accestor.
23599         (init_varasm_status): Do not allocate varasm_status.
23600         (force_const_mem, get_pool_size, output_constant_pool): Update.
23601         * stmt.c (force_label_rtx): Do not use x_ prefixes.
23602         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
23603
23604 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
23605
23606         PR rtl-optimization/35729
23607         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
23608         references.
23609
23610 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
23611
23612         PR target/32000
23613         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
23614         load/store if memory is unaligned.
23615         (*movti_rex64): Likewise.
23616
23617         * config/i386/predicates.md (misaligned_operand): New.
23618
23619 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
23620
23621         PR tree-opt/35431
23622         * tree-ssa-phiopt.c (conditional_replacement): Return early for
23623         complex types.
23624
23625 2008-03-31  Jan Beulich  <jbeulich@novell.com>
23626
23627         * config/ia64/constraints.md: Add 'j' constraint.
23628         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
23629         (movdi_internal): Likewise.
23630
23631 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
23632
23633         PR c/35748
23634         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
23635
23636 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
23637
23638         PR target/35757
23639         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
23640         proper error message for the third argument on blendpd and
23641         blendps.
23642
23643         * config/i386/sse.md (blendbits): New.
23644         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
23645
23646 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
23647
23648         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
23649
23650 2008-03-30  Richard Guenther  <rguenther@suse.de>
23651
23652         PR middle-end/31023
23653         * fold-const.c (fold_sign_changed_comparison): Do leave
23654         conversions to base-types alone.
23655
23656 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23657
23658         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
23659         the link register if one altivec register is be saved.
23660
23661 2008-03-30  Ben Elliston  <bje@au.ibm.com>
23662
23663         * final.c (final_scan_insn): Remove if (0) code.
23664
23665 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
23666
23667         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
23668
23669 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
23670
23671         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
23672         of V4SFmode to ix86_binary_operator_ok.
23673
23674 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
23675
23676         * config/i386/i386.c (override_options): Initialize
23677         ix86_veclib_handler to ix86_veclibabi_svml when
23678         -mveclibabi=svml is used.
23679         (ix86_veclibabi_svml): New function for SVML ABI style
23680         vectorization support.
23681         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
23682
23683 2008-03-28  Rafael Espíndola  <espindola@google.com>
23684
23685         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
23686         (tree_binary_nonnegative_warnv_p): Make it public.
23687         (tree_single_nonnegative_warnv_p): Make it public.
23688         (tree_invalid_nonnegative_warnv_p): Make it public.
23689         (tree_unary_nonzero_warnv_p): Make it public.
23690         (tree_binary_nonzero_warnv_p): Make it public
23691         (tree_single_nonzero_warnv_p): Make it public.
23692         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
23693         (extract_range_from_binary_expr): Split the expr argument.
23694         (extract_range_from_unary_expr): Split the expr argument.
23695         (extract_range_from_comparison): Split the expr argument.
23696         (extract_range_from_expr): Use the new aux functions.
23697         (vrp_evaluate_conditional_warnv): Use
23698         vrp_evaluate_conditional_warnv_with_ops.
23699         * tree.h (tree_unary_nonzero_warnv_p): Declare.
23700         (tree_binary_nonzero_warnv_p): Declare.
23701         (tree_single_nonzero_warnv_p): Declare.
23702         (tree_expr_nonzero_warnv_p): Declare.
23703         (tree_unary_nonnegative_warnv_p): Declare.
23704         (tree_binary_nonnegative_warnv_p): Declare.
23705         (tree_single_nonnegative_warnv_p): Declare.
23706         (tree_invalid_nonnegative_warnv_p): Declare.
23707
23708 2008-03-28  Richard Guenther  <rguenther@suse.de>
23709
23710         PR tree-optimization/30317
23711         PR tree-optimization/30911
23712         PR tree-optimization/34793
23713         * tree-vrp.c (set_and_canonicalize_value_range): New function.
23714         (struct assert_locus_d): New member EXPR.
23715         (register_new_assert_for): Add EXPR parameter to support
23716         ASSERT_EXPR <name, expr OP limit>.
23717         (register_edge_assert_for_1): Adjust callers.
23718         (find_assert_locations): Likewise.
23719         (process_assert_insertions_for): Build condition from expression.
23720         (extract_range_from_assert): Handle ASSERT_EXPRs
23721         of the form ASSERT_EXPR <name, expr OP limit>.
23722         (register_edge_assert_for_2): New helper registering
23723         asserts for comparisons.  Recognize range tests of the form
23724         (unsigned)i - CST1 OP CST2.
23725         (register_edge_assert_for_1): Use it.
23726         (register_edge_assert_for): Likewise.
23727         (needs_overflow_infinity): Integer sub-types
23728         do not need overflow infinities.
23729         (vrp_val_is_max): The extreme values of integer sub-types
23730         are those of the base type.
23731         (vrp_val_is_min): Likewise.
23732         * tree.def (ASSERT_EXPR): Document extra allowed conditional
23733         expressions.
23734
23735 2008-03-28  Nick Clifton  <nickc@redhat.com>
23736
23737         PR target/31110
23738         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
23739         Return GENERAL_REGS for stack adjustment reloads.
23740
23741 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23742
23743         PR target/31334
23744         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
23745         const_vector when all the vectors are constant.
23746
23747 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
23748
23749         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
23750         comparisons.
23751         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
23752         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
23753         (scc_sf): New.
23754         (s<code>_sf): Use new scc_sf attribute for opcode names.
23755
23756 2008-03-27  Tom Tromey  <tromey@redhat.com>
23757
23758         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
23759         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
23760         config/spu/t-spu-elf, config/i386/t-interix,
23761         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
23762         config/i386/x-darwin, config/i386/x-mingw32,
23763         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
23764         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
23765         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
23766         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
23767         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
23768         config/rs6000/x-darwin, config/rs6000/t-rs6000,
23769         config/score/t-score-elf, config/arm/t-strongarm-pe,
23770         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
23771         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
23772         Revert automatic dependency patch.
23773
23774 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
23775
23776         PR target/35657
23777         * config/i386/i386.c (ix86_function_arg_boundary): Align
23778         decimal floating point to its natural boundary.
23779
23780 2008-03-27  Richard Guenther  <rguenther@suse.de>
23781
23782         PR middle-end/35716
23783         * fold-const.c (fold_comparison): Restrict distinct decl
23784         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
23785         solely rely on operand_equal_p.
23786
23787 2008-03-27  Richard Guenther  <rguenther@suse.de>
23788
23789         PR c/32511
23790         * c-common.c (handle_weak_attribute): Reject combination of
23791         weak and inline.
23792
23793 2008-03-27  Richard Guenther  <rguenther@suse.de>
23794
23795         PR tree-optimization/32810
23796         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
23797         conversions from DECL_INITIAL.
23798         (fold_const_aggregate_ref): Likewise from constructor elements.
23799
23800 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
23801
23802         * tree-affine.h (aff_combination_expand): Declare.
23803         (get_inner_reference_aff): Likewise.
23804         * tree-affine.c (aff_combination_expand): Split out from
23805         tree_to_aff_combination_expand.
23806         (get_inner_reference_aff): New function.
23807         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
23808         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
23809         (struct lim_aux_data): sm_done field removed.
23810         (mem_ref_loc_p, mem_ref_locs_p): New types.
23811         (struct mem_ref): Added id, stored, accesses_in_loop,
23812         indep_loop, dep_loop, indep_ref, dep_ref fields.
23813         Removed is_stored, locs and next fields.
23814         (memory_accesses): New variable.
23815         (movement_possibility): Do not allow moving statements
23816         that store to memory.
23817         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
23818         New functions.
23819         (determine_max_movement): For statements with memory references,
23820         find the outermost loop in that the reference is independent.
23821         (move_computations_stmt): Mark the virtual operands for renaming.
23822         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
23823         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
23824         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
23825         add_vop_ref_mapping, create_vop_ref_mapping_loop,
23826         create_vop_ref_mapping, analyze_memory_references,
23827         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
23828         get_all_locs_in_loop, ref_always_accessed_p,
23829         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
23830         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
23831         store_motion_loop, store_motion): New functions.
23832         (struct vop_to_refs_elt): New type.
23833         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
23834         memref_hash, memref_eq, hoist_memory_references): Rewritten.
23835         (schedule_sm): Replaced by...
23836         (execute_sm): ... this.
23837         (determine_lsm_ref, hoist_memory_references,
23838         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
23839         find_more_ref_vops, free_mem_ref, free_mem_refs,
23840         determine_lsm_loop, determine_lsm): Removed.
23841         (tree_ssa_lim_finalize): Free data structures used by store motion.
23842         (tree_ssa_lim): Call analyze_memory_references.  Use
23843         store_motion instead of determine_lsm.
23844
23845 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
23846
23847         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
23848         rename tmake_file to m68hc11/t-m68hc11.
23849         (mcore): Set inhibit_libc to true.
23850         * config.host (alpha*-dec-*vms*): Set extra_programs.
23851         (interix3*): Don't use host_xmake_file.
23852         * configure.ac: Let config.gcc override inhibit_libc.
23853         * configure: Regenerate.
23854
23855         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
23856         * config/t-openbsd-thread: Remove commented out lines.
23857
23858         * config/x-interix: Remove.
23859
23860         * config/m68hc11/t-m68hc11-gas: Rename to...
23861         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
23862
23863         * config/mcore/t-mcore: Remove T_CFLAGS.
23864         * config/mcore/t-mcore-pe: Likewise.
23865
23866 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
23867
23868         * configure.ac: Replace custom __GNU_SOURCE test with
23869         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
23870         * aclocal.m4: Regenerate.
23871         * configure: Regenerate.
23872         * config.in: Regenerate.
23873
23874 2008-03-27  Richard Guenther  <rguenther@suse.de>
23875
23876         * fold-const.c (target.h): Include.
23877         (fold_comparison): Fold comparison of addresses of decls
23878         that bind locally or of constants.  Consolidate address folding code.
23879         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
23880         results from fold_binary_to_constant.
23881         (compare_values_warnv): Likewise.
23882
23883 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
23884
23885         PR middle-end/35429
23886         * fold-const.c (fold_truthop): Check for integeral types when folding
23887         a == 0 && b == 0 and a != 0 || b != 0 .
23888
23889 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
23890
23891         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
23892
23893 2008-03-26  Andreas Schwab  <schwab@suse.de>
23894
23895         * doc/invoke.texi: Fix use of @item vs. @itemx.
23896
23897 2008-03-26  Tom Tromey  <tromey@redhat.com>
23898
23899         * Makefile.in (build/gensupport.o, build/print-rtl.o,
23900         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
23901         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
23902         build/gencodes.o, build/genconditions.o, build/genconfig.o,
23903         build/genconstants.o, build/genemit.o, build/genextract.o,
23904         build/genflags.o, build/genmddeps.o, build/genopinit.o,
23905         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
23906         options.h.
23907
23908 2008-03-26  Richard Guenther  <rguenther@suse.de>
23909
23910         Revert
23911         2008-03-26  Richard Guenther  <rguenther@suse.de>
23912
23913         * fold-const.c (target.h): Include.
23914         (fold_comparison): Fold comparison of addresses of two decls
23915         that bind locally.  Consolidate address folding code.
23916
23917 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23918
23919         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
23920         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
23921         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
23922         dconstsqrt2, dconstthird, dconste and/or dconst10.
23923         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
23924         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
23925         dconstsqrt2, dconste): Delete.
23926         (init_emit_once): Likewise.  Simplify initializing dconstm1.
23927         Constify variable.
23928         * real.c (get_real_const): New.
23929         * real.h (dconst3, dconst10, dconstm2, dconstthird,
23930         dconstsqrt2, dconste): Delete.
23931         (real_value_const, get_real_const): New.
23932
23933 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
23934
23935         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
23936
23937         * config/i386/i386.c (ix86_function_arg_boundary): Check
23938         BIGGEST_ALIGNMENT instead of 128.
23939         (setup_incoming_varargs_64): Likewise.
23940
23941 2008-03-26  Tom Tromey  <tromey@redhat.com>
23942
23943         * Makefile.in (DEPFILES): Add missing '/'.
23944
23945 2008-03-26  Richard Guenther  <rguenther@suse.de>
23946
23947         * fold-const.c (target.h): Include.
23948         (fold_comparison): Fold comparison of addresses of two decls
23949         that bind locally.  Consolidate address folding code.
23950
23951 2008-03-26  Nick Clifton  <nickc@redhat.com>
23952
23953         PR target/31232
23954         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
23955         not allow INT+INT as a legitimate addressing mode.
23956
23957 2008-03-26  Richard Guenther  <rguenther@suse.de>
23958
23959         * tree-flow.h (widen_bitfield): Remove declaration.
23960         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
23961         (widen_bitfield): Remove function.
23962         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
23963         code.
23964
23965 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23966
23967         PR target/31558
23968         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
23969         error_mark_node's.
23970
23971 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
23972
23973         PR rtl-optimization/35232
23974         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
23975         (forget_old_reloads_1, forget_marked_reloads): Don't clear
23976         reg_reloaded_call_part_clobbered here.
23977         (reload_regs_reach_end_p): New function.
23978         (reload_reg_rtx_for_input): New variable.
23979         (reload_reg_rtx_for_output): Likewise.
23980         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
23981         when reassigning a pseudo register.  Load reloadreg from
23982         reload_reg_rtx_for_input, moving the mode and register
23983         calculation to...
23984         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
23985         instead of the original when deciding whether an input reload
23986         would be a no-op or whether an output reload can be deleted.
23987         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
23988         when setting up new_spill_reg_store.  Load it from
23989         reload_reg_rtx_for_output, moving the mode and register
23990         calculation to...
23991         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
23992         instead of the original when deciding whether an output reload
23993         would be a no-op.  Do the same when modifying insn notes.
23994         Use rtx_equal_p instead of == to compare the registers.
23995         (inherit_piecemeal_p): Take a mode and two register numbers
23996         as argument.
23997         (emit_reload_insns): Clear new_spill_reg_store for every hard
23998         register in the reload register.  Remove spill registers
23999         from reg_reloaded_valid before considering whether to record
24000         inheritance information for them.  Use reload_reg_rtx_for_output
24001         instead of reg_rtx when recording output reloads.  Use
24002         reload_reg_rtx_for_input instead of reg_rtx when recording
24003         input reloads.  Set or clear reg_reloaded_call_part_clobbered
24004         at the same time as setting reg_reloaded_valid.
24005         (delete_output_reload): Add a new_reload_reg parameter and use it
24006         instead of rld[j].reg_rtx.
24007         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
24008         calls accordingly.
24009
24010 2008-03-25  Tom Tromey  <tromey@redhat.com>
24011
24012         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
24013         (build/genattr.o): Likewise.
24014         (build/genattrtab.o): Likewise.
24015         (build/gencodes.o): Likewise.
24016         (build/genconfig.o): Likewise.
24017         (build/genconstants.o): Likewise.
24018         (build/genemit.o): Likewise.
24019         (build/genextract.o): Likewise.
24020         (build/genflags.o): Likewise.
24021
24022 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
24023
24024         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
24025         instead of size_int for integer types.
24026         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
24027         to match type of MINUS_EXPR.
24028
24029 2008-03-25  Tom Tromey  <tromey@redhat.com>
24030
24031         * configure: Rebuilt.
24032         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
24033         Makefile.
24034
24035 2008-03-25  Tom Tromey  <tromey@redhat.com>
24036
24037         * config/x-solaris (host-solaris.o): Update.
24038         * config/x-linux (host-linux.o): Update.
24039         * config/x-hpux (host-hpux.o): Update.
24040         * config/x-darwin (host-darwin.o): Update.
24041         * config/v850/t-v850e (v850-c.o): Update.
24042         * config/v850/t-v850 (v850-c.o): Update.
24043         * config/t-vxworks (vxworks.o): Update.
24044         * config/t-sol2 (sol2-c.o, sol2.o): Update.
24045         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
24046         * config/spu/t-spu-elf (spu-c.o): Update.
24047         (spu.o): Remove.
24048         * config/sh/t-symbian (sh-c.o): Update.
24049         (symbian.o): Update.
24050         * config/sh/t-sh (sh-c.o): Update.
24051         * config/score/t-score-elf (score7.o, score3.o): Update.
24052         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
24053         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
24054         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
24055         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
24056         (rs6000.o): Remove.
24057         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
24058         * config/m32c/t-m32c (m32c-pragma.o): Update.
24059         * config/ia64/t-ia64 (ia64-c.o): Update.
24060         * config/i386/x-mingw32 (host-mingw32.o): Update.
24061         * config/i386/x-i386 (driver-i386.o): Update.
24062         * config/i386/x-darwin (host-i386-darwin.o): Update.
24063         * config/i386/x-cygwin (host-cygwin.o): Update.
24064         * config/i386/t-nwld (nwld.o): Update.
24065         * config/i386/t-netware (netware.o): Update.
24066         * config/i386/t-interix (winnt.o): Update.
24067         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
24068         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
24069         msformat-c.o): Update.
24070         * config/bfin/t-bfin-linux (generated_files): Add
24071         linux-sysroot-suffix.h.
24072         * config/arm/t-wince-pe (pe.o): Update.
24073         * config/arm/t-strongarm-pe (pe.o): Update.
24074         * config/arm/t-pe (pe.o): Update.
24075         * config/arm/t-arm (arm-c.o): Update.
24076         * doc/install.texi (Prerequisites): Require make 3.80.
24077         * Makefile.in: Remove .o targets.
24078         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
24079         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
24080         (simple_generated_h, simple_generated_c): Move earlier.
24081         (generated_files): New variable.
24082         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
24083         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
24084         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
24085         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
24086         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
24087         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
24088         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
24089         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
24090         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
24091         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
24092         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
24093         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
24094         (.c.o): Remove.
24095         (COMPILE.base, COMPILE): New variables.
24096         (%.o): New pattern rule.
24097         (ALL_HOST_OBJS): New variable.
24098         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
24099         (dummy-checksum.o, cc1-checksum.o): Remove.
24100         (DRIVER_SHLIB): New variable.
24101         (DRIVER_DEFINES): Use it.
24102         (gencondmd.c): Move out of build/.
24103         (s-conditions): Update.
24104         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
24105         (ALL_BUILD_OBJS): Likewise.
24106         (build/%.o): Use BUILDCOMPILE.
24107         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
24108         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
24109         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
24110         build/gencheck.o, build/gencodes.o, build/genconditions.o,
24111         build/genconfig.o, build/genconstants.o, build/genemit.o,
24112         build/genextract.o, build/genflags.o, build/genmddeps.o,
24113         build/genopinit.o, build/genoutput.o, build/genpeep.o,
24114         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
24115         build/gen-protos.o, build/scan.o, build/fix-header.o,
24116         build/scan-decls.o): Simplify.
24117         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
24118         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
24119         prefix.o, toplev.o): Reduce to variable setting.
24120         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
24121         ($(out_object_file), gcc-options.o): New targets.
24122         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
24123         * configure: Rebuilt.
24124         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
24125         * doc/sourcebuild.texi (Front End Directory): Document new variable.
24126
24127 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
24128
24129         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
24130         complain when we hit an error, return ERROR_MARK_NODE.
24131
24132 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
24133
24134         * config/sh/constraints.md (Pso, Psz): New constraints.
24135         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
24136         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
24137
24138 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
24139
24140         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
24141         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
24142
24143 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
24144
24145         * config/sh/sh.md (prefetch): Add condition for SH2A target.
24146         (prefetch_sh2a): New.
24147
24148 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
24149             Naveen.H.S  <naveen.hs@kpitcummins.com>
24150
24151         * config/sh/constraints.md (I28): New constraint.
24152         * config/sh/sh.c (broken_move): Add support for movi20s.
24153         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
24154
24155 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
24156             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
24157             Naveen.H.S  <naveen.hs@kpitcummins.com>
24158
24159         * config/sh/sh.c (SH_ATTRIBUTES): Define.
24160         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
24161         (print_operand): Handle resbank in %@ operand code.
24162         (sh_encode_section_info): New.
24163         (push_regs): Add conditions for resbank.
24164         (sh_expand_epilogue): Likewise.
24165         (sh_insert_attributes): Likewise.
24166         (sh_attribute_table): Likewise.
24167         (sh_handle_resbank_handler_attribute): New.
24168         (sh2a_handle_function_vector_handler_attribute): New.
24169         (sh2a_is_function_vector_call): New.
24170         (sh2a_get_function_vector_number): New.
24171         (sh2a_function_vector_p): New.
24172         (sh_cfun_resbank_handler_p): New.
24173         * config/sh/sh.md (calli): Emit jsr/n if possible.
24174         (calli_tbr_rel): New.
24175         (calli_pcrel): Emit jsr/n if possible.
24176         (return_i): Emit rts/n if possible.
24177         (call_valuei_tbr_rel): New.
24178         (call_valuei_pcrel): Add condition for SH2A target.
24179         (call_value): Likewise.
24180         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
24181         (sh2a_get_function_vector_number): Likewise.
24182         (sh2a_is_function_vector_call): Likewise.
24183         * doc/extend.texi: Document TBR relative addressing of SH2A.
24184         (resbank): Add description for SH2A.
24185
24186 2008-03-24  Richard Guenther  <rguenther@suse.de>
24187
24188         PR c/22371
24189         * gimplify.c (gimplify_modify_expr): For frontend type-correct
24190         pointer assignments change conversions according to middle-end rules.
24191         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
24192         * configure.ac: Include type checking in yes.
24193         * configure: Regenerate.
24194
24195 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24196
24197         * diagnostic.c (diagnostic_count_diagnostic): Delete.
24198         (diagnostic_report_diagnostic): Update. Handle ICEs here.
24199
24200 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
24201
24202         * gthr-vxworks.h (UNUSED): Define.
24203
24204 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
24205
24206         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
24207
24208 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
24209
24210         * doc/extend.texi (Function Attributes): Add missing comma in the
24211         example of the "alloc_size" attribute.
24212
24213 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
24214
24215         Revert:
24216         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
24217
24218         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24219         32bit host.
24220
24221         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
24222
24223         PR target/35496
24224         * stor-layout.c (update_alignment_for_field): Set minimum alignment
24225         of the underlying type of a MS bitfield layout to the natural
24226         alignment of the type.
24227
24228         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
24229
24230         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
24231         to their natural alignment to avoid store forwarding stalls.
24232
24233 2008-03-22  Richard Guenther  <rguenther@suse.de>
24234
24235         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
24236         For PHI nodes verify the address is invariant.
24237         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
24238         (get_symbol_constant_value): Use is_gimple_min_invariant.
24239         (maybe_fold_stmt_indirect): Likewise.
24240
24241 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
24242
24243         PR rtl-optimization/33927
24244         * Makefile.in (dse.o): Depend on $(TM_P_H).
24245         * expr.h (extract_low_bits): Declare.
24246         * expmed.c (extract_low_bits): New function.
24247         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
24248         * dse.c: Include tm_p.h.
24249         (find_shift_sequence): Remove the read_reg argument and return the
24250         read value.  Emit the instructions instead of returning them.
24251         Iterate on new_mode rather than calculating it each time.
24252         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
24253         source to NEW_MODE and extract_low_bits to convert the shifted
24254         value to READ_MODE.
24255         (replace_read): Allow the load and store to have different mode
24256         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
24257         or extraction instructions before trying the replacement.  Update
24258         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
24259
24260 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
24261
24262         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
24263         to their natural alignment to avoid store forwarding stalls.
24264
24265 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24266
24267         PR target/27946
24268         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
24269         encouraging but not allowing gprs for input;
24270         change the input constraint to !f#r.
24271         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
24272         gprs for output;
24273         change the output constraint to !f#r.
24274
24275 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
24276
24277         PR target/13958
24278         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
24279         corresponding post-reload splitters.
24280         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
24281         when x87 FP math is selected.
24282         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
24283         New function prototype.
24284         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
24285         unreachable function to ease macroization of insn patterns.
24286
24287 2008-03-21  Martin Jambor  <mjambor@suse.cz>
24288
24289         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
24290         reference dumps if ddr is NULL or dependence is unknown.
24291
24292 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24293
24294         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
24295         unsigned extension into account.
24296         (ATOMIC_COMPARE_AND_SWAP): Likewise.
24297         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
24298         Do computations on a scratch register.
24299
24300 2008-03-21  Richard Guenther  <rguenther@suse.de>
24301
24302         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
24303         Use is_gimple_min_invariant instead of TREE_INVARIANT.
24304         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
24305         * tree-ssa-dom.c (record_equality): Likewise.
24306         * tree-inline.c (copy_body_r): Likewise.
24307         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
24308         TREE_INVARIANT.
24309
24310 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24311
24312         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
24313         as 'delete_unused' argument.
24314
24315 2008-03-20  Richard Guenther  <rguenther@suse.de>
24316
24317         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
24318         special casing of constant qualifiers.
24319         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
24320         care about them in general.
24321         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
24322         regardless of their type.
24323         (fold_stmt_r): Forcefully fold *& if we end up with that.
24324
24325 2008-03-20  Paul Brook  <paul@codesourcery.com>
24326
24327         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
24328         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
24329         linker flags.
24330         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
24331         definition.
24332         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
24333         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
24334
24335 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
24336
24337         * common.opt (Wmudflap): New option.
24338         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
24339         (mx_register_decls): Likewise.
24340         (mudflap_finish_file): Likewise.
24341         * doc/invoke.texi: Document -Wno-mudflap.
24342
24343 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
24344
24345         * c-format.c (replace_format_name_to_system_name): New.
24346         (cmp_attribs): New.
24347         (convert_format_name_to_system_name): New.
24348         (decode_format_attr): Add use of convert_format_name_to_system_name.
24349         (format_types_orig): Add gnu_ prefix to names.
24350         (check_format_info_main): Special treating of \0 escaped names for
24351         supporting multi-character format specifiers as I32, I64.
24352         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
24353         (gnu_target_overrides_format_attributes): New.
24354         * c-format.h: Add structure target_ovr_attr to hold
24355         system specific formatter names.
24356         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
24357         msformat-c.o file to c_target_objs and cxx_target_objs.
24358         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
24359         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
24360         (TARGET_N_FORMAT_TYPES): New.
24361         * config/i386/msformat-c.c: New.
24362         * config/i386/t-cygming: Add build rule for msformat-c.o.
24363         * doc/extend.texi: Add new format names gnu_* and ms_* and
24364         further details.
24365         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
24366
24367 2008-03-20  Ira Rosen  <irar@il.ibm.com>
24368
24369         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
24370         optimizations turned on under -O3.
24371         (ftree-vectorize): Add that the flag is turned on with -O3.
24372
24373 2008-03-20  Ben Elliston  <bje@au.ibm.com>
24374
24375         * regmove.c (try_auto_increment): Fix spelling error in comment.
24376         * final.c (final_scan_insn): Likewise.
24377
24378 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
24379
24380         PR target/14552
24381         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
24382         allocator preferences for "y" and "r" class registers.
24383         ("*mov<mode>_internal"): Ditto.
24384         ("*movv2sf_internal_rex64"): Ditto.
24385         ("*movv2sf_internal"): Ditto.
24386
24387 2008-03-19  Michael Matz  <matz@suse.de>
24388
24389         PR middle-end/35616
24390         * calls.c (expand_call): Check overlap of arguments with call
24391         address for sibcalls.
24392
24393 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
24394
24395         PR target/35496
24396         * stor-layout.c (update_alignment_for_field): Set minimum alignment
24397         of the underlying type of a MS bitfield layout to the natural
24398         alignment of the type.
24399
24400 2008-03-19  Jan Hubicka  <jh@suse.cz>
24401
24402         PR other/35094
24403         * toplev.c (decode_d_option): Handle all CPP flags.
24404         * tree-vrp.c: Update tree_pass descriptors.
24405         * regrename.c: Update tree_pass descriptors.
24406         * fwprop.c: Update tree_pass descriptors.
24407         * doc/invoke.texi: Remove documentation of dropped -d? flags.
24408         * tree-into-ssa.c: Update tree_pass descriptors.
24409         * tree-dump.c: Update tree_pass descriptors.
24410         * tree-complex.c: Update tree_pass descriptors.
24411         * tree-dump.h: Update tree_pass descriptors.
24412         * see.c: Update tree_pass descriptors.
24413         * cgraphbuild.c: Update tree_pass descriptors.
24414         * tracer.c: Update tree_pass descriptors.
24415         * tree-loop-distribution.c: Update tree_pass descriptors.
24416         * cgraph.c: Update tree_pass descriptors.
24417         * postreload-gcse.c: Update tree_pass descriptors.
24418         * postreload.c: Update tree_pass descriptors.
24419         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
24420         * tree-tailcall.c: Update tree_pass descriptors.
24421         * tree-pass.h (tree_opt_pass): Rename to ...
24422         (opt_pass) ... this one; add "type" field and remove letter field.
24423         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
24424         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
24425         all_lowering_passes): Update declaration.
24426         * ipa-cp.c: Update tree_pass descriptors.
24427         * final.c: Update tree_pass descriptors.
24428         * omp-low.c: Update tree_pass descriptors.
24429         * tree-ssa-dse.c: Update tree_pass descriptors.
24430         * ipa-reference.c: Update tree_pass descriptors.
24431         * tree-ssa-uncprop.c: Update tree_pass descriptors.
24432         * auto-inc-dec.c: Update tree_pass descriptors.
24433         * reorg.c: Update tree_pass descriptors.
24434         * cgraphunit.c: Update tree_pass descriptors.
24435         * tree-ssa-copyrename.c: Update tree_pass descriptors.
24436         * tree-ssa-ccp.c: Update tree_pass descriptors.
24437         * df-core.c: Update tree_pass descriptors.
24438         * mode-switching.c: Update tree_pass descriptors.
24439         * tree-nomudflap.c: Update tree_pass descriptors.
24440         * modulo-sched.c: Update tree_pass descriptors.
24441         * ipa-pure-const.c: Update tree_pass descriptors.
24442         * cse.c: Update tree_pass descriptors.
24443         * web.c: Update tree_pass descriptors.
24444         * tree-stdarg.c: Update tree_pass descriptors.
24445         * tree-ssa-math-opts.c: Update tree_pass descriptors.
24446         * tree-ssa-dom.c: Update tree_pass descriptors.
24447         * tree-nrv.c: Update tree_pass descriptors.
24448         * tree-ssa-alias.c: Update tree_pass descriptors.
24449         * loop-init.c: Update tree_pass descriptors.
24450         * gimple-low.c: Update tree_pass descriptors.
24451         * ipa-inline.c: Update tree_pass descriptors.
24452         * tree-ssa-sink.c: Update tree_pass descriptors.
24453         * global.c: Update tree_pass descriptors.
24454         * ifcvt.c: Update tree_pass descriptors.
24455         * jump.c: Update tree_pass descriptors.
24456         * predict.c: Update tree_pass descriptors.
24457         * tree-ssa-loop.c: Update tree_pass descriptors.
24458         * recog.c: Update tree_pass descriptors.
24459         * dse.c: Update tree_pass descriptors.
24460         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
24461         * tree-eh.c: Update tree_pass descriptors.
24462         * regmove.c: Update tree_pass descriptors.
24463         * local-alloc.c
24464         * function.c: Update tree_pass descriptors.
24465         * tree-vectorizer.c: Update tree_pass descriptors.
24466         * gcse.c: Update tree_pass descriptors.
24467         * ipa-type-escape.c: Update tree_pass descriptors.
24468         * tree-if-conv.c: Update tree_pass descriptors.
24469         * init-regs.c: Update tree_pass descriptors.
24470         * ipa.c: Update tree_pass descriptors.
24471         * tree-ssa-phiopt.c: Update tree_pass descriptors.
24472         * rtl-factoring.c: Update tree_pass descriptors.
24473         * lower-subreg.c: Update tree_pass descriptors.
24474         * bt-load.c: Update tree_pass descriptors.
24475         * tree-dfa.c: Update tree_pass descriptors.
24476         * except.c: Update tree_pass descriptors.
24477         * emit-rtl.c: Update tree_pass descriptors.
24478         * cfgexpand.c: Update tree_pass descriptors.
24479         * tree-cfgcleanup.c: Update tree_pass descriptors.
24480         * cfgcleanup.c: Update tree_pass descriptors.
24481         * tree-ssa-pre.c: Update tree_pass descriptors.
24482         * tree-sra.c: Update tree_pass descriptors.
24483         * tree-mudflap.c: Update tree_pass descriptors.
24484         * tree-ssa-copy.c: Update tree_pass descriptors.
24485         * cfglayout.c: Update tree_pass descriptors.
24486         * tree-ssa-forwprop.c: Update tree_pass descriptors.
24487         * tree-ssa-dce.c: Update tree_pass descriptors.
24488         * tree-ssa.c: Update tree_pass descriptors.
24489         * regclass.c: Update tree_pass descriptors.
24490         * integrate.c: Update tree_pass descriptors.
24491         * tree-optimize.c: Update tree_pass descriptors.
24492         * tree-ssa-phiprop.c: Update tree_pass descriptors.
24493         * tree-object-size.c: Update tree_pass descriptors.
24494         * combine.c: Update tree_pass descriptors.
24495         * tree-outof-ssa.c: Update tree_pass descriptors.
24496         * bb-reorder.c: Update tree_pass descriptors.
24497         * stack-ptr-mod.c: Update tree_pass descriptors.
24498         * var-tracking.c: Update tree_pass descriptors.
24499         * tree-profile.c: Update tree_pass descriptors.
24500         * tree-vect-generic.c: Update tree_pass descriptors.
24501         * reg-stack.c: Update tree_pass descriptors.
24502         * sched-rgn.c: Update tree_pass descriptors.
24503         * tree-ssa-structalias.c: Update tree_pass descriptors.
24504         * tree-cfg.c: Update tree_pass descriptors.
24505         * passes.c (current_pass): Update declaration.
24506         (finish_optimization_passes): Update.
24507         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
24508         (register_one_dump_file, register_dump_files_1, next_pass_1):
24509         Update arguments.
24510         (init_optimization_passes): Update handling of new types.
24511         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
24512         * ipa-struct-reorg.c: Update tree_pass descriptors.
24513         * tree-ssa-reassoc.c: Update tree_pass descriptors.
24514         * combine-stack-adj.c: Update tree_pass descriptors.
24515         * cfgrtl.c: Update tree_pass descriptors.
24516         * dce.c: Update tree_pass descriptors.
24517         * tree-ssanames.c: Update tree_pass descriptors.
24518
24519 2008-03-19  Richard Guenther  <rguenther@suse.de>
24520
24521         PR middle-end/35609
24522         * tree-ssa.c (walk_data): New structure.
24523         (warn_uninitialized_var): If not always_executed warn with "maybe"
24524         instead of "is".
24525         (execute_early_warn_uninitialized): Compute post-dominators.
24526         Initialize always_executed before processing each basic block.
24527
24528 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
24529
24530         PR target/35504
24531         * config/i386/i386.c (x86_this_parameter): Calculate correct location
24532         of "this" pointer when "regparm = N" or "fastcall" is in effect.
24533
24534 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24535
24536         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
24537
24538 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
24539
24540         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
24541         is true.
24542         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
24543         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
24544         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
24545         target after ignore has been set, and move there also the commputation
24546         of subtarget and original_target.
24547         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
24548         (LANG_HOOKS_INITIALIZER): Remove it.
24549         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
24550
24551 2008-03-18  Richard Guenther  <rguenther@suse.de>
24552
24553         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
24554         found an expression with constants, note that in the VN for the lhs.
24555         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
24556         fold them to constants if possible.  Run cleanup_cfg if done so.
24557         (execute_pre): Return todo.
24558         (do_pre): Likewise.
24559         (execute_fre): Likewise.
24560         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
24561         of constants.
24562         (get_prop_source_stmt): Look through pointer conversions.
24563
24564 2008-03-18  Jan Hubicka  <jh@suse.cz>
24565
24566         * tree-pretty-print.c: Include predict.h.
24567         (dump_generic_node): Dump predictor.
24568         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
24569         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
24570         * gimple-low.c (lower_stmt): Likewise.
24571         * expr.c (expand_expr_real): Likewise.
24572         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
24573         them.
24574         (build_predict_expr, build_predict_expr): New.
24575         * predict.h (predictor_name, build_predict_expr): Update.
24576         * c-typeck.c (c_finish_bc_stmt): Add prediction.
24577         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
24578         * predict.def (PRED_CONTINUE): Update hitrate.
24579         * tree.def (PREDICT_EXPR): Define.
24580         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
24581         do not handle BIND_EXPR.
24582         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
24583         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
24584         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
24585         operands.
24586
24587 2008-03-18  Michael Matz  <matz@suse.de>
24588
24589         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
24590
24591 2008-03-18  Richard Guenther  <rguenther@suse.de>
24592
24593         * tree-gimple.h (is_gimple_invariant_address): Declare.
24594         (is_gimple_constant): Likewise.
24595         * tree-gimple.c (is_gimple_constant): New function.
24596         (is_gimple_invariant_address): Likewise.
24597         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
24598         and is_gimple_invariant_address.
24599         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
24600         previous change.
24601         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
24602         an addressable base.
24603
24604 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
24605
24606         PR middle-end/35611
24607         * gimplify.c (gimplify_expr): Gimplify second operand of
24608         OMP_ATOMIC_LOAD.
24609
24610 2008-03-17  Richard Guenther  <rguenther@suse.de>
24611
24612         PR tree-optimization/19637
24613         * fold-const.c (fold_unary): Remove restrictions of removing
24614         intermediate pointer-conversions (P2)(P1)P0.
24615         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
24616         conversion to void pointer.
24617         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
24618
24619 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
24620
24621         PR debug/31510
24622         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
24623         emulated thread local variables.
24624
24625 2008-03-16  Richard Guenther  <rguenther@suse.de>
24626
24627         PR middle-end/35607
24628         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
24629         expand TREE_INVARIANT operations that are not gimple invariant.
24630
24631 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
24632
24633         * doc/extend.texi (Alignment): Say that the ABI controls
24634         the __alignof__ for non-strict-alignment targets rather
24635         than being a recommendation.
24636
24637 2008-03-15  Paul Brook  <paul@codesourcery.com>
24638
24639         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
24640         annotations.
24641         (arm_output_fn_unwind): Mark functions that can not be unwound.
24642
24643 2008-03-15  Paul Brook  <paul@codesourcery.com>
24644
24645         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
24646         extension instructions.
24647
24648 2008-03-15  Richard Guenther  <rguenther@suse.de>
24649
24650         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
24651         and fold constant aggregate refs.
24652         (fold_const_aggregate_ref): Handle string constants
24653         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
24654         (evaluate_stmt): Simplify now that ccp_fold folds constant
24655         aggregate refs.
24656
24657 2008-03-15  Paul Brook  <paul@codesourcery.com>
24658
24659         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
24660         (extzv): Use gen_extzv_t2.
24661         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
24662
24663 2008-03-15  Richard Guenther  <rguenther@suse.de>
24664
24665         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
24666         (fold_const_aggregate_ref): Likewise.
24667         (get_value): Return NULL if we don't have any values.
24668         (ccp_finalize): Set const_val to NULL after freeing it.
24669         * tree-flow.h (get_symbol_constant_value): Declare.
24670         (fold_const_aggregate_ref): Likewise.
24671         * tree-ssa-sccvn.c (try_to_simplify): Use them.
24672
24673 2008-03-15  Richard Guenther  <rguenther@suse.de>
24674
24675         PR middle-end/35593
24676         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
24677         to not produce negative array indices if not allowed.  Add
24678         parameter to indicate that.
24679         (maybe_fold_offset_to_component_ref): Allow negative array
24680         indices only for the first member of a structure.
24681         (maybe_fold_offset_to_reference): Allow negative array indices.
24682         (maybe_fold_stmt_addition): Likewise.
24683
24684 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
24685             Anatoly Sokolov <aesok@post.ru>
24686
24687         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
24688         (avr_arch): Add ARCH_AVR6.
24689         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
24690         (initial_elimination_offset): Initialize and use 'avr_pc_size'
24691         instead of fixed value 2.
24692         (print_operand_address): Use gs() asm specifier instead of pm().
24693         (avr_assemble_integer): (Ditto.).
24694         (avr_output_addr_vec_elt): (Ditto.).
24695         (print_operand): Handle "!" code.
24696         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
24697         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
24698         (AVR_HAVE_EIJMP_EICALL): Define.
24699         (AVR_3_BYTE_PC): Redefine.
24700         (AVR_2_BYTE_PC): (Ditto.).
24701         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
24702         (LINK_SPEC): Add atmega2560 and atmega2561.
24703         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
24704         (crtm2561.o).
24705         * config/avr/avr.md (call_insn): Use eicall instead of icall
24706         for 3 byte PC devices.
24707         (call_value_insn): (Ditto.).
24708         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
24709         (indirect_jump): Use only for for 2 byte PC devices.
24710         (*tablejump): (Ditto.).
24711         (*indirect_jump_avr6): Add insn.
24712         (*tablejump_rjmp): Don't use for 3 byte PC devices.
24713         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
24714         instead of ijmp for 3 byte PC devices.
24715         (__tablejump2__): (Ditto.).
24716         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
24717         (MULITLIB_DIRNAMES): (Ditto.).
24718         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
24719
24720 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
24721
24722         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
24723         "sse2_umulsidi3".  Use V1DI mode for operand 0.
24724         ("mmx_psadbw"): Use V1DI mode for operand 0.
24725         * config/i386/i386-modes.def (V1SI): New vector mode.
24726         * config/i386/i386.c (struct builtin_description)
24727         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
24728         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
24729         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
24730         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
24731         v1di_ftype_v8qi_v8qi type.
24732         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
24733
24734         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
24735         __builtin_ia32_pmuludq]: Fix the mode of return value.
24736
24737 2008-03-15  Richard Guenther  <rguenther@suse.de>
24738
24739         PR middle-end/35595
24740         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
24741         being a PHI_NODE.
24742
24743 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
24744
24745         * doc/invoke.texi (Option Summary, Xtensa Options): Document
24746         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
24747         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
24748         unless TARGET_SERIALIZE_VOLATILE is enabled.
24749         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
24750         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
24751         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
24752
24753 2008-03-14  Richard Guenther  <rguenther@suse.de>
24754
24755         PR tree-optimization/34172
24756         * tree-flow.h (refs_may_alias_p): Declare.
24757         (get_single_def_stmt): Likewise.
24758         (get_single_def_stmt_from_phi): Likewise.
24759         (get_single_def_stmt_with_phi): Likewise.
24760         * tree-dfa.c (refs_may_alias_p): New function.
24761         (get_single_def_stmt): Likewise.
24762         (get_single_def_stmt_from_phi): Likewise.
24763         (get_single_def_stmt_with_phi): Likewise.
24764         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
24765         (vn_reference_lookup_1): New helper function.
24766         (vn_reference_lookup): Walk the virtual use-def chain to
24767         continue searching for a match if the def does not alias the
24768         reference we are looking for.
24769
24770 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
24771
24772         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
24773         archive and Perzl.  Update The Written Word listing.
24774
24775 2008-03-14  Richard Guenther  <rguenther@suse.de>
24776
24777         PR tree-optimization/34043
24778         PR tree-optimization/33989
24779         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
24780         when doing FRE.
24781         (bitmap_find_leader): Use extra argument to verify dominance
24782         relationship inside a basic-block.
24783         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
24784         (find_leader_in_sets): Adjust.
24785         (create_component_ref_by_pieces): Take extra argument for
24786         dominance check, handle lookup failures.
24787         (find_or_generate_expression): Likewise.
24788         (create_expression_by_pieces): Likewise.
24789         (insert_into_preds_of_block): Adjust.
24790         (create_value_expr_from): If asked for, verify all operands
24791         are in the blocks AVAIL_OUT set.
24792         (make_values_for_stmt): Check for SSA_NAMEs that are life
24793         over an abnormal edge.
24794         (compute_avail): Remove such check.
24795         (do_SCCVN_insertion): New function.
24796         (eliminate): If we do not find a leader suitable for replacement
24797         insert a replacement expression from SCCVN if available.
24798         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
24799         (struct vn_ssa_aux): Add needs_insertion flag.
24800         * tree-ssa-sccvn.c (may_insert): New global flag.
24801         (copy_reference_ops_from_ref): Value-number union member access
24802         based on its size, not type and member if insertion is allowed.
24803         (visit_reference_op_load): For a weak match from union type
24804         punning lookup a view-converted value and insert a SSA_NAME
24805         for that value if that is not found.
24806         (visit_use): Make dumps shorter.  Do not disallow value numbering
24807         SSA_NAMEs that are life over an abnormal edge to constants.
24808         (free_scc_vn): Release inserted SSA_NAMEs.
24809         (run_scc_vn): New flag to specify whether insertion is allowed.
24810         Process SSA_NAMEs in forward order.
24811         * tree-ssa-loop-im.c (for_each_index): Handle invariant
24812         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
24813         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
24814         pointer type to/from integral types that do not change the
24815         precision to regular conversions.
24816
24817 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
24818
24819         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24820         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24821         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
24822         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
24823         input arguments and the mode of return value.  Built-in functions
24824         that operate on whole 64-bit MMX register now use V1DI mode.
24825
24826 2008-03-13  Alon Dayan  <alond@il.ibm.com>
24827             Olga Golovanevsky  <olga@il.ibm.com>
24828
24829         PR tree-optimization/35041
24830         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
24831         to locate the right position in a statement.
24832
24833 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
24834
24835         PR target/34000
24836         PR target/35553
24837         * config/i386/xmmintrin.h:  Change all static inline functions to
24838         extern inline and add __gnu_inline__ attribute.
24839         * config/i386/bmintrin.h: Ditto.
24840         * config/i386/smmintrin.h: Ditto.
24841         * config/i386/tmmintrin.h: Ditto.
24842         * config/i386/mmintrin-common.h: Ditto.
24843         * config/i386/ammintrin.h: Ditto.
24844         * config/i386/emmintrin.h: Ditto.
24845         * config/i386/pmmintrin.h: Ditto.
24846         * config/i386/mmintrin.h: Ditto.
24847         * config/i386/mm3dnow.h: Ditto.
24848
24849 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
24850
24851         PR middle-end/35185
24852         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
24853         (lower_omp_2): New function.
24854         (lower_omp_1, lower_omp): Rewritten.
24855
24856 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
24857
24858         PR 35054
24859         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
24860         with the phrase "Microsoft Windows compilers".
24861         (Push/Pop Macro Pragmas): New subsection. Document
24862         #pragma push_macro and pragma pop_macro.
24863
24864 2008-03-12  Paul Brook  <paul@codesourcery.com>
24865
24866         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
24867
24868 2008-03-12  Paul Brook  <paul@codesourcery.com>
24869
24870         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
24871         (thumb2_alusi3_short): Exclude PLUS and MINUS.
24872         (thumb2_addsi_shortim): Rename ...
24873         (thumb2_addsi_short): ... to this.  Allow register operands.
24874         (thumb2_subsi_short): New pattern.
24875         (thumb2_one_cmplsi2_short,
24876         thumb2_negsi2_short): New patterns and peepholes.
24877
24878 2008-03-12  Paul Brook  <paul@codesourcery.com>
24879
24880         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
24881
24882 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
24883
24884         * config/i386/i386.md (int_cond): New code iterator.
24885         (fp_cond): Ditto.
24886         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
24887         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
24888         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
24889         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
24890         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
24891         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
24892         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
24893         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
24894
24895 2008-03-12  Paul Brook  <paul@codesourcery.com>
24896
24897         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
24898         instead of {arm,thumb}_compute_save_reg_mask.
24899         (output_return_instruction): Ditto.
24900         (thumb_unexpanded_epilogue): Ditto.
24901         (thumb1_expand_prologue): Ditto.
24902         (thumb1_output_function_prologue): Ditto.
24903         (arm_set_return_address): Ditto.
24904         (thumb_set_return_address): Ditto.
24905         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
24906         regs to achieve stack alignment.
24907         (thumb1_compute_save_reg_mask): Fix compiler warning.
24908         (arm_output_epilogue): Use offsets->saved_regs_mask.
24909         Adjust stack pointer by poping call clobered registers.
24910         (arm_expand_prologue): Use offsets->saved_regs_mask.
24911         Adjust stack pointer by pushing extra registers.
24912         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
24913
24914 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
24915
24916         PR tree-opt/35422
24917         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
24918         conversion to the operands of a multiplication.
24919
24920 2008-03-12  Richard Guenther  <rguenther@suse.de>
24921
24922         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
24923         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
24924         * timevar.def (TV_TREE_PHIPROP): Add.
24925         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
24926         pass description.  Use TV_TREE_PHIPROP.
24927         * tree-ssa-forwprop.c: Remove phiprop code.
24928
24929 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
24930
24931         PR middle-end/35549
24932         * omp-low.c (maybe_lookup_decl): Constify first argument.
24933         (use_pointer_for_field): Change last argument from bool to
24934         omp_context *.  Disallow shared copy-in/out in nested
24935         parallel if decl is shared in outer parallel too.
24936         (build_outer_var_ref, scan_sharing_clauses,
24937         lower_rec_input_clauses, lower_copyprivate_clauses,
24938         lower_send_clauses, lower_send_shared_vars): Adjust callers.
24939
24940 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
24941             Ira Rosen  <irar@il.ibm.com>
24942
24943         * tree-vectorizer.c (free_stmt_vec_info): New function.
24944         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
24945         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
24946         * tree-vectorizer.h (free_stmt_vec_info): Declare.
24947         * tree-vect-transform.c (vectorizable_conversion): Free
24948         vec_oprnds0 if it was allocated.
24949         (vect_permute_store_chain): Remove unused VECs.
24950         (vectorizable_store): Free VECs that are allocated in the..
24951         function.
24952         (vect_transform_strided_load, vectorizable_load): Likewise.
24953         (vect_remove_stores): Simplify the code.
24954         (vect_transform_loop): Move code to vect_remove_stores().
24955         Call vect_remove_stores() and free_stmt_vec_info().
24956
24957 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24958
24959         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
24960         TARGET_HPUX.  Revise comment.
24961         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
24962         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
24963         Use sr4 variant of `be' instruction when not generating PIC code.
24964         (attr_length_call): Adjust for above change.
24965
24966 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24967
24968         * ipa-reference.c (static_execute): Remove module_statics_const and
24969         associated setting code.
24970
24971 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
24972
24973         PR target/35540
24974         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
24975         predicate for operand 1.
24976         (paritysi2_cmp): Use register_operand predicate for operand 2.
24977         Use earlyclobber modifier for operand 1.  Remove support for
24978         memory operands.
24979         (paritydi2_cmp): Use register_operand predicate for operand 3.
24980         Use earlyclobber modifier for operand 1.  Remove support for
24981         memory operands.
24982
24983 2008-03-11  Paul Brook  <paul@codesourcery.com>
24984             Vladimir Prus  <vladimir@codesourcery.com>
24985
24986         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
24987         (arm_compute_save_reg0_reg12_mask): Always
24988         check if register 11 must be saved.  Always safe hard frame pointer
24989         when frame_pointer_needeed.
24990         (arm_compute_save_reg_mask): Save IP and PC
24991         only with apcs frames.
24992         (arm_output_epilogue): Adjust Thumb2 codepath to
24993         be also invoked and work for ARM non-apcs frames.
24994         (arm_expand_prologue): Don't bother saving IP
24995         for non-apcs frame, since it's not clobbered by
24996         prologue code.  Implement non-apcs frame
24997         layout.
24998
24999 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
25000
25001         PR rtl-optimization/35281
25002         * expr.c (convert_move): Use a new pseudo for the intermediate
25003         from_mode->word_mode result.
25004
25005 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
25006
25007         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
25008         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
25009         * toplev.c (compile_file): Don't call it.
25010
25011 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
25012
25013         PR middle-end/35526
25014         * expr.c (store_expr): Call emit_block_move if the mode
25015         of "temp" RTX is BLKmode.
25016
25017 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25018             Richard Guenther  <rguenther@suse.de>
25019
25020         PR tree-optimization/31358
25021         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
25022         the step with a NULL_TREE.
25023         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
25024         to sizetype if type is a pointer type.
25025         (add_candidate_1): Don't convert the base and step to
25026         the generic type if the orginal type is a pointer type.
25027         (add_iv_value_candidates): Use sizetype for the step
25028         if type is a pointer type.
25029         (cand_value_at): Likewise.
25030         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
25031         for pointer types.
25032         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
25033         Don't convert the tem affine to the type.
25034         (add_elt_to_tree): Use sizetype for the step if a pointer.
25035         Use POINTER_PLUS_EXPR for pointers.
25036         (aff_combination_to_tree): Use sizetype for the step if a
25037         pointer.
25038
25039 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
25040
25041         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
25042         Remove commutativity hint.
25043
25044 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
25045
25046         PR c/35438
25047         PR c/35439
25048         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
25049         errorneous type.  Check that v is a VAR_DECL.
25050
25051         PR middle-end/35099
25052         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
25053
25054 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
25055
25056         PR tree-optimization/35494
25057         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
25058         may be overriden at link and run time.
25059
25060 2008-03-10  Richard Guenther  <rguenther@suse.de>
25061
25062         PR tree-optimization/34677
25063         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
25064         (poolify_tree): Likewise.
25065         (modify_expr_template): Likewise.
25066         (poolify_modify_stmt): Likewise.
25067         (insert_fake_stores): Handle all component-ref style stores
25068         in addition to INDIRECT_REF.  Also handle complex types.
25069         Do not poolify the inserted load.
25070         (realify_fake_stores): Do not rebuild the tree but only
25071         make it a SSA_NAME copy.
25072         (init_pre): Remove initialzation of modify_expr_template.
25073         Do not allocate modify_expr_node_pool.
25074         (fini_pre): Do not free modify_expr_node_pool.
25075
25076 2008-03-10  Paul Brook  <paul@codesourcery.com>
25077
25078         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
25079         to avoid conflicts.
25080
25081 2008-03-10  Paul Brook  <paul@codesourcery.com>
25082             Mark Shinwell  <shinwell@codesourcery.com>
25083
25084         * config/arm/cortex-r4.md: New.
25085         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
25086         insn attributes.
25087         * config/arm/arm.md: Include cortex-r4.md.
25088         (insn): Add smmls, sdiv and udiv values.
25089         (generic_sched): Don't use generic scheduling for Cortex-R4.
25090         (arm_issue_rate): New function.
25091         (TARGET_SCHED_ISSUE_RATE): Define.
25092
25093 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
25094
25095         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
25096
25097 2008-03-10  Richard Guenther  <rguenther@suse.de>
25098
25099         * tree-ssa-pre.c (get_sccvn_value): Simplify.
25100         (compute_avail): Do not add stmt uses to AVAIL_OUT.
25101
25102 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
25103
25104         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
25105         Set default to true.
25106
25107 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25108
25109         * c.opt (Wsynth): Deprecate.
25110         * doc/invoke.texi (Option Summary, Warning Options): Document
25111         -Wno-format-contains-nul.
25112
25113 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
25114
25115         PR target/35496
25116         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
25117         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
25118
25119 2008-03-09  Ira Rosen  <irar@il.ibm.com>
25120
25121         * config/rs6000/rs6000.c (builtin_description): Rename vector
25122         left shift operations.
25123         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
25124         (altivec_vsl<VI_char>): Rename to ...
25125         (ashl<mode>3): ... new name.
25126         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
25127         gen_ashlv4si3.
25128         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
25129
25130 2008-03-08  Richard Guenther  <rguenther@suse.de>
25131
25132         * coverage.h (tree_coverage_counter_addr): Declare.
25133         * coverage.c (tree_coverage_counter_addr): New function.
25134         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
25135         before using again.
25136         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
25137         (tree_gen_one_value_profiler): Likewise.
25138         (tree_gen_ic_profiler): Likewise.
25139         (tree_gen_average_profiler): Likewise.
25140         (tree_gen_ior_profiler): Likewise.
25141
25142 2008-03-08  Richard Guenther  <rguenther@suse.de>
25143
25144         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
25145         (vn_binary_op_insert): Likewise.
25146         (vn_unary_op_lookup): Likewise.
25147         (vn_unary_op_insert): Likewise.
25148         (vn_nary_op_lookup): Declare.
25149         (vn_nary_op_insert): Likewise.
25150         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
25151         and binary hashes, use a single obstack for unary_op_pool
25152         and binary_op_pool.
25153         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
25154         a single struct vn_nary_op_s.  Store tree code length and
25155         a variable number of operands.
25156         (struct vn_reference_op_struct): Remove unused op2.
25157         (vn_reference_op_eq): Do not compare op2.
25158         (vn_reference_op_compute_hash): Do not compute hash of op2.
25159         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
25160         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
25161         with vn_nary_op_compute_hash.
25162         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
25163         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
25164         vn_nary_op_lookup.
25165         (vn_unary_op_insert, vn_binary_op_insert): Replace with
25166         vn_nary_op_insert.
25167         (visit_unary_op): Call nary functions.
25168         (visit_binary_op): Likewise.
25169         (process_scc): Adjust for struct vn_tables_s changes.
25170         (allocate_vn_table): Likewise.
25171         (free_vn_table): Likewise.
25172         * tree-vn.c (vn_add): Call nary functions.
25173         (vn_lookup): Likewise.
25174
25175 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
25176
25177         PR target/35498
25178         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
25179         wdst back after sync_compare_and_swapqhi_internal.
25180
25181 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
25182
25183         PR target/22152
25184         * config/i386/i386-modes.def (V1DI): New vector mode.
25185         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
25186         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
25187         (MMXMODE248): Ditto.
25188         (MMXMODE): Add V1DI mode.
25189         (mmxvecsize): Change DI mode to V1DI mode.
25190         ("mov<mode>): Use MMXMODEI8 mode iterator.
25191         ("*mov<mode>_internal_rex64"): Ditto.
25192         ("*mov<mode>_internal"): Ditto.
25193         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
25194         ("mmx_sub<mode>3"): Ditto.
25195         ("mmx_adddi3"): Remove insn pattern.
25196         ("mmx_subdi3"): Ditto.
25197         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
25198         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
25199         ("mmx_ashl<mode>3"): Ditto.
25200         ("mmx_lshrdi3"): Remove insn pattern.
25201         ("mmx_ashldi3"): Ditto.
25202         * config/i386/i386.c (classify_argument): Handle V1DImode.
25203         (function_arg_advance_32): Ditto.
25204         (function_arg_32): Ditto.
25205         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
25206         mmx_addv1di3 insn pattern.
25207         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
25208         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
25209         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
25210         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
25211         Remove definitions of built-in functions.
25212         (V1DI_type_node): New node.
25213         (v1di_ftype_v1di_int): Ditto.
25214         (v1di_ftype_v1di_v1di): Ditto.
25215         (v2si_ftype_v2si_si): Ditto.
25216         (v4hi_ftype_v4hi_di): Remove node.
25217         (v2si_ftype_v2si_di): Ditto.
25218         (ix86_init_mmx_sse_builtins): Handle V1DImode.
25219         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
25220         Redefine builtins using def_builtin_const with *_ftype_*_int node.
25221         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
25222         Add new builtins using def_builtin_const.
25223         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
25224         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
25225         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
25226         * config/i386/mmintrin.h (__v1di): New typedef.
25227         (_mm_add_si64): Cast arguments to __v1di type.
25228         (_mm_sub_si64): Ditto.
25229         (_mm_sll_pi16): Cast __count to __v4hi type.
25230         (_mm_sll_pi32): Cast __count to __v2si type.
25231         (_mm_sll_si64): Cast arguments to __v1di type.
25232         (_mm_srl_pi16): Cast __count to __v4hi type.
25233         (_mm_srl_pi32): Cast __count to __v2si type.
25234         (_mm_srl_si64): Cast arguments to __v1di type.
25235         (_mm_sra_pi16): Cast __count to __v4hi type.
25236         (_mm_sra_pi32): Cast __count to __v2si type.
25237         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
25238         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
25239         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
25240         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
25241         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
25242         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
25243         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
25244         (_mm_srai_pi32): Use __builtin_ia32_psradi.
25245         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
25246         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
25247         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
25248         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
25249
25250 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
25251
25252         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
25253
25254 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
25255
25256         PR target/35373
25257         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
25258         reg+const addressing for Altivec modes.  Don't generate reg+reg
25259         addressing for TFmode or TDmode quantities.
25260
25261 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
25262
25263         * c-common.c (vector_types_convertible_p): Call langhook
25264         instead of comptypes.
25265
25266 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25267
25268         PR tree-opt/35402
25269         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
25270         integral and scalar float variables which have a
25271         NULL DECL_INITIAL.
25272
25273 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
25274
25275         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
25276         dwarf_register_span hook when emitting unwind information for
25277         register-to-memory saves.
25278         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
25279         (rs6000_frame_related): Remove call to spe_synthesize_frame.
25280
25281 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
25282
25283         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
25284         for the same VAR_DECL.
25285
25286 2008-03-06  Tom Tromey  <tromey@redhat.com>
25287
25288         * treelang: Delete.
25289         * doc/standards.texi (Standards): Don't mention treelang.
25290         * doc/invoke.texi (Overall Options): Don't mention treelang.
25291         * doc/install.texi (Prerequisites): Don't mention bison or
25292         treelang.
25293         (Configuration): Don't mention treelang.
25294         (Building): Likewise.
25295         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
25296
25297 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
25298
25299         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
25300         word-extractions out of a multi-word object.
25301
25302 2008-03-06  Richard Guenther  <rguenther@suse.de>
25303
25304         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
25305         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
25306         result type and precision.
25307         * expr.c (get_inner_reference): Set unsignedp based on the result
25308         type of BIT_FIELD_REF.
25309         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
25310         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
25311         (try_instantiate_multiple_fields): Likewise.  Use the correct type
25312         for BIT_FIELD_REF.
25313         (sra_build_assignment): Likewise.
25314         (sra_build_elt_assignment): Likewise.
25315         (sra_explode_bitfield_assignment): Likewise.
25316         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
25317         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
25318         set BIT_FIELD_REF_UNSIGNED.
25319         (vectorizable_load): Likewise.
25320
25321 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
25322
25323         * cse.c (cse_extended_basic_block): Invalidate artificial defs
25324         at bb start.
25325
25326 2008-03-06  Richard Guenther  <rguenther@suse.de>
25327
25328         * alias.c (struct alias_set_entry): Move has_zero_child field
25329         to pack with alias_set.
25330
25331 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
25332
25333         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
25334         32bit host.
25335
25336 2008-03-05  Ian Lance Taylor  <iant@google.com>
25337
25338         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
25339
25340 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
25341
25342         * fwprop.c (update_df): Support width and offset parameters of
25343         df_ref_create.
25344         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
25345         global_conflicts): Change DF_REF_EXTRACT to either
25346         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25347         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25348         * df-scan.c (df_ref_record, df_defs_record,
25349         df_ref_create_structure, df_def_record_1, df_uses_record,
25350         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
25351         df_bb_refs_collect, df_entry_block_defs_collect,
25352         df_exit_block_uses_collect): Support new width and offset fields.
25353         (ref_extract_pool): New storage pool.
25354         (df_free_ref): New function.
25355         (df_reg_chain_unlink, df_free_collection_rec,
25356         df_sort_and_compress_refs): Call df_free_ref.
25357         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
25358         of df_ref_extract.
25359         (df_ref_create_structure): Allocate df_ref_extract if offset and
25360         width fields are used.
25361         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
25362         (df_uses_record): Get offset and width from ZERO_EXTRACT
25363         and SIGN_EXTRACT.
25364         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
25365         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25366         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25367         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
25368         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25369         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25370         (df_ref_extract): New structure.
25371         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
25372         (df_ref_create): Add width and offset parameters.
25373
25374 2008-03-05  Richard Guenther  <rguenther@suse.de>
25375
25376         * tree-ssa-structalias.c (get_constraint_for_component_ref):
25377         Use ranges_overlap_p.
25378         (offset_overlaps_with_access): Rename
25379         to ranges_overlap_p and move ...
25380         * tree-flow-inline.h (ranges_overlap_p): ... here.
25381
25382         * tree.h (get_inner_reference, handled_component_p): Update
25383         comments.
25384
25385         * tree.h (record_component_aliases, get_alias_set,
25386         alias_sets_conflict_p, alias_sets_must_conflict_p,
25387         objects_must_conflict_p): Move declarations ...
25388         * alias.h (record_component_aliases, get_alias_set,
25389         alias_sets_conflict_p, alias_sets_must_conflict_p,
25390         objects_must_conflict_p): ... here.
25391         Include coretypes.h.
25392         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
25393
25394 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
25395
25396         * cfg.c: Include tree-flow.h.
25397         (remove_edge_raw): Call redirect_edge_var_map_clear.
25398         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
25399         * tree-flow-inline.h (redirect_edge_var_map_def): New.
25400         (redirect_edge_var_map_result): New.
25401         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
25402         PENDING_STMT use with redirect_edge_var_map_*.
25403         * tree-ssa.c (edge_var_maps): New definition.
25404         (redirect_edge_var_map_add): New.
25405         (redirect_edge_var_map_clear): New.
25406         (redirect_edge_var_map_dup): New.
25407         (redirect_edge_var_map_vector): New.
25408         (redirect_edge_var_map_destroy): New.
25409         (ssa_redirect_edge): Replace PENDING_STMT use with
25410         redirect_edge_var_map_*.
25411         (flush_pending_stmts): Same.
25412         (delete_tree_ssa): Destroy edge var map.
25413         * tree-flow.h (struct _edge_var_map): New.
25414         Define edge_var_map vector type.
25415         Declare redirect_edge_var_map_* prototypes.
25416         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
25417         * tree-cfg.c (reinstall_phi_args): Replace
25418         PENDING_STMT use with redirect_edge_var_map_*.
25419
25420 2008-03-05  Richard Guenther  <rguenther@suse.de>
25421
25422         PR tree-optimization/35472
25423         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
25424         whose single use_stmt has a overlapping set of loaded and
25425         stored symbols as that use_stmt might be a noop assignment then.
25426
25427 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
25428
25429         * gthr-rtems.h: Implement __gthread_mutex_destroy.
25430
25431 2008-03-05  Richard Guenther  <rguenther@suse.de>
25432
25433         PR c++/35336
25434         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
25435         should be constants.
25436         * tree-cfg.c (verify_expr): Verify it.
25437         * fold-const.c (fold_truthop): Remove code generating
25438         BIT_FIELD_REFs of structure bases.
25439         (fold_binary): Likewise.
25440         (fold_ternary): Position and size of BIT_FIELD_REFs are
25441         always host integers.
25442         (make_bit_field_ref): Remove.
25443         (optimize_bit_field_compare): Remove.
25444         (all_ones_mask_p): Remove.
25445
25446 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
25447
25448         PR gcc/33009
25449         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
25450         (split_block_and_df_analyze): New. Split basic block and rebuild
25451         dataflow.
25452         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
25453         SPLIT_BLOCK.
25454         (split_pattern_seq): Likewise.
25455         (erase_matching_seqs): Likewise.
25456         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
25457
25458 2008-03-04  Geoff Keating  <geoffk@apple.com>
25459
25460         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
25461         declaration and code.
25462         (tree_invalid_nonnegative_warnv_p): Likewise.
25463
25464 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
25465
25466         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
25467         examples.  Truncate option-names then causing overfull hbox.
25468
25469 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25470
25471         PR target/35222
25472         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
25473         on hpux10.
25474         * configure: Rebuilt.
25475
25476 2008-03-04  Rafael Espíndola  <espindola@google.com>
25477
25478         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
25479         (tree_unary_nonnegative_warnv_p): New.
25480         (tree_binary_nonnegative_warnv_p): New.
25481         (tree_single_nonnegative_warnv_p): New.
25482         (tree_invalid_nonnegative_warnv_p): New.
25483         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
25484
25485 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25486
25487         PR 28322
25488         * opts.c (handle_option): Postpone 'unknown option' errors only for
25489         warning options.
25490
25491 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
25492
25493         PR target/35453
25494         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
25495         (_SIDD_XXX): This.
25496
25497 2008-03-04  Rafael Espíndola  <espindola@google.com>
25498
25499         * fold-const.c (tree_unary_nonzero_warnv_p): New.
25500         (tree_binary_nonzero_warnv_p): New.
25501         (tree_single_nonzero_warnv_p): New.
25502         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
25503
25504 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
25505
25506         PR middle-end/35456
25507         * fold-const.c (fold_cond_expr_with_comparison): Prevent
25508         transformations for modes that have signed zeros.
25509         * ifcvt.c (noce_try_abs): Ditto.
25510
25511 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
25512
25513         * config/i386/i386.c (override_options): Force
25514         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
25515
25516 2008-03-04  Jan Hubicka  <jh@suse.cz>
25517
25518         PR c++/35262
25519         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
25520         in last commit.
25521
25522 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
25523
25524         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
25525         label to probe the stack.
25526
25527 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
25528
25529         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
25530         (__gthr_win32_mutex_destroy): Declare.
25531         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
25532         __gthr_win32_mutex_destroy.
25533         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
25534
25535 2008-03-03  Jan Hubicka  <jh@suse.cz>
25536
25537         PR c++/35262
25538         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
25539         aggressive on inlining cold calls.
25540
25541 2008-03-03  Richard Guenther  <rguenther@suse.de>
25542
25543         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
25544         struct copies into the expression table.
25545         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
25546         (try_to_simplify): Likewise.
25547         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
25548         integral and pointer arguments which do not change the
25549         precision to NOP_EXPRs.
25550         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
25551         VIEW_CONVERT_EXPR case.
25552
25553 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
25554
25555         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
25556         defined in a loop at depth 0 is invariant.
25557         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
25558         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
25559         be called at loop depth 0.
25560
25561 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
25562
25563         PR driver/35420
25564         * gcc.c (process_command): Update copyright notice dates.
25565         * gcov.c (print_version): Likewise.
25566         * gcov-dump.c (print_version): Likewise.
25567         * mips-tfile.c (main): Likewise.
25568         * mips-tdump.c (main): Likewise.
25569
25570 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25571
25572         PR 24924
25573         * c-common.c (flag_permissive): Delete.
25574         (constant_expression_warnings): Check flags first.
25575         (constant_expression_error): New.
25576         * c-common.h (flag_permissive): Delete.
25577         (constant_expression_error): Declare.
25578         * flags.h (flag_permissive): Declare. Update description.
25579         * diagnostic.c (pedwarn): Update.
25580         (permerror): New.
25581         * diagnostic.h (pedantic_error_kind): Rename as pedantic_warning_kind.
25582         (permissive_error_kind): New.
25583         * toplev.c (flag_permissive): Define. Update description.
25584         * toplev.h (permissive_error_kind): Declare.
25585         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
25586         (pedwarn_c90): Use pedantic_warning_kind.
25587         * c-opts.c (c_common_post_options): flag_permissive does not affect
25588         flag_pedantic_errors.
25589
25590 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
25591
25592         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
25593         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
25594         __absvsi2, __absvDI2): Use unsigned arithmetic.
25595
25596 2008-03-02  Andi Kleen  <ak@suse.de>
25597             Richard Guenther  <rguenther@suse.de>
25598
25599         * struct-equiv.c: Remove file.
25600         * cfg_cleanup.c (condjump_equiv_p): Remove.
25601         * Makefile.in (OBJS-common): Remove struct-equiv.o.
25602         (struct-equiv.o): Remove rule.
25603         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
25604         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
25605         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
25606
25607 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25608
25609         * ifcvt.c (noce_process_if_block): Try to handle only the then
25610         block if the else block exists but isn't suitable.
25611
25612 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
25613
25614         PR gcc/35063
25615         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
25616         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
25617         regression from previous patch.
25618
25619 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
25620
25621         PR gcc/35063
25622         * gthr.h: Add __gthread_mutex_destroy as a function that must be
25623         implemented.
25624         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
25625         * gthr-single.h (__gthread_mutex_destroy): Likewise.
25626         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
25627         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
25628         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
25629         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
25630         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
25631         (__gthread_mutex_destroy_function): Rename to
25632         __gthread_mutex_destroy.
25633         * gthr-dce.h (__gthread_mutex_destroy): Call
25634         pthread_mutex_destroy.
25635         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
25636         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
25637         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
25638
25639 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25640
25641         * df-scan.c (df_ref_chain_change_bb): Simplify.
25642         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
25643         set_block_for_insn if there's any change.
25644         * df.h ((df_insn_change_bb): Fix prototype.
25645         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
25646         df_insn_change_bb, don't call set_block_for_insn.
25647         * emit-rtl.c (reorder_insns): Likewise.
25648         * haifa-sched.c (move_insn): Likewise.
25649
25650 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25651
25652         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
25653
25654 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25655
25656         * tree-flow-inline.h (next_readonly_imm_use): Return
25657         NULL_USE_OPERAND_P after the end.
25658
25659 2008-03-01  Richard Guenther  <rguenther@suse.de>
25660
25661         PR tree-optimization/35411
25662         * tree-sra.c (sra_build_assignment): Split conversion to
25663         final type to a separate statement if we are not assigning
25664         to a register.
25665
25666 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
25667
25668         * fold-const.c (fold_convertible_p): Correct the logic to follow
25669         that in fold_convert().
25670
25671 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
25672
25673         PR c++/35315
25674         * tree-inline.c (build_duplicate_type): When we make a
25675         duplicate type, make it unique in the canonical types system.
25676
25677 2008-02-29  Tom Tromey  <tromey@redhat.com>
25678
25679         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
25680         input_file_stack_history, input_file_stack_restored): Remove.
25681         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25682         * input.h (struct file_stack): Remove.
25683         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25684         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
25685         Likewise.
25686         * diagnostic.h (struct diagnostic_context) <last_module>: Change
25687         type.
25688         (diagnostic_last_module_changed): Add 'map' argument.
25689         (diagnostic_set_last_function): Likewise.
25690         * diagnostic.c (undiagnostic_report_current_module): Iterate using
25691         line map, not input_file_stack.
25692         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
25693
25694 2008-02-29  Paul Brook  <paul@codesourcery.com>
25695
25696         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
25697
25698 2008-02-29  Paul Brook  <paul@codesourcery.com>
25699
25700         * config/arm/ieee754-df.S (muldf3): Use RET macros.
25701
25702 2008-02-29  Richard Guenther  <rguenther@suse.de>
25703
25704         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
25705         vn_lookup_or_add.
25706         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
25707         value for comparing for a store match.
25708         (simplify_unary_expression): Do nothing for SSA_NAMEs.
25709         (try_to_simplify): Do not do a full-blown reference lookup.
25710
25711 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
25712
25713         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
25714         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
25715
25716         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
25717
25718 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
25719
25720         * tree-loop-linear.c (try_interchange_loops): Compare memory access
25721         strides against cache sizes.
25722
25723 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
25724
25725         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
25726         constant to fpul.
25727
25728 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
25729
25730         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
25731         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
25732         is smaller than the original promoted value.
25733         (simplify_subreg): If OP is a SUBREG, try to preserve its
25734         SUBREG_PROMOTED_VAR_P information.
25735
25736 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
25737
25738         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
25739         (VN_INFO_GET): Allocate new objects on the obstack.
25740         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
25741         for rpo_numbers_temp, for consistency.
25742         (free_scc_vn): Free the obstack.
25743
25744 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
25745
25746         * doc/invoke.texi: Document -ftree-loop-distribution.
25747         * tree-loop-distribution.c: New.
25748         * tree-pass.h (pass_loop_distribution): New.
25749         * graphds.h (struct graph): Add htab_t indices.
25750         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
25751         * tree-vectorizer.c (rename_variables_in_loop): Extern.
25752         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
25753         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
25754         * tree-data-ref.c (debug_data_dependence_relations): New.
25755         (dump_data_dependence_relation): Also print data references.
25756         (free_data_ref): Extern.
25757         (same_access_functions): Moved...
25758         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
25759         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25760         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
25761         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
25762         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
25763         (stmts_from_loop): Skip LABEL_EXPR.
25764         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
25765         New.
25766         (build_rdg): Initialize rdg->indices htab.
25767         (free_rdg, stores_from_loop, ref_base_address,
25768         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
25769         have_similar_memory_accesses_1, ref_base_address_1,
25770         remove_similar_memory_refs): New.
25771         * tree-data-ref.h: Depend on tree-chrec.h.
25772         (debug_data_dependence_relations, free_data_ref): Declared.
25773         (same_access_functions): ... here.
25774         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
25775         New.
25776         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
25777         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
25778         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
25779         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25780         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
25781         rdg_vertex_for_stmt): Declared.
25782         (struct rdg_edge): Add level.
25783         (RDGE_LEVEL): New.
25784         (free_rdg, stores_from_loop, remove_similar_memory_refs,
25785         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
25786         Declared.
25787         (rdg_has_similar_memory_accesses): New.
25788         * tree-vect-analyze.c: Remove unused static decls.
25789         * lambda.h (dependence_level): New.
25790         * common.opt (ftree-loop-distribution): New.
25791         * tree-flow.h (mark_virtual_ops_in_bb,
25792         slpeel_tree_duplicate_loop_to_edge_cfg,
25793         rename_variables_in_loop): Declared.
25794         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
25795         (OBJS-common): Add tree-loop-distribution.o.
25796         (tree-loop-distribution.o): New rule.
25797         * tree-cfg.c (mark_virtual_ops_in_bb): New.
25798         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
25799         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
25800
25801 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
25802
25803         PR target/33963
25804         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
25805         other than structures and unions.
25806
25807 2008-02-28  Richard Guenther  <rguenther@suse.de>
25808
25809         Revert:
25810         2008-02-26  Richard Guenther  <rguenther@suse.de>
25811
25812         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25813         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25814         (lookup_decl_from_uid): Declare.
25815         (remove_decl_from_map): Likewise.
25816         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25817         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25818         (decl_for_uid_map): New global hashtable mapping DECL_UID
25819         to the decl tree.
25820         (init_ttree): Allocate it.
25821         (insert_decl_to_uid_decl_map): New helper function.
25822         (make_node_stat): Insert new decls into the map.
25823         (copy_node_stat): Likewise.
25824         (lookup_decl_from_uid): New function.
25825         (remove_decl_from_map): Likewise.
25826         (print_decl_for_uid_map_statistics): New helper.
25827         (dump_tree_statistics): Call it.
25828
25829         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25830         (referenced_var_iterator): Adjust.
25831         (FOR_EACH_REFERENCED_VAR): Adjust.
25832         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25833         (num_referenced_vars): Adjust.
25834         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25835         (first_referenced_var): Remove.
25836         (end_referenced_vars_p): Likewise.
25837         (next_referenced_var): Likewise.
25838         (referenced_var_iterator_set): New helper function.
25839         * tree-dfa.c (referenced_var_lookup): Adjust.
25840         (referenced_var_check_and_insert): Likewise.
25841         (remove_referenced_var): Likewise.
25842         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25843         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25844         (verify_call_clobbering): Likewise.
25845         (verify_memory_partitions): Likewise.
25846         (init_tree_ssa): Allocate bitmap instead of hashtable for
25847         referenced_vars.
25848         (delete_tree_ssa): Adjust.
25849         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25850         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25851         (compute_tag_properties): Likewise.
25852         (set_initial_properties): Likewise.
25853         (find_partition_for): Likewise.
25854         (update_reference_counts): Likewise.
25855         (dump_may_aliases_for): Likewise.
25856         * tree-ssa-operands.c (add_virtual_operand): Likewise.
25857         (add_call_clobber_ops): Likewise.
25858         (add_call_read_ops): Likewise.
25859         (get_asm_expr_operands): Likewise.
25860         * tree-into-ssa.c (dump_decl_set): Likewise.
25861         (update_ssa): Likewise.
25862         * tree-sra.c (scan_function): Likewise.
25863         (decide_instantiations): Likewise.
25864         (scalarize_parms): Likewise.
25865         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25866         (dsa_named_for): Likewise.
25867         * tree-ssa-structalias.c (update_alias_info): Likewise.
25868         (merge_smts_into): Likewise.
25869
25870 2008-02-27  David Daney  <ddaney@avtrex.com>
25871
25872         PR target/34409
25873         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
25874         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
25875         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
25876         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
25877         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
25878
25879 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
25880
25881         PR target/25477
25882         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
25883         (BUILT_IN_NEXTTOWARD): Remove.
25884         (BUILT_IN_NEXTTOWARDF): Ditto.
25885         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
25886         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
25887
25888 2008-02-27  Tom Tromey  <tromey@redhat.com>
25889
25890         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
25891         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
25892
25893 2008-02-27  Jan Beulich  <jbeulich@novell.com>
25894
25895         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
25896         update the respective field on newdecl.
25897
25898 2008-02-27  Revital Eres  <eres@il.ibm.com>
25899
25900         PR rtl-optimization/34999
25901         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
25902         crossing edges that ends with a call insn.
25903         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
25904         call insn and clear the EDGE_CROSSING flag of the crossing edge
25905         when fixing fallthru edges.
25906
25907 2008-02-27  Richard Guenther  <rguenther@suse.de>
25908
25909         PR middle-end/35390
25910         * fold-const.c (fold_unary): Return the correct argument,
25911         converted to the result type.
25912
25913 2008-02-27  Richard Guenther  <rguenther@suse.de>
25914
25915         PR middle-end/34971
25916         * expr.c (expand_expr_real_1): Assert on rotates that operate
25917         on partial modes.
25918         * fold-const.c (fold_binary): Use the types precision, not the
25919         bitsize of the mode if folding rotate expressions.  Build rotates
25920         only for full modes.
25921
25922 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
25923
25924         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
25925         and CPP_PRAGMA_EOL.
25926         * c-pragma.c (pragma_ns_name): New typedef.
25927         (registered_pp_pragmas): New variable.
25928         (c_pp_lookup_pragma): New function.
25929         (c_register_pragma_1): If flag_preprocess_only, do nothing
25930         for non-expanded pragmas, for expanded ones push pragma's
25931         namespace and name into registered_pp_pragmas vector.
25932         (c_invoke_pragma_handler): Register OpenMP pragmas even when
25933         flag_preprocess_only, don't register GCC pch_preprocess
25934         pragma if flag_preprocess_only.
25935         * c-opts.c (c_common_init): Call init_pragma even if
25936         flag_preprocess_only.
25937         * c-pragma.c (c_pp_lookup_pragma): New prototype.
25938         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
25939         cpp_register_pragma if flag_preprocess_only.
25940
25941 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25942
25943         PR c/28800
25944         * c-parser.c (c_parser_translation_unit): Warn for empty
25945         translation unit, not empty source file.
25946
25947 2008-02-26  Paul Brook  <paul@codesourcery.com>
25948
25949         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
25950         operand for Thumb-2.
25951         * config/arm/arm.h (reg_class): Add CORE_REGS.
25952         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
25953         (BASE_REG_CLASS): Use CORE_REGS.
25954         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
25955         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
25956         (REGNO_OK_FOR_INDEX_P): Exclude SP.
25957         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
25958         ARM_REGNO_OK_FOR_INDEX_P.
25959         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
25960         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
25961         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
25962         (ldm/stm peepholes): Ditto.
25963         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
25964         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
25965         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
25966         * config/arm/constraints.md: Enable "k" constraint on ARM.
25967
25968 2008-02-27  Ben Elliston  <bje@au.ibm.com>
25969
25970         * config/rs6000/rs6000.c: Annotate cache line size field in all
25971         instances of struct processor_costs.
25972
25973 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
25974
25975         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
25976         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
25977         jump_bypass): New counters.
25978         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
25979         * dce.c (gate_ud_dce): Same.
25980         (gate_fast_dce): Same.
25981         * dse.c (gate_dse1): New function.
25982         (gate_dse2): New function.
25983         (gate_dse): Merge results of new gate functions.
25984         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
25985         (gate_handle_jump_bypass): Add dbg_cnt.
25986         (gate_handle_gcse): Add dbg_cnt.
25987         * ifcvt.c (gate_handle_if_conversion): Same.
25988         (gate_handle_if_after_combine): Same.
25989         (gate_handle_if_after_reload): Same.
25990         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
25991
25992 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
25993
25994         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
25995         line sizes.
25996         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
25997
25998 2008-02-26  Jason Merrill  <jason@redhat.com>
25999
26000         PR c++/35315
26001         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
26002         alone if it's the naming decl for the type's main variant.
26003
26004 2008-02-26  Tom Tromey  <tromey@redhat.com>
26005
26006         * system.h (USE_MAPPED_LOCATION): Poison.
26007         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
26008         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
26009         (make_goto_expr_edges): Likewise.
26010         (remove_bb): Likewise.
26011         (execute_warn_function_return): Likewise.
26012         * basic-block.h (struct edge_def) <goto_locus>: Change type to
26013         location_t.
26014         * c-common.c (fname_decl): Remove old location code.
26015         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
26016         location code.
26017         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
26018         variant.
26019         (ASM_INPUT_SOURCE_LOCATION): Likewise.
26020         (gen_rtx_ASM_INPUT): Likewise.
26021         (gen_rtx_ASM_INPUT_loc): Likewise.
26022         (get_rtx_asm_OPERANDS): Remove.
26023         * cfglayout.c (insn_locators_alloc): Remove old location code.
26024         (set_curr_insn_source_location): Likewise.
26025         (curr_insn_locator): Likewise.
26026         * print-tree.c (print_node): Remove old location code.
26027         * tree-mudflap.c (mf_varname_tree): Remove old location code.
26028         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
26029         * cfgexpand.c (expand_gimple_cond_expr): Don't use
26030         location_from_locus.
26031         (construct_exit_block): Remove old location code.
26032         * emit-rtl.c (force_next_line_note): Remove old location code.
26033         * profile.c (branch_prob): Remove old location code.
26034         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
26035         LOC_LINE): Remove old-location variants.
26036         * langhooks.c (lhd_print_error_function): Remove old location
26037         code.
26038         * configure, config.in: Rebuilt.
26039         * configure.ac (--enable-mapped-location): Remove.
26040         * c-decl.c (c_init_decl_processing): Remove old location code.
26041         (finish_function): Likewise.
26042         * recog.c (decode_asm_operands): Remove old location code.
26043         * c-pch.c (c_common_read_pch): Remove old location code.
26044         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
26045         variants.
26046         * gimple-low.c (lower_function_body): Remove old location code.
26047         * toplev.c (unknown_location): Remove.
26048         (push_srcloc): Remove old-location variant.
26049         (process_options): Remove old location code.
26050         (lang_dependent_init): Likewise.
26051         * input.h (UNKNOWN_LOCATION): Move definition.
26052         (location_t): Undeprecate.
26053         (source_locus): Remove.
26054         (location_from_locus): Remove.
26055         (struct location_s): Remove.
26056         Remove all old-location code.
26057         (input_line, input_filename): Remove.
26058         * final.c (final_scan_insn): Remove old location code.
26059         * diagnostic.c (diagnostic_build_prefix): Remove
26060         USE_MAPPED_LOCATION test.
26061         * tree.h (gimple_stmt) <locus>: Now a location_t.
26062         (tree_exp) <locus>: Likewise.
26063         (DECL_IS_BUILTIN): Remove old-location variant.
26064         (annotate_with_file_line, annotate_with_locus): Likewise.
26065         (expr_locus, set_expr_locus): Update.
26066         * tree.c (build1_stat): Remove old location code.
26067         (last_annotated_node): Remove.
26068         (annotate_with_file_line): Remove old-location variant.
26069         (annotate_with_locus): Likewise.
26070         (expr_location): Remove old location code.
26071         (set_expr_location): Likewise.
26072         (expr_has_location): Likewise.
26073         (expr_locus): Likewise.
26074         (set_expr_locus): Likewise.
26075         (expr_filename): Don't use location_from_locus.
26076         (expr_lineno): Likewise.
26077         * rtl-error.c (location_for_asm): Remove old location code.
26078         * c-lex.c (cb_line_change): Remove old location code.
26079         (fe_file_change): Likewise.
26080         (cb_def_pragma): Likewise.
26081         (c_lex_with_flags): Likewise.
26082         * gengtype.c (do_typedef): Don't special-case location types.
26083         (define_location_structures): Remove.
26084         (main): Don't call define_location_structures.
26085         * tree-pretty-print.c (dump_implicit_edges): Remove old location
26086         code.
26087
26088 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26089
26090         PR 26264
26091         * builtins.def (BUILT_IN_STDARG_START): Remove.
26092         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
26093         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
26094         * tree-inline.c (inline_forbidden_p_1): Likewise.
26095
26096 2008-02-26  Richard Guenther  <rguenther@suse.de>
26097
26098         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26099         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26100         (lookup_decl_from_uid): Declare.
26101         (remove_decl_from_map): Likewise.
26102         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26103         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26104         (decl_for_uid_map): New global hashtable mapping DECL_UID
26105         to the decl tree.
26106         (init_ttree): Allocate it.
26107         (insert_decl_to_uid_decl_map): New helper function.
26108         (make_node_stat): Insert new decls into the map.
26109         (copy_node_stat): Likewise.
26110         (lookup_decl_from_uid): New function.
26111         (remove_decl_from_map): Likewise.
26112         (print_decl_for_uid_map_statistics): New helper.
26113         (dump_tree_statistics): Call it.
26114
26115         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26116         (referenced_var_iterator): Adjust.
26117         (FOR_EACH_REFERENCED_VAR): Adjust.
26118         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26119         (num_referenced_vars): Adjust.
26120         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26121         (first_referenced_var): Remove.
26122         (end_referenced_vars_p): Likewise.
26123         (next_referenced_var): Likewise.
26124         (referenced_var_iterator_set): New helper function.
26125         * tree-dfa.c (referenced_var_lookup): Adjust.
26126         (referenced_var_check_and_insert): Likewise.
26127         (remove_referenced_var): Likewise.
26128         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26129         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26130         (verify_call_clobbering): Likewise.
26131         (verify_memory_partitions): Likewise.
26132         (init_tree_ssa): Allocate bitmap instead of hashtable for
26133         referenced_vars.
26134         (delete_tree_ssa): Adjust.
26135         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26136         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26137         (compute_tag_properties): Likewise.
26138         (set_initial_properties): Likewise.
26139         (find_partition_for): Likewise.
26140         (update_reference_counts): Likewise.
26141         (dump_may_aliases_for): Likewise.
26142         * tree-ssa-operands.c (add_virtual_operand): Likewise.
26143         (add_call_clobber_ops): Likewise.
26144         (add_call_read_ops): Likewise.
26145         (get_asm_expr_operands): Likewise.
26146         * tree-into-ssa.c (dump_decl_set): Likewise.
26147         (update_ssa): Likewise.
26148         * tree-sra.c (scan_function): Likewise.
26149         (decide_instantiations): Likewise.
26150         (scalarize_parms): Likewise.
26151         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26152         (dsa_named_for): Likewise.
26153         * tree-ssa-structalias.c (update_alias_info): Likewise.
26154         (merge_smts_into): Likewise.
26155
26156 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26157
26158         PR 34351
26159         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
26160         * c-opts.c (c_common_handle_option): Wall enables
26161         Wvolatile-register-var.
26162         * common.opt: Move Wvolatile-register-var to...
26163         * c.opt: ...here.
26164
26165 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26166
26167         * common.opt (Wlarger-than=): New.
26168         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
26169         -Wlarger-than=.
26170         * opts.c (common_handle_option): Handle -Wlarger-than=.
26171         * optc-gen.awk: Likewise.
26172         * opth-gen.awk: Likewise.
26173         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
26174         * tree-optimize.c (tree_rest_of_compilation): Likewise.
26175
26176 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26177
26178         * c-common.c (match_case_to_enum_1): Add appropriate
26179         OPT_W* parameter to warning.
26180         (c_do_switch_warnings): Likewise.
26181         * c-typeck.c (warning_init): Add one more parameter following
26182         'warning' function.
26183         (push_init_level): Update call to warning_init.
26184         (pop_init_level): Likewise.
26185         (add_pending_init): Likewise.
26186         (output_init_element: Likewise.
26187
26188 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26189
26190         PR 28322
26191         * toplev.c (toplev_main): If there are warnings or error, print
26192         errors for ignored options.
26193         * opts.c (ignored_options): New static variable.
26194         (postpone_unknown_option_error): New.
26195         (print_ignored_options): New.
26196         (handle_option): Postpone errors for unknown -Wno-* options.
26197         * opts.h (print_ignored_options): Declare.
26198
26199 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
26200
26201         * config/mips/mips.md (loadgp_blockage, blockage): Change type
26202         to "ghost".
26203
26204 2008-02-25  Richard Guenther  <rguenther@suse.de>
26205
26206         Revert:
26207         2008-02-25  Richard Guenther  <rguenther@suse.de>
26208
26209         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26210         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26211         (lookup_decl_from_uid): Declare.
26212         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26213         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26214         (decl_for_uid_map): New global hashtable mapping DECL_UID
26215         to the decl tree.
26216         (init_ttree): Allocate it.
26217         (insert_decl_to_uid_decl_map): New helper function.
26218         (make_node_stat): Insert new decls into the map.
26219         (copy_node_stat): Likewise.
26220         (lookup_decl_from_uid): New function.
26221         (print_decl_for_uid_map_statistics): New helper.
26222         (dump_tree_statistics): Call it.
26223
26224         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26225         (referenced_var_iterator): Adjust.
26226         (FOR_EACH_REFERENCED_VAR): Adjust.
26227         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26228         (num_referenced_vars): Adjust.
26229         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26230         (first_referenced_var): Remove.
26231         (end_referenced_vars_p): Likewise.
26232         (next_referenced_var): Likewise.
26233         (referenced_var_iterator_set): New helper function.
26234         * tree-dfa.c (referenced_var_lookup): Adjust.
26235         (referenced_var_check_and_insert): Likewise.
26236         (remove_referenced_var): Likewise.
26237         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26238         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26239         (verify_call_clobbering): Likewise.
26240         (verify_memory_partitions): Likewise.
26241         (init_tree_ssa): Allocate bitmap instead of hashtable for
26242         referenced_vars.
26243         (delete_tree_ssa): Adjust.
26244         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26245         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26246         (compute_tag_properties): Likewise.
26247         (set_initial_properties): Likewise.
26248         (find_partition_for): Likewise.
26249         (update_reference_counts): Likewise.
26250         (dump_may_aliases_for): Likewise.
26251         * tree-ssa-operands.c (add_virtual_operand): Likewise.
26252         (add_call_clobber_ops): Likewise.
26253         (add_call_read_ops): Likewise.
26254         (get_asm_expr_operands): Likewise.
26255         * tree-into-ssa.c (dump_decl_set): Likewise.
26256         (update_ssa): Likewise.
26257         * tree-sra.c (scan_function): Likewise.
26258         (decide_instantiations): Likewise.
26259         (scalarize_parms): Likewise.
26260         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26261         (dsa_named_for): Likewise.
26262         * tree-ssa-structalias.c (update_alias_info): Likewise.
26263         (merge_smts_into): Likewise.
26264
26265 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
26266
26267         PR fortran/29549
26268         * doc/invoke.texi (-fcx-limited-range): Document new option.
26269         * toplev.c (process_options): Handle -fcx-fortran-rules.
26270         * common.opt: Add documentation for -fcx-fortran-rules.
26271
26272 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
26273
26274         PR c/35162
26275         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
26276         actual behaviour and C99.
26277
26278 2008-02-26  Ben Elliston  <bje@au.ibm.com>
26279
26280         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
26281         (ASM_CPU_POWER6_SPEC): Likewise.
26282         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
26283         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
26284         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
26285
26286 2008-02-25  Richard Guenther  <rguenther@suse.de>
26287
26288         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26289         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26290         (lookup_decl_from_uid): Declare.
26291         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26292         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26293         (decl_for_uid_map): New global hashtable mapping DECL_UID
26294         to the decl tree.
26295         (init_ttree): Allocate it.
26296         (insert_decl_to_uid_decl_map): New helper function.
26297         (make_node_stat): Insert new decls into the map.
26298         (copy_node_stat): Likewise.
26299         (lookup_decl_from_uid): New function.
26300         (print_decl_for_uid_map_statistics): New helper.
26301         (dump_tree_statistics): Call it.
26302
26303         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26304         (referenced_var_iterator): Adjust.
26305         (FOR_EACH_REFERENCED_VAR): Adjust.
26306         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26307         (num_referenced_vars): Adjust.
26308         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26309         (first_referenced_var): Remove.
26310         (end_referenced_vars_p): Likewise.
26311         (next_referenced_var): Likewise.
26312         (referenced_var_iterator_set): New helper function.
26313         * tree-dfa.c (referenced_var_lookup): Adjust.
26314         (referenced_var_check_and_insert): Likewise.
26315         (remove_referenced_var): Likewise.
26316         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26317         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26318         (verify_call_clobbering): Likewise.
26319         (verify_memory_partitions): Likewise.
26320         (init_tree_ssa): Allocate bitmap instead of hashtable for
26321         referenced_vars.
26322         (delete_tree_ssa): Adjust.
26323         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26324         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26325         (compute_tag_properties): Likewise.
26326         (set_initial_properties): Likewise.
26327         (find_partition_for): Likewise.
26328         (update_reference_counts): Likewise.
26329         (dump_may_aliases_for): Likewise.
26330         * tree-ssa-operands.c (add_virtual_operand): Likewise.
26331         (add_call_clobber_ops): Likewise.
26332         (add_call_read_ops): Likewise.
26333         (get_asm_expr_operands): Likewise.
26334         * tree-into-ssa.c (dump_decl_set): Likewise.
26335         (update_ssa): Likewise.
26336         * tree-sra.c (scan_function): Likewise.
26337         (decide_instantiations): Likewise.
26338         (scalarize_parms): Likewise.
26339         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26340         (dsa_named_for): Likewise.
26341         * tree-ssa-structalias.c (update_alias_info): Likewise.
26342         (merge_smts_into): Likewise.
26343
26344 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
26345
26346         PR target/35258
26347         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
26348         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
26349         * alias.h (nonoverlapping_memrefs_p): Likewise.
26350
26351 2008-02-25  Jan Beulich  <jbeulich@novell.com>
26352
26353         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
26354         * config/i386/netware-libgcc.exp: Add __bswap?i2,
26355         __emultls_get_address, __emultls_register_common,
26356         __floatundi?f, and _Unwind_GetIPInfo.
26357         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
26358         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
26359         (gen_regparm_prefix): Likewise.
26360         (i386_nlm_encode_section_info): Sync with
26361         config/i386/winnt.c:i386_pe_encode_section_info().
26362         (i386_nlm_maybe_mangle_decl_assembler_name): New.
26363         i386_nlm_mangle_decl_assembler_name): New.
26364         (netware_override_options): New.
26365         * config/i386/netware.h (netware_override_options): Declare.
26366         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
26367         (i386_nlm_mangle_decl_assembler_name): Declare.
26368         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
26369
26370 2008-02-25  Ben Elliston  <bje@au.ibm.com>
26371
26372         PR other/32948
26373         * c-decl.c (grokdeclarator): Remove unused local variables
26374         `typedef_type' and `type_as_written'.
26375         * bb-reorder.c
26376         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
26377         unused local variable `has_hot_blocks'.
26378         (fix_crossing_conditional_branches): Remove unused local variable
26379         `prev_bb'.
26380
26381 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
26382
26383         PR middle-end/19984
26384         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
26385         using DEF_C99_BUILTIN.
26386         (BUILT_IN_NANF): Ditto.
26387         (BUILT_IN_NANL): Ditto.
26388
26389 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
26390             Revital Eres  <eres@il.ibm.com>
26391
26392         * modulo-sched.c (calculate_must_precede_follow): Address TODO
26393         regarding the order of two dependent insns in the same row.
26394
26395 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
26396
26397         * stor-layout.c (layout_decl): Do not bump the alignment of a
26398         bit-field to more than byte alignment if it is packed.
26399
26400 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
26401
26402         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
26403         e300c2 and e300c3.
26404
26405 2008-02-24  Diego Novillo  <dnovillo@google.com>
26406
26407         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
26408
26409         PR 33738
26410         * tree-vrp.c (vrp_evaluate_conditional): With
26411         -Wtype-limits, emit a warning when comparing against a
26412         constant outside the natural range of OP0's type.
26413         * c.opt (Wtype-limits): Move ...
26414         * common.opt (Wtype-limits): ... here.
26415
26416 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
26417
26418         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
26419         * config/rs6000/e300c2c3.md: New file.
26420         * config/rs6000/rs6000.c (processor_costs): Add new costs for
26421         e300c2 and e300c3.
26422         (rs6000_override_options): Add e300c2 and e300c3 cases to
26423         processor_target_table. Do not allow usage of Altivec or Spe
26424         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
26425         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
26426         * config/rs6000/rs6000.h (processor_type): Add
26427         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
26428         (ASM_CPU_SPEC): Add e300c2 and e300c3.
26429         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
26430         and ppce300c3. Include e300c2c3.md.
26431
26432 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
26433
26434         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
26435         instead of TARGET_STRICT_ALIGN.
26436
26437 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
26438
26439         * explow.c (memory_address): Assert that the generated address is
26440         valid.
26441
26442 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
26443
26444         PR target/25477
26445         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
26446         * config/darwin-ppc-ldouble-patch.def: New file.
26447         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
26448         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
26449         SUBTARGET_INIT_BUILTINS if defined.
26450         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
26451         New functions.
26452
26453 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26454
26455         PR rtl-opt/33512
26456         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
26457         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
26458
26459 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26460
26461         PR pch/35027
26462         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
26463         file" warning condtional on -Winvalid-PCH.
26464
26465 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
26466
26467         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
26468
26469 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
26470
26471         PR target/22076
26472         PR target/34256
26473         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
26474         prevent reload from using MMX registers.
26475         (*mov<mode>_internal): Ditto.
26476         (*movv2sf_internal_rex64): Ditto.
26477         (*movv2sf_internal): Ditto.
26478
26479 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26480
26481         PR documentation/31569
26482         * doc/install.texi2html: Use makeinfo --no-number-sections.
26483
26484 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26485
26486         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
26487         ensure that we can address an entire entity > 8 bytes.  Don't
26488         generate reg+reg addressing for such data.
26489
26490 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26491
26492         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
26493         strings when optimizing for size, unless the target cares about
26494         alignment.
26495
26496 2008-02-22  Tom Tromey  <tromey@redhat.com>
26497
26498         * regclass.c (current_pass): Remove declaration.
26499
26500 2008-02-22  Anatoly Sokolov <aesok@post.ru>
26501
26502         * config/avr/libgcc.S (__RAMPZ__): Define.
26503         (__do_copy_data): Add for devices with 128KB code memory.
26504
26505 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26506
26507         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
26508         Use spe_abi.
26509         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
26510
26511 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
26512
26513         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
26514         GENNONACR_REGS.
26515
26516 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26517
26518         PR c/19999
26519         * c-typeck.c (build_binary_op): Warn about floating point
26520         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
26521
26522 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
26523
26524         PR target/34526
26525         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
26526         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
26527         add vrsave.
26528         (rs6000_override_options): Set altivec_abi as default, not override,
26529         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
26530         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
26531         is used; use new member spe_abi.
26532         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
26533         spe_abi and altivec_abi.
26534
26535 2008-02-22  Tomas Bily  <tbily@suse.cz>
26536
26537         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
26538
26539 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26540
26541         PR bootstrap/35273
26542         * config.build (build_file_translate): Set to `CMD //c' only if
26543         it works.
26544         * Makefile.in (build_file_translate): Improve comment.
26545
26546 2008-02-21  Jan Hubicka  <jh@suse.cz>
26547
26548         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
26549         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
26550         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
26551
26552 2008-02-21  Michael Matz  <matz@suse.de>
26553
26554         PR target/35264
26555         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
26556
26557 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
26558
26559         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
26560         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
26561         as insn constraint.
26562         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
26563         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
26564         SSE_VEC_FLOAT_MODE_P as insn constraint.
26565         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
26566         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
26567         sse4a_movntdf using MODEF mode iterator.
26568         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
26569         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
26570         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
26571         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
26572         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
26573         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
26574         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
26575
26576 2008-02-21  Richard Guenther  <rguenther@suse.de>
26577
26578         * tree.def (PAREN_EXPR): New tree code.
26579         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
26580         and PAREN_EXPR.
26581         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
26582         * expr.c (expand_expr_real_1): Likewise.
26583         * tree-inline.c (estimate_num_insns_1): Likewise.
26584         * tree-complex.c (expand_complex_move): Likewise.
26585         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
26586         as plain x.
26587
26588 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
26589
26590         PR target/35225
26591         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
26592
26593 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
26594
26595         PR target/35190
26596         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
26597
26598         * config/sh/sh.c (find_barrier): Don't go past
26599         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
26600
26601 2008-02-20  DJ Delorie  <dj@redhat.com>
26602
26603         * config/h8300/h8300.md (insv): Force source operand to be a register.
26604
26605         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
26606         as a jump, not as a plain insn.
26607
26608 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
26609
26610         * doc/invoke.texi (Warning Options): Add new option
26611         -Wframe-larger-than=.
26612         (-Wframe-larger-than): Document.
26613
26614         * flags.h (warn_frame_larger_than, frame_larger_than_size):
26615         Add declarations for new option variables.
26616
26617         * final.c (final_start_function): Check the frame size
26618         before emission and issue a Wframe-larger-than warning.
26619
26620         * opts.c (warn_frame_larger_than, frame_larger_than_size):
26621         Add definitions for new option variables.
26622         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
26623
26624         * common.opt (Wframe-larger-than=): New option.
26625
26626 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
26627
26628         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
26629         (<sse>_div<mode>3): Ditto.
26630         (<sse>_vmdiv<mode>3): Ditto.
26631         (<sse>_vmsqrt<mode>2): Ditto.
26632         (*smax<mode>3): Ditto.
26633         (sse5_frcz<mode>2): Ditto.
26634         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
26635         as insn constraint.
26636
26637 2008-02-20  Richard Guenther  <rguenther@suse.de>
26638
26639         PR middle-end/35265
26640         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
26641         be happy with INTEGRAL_TYPE_P.
26642
26643 2008-02-20  Richard Guenther  <rguenther@suse.de>
26644
26645         * fold-const.c (split_tree): Associate floatig-point expressions
26646         if flag_associative_math is set.
26647
26648 2008-02-20  Richard Guenther  <rguenther@suse.de>
26649
26650         * tree.h (fold_real_zero_addition_p): Declare.
26651         * fold-const.c (fold_real_zero_addition_p): Export.
26652         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
26653         floating-point operations with zero and one.
26654
26655 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
26656
26657         * doc/install.texi: Correct references to CFLAGS, replacing them
26658         with BOOT_CFLAGS.  Document flags used during bootstrap for
26659         target libraries.
26660
26661 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
26662
26663         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
26664         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
26665         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
26666         insn constraint.
26667         (smin<mode>3): Ditto from similar patterns.
26668         (smax<mode>3): Ditto.
26669         (*ieee_smin<mode>3): Ditto.
26670         (*ieee_smax<mode>3): Ditto.
26671         * config/i386/sse.md (sse): New mode attribute.
26672         (mov<mode>): Macroize expander from movv4sf and movv2df using
26673         SSEMODEF2P mode iterator.
26674         (<sse>_movnt<mode>): Ditto from similar patterns. Use
26675         SSE_VEC_FLOAT_MODE_P as insn constraint.
26676         (storent<mode>): Ditto.
26677         (storent<mode>): Macroize expander from storentsf and storentdf using
26678         MODEF mode iterator.
26679         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
26680         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
26681         (abs<mode>2): Ditto from similar patterns.
26682         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
26683         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
26684         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
26685         (<sse>_vmsqrt<mode>2): Ditto.
26686         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
26687         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
26688         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
26689         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
26690         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
26691         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
26692         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
26693         insn constraint.
26694         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
26695         iterator and SSE_FLOAT_MODE_P as insn constraint.
26696         (<sse>_ucomi): Ditto from similar patterns.
26697         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
26698         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
26699         SSE_VEC_FLOAT_MODE_P as insn constraint.
26700         (vcond<mode>): Ditto from similar patterns.
26701         (and<mode>3, *and<mode>3): Ditto.
26702         (<sse>_nand<mode>3): Ditto.
26703         (ior<mode>3, *ior<mode>3): Ditto.
26704         (xor<mode>3, *xor<mode>3): Ditto.
26705         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
26706         iterator and SSE_FLOAT_MODE_P as insn constraint.
26707         (*nand<mode>3): Ditto from similar patterns.
26708         (*ior<mode>3): Ditto.
26709         (*xor<mode>3): Ditto.
26710
26711 2008-02-20  Ira Rosen  <irar@il.ibm.com>
26712
26713         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
26714         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
26715         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
26716
26717 2008-02-19  Jan Hubicka  <jh@suse.cz>
26718
26719         * predict.c (tree_bb_level_predictions): Remove variable next
26720         mistakely introduced by previous commit.
26721
26722 2008-02-19  Jan Hubicka  <jh@suse.cz>
26723
26724         * predict.c (predict_paths_leading_to): Rewrite.
26725         (predict_paths_for_bb): New.
26726         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
26727
26728 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26729
26730         PR bootstrap/35218
26731         * Makefile.in (build_file_translate): New.
26732         (gcc-vers.texi): Use it for translating $(abs_srcdir).
26733         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
26734         * configure.ac (build_file_translate): Substitute it.
26735         * configure: Regenerate.
26736
26737 2008-02-19  Jan Hubicka  <jh@suse.cz>
26738
26739         PR rtl-optimization/34408
26740         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
26741         invalid sharing.
26742
26743 2008-02-19  Jan Hubicka  <jh@suse.cz>
26744
26745         PR middle-end/28779
26746         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
26747         call_expr.
26748
26749 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
26750
26751         PR Ada/35186
26752         * config/i386/i386-modes.def: Revert the last DI alignment
26753         change until Ada people can look into it.
26754
26755 2008-02-19  Nick Clifton  <nickc@redhat.com>
26756
26757         * opts.c (print_specific_help): Fix typo in --help text.
26758
26759 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
26760
26761         PR target/35239
26762         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
26763         32-bit inline asm without asm alternatives for host GCC < 3.0.
26764
26765 2008-02-19  Richard Guenther  <rguenther@suse.de>
26766
26767         PR tree-optimization/34989
26768         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
26769         Allow propagation to INDIRECT_REF if we can simplify only.
26770
26771 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26772
26773         * c-common.c (warn_for_collisions_1): Use appropriate option when
26774         warning.
26775
26776 2008-02-19  Nick Clifton  <nickc@redhat.com>
26777
26778         PR other/31349
26779         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
26780         (handle_options): Fix indentation.
26781         (print_filtered_help): If no language-specific options were
26782         displayed tell the user how to list all the options supported by
26783         the language's front-end.
26784         (print_specific_help): Fix indentation and remove duplicate line.
26785         (common_handle_option): Handle the -v option.
26786         For --help enable the display of undocumented options if the -v
26787         switch has been included on the command line.
26788         For --help= check for overlaps in the arguments between the option
26789         classes and the language names and issue a warning when they
26790         cannot be disambiguated.
26791         * c.opt (v): Pass on to the common option handler.
26792
26793 2008-02-19  Revital Eres  <eres@il.ibm.com>
26794
26795         * modulo-sched.c (sms_schedule): Change dump message when
26796         create_ddg function fails.
26797         (try_scheduling_node_in_cycle): Rename row to cycle.
26798         (print_partial_schedule): Rename CYCLE to ROW.
26799
26800 2008-02-19  Christian Bruel  <christian.bruel@st.com>
26801             Zdenek Dvorak  <ook@ucw.cz>
26802
26803         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
26804
26805 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
26806
26807         PR target/33555
26808         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
26809         (*x86_movdicc_0_m1_se): Ditto.
26810
26811 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
26812
26813         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
26814         (CMPtype): Define as __gcc_CMPtype.
26815         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
26816         (CMPtype): Define as __gcc_CMPtype.
26817
26818 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
26819
26820         Support valgrind 3.3 for --enable-checking=valgrind.
26821         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
26822         here.
26823         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
26824         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
26825         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
26826         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
26827         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
26828         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
26829         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
26830         respectively.
26831         * ggc-zone.c: Similar.
26832         * ggc-page.c: Similar.
26833
26834 2008-02-19  Paul Brook  <paul@codesourcery.com>
26835
26836         PR target/35071
26837         * config/arm/ieee754-df.S: Fix do_it typo.
26838         * config/arm/ieee754-sf.S: Fix do_it typo.
26839
26840 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
26841
26842         PR target/35189
26843         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
26844         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
26845         (OPTION_MASK_ISA_SSE_SET): Likewise.
26846         (OPTION_MASK_ISA_SSE2_SET): Likewise.
26847         (OPTION_MASK_ISA_SSE3_SET): Likewise.
26848         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
26849         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
26850         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
26851         (OPTION_MASK_ISA_SSE4_SET): Likewise.
26852         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
26853         (OPTION_MASK_ISA_SSE5_SET): Likewise.
26854         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
26855         (OPTION_MASK_ISA_MMX_UNSET): Updated.
26856         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
26857         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
26858         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
26859         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
26860         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
26861         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
26862         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
26863         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
26864         (OPTION_MASK_ISA_SSE4): Removed.
26865         (ix86_handle_option): Turn on bits in ix86_isa_flags and
26866         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
26867         (override_options): Don't turn on implied SSE/MMX bits in
26868         ix86_isa_flags.
26869
26870 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
26871
26872         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
26873         32bit host.
26874
26875 2008-02-18  Joey Ye  <joey.ye@intel.com>
26876
26877         PR middle-end/34921
26878         * tree-nested.c (insert_field_into_struct): Set type alignment
26879         to field alignment if the former is less than the latter.
26880
26881 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
26882
26883         * BASE-VER: Set to 4.4.0.
26884
26885 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26886
26887         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
26888         * doc/cfg.texi: Likewise.
26889         * doc/extend.texi: Likewise.
26890         * doc/gty.texi: Likewise.
26891         * doc/invoke.texi: Likewise.
26892         * doc/loop.texi: Likewise.
26893         * doc/md.texi: Likewise.
26894         * doc/passes.texi: Likewise.
26895         * doc/rtl.texi: Likewise.
26896         * doc/sourcebuild.texi: Likewise.
26897         * doc/tm.texi: Likewise.
26898         * doc/tree-ssa.texi: Likewise.
26899
26900 2008-02-17  Richard Guenther  <rguenther@suse.de>
26901
26902         PR middle-end/35227
26903         * tree-complex.c (init_parameter_lattice_values): Handle parameters
26904         without default definition.
26905
26906 2008-02-17  Richard Guenther  <rguenther@suse.de>
26907
26908         PR tree-optimization/35231
26909         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
26910         if A | B != 1.
26911
26912 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
26913
26914         Revert:
26915         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26916         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
26917         libgcc_cmp_return mode.
26918
26919 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26920
26921         PR c/28368
26922         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
26923
26924 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
26925
26926         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
26927         multilibs.
26928
26929 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26930
26931         * doc/c-tree.texi: Use `@.' where appropriate.
26932         * doc/extend.texi: Likewise.
26933         * doc/install.texi: Likewise.
26934         * doc/invoke.texi: Likewise.
26935         * doc/loop.texi: Likewise.
26936         * doc/makefile.texi: Likewise.
26937         * doc/md.texi: Likewise.
26938         * doc/passes.texi: Likewise.
26939         * doc/standards.texi: Likewise.
26940         * doc/tm.texi: Likewise.
26941
26942 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
26943
26944         PR middle-end/35196
26945         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
26946         in entry_bb.
26947         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
26948         rather than in entry_bb.
26949
26950 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26951
26952         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
26953         libgcc_cmp_return mode.
26954
26955 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
26956
26957         PR middle-end/35130
26958         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
26959         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
26960
26961 2008-02-15  Richard Guenther  <rguenther@suse.de>
26962             Zdenek Dvorak  <ook@ucw.cz>
26963
26964         PR tree-optimization/35164
26965         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
26966         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
26967         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
26968         Only propagate addresses which do not have abnormal SSA_NAMEs
26969         in their operands.
26970
26971 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
26972
26973         PR target/35088
26974         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
26975
26976 2008-02-15  Jan Hubicka  <jh@suse.cz>
26977
26978         PR middle-end/35149
26979         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
26980
26981 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26982
26983         PR middle-end/34621
26984         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
26985         when calculating alignment_pad.
26986
26987 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26988
26989         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
26990         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
26991         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
26992         and STACK_BOUNDARY define.
26993
26994 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
26995
26996         PR preprocessor/35061
26997         * c-pragma.c (handle_pragma_pop_macro): Check that
26998         pushed_macro_table has been allocated.
26999
27000 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
27001
27002         PR middle-end/35136
27003         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
27004         (force_gimple_operand): Likewise.
27005         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
27006         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
27007         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
27008         (find_interesting_uses_address): Check addressability and alignment
27009         of the base expression only after substituting bases of IVs into it.
27010
27011 2008-02-14  Michael Matz  <matz@suse.de>
27012
27013         PR target/34930
27014         * function.c (instantiate_virtual_regs_in_insn): Reload address
27015         before falling back to reloading the whole operand.
27016
27017 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
27018
27019         * config/s390/s390.c (s390_mainpool_start): Emit the pool
27020         before the first section switch note.
27021
27022 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27023
27024         * doc/bugreport.texi: Update copyright years.
27025         * doc/c-tree.texi: Likewise.
27026         * doc/cfg.texi: Likewise.
27027         * doc/cpp.texi: Likewise.
27028         * doc/cppinternals.texi: Likewise.
27029         * doc/fragments.texi: Likewise.
27030         * doc/frontends.texi: Likewise.
27031         * doc/gcc.texi: Likewise.
27032         * doc/gty.texi: Likewise.
27033         * doc/hostconfig.texi: Likewise.
27034         * doc/implement-c.texi: Likewise.
27035         * doc/libgcc.texi: Likewise.
27036         * doc/loop.texi: Likewise.
27037         * doc/makefile.texi: Likewise.
27038         * doc/options.texi: Likewise.
27039         * doc/passes.texi: Likewise.
27040         * doc/rtl.texi: Likewise.
27041         * doc/sourcebuild.texi: Likewise.
27042         * doc/standards.texi: Likewise.
27043         * doc/tree-ssa.texi: Likewise.
27044         * doc/trouble.texi: Likewise.
27045
27046         * doc/extend.texi: Use @: or add comma where appropriate.
27047         * doc/invoke.texi: Likewise.
27048         * doc/tm.texi: Likewise.
27049
27050 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
27051
27052         PR target/34393
27053         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
27054         to a reg.
27055
27056 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
27057
27058         * doc/md.texi (clz, ctz): Add reference.
27059         * doc/rtl.texi (clz, ctz): Likewise.
27060
27061 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27062
27063         PR other/35148
27064         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
27065         srcdir.
27066
27067 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
27068
27069         * config/s390/s390.c (struct constant_pool): New field
27070         emit_pool_after added.
27071         (s390_mainpool_start): Set the emit_pool_after flag according
27072         to the section switch notes.
27073         (s390_mainpool_finish): Consider emit_pool_after when emitting
27074         the literal pool at the end of the function.
27075         (s390_chunkify_start): Force literal pool splits at section
27076         switch notes.
27077
27078 2008-02-13  Michael Matz  <matz@suse.de>
27079
27080         PR debug/35065
27081         * var-tracking.c (clobber_variable_part): Correctly traverse the
27082         list.
27083
27084 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27085
27086         PR 29673
27087         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
27088         Add -fdump-ipa-inline.
27089         * tree-dump.c (dump_files): Remove tree-inlined dump.
27090         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
27091
27092 2008-02-12  Richard Guenther  <rguenther@suse.de>
27093
27094         PR tree-optimization/35171
27095         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
27096         default defs.
27097
27098 2008-02-12  Richard Guenther  <rguenther@suse.de>
27099
27100         PR middle-end/35163
27101         * fold-const.c (fold_widened_comparison): Use get_unwidened in
27102         value-preserving mode.  Disallow final truncation.
27103
27104 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
27105
27106         PR middle-end/35136
27107         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
27108         code from here to...
27109         (force_gimple_operand): ...here.
27110
27111 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
27112
27113         PR c++/35144
27114         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
27115         non-compatible pointers.
27116         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
27117         different FIELD_DECLs, try harder by comparing field offsets, sizes
27118         and types.
27119
27120         PR inline-asm/35160
27121         * function.c (match_asm_constraints_1): Don't replace the same input
27122         multiple times.
27123
27124 2008-02-12  Anatoly Sokolov <aesok@post.ru>
27125
27126         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
27127         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
27128         (expand_epilogue): Restore RAMPZ register.
27129         * config/avr/avr.md (RAMPZ_ADDR): New constant.
27130
27131 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
27132
27133         * config/i386/cygwin.asm (__alloca): Correct calling
27134         convention and alignment.
27135         (__chkstk): Force 8 byte stack alignment.
27136
27137 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
27138             Richard Guenther  <rguenther@suse.de>
27139
27140         PR tree-optimization/33992
27141         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
27142         the zero we compare against.
27143
27144 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
27145
27146         PR libfortran/35063
27147         * gthr-win32.h (__gthread_mutex_destroy_function): New function
27148         to CloseHandle after unlocking to prevent accumulation of handle
27149         count.
27150
27151 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27152
27153         PR middle_end/34150
27154         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
27155         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
27156         and update LABEL_NUSES during and after reload.
27157
27158 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
27159
27160         PR middle-end/34627
27161         * combine.c (simplify_if_then_else): Make sure the comparison is
27162         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
27163
27164 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
27165
27166         PR bootstrap/35051
27167         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
27168         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
27169         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
27170         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
27171         * tree.h (get_type_static_bounds): Likewise.
27172
27173 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27174
27175         * doc/invoke.texi (Option Summary, C++ Dialect Options)
27176         (Objective-C and Objective-C++ Dialect Options, Warning Options):
27177         Make -Wfoo language annotations match what the compiler outputs.
27178
27179 2008-02-08  Sa Liu  <saliu@de.ibm.com>
27180
27181         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
27182         intrinsics spu_convts, spu_convtu, spu_convtf.
27183
27184 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
27185
27186         * doc/extend.texi (Function Attributes) <noinline>: Mention
27187         asm ("") as method to keep calls.
27188
27189 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27190
27191         PR other/32754
27192         * doc/options.texi (Options): Replace references to opts.sh with
27193         optc-gen.awk.
27194         * opts-common.c: Likewise.
27195         * optc-gen.awk: Likewise.
27196
27197 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
27198
27199         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
27200
27201 2008-02-07  Richard Henderson  <rth@redhat.com>
27202
27203         PR rtl-opt/33410
27204         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
27205         EXPR_LIST for the REG_EQUAL instead of a comparison with a
27206         funny mode.
27207
27208 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
27209
27210         PR tree-optimization/35085
27211         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
27212         for operand entry oe2 in addition to operand entry oe3 in order to
27213         expose more opportunities for vectorizer sum reduction.
27214
27215 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27216
27217         PR other/35107
27218         * Makefile.in (LIBS): Remove $(GMPLIBS).
27219         (cc1-dummy, cc1): Add $(GMPLIBS).
27220
27221 2008-02-06  Jan Hubicka  <jh@suse.cz>
27222
27223         PR target/23322
27224         * i386.md (moddf_integer): Do not produce partial memory stalls for
27225         targets where it hurts.
27226
27227 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
27228
27229         PR target/35083
27230         * optabs.c (expand_float): Do not check for decimal modes when
27231         expanding unsigned integer through signed conversion.
27232
27233 2008-02-06  Nick Clifton  <nickc@redhat.com>
27234
27235         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
27236         inside the clobber with a match_operand and duplicated operand
27237         number in the constraint.
27238         (ineqbranchsi): Delete redundant comment.
27239
27240 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
27241
27242         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
27243         builtin_define ("__USE_INIT_FINI__").
27244         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
27245         -msx multilibs.
27246         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
27247
27248 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27249
27250         PR documentation/30330
27251         * doc/invoke.texi (C++ Dialect Options)
27252         (Objective-C and Objective-C++ Dialect Options, Warning Options):
27253         For each warning option -Wfoo that allows -Wno-foo, ensure both
27254         -Wfoo and -Wno-foo are listed in the option index.  Fix index
27255         entry of -Wswitch-default, index -Wnormalized= including the
27256         `=', and -Wlarger-than-@var{len} including @var{len}.
27257
27258 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
27259
27260         * config/i386/i386.md (floatunssisf2): Use
27261         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
27262         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
27263         Macroize expander using MODEF mode iterator.
27264
27265 2008-02-05  Diego Novillo  <dnovillo@google.com>
27266
27267         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
27268
27269         PR 33738
27270         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
27271
27272 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27273
27274         PR other/35070
27275         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
27276
27277 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
27278
27279         PR target/35084
27280         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
27281         to indicate if a message should be generated.
27282         (init_cumulative_args): Updated.
27283         (function_value_32): Likewise.
27284
27285 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
27286
27287         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
27288
27289 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
27290
27291         PR target/35083
27292         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
27293         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
27294
27295 2008-02-04  Diego Novillo  <dnovillo@google.com>
27296
27297         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
27298
27299         PR 33738
27300         * tree-vrp.c (vrp_evaluate_conditional): With
27301         -Wtype-limits, emit a warning when comparing against a
27302         constant outside the natural range of OP0's type.
27303
27304 2008-02-04  Richard Guenther  <rguenther@suse.de>
27305
27306         PR middle-end/33631
27307         * expr.c (count_type_elements): Give for unions instead of
27308         guessing.
27309
27310 2008-02-04  Richard Guenther  <rguenther@suse.de>
27311
27312         PR middle-end/35043
27313         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
27314         to TYPE_DOMAINs base type instead of using bitsizetype here.
27315
27316 2008-02-03  Jason Merrill  <jason@redhat.com>
27317
27318         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
27319
27320 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27321
27322         PR other/29972
27323         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
27324         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
27325         (RS/6000 and PowerPC Options): Fix typos and markup.
27326         * doc/passes.texi (Tree-SSA passes): Likewise.
27327
27328 2008-02-02  Michael Matz  <matz@suse.de>
27329
27330         PR target/35045
27331         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
27332         from record_last_reg_set_info.
27333         (record_last_reg_set_info): Take an RTX argument, iterate over all
27334         constituent hardregs.
27335         (record_last_set_info, record_opr_changes): Change calls to
27336         new signature or to record_last_reg_set_info_regno.
27337
27338 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
27339
27340         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
27341
27342 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
27343
27344         PR rtl-optimization/34773
27345         * reg-notes.def (EQUAL): Mention significance of combination of
27346         REG_EQUAL and REG_RETVAL.
27347         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
27348         insn that has a REG_RETVAL.
27349
27350 2008-02-01  Roger Sayle  <roger@eyesopen.com>
27351
27352         PR bootstrap/33781
27353         * configure.ac (--enable-fixed-point): Disable unless explicitly
27354         requested on IRIX.
27355         * configure: Regenerate.
27356
27357 2008-02-01  Richard Guenther  <rguenther@suse.de>
27358
27359         PR other/35042
27360         * invoke.texi (-finline-limit): Remove no longer true parts
27361         of the documentation.  Note that there is no default value.
27362
27363 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
27364             Mark Mitchell  <mark@codesourcery.com>
27365             Ben Elliston  <bje@au.ibm.com>
27366
27367         PR c/29326
27368         * doc/extend.texi (Other Builtins): Document.
27369
27370 2008-01-31  Tom Browder <tom.browder@gmail.com>
27371
27372         * doc/c-tree.texi (Types): Fix grammar.
27373         (Expression trees): Ditto.
27374         * doc/passes.texi (Tree-SSA passes): Ditto.
27375
27376         * doc/configterms.texi (Configure Terms): Fix typo.
27377         * doc/cpp.texi (Common Predefined Macros): Ditto.
27378         * doc/md.texi (Machine Constraints): Ditto.
27379
27380         * doc/makefile.texi (Makefile): Add comma.
27381
27382 2008-01-31  Tom Browder  <tom.browder@gmail.com>
27383             Gerald Pfeifer  <gerald@pfeifer.com>
27384
27385         * doc/sourcebuild.texi (Front End): Remove references to CVS
27386         and CVSROOT/modules.
27387         (Texinfo Manuals): Replace reference to CVS by one to SVN.
27388         (Back End): Remove reference to CVS.
27389
27390 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
27391
27392         PR target/34900
27393         * config/mips/mips.c (gen_load_const_gp): New function, taking a
27394         comment from...
27395         (mips16_gp_pseudo_reg): ...here.
27396         * config/mips/mips.md (load_const_gp): Replace with...
27397         (load_const_gp_<mode>): ...this :P-based insn.
27398
27399 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27400
27401         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
27402         options. Minor fixes.
27403         (-std): Move reference to standards closer to where language
27404         standards are first mentioned.
27405
27406 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
27407
27408         PR rtl-optimization/34995
27409         * reload.c (alternative_allows_const_pool_ref): Take an rtx
27410         parameter and return a bool.  If the rtx parameter is nonnull,
27411         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
27412         (find_reloads): Update call accordingly.  Pass the new operand
27413         if it needed no address reloads, otherwise pass null.
27414
27415 2008-01-30  Richard Henderson  <rth@redhat.com>
27416
27417         PR c/34993
27418         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
27419         for unbounded arrays.
27420
27421 2008-01-30  Silvius Rus  <rus@google.com>
27422
27423         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
27424
27425 2008-01-30  Jan Hubicka  <jh@suse.cz>
27426
27427         PR target/34982
27428         * i386.c (init_cumulative_args): Use real function declaration when
27429         calling locally.
27430
27431 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
27432
27433         PR rtl-optimization/34998
27434         * global.c (build_insn_chain): Treat non-subreg_lowpart
27435         SUBREGs of pseudos as clobbering all the words covered by the
27436         SUBREG, not just all the bytes.
27437         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
27438         original df_ref rather than an extract parameter.
27439         (global_conflicts): Update call accordingly.
27440
27441 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
27442
27443         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
27444         the overflow check to make it easier to read.
27445         (__fixtfdi): Change the type of the ll member in union
27446         long_double to UDItype_x.
27447
27448 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
27449
27450         PR middle-end/34969
27451         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
27452         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
27453         * tree-inline.c (fold_marked_statements): Call
27454         cgraph_update_edges_for_call_stmt if folding a call statement.
27455         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
27456         debug_generic_stmt calls, reset it back afterwards.
27457
27458         PR c/35017
27459         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
27460         static decls.
27461         * c-typeck.c (build_external_ref): Don't pedwarn about
27462         static vars in current function's scope.
27463
27464 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
27465
27466         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
27467
27468 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
27469
27470         PR c/35002
27471         * ipa-struct-reorg.c: Fix spelling.
27472         * params.def: Ditto.
27473
27474 2008-01-29  Richard Guenther  <rguenther@suse.de>
27475
27476         PR middle-end/35006
27477         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
27478         field.
27479         * tree-inline.c (remap_type): Increment remapping_type_depth
27480         around remapping types.
27481         (copy_body_r): Only add referenced variables if they are referenced
27482         from code, not types.
27483
27484 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
27485
27486         PR c++/34055
27487         PR c++/34103
27488         PR c++/34219
27489         PR c++/34606
27490         PR c++/34753
27491         PR c++/34754
27492         PR c++/34755
27493         PR c++/34919
27494         PR c++/34961
27495         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
27496         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
27497
27498 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
27499
27500         PR target/34412
27501         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
27502         pointer for tiny stack.
27503
27504 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
27505
27506         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
27507
27508 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
27509
27510         * config/vx-common.h: Fix typo in comment.
27511
27512 2008-01-28  Ian Lance Taylor  <iant@google.com>
27513
27514         PR c++/34862
27515         PR c++/33407
27516         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
27517         coalesce pointers if they have different DECL_NO_TBAA_P values.
27518         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
27519         between variables with different DECL_NO_TBAA_P values.
27520
27521 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
27522
27523         PR 31535
27524         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
27525         are not legitimate small data references on SPE targets.
27526
27527 2008-01-28  David Daney  <ddaney@avtrex.com>
27528
27529         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
27530
27531 2008-01-28  David Daney  <ddaney@avtrex.com>
27532
27533         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
27534
27535 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
27536
27537         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
27538         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
27539         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
27540         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
27541         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
27542         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
27543         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
27544         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
27545
27546 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27547
27548         * basic-block.h (condjump_equiv_p): Fix comment.
27549
27550 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27551
27552         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
27553         print_generic_stmt_indented): Fix comment.
27554
27555 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27556
27557         * configure.ac (__stack_chk_fail): Add detecion for availability
27558         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
27559         * configure: Regenerate.
27560
27561 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
27562
27563         PR middle-end/34688
27564         * final.c (output_addr_const): Handle TRUNCATE.
27565
27566 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
27567
27568         PR target/34711
27569         * tree-ssa-loop-ivopts.c (comp_cost): New type.
27570         (zero_cost, infinite_cost): New constants.
27571         (struct cost_pair): Change type of cost to comp_cost.
27572         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
27573         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
27574         New functions.
27575         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
27576         split_address_cost, ptr_difference_cost, difference_cost,
27577         get_computation_cost_at, get_computation_cost,
27578         determine_use_iv_cost_generic, determine_use_iv_cost_address,
27579         determine_use_iv_cost_condition, determine_use_iv_costs,
27580         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
27581         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
27582         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
27583         Change type of cost to comp_cost.
27584         (determine_iv_cost): Increase cost of non-original ivs, instead
27585         of decreasing the cost of original ones.
27586         (get_address_cost): Indicate the complexity of the addressing mode
27587         in comp_cost.
27588         (try_add_cand_for): Prefer using ivs not specific to some object.
27589         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
27590
27591 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
27592             Janis Johnson  <janis187@us.ibm.com>
27593
27594         PR target/34814
27595         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
27596         (TARGET_INSTANTIATE_DECLS): Likewise.
27597         * target.h (expand_to_rtl_hook): New target hook.
27598         (instantiate_decls): Likewise.
27599         * function.c (instantiate_decl): Make non-static.  Rename to...
27600         (instantiate_decl_rtl): ... this.
27601         (instantiate_expr): Use instantiate_decl_rtl.
27602         (instantiate_decls_1): Likewise.
27603         (instantiate_decls): Likewise.
27604         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
27605         * function.h (instantiate_decl_rtl): Add prototype.
27606         * cfgexpand.c (target.h): New include.
27607         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
27608         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
27609         (TARGET_INSTANTIATE_DECLS): Likewise.
27610         (TARGET_INITIALIZER): New target hooks added.
27611         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
27612         New prototype.
27613         * config/rs6000/rs6000.c (tree-flow.h): New include.
27614         (machine_function): Add sdmode_stack_slot field.
27615         (rs6000_alloc_sdmode_stack_slot): New function.
27616         (rs6000_instantiate_decls): Likewise.
27617         (rs6000_secondary_memory_needed_rtx): Likewise.
27618         (rs6000_check_sdmode): Likewise.
27619         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
27620         (TARGET_INSTANTIATE_DECLS): Likewise.
27621         (rs6000_hard_regno_mode_ok): Allow SDmode.
27622         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
27623         (rs6000_emit_move): Handle SDmode.
27624         (function_arg_advance): Likewise.
27625         (function_arg): Likewise.
27626         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
27627         SDmode var args for 32-bit compiles.
27628         (rs6000_secondary_reload_class): Handle SDmode.
27629         (rs6000_output_function_epilogue): Likewise.
27630         (rs6000_function_value): Simplify if statement.
27631         (rs6000_libcall_value): Likewise.
27632         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
27633         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
27634         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
27635         (movsd_hardfloat): New define_insn.
27636         (movsd_softfloat): Likewise.
27637         (movsd_store): Likewise.
27638         (movsd_load): Likewise.
27639         (extendsddd2): Likewise.
27640         (extendsdtd2): Likewise.
27641         (truncddsd2): Likewise.
27642         (movdd_hardfloat64): Fixup comment.
27643         (UNSPEC_MOVSD_LOAD): New constant.
27644         (UNSPEC_MOVSD_STORE): Likewise.
27645
27646 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
27647
27648         PR c++/34965
27649         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
27650         TRUTH_XOR_EXPR.
27651         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
27652         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
27653         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
27654         and TRUTH_XOR_EXPR.
27655
27656 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
27657
27658         PR target/34794
27659         * config.gcc: Separate AIX 5.3 from AIX 6.1.
27660         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27661         __LONGDOUBLE128 too.
27662         * config/rs6000/aix61.h: New file.
27663
27664 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
27665
27666         PR rtl-optimization/34959
27667         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
27668         popcount and parity rtxes the same mode as their operand.
27669         Truncate or extend the result to the return value's mode
27670         if necessary.
27671
27672 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
27673
27674         PR target/34981
27675         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
27676         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
27677         to GOT_VERSION_REGNUM.
27678         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
27679         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
27680         * config/mips/mips.c (mips_emit_call_insn): New function.
27681         (mips_call_tls_get_addr): Call mips_expand_call directly.
27682         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
27683         emit_call_insn.
27684         (mips16_build_call_stub): Likewise.  Return the call insn or null.
27685         (mips_expand_call): Update the call to mips16_build_call_stub
27686         accordingly and a remove redundant condition.  Assert that MIPS16
27687         stubs do not use lazy binding.  Use mips_emit_call_insn and return
27688         the call insn.
27689         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
27690         TARGET_USE_GOT.
27691         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
27692         (mips_avoid_hazard): Remove hazard_set handling.
27693         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
27694         (UNSPEC_RESTORE_GP): ...this.
27695         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
27696         (FAKE_CALL_REGNO): Rename to...
27697         (GOT_VERSION_REGNUM): ...this.
27698         (type): Add "ghost" value.  Add an associated insn reservation.
27699         (hazard_set): Remove.
27700         (exception_receiver): Rename to...
27701         (restore_gp): ...this and update the unspec identifier accordingly.
27702         (exception_receiver, nonlocal_got_receiver): New expanders.
27703         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
27704         FAKE_CALL_REGNO.  Remove hazard_set attribute.
27705         (set_got_version, update_got_version): New patterns.
27706
27707 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
27708
27709         PR target/34970
27710         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
27711
27712 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
27713
27714         PR other/31955
27715         * doc/install.texi2html: Generate gcc-vers.texi.
27716
27717 2008-01-25  DJ Delorie  <dj@redhat.com>
27718
27719         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
27720
27721 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
27722
27723         * config/c4x: Remove directory.
27724         * config.gcc (crx-*, mt-*): Mark obsolete.
27725         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
27726         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
27727         sh-*-rtemscoff*): Remove cases.
27728         * defaults.h (C4X_FLOAT_FORMAT): Remove.
27729         * real.c (encode_c4x_single, decode_c4x_single,
27730         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
27731         c4x_extended_format): Remove.
27732         * real.h (c4x_single_format, c4x_extended_format): Remove.
27733         * doc/extend.texi (interrupt, naked): Remove mention of attributes
27734         on C4x.
27735         (Pragmas): Remove comment about c4x pragmas.
27736         * doc/install.texi (c4x): Remove target-specific instructions.
27737         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
27738         * doc/md.texi (Machine Constraints): Remove C4x documentation.
27739         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
27740         refer to C4x source files as examples.
27741         (C4X_FLOAT_FORMAT): Remove documentation.
27742
27743 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
27744
27745         * config/bfin/bfin.c (override_options): Reorder tests so that
27746         flag_pic gets enabled for -msep-data.
27747
27748 2008-01-25  Richard Guenther  <rguenther@suse.de>
27749
27750         PR middle-end/32244
27751         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
27752         to its bitfield precision if required.
27753
27754 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
27755
27756         PR middle-end/33880
27757         * tree-nested.c (walk_omp_for): New function.
27758         (convert_nonlocal_reference, convert_local_reference): Call
27759         walk_omp_for on OMP_FOR.
27760         (convert_call_expr): Call walk_body on OMP_FOR's
27761         OMP_FOR_PRE_INIT_BODY.
27762
27763 2008-01-25  Richard Guenther  <rguenther@suse.de>
27764
27765         PR tree-optimization/34966
27766         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
27767         default defs and PHI_NODEs we have to insert after the
27768         defining statement.
27769
27770 2008-01-24  Nick Clifton  <nickc@redhat.com>
27771
27772         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
27773         Provide a default definition.
27774         (LIBGCC2_UNITS_PER_WORD): Likewise.
27775
27776         * config/stormy16/stormy16.c: Include df.h for the prototype
27777         for df_regs_ever_live_p.
27778         (xstormy16_expand_builtin_va_start): Convert the stack offset
27779         into a component_ref and then use POINTER_PLUS_EXPR to add it
27780         to the incoming_virtual_args_rtx.
27781         (xstormy16_gimplify_va_arg_expr): Rename to
27782         xstormy16_gimplify_va_arg_expr.
27783         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
27784         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
27785         xstormy16_gimplify_va_arg_expr.
27786         Fix up some formatting issues.
27787
27788         * config/stormy16/stormy16.c (xstormy16_carry_plus_operand):
27789         Move to predicates.md.
27790         (xs_hi_general_operand): Likewise.
27791         (xs_hi_nonmemory_operand): Likewise.
27792         * config/stormy16/predicates.md:
27793         (xstormy16_carry_plus_operand): New predicate.
27794         (xs_hi_general_operand): New predicate.
27795         (xs_hi_nonmemory_operand): New predicate.
27796         * config/stormy16/stormy16-protos.h:
27797         (xstormy16_carry_plus_operand): Delete prototype.
27798         (xs_hi_general_operand): Likewise.
27799         (xs_hi_nonmemory_operand): Likewise.
27800
27801         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
27802         modifiers as they are no longer needed and they can trigger
27803         reload spill failures.
27804
27805         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
27806         with a match_operand in order to help reload.
27807
27808         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
27809         constraint with 'e' for the 8th alternative as this version of
27810         the mov.w instruction only accepts the lower 8 registers.
27811
27812 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
27813
27814         PR target/34856
27815         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
27816         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
27817         vector elements.
27818
27819 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
27820
27821         PR middle-end/33333
27822         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
27823
27824 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
27825
27826         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
27827         New functions.
27828         (remove_structure): Update allocations list before removing structure.
27829
27830 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
27831
27832         * ipa-struct-reorg.c (is_safe_cond_expr,
27833         create_new_stmts_for_cond_expr): Use integer_zerop function,
27834         that recognize not only zero-pointer, but zero-integer too.
27835
27836 2008-01-25  Ben Elliston  <bje@au.ibm.com>
27837
27838         PR other/22232
27839         * fixproto: Escape "." in sed expression that strips leading "./".
27840
27841 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
27842
27843         PR driver/34904
27844         * gcc.c (SWITCH_OK): Removed.
27845         (SWITCH_LIVE): Changed to bit.
27846         (SWITCH_FALSE): Likewise.
27847         (SWITCH_IGNORE): Likewise.
27848         (switchstr): Change live_cond to unsigned int.
27849         (process_command): Replace SWITCH_OK with 0.
27850         (do_self_spec): Likewise.
27851         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
27852         (give_switch): Likewise.
27853         (used_arg): Likewise.
27854         (do_spec_1): Set the SWITCH_IGNORE bit.
27855         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
27856         bits.  Set the SWITCH_LIVE bit.
27857
27858 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
27859
27860         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
27861
27862 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
27863
27864         PR tree-optimization/34472
27865         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
27866         parameter to a "bool *" and set *DATA to false if there is
27867         an unsafe access.  Do not delete the structure here.
27868         (check_cond_exprs): Delete it here instead.
27869         (check_cond_exprs, exclude_cold_structs): Do not increase
27870         I when removing a structure.
27871
27872 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
27873
27874         PR target/34856
27875         * config/i386/i386.c (ix86_expand_vector_init): Consider only
27876         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
27877
27878 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
27879
27880         PR middle-end/34934
27881         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
27882         a fixed vector for stack.
27883
27884 2008-01-24  Ben Elliston  <bje@au.ibm.com>
27885
27886         PR c++/25701
27887         * doc/gcc.texi (Software development): Add a direntry for g++.
27888
27889 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
27890
27891         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
27892         stale and straggling -fforce-addr comments above.
27893
27894         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
27895         define.
27896         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
27897         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
27898
27899 2008-01-23  Michael Matz  <matz@suse.de>
27900
27901         PR debug/34895
27902         * dwarf2out.c (force_type_die): Use modified_type_die instead of
27903         gen_type_die.
27904
27905 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
27906
27907         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
27908         malloc result type.
27909
27910 2008-01-23 Anatoly Sokolov <aesok@post.ru>
27911
27912         * config/avr/avr.c (avr_current_arch): New variable.
27913         (avr_arch_types): Add 'avr31' and 'avr51' entries.
27914         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
27915         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
27916         (avr_override_options): Init 'avr_current_arch'.
27917         (base_arch_s): Move from here...
27918         * config/avr/avr.h (base_arch_s): ... here. Add new members
27919         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
27920         'mega' to 'have_jmp_call'.
27921         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
27922         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
27923         macros.
27924         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
27925         architectures.
27926         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
27927         MULTILIB_MATCHES): Ditto.
27928
27929 2008-01-23  Richard Guenther  <rguenther@suse.de>
27930
27931         PR middle-end/31529
27932         * cgraphunit.c (cgraph_reset_node): Always mark the node
27933         not reachable if it is not queued already.
27934
27935 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
27936
27937         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
27938         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
27939         (cputype_selected): New static variable.
27940         (bfin_handle_option): Set it if -mcpu is used.
27941         (override_option): Select default set of workarounds if no cpu type
27942         selected on the command line.
27943         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27944
27945         From  Michael Frysinger  <michael.frysinger@analog.com>
27946         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
27947         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
27948
27949         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
27950         for bf547, bf523, bf524, and bf526.
27951         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
27952         bf526.
27953         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
27954         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
27955         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
27956         __ADSPBF547__ and __ADSPBF54x__ for bf547.
27957         * doc/invoke.texi (Blackfin Options): Document that
27958         -mcpu now accept bf547, bf523, bf524, and bf526.
27959
27960 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
27961
27962         PR rtl-optimization/34628
27963         * combine.c (try_combine): Stop and undo after the first combination
27964         if an autoincrement side-effect on the first insn has effectively
27965         been lost.
27966
27967 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
27968
27969         PR target/34529
27970         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
27971         Offset addresses are not valid for Altivec or paired float modes.
27972
27973 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
27974
27975         PR c++/34607
27976         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
27977         if DECL_INITIAL (decl) is error_mark_node.
27978
27979         PR c++/34914
27980         * c-common.c (handle_vector_size_attribute): Only allow
27981         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
27982         the same way as pointer, array etc. types.
27983         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
27984
27985         PR c++/34917
27986         * tree.c (build_type_attribute_qual_variant): Call
27987         build_qualified_type if attributes are equal, but quals are not.
27988
27989 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27990
27991         PR 32102
27992         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
27993         * flags.h (warn_strict_aliasing): Remove.
27994         (warn_strict_overflow): Remove.
27995         * opts.c (warn_strict_aliasing): Remove.
27996         (warn_strict_overflow): Remove.
27997         * c-opts.c (c_common_handle_option): -Wall only sets
27998         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
27999         (c_common_post_options): Give default values to -Wstrict-aliasing
28000         and -Wstrict-overflow if they are uninitialized.
28001         * common.opt (Wstrict-aliasing): Specify Var and Init.
28002         (Wstrict-overflow): Likewise.
28003
28004 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
28005
28006         PR rtl-optimization/26854
28007         PR rtl-optimization/34400
28008         PR rtl-optimization/34884
28009         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
28010         DF_RD->gen.
28011         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
28012         (df_rd_bb_info.expanded_lr_out): Deleted
28013         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
28014         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
28015         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
28016         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
28017         Removed code to allocate, initialize or free expanded_lr_out.
28018         (df_rd_bb_local_compute_process_def): Restructured to make more
28019         understandable.
28020         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
28021         sets if the sets are being trimmed.
28022
28023 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
28024
28025         PR bootstrap/32287
28026         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
28027         (as_vers): Likewise.
28028         * configure: Regenerated.
28029
28030 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28031
28032         PR middle-end/33092
28033         * tree-pass.h (pass_build_alias): New pass.
28034         * tree-ssa-alias.c (gate_build_alias): New.
28035         (pass_build_alias): New.
28036         * passes.c (init_optimization_passes): Add pass_build_alias after
28037         pass_create_structure_vars.
28038
28039 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
28040
28041         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
28042         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
28043         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
28044         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
28045         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
28046         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
28047         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
28048         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
28049         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
28050         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
28051         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
28052         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
28053         * config/s390/s390.md (FP_ALL): New mode iterator.
28054         (_d): New mode attribute.
28055         ("*signbit<mode>2>"): Changed mode of first operand.
28056         ("isinf<mode>2"): Changed mode of first operand.
28057         ("*TDC_insn"): Adaptation for DFP modes.
28058
28059 2008-01-22  Ben Elliston  <bje@au.ibm.com>
28060
28061         * tree.c (check_qualified_type): Improve function description.
28062
28063 2008-01-21  Jason Merrill  <jason@redhat.com>
28064
28065         PR c++/34196
28066         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
28067         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
28068         if it is set.
28069
28070 2008-01-21  DJ Delorie  <dj@redhat.com>
28071
28072         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
28073         return zero.
28074
28075 2008-01-21  Richard Guenther  <rguenther@suse.de>
28076
28077         PR middle-end/34856
28078         * tree-cfg.c (verify_expr): Allow all invariant expressions
28079         instead of just constant class ones as reference argument.
28080         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
28081         like any other constant.
28082         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
28083
28084 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
28085
28086         * regmove.c (fixup_match_1): Update call crossed frequencies.
28087
28088 2008-01-21  Richard Guenther  <rguenther@suse.de>
28089
28090         PR c/34885
28091         * tree-inline.c (setup_one_parameter): Deal with mismatched
28092         types using a VIEW_CONVERT_EXPR.
28093
28094 2008-01-21  Alon Dayan  <alond@il.ibm.com>
28095             Olga Golovanevsky  <olga@il.ibm.com>
28096
28097         PR tree-optimization/34701
28098         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
28099         when the structure size is not a power of 2.
28100
28101 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28102
28103         * doc/install.texi: Add doc for --enable-checking=df.
28104
28105 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
28106
28107         PR rtl-optimization/34808
28108         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
28109
28110 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
28111
28112         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
28113         input.
28114
28115 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
28116
28117         PR rtl-optimization/26854
28118         PR rtl-optimization/34400
28119         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
28120         DF_RD->gen.
28121         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
28122         (df_rd_bb_info.expanded_lr_out): New.
28123         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
28124         * loop_iv.c (iv_analysis_loop_init): Ditto.
28125         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
28126         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
28127         Added code to allocate, initialize or free expanded_lr_out.
28128         (df_rd_bb_local_compute_process_def): Restructured to make
28129         more understandable.
28130         (df_rd_confluence_n): Add code to do nothing with fake edges and
28131         code to no apply invalidate_by_call sets if the sets are being trimmed.
28132         (df_lr_local_finalize): Renamed to df_lr_finalize.
28133         (df_live_local_finalize): Renamed to df_live_finalize.
28134
28135 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
28136
28137         PR target/34831
28138         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
28139         deciding whether to use reciprocal instructions.
28140
28141 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
28142
28143         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
28144         dwarf2out_note_section_used if cold_text_section is NULL.
28145
28146 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
28147
28148         PR gcov-profile/34610
28149         * tree-cfg.c (make_edges): Mark both outgoing edges from
28150         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
28151         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
28152         from OMP_FOR and OMP_CONTINUE outgoing edges.
28153
28154         * tree-profile.c (tree_profiling): Return early if
28155         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
28156         at the end.
28157         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
28158         from cfun to child_cfun.
28159         * function.h (struct function): Add after_tree_profile bit.
28160
28161 2008-01-19 Anatoly Sokolov <aesok@post.ru>
28162
28163         * config/avr/avr.S (_exit): Disable interrupt.
28164
28165 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
28166             Steven Bosscher  <stevenb.gcc@gmail.com>
28167
28168         PR rtl-optimization/26854
28169         PR rtl-optimization/34400
28170         * df-problems.c (df_live_scratch): New scratch bitmap.
28171         (df_live_alloc): Allocate df_live_scratch when doing df_live.
28172         (df_live_reset): Clear the proper bitmaps.
28173         (df_live_bb_local_compute): Only process the artificial defs once
28174         since the order is not important.
28175         (df_live_init): Init the df_live sets only with the variables
28176         found live by df_lr.
28177         (df_live_transfer_function): Use the df_lr sets to prune the
28178         df_live sets as they are being computed.
28179         (df_live_free): Free df_live_scratch.
28180
28181 2008-01-18  Ian Lance Taylor  <iant@google.com>
28182
28183         * common.opt: Add fmerge-debug-strings.
28184         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
28185         flag_merge_debug_strings rather than flag_merge_constants.
28186         * doc/invoke.texi (Option Summary): Mention
28187         -fmerge-debug-strings.
28188         (Debugging Options): Document -fmerge-debug-strings.
28189
28190 2008-01-18  Ian Lance Taylor  <iant@google.com>
28191
28192         PR c++/33407
28193         * tree.h (DECL_IS_OPERATOR_NEW): Define.
28194         (struct tree_function_decl): Add new field operator_new_flag.
28195         * tree-inline.c (expand_call_inline): When inlining a call to
28196         operator new, force the return value to go into a variable, and
28197         set DECL_NO_TBAA_P on that variable.
28198         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
28199
28200 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
28201
28202         PR debug/34484
28203         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
28204         DWARF2_DEBUGGING_INFO.
28205         (dwarf2out_note_section_used): Ditto.  Add prototype.
28206         (have_multiple_function_sections, text_section_used,
28207         cold_text_section_used, *cold_text_sections): Move declarations
28208         before their uses.
28209
28210 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
28211
28212         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
28213         field and add signal_ra.
28214         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
28215         assignments to frame state pc.  Move end of stack check after
28216         MD_FALLBACK_FRAME_STATE_FOR.
28217         (uw_update_context_1): Use frame state signal_regs if set, instead
28218         of checking signal_frame flag.
28219         (uw_update_context): Use frame state signal_ra if set.
28220         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
28221         * config/xtensa/linux-unwind.h: New file.
28222
28223 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
28224
28225         * modulo-sched.c (get_sched_window): Fix comment typo.
28226
28227 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
28228
28229         PR tree-optimization/34648
28230         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
28231
28232 2008-01-17  Anatoly Sokolov <aesok@post.ru>
28233
28234         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
28235         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
28236
28237 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
28238
28239         PR rtl-optimization/34400
28240         * df-core.c (df_worklist_dataflow_overeager,
28241         df_worklist_dataflow_doublequeue): New functions.
28242         (df_worklist_dataflow): Two different worklist solvers.
28243         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
28244         New param.
28245
28246 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28247
28248         PR testsuite/34821
28249         * doc/invoke.texi: Document the dependence on pthread for fopenmp
28250         and ftree-parallelize-loops.
28251
28252 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
28253
28254         PR rtl-optimization/34826
28255         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
28256
28257 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
28258
28259         * global.c (find_reg): Mark the eh regs as used if necessary.
28260         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
28261         * ra.h (struct allocno): no_eh_reg field added.  Changed
28262         no_stack_reg type to bitfield.
28263
28264 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
28265
28266         * tree.c (substitute_in_expr): Add missing 'break'.
28267
28268 2008-01-17  Richard Guenther  <rguenther@suse.de>
28269
28270         PR tree-optimization/34825
28271         * tree-ssa-math-opts.c (is_division_by): Do not recognize
28272         x / x as division to handle.
28273
28274 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28275
28276         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
28277         "-pthread" is specified.
28278         * pa-hpux11.h (LIB_SPEC): Likewise.
28279
28280 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
28281             Peter Bergner  <bergner@vnet.ibm.com>
28282
28283         PR rtl-optimization/33796
28284         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
28285
28286 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28287
28288         PR libgfortran/34699
28289         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
28290         static links.
28291         * pa-hpux10.h (LINK_SPEC): Likewise.
28292         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
28293
28294 2008-01-16  Richard Guenther  <rguenther@suse.de>
28295
28296         PR middle-end/32628
28297         * fold-const.c (fold_convert_const_int_from_int): Do not
28298         set overflow if that occured only because of a sign extension
28299         change when converting from/to a sizetype with the same
28300         precision and signedness.
28301
28302 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
28303
28304         PR debug/34249
28305         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
28306         location address to the correct place.  Update copyright year.
28307
28308 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28309
28310         * lambda-code.c (lambda_transform_legal_p): Handle the case of
28311         no dependences in the dependence_relations vector.
28312
28313 2008-01-16  Jan Hubicka  <jh@suse.cz>
28314
28315         PR rtl-optimization/31396
28316         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
28317         * cfg.c (dump_reg_info): Print it.
28318         * regs.h (struct reg_info_t): add freq_calls_crossed.
28319         (REG_FREQ_CALLS_CROSSED): New macro.
28320         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
28321         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
28322         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
28323         regmove_optimize): Update call crossed frequencies.
28324         * local-alloc.c (struct qty): Add freq_calls_crossed.
28325         (alloc_qty): Copute freq_calls_crossed.
28326         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
28327         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
28328         * ra.h (struct allocno): Add freq_calls_crossed.
28329
28330 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28331
28332         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
28333         libgomp when compiling with ftree-parallelize-loops.
28334         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
28335
28336 2008-01-16  Richard Guenther  <rguenther@suse.de>
28337
28338         PR tree-optimization/34769
28339         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
28340         * tree.c (int_cst_value): Instead make this function more
28341         permissive in what it accepts as valid input.  Document this
28342         function always sign-extends the value.
28343
28344 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
28345             Richard Guenther  <rguenther@suse.de>
28346
28347         PR c/34668
28348         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
28349         (gimple_fold_indirect_ref_rhs): ... this.
28350         (gimple_fold_indirect_ref): New function with foldings
28351         that preserve lvalueness.
28352         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
28353         * tree-flow.h (gimple_fold_indirect_ref): Declare.
28354         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
28355         to fold an INDIRECT_REF, fall back to the old use of
28356         fold_indirect_ref_1.
28357
28358 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
28359
28360         * tree-data-ref.c (subscript_dependence_tester_1): Call
28361         free_conflict_function.
28362         (compute_self_dependence): Same.
28363
28364 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
28365
28366         PR debug/34249
28367         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
28368         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
28369         function global.
28370         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
28371         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
28372         for DWARF2_UNWIND_INFO targets.
28373
28374 2008-01-16  Richard Guenther  <rguenther@suse.de>
28375
28376         PR c/34768
28377         * c-typeck.c (common_pointer_type): Do not merge inconsistent
28378         type qualifiers for function types.
28379
28380 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
28381
28382         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
28383         loop_iterator li from previous commit.
28384
28385 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
28386
28387         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
28388
28389 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
28390
28391         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
28392         (parallelize_loops): Don't parallelize irreducible components.
28393
28394 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28395
28396         PR c++/24924
28397         * c-opts (c_common_post_options): Do not enable CPP
28398         flag_pedantic_errors by default.
28399
28400 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
28401
28402         PR rtl-optimization/31944
28403         * cse.c (remove_pseudo_from_table): New function.
28404         (merge_equiv_classes): Use above function to remove pseudo-registers.
28405         (invalidate): Likewise.
28406
28407 2008-01-13  Richard Guenther  <rguenther@suse.de>
28408
28409         PR middle-end/34601
28410         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
28411         instead of TYPE_MODE to deal with calls from expand_one_error_var.
28412
28413 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
28414
28415         * gcse.c (cprop_jump): Call validate_unshare_change instead of
28416         validate_change to unshare the source of the PC set.
28417
28418 2008-01-12  Jan Hubicka  <jh@suse.cz>
28419
28420         PR middle-end/32135
28421         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
28422         references above array bounds.  This might trigger bounds checks for
28423         pointers to arrays.
28424
28425 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
28426
28427         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
28428         new_replaceable_dependencies.
28429
28430 2008-01-12  Doug Kwan  <dougkwan@google.com>
28431
28432         * c-decl.c (grokdeclarator): Use OPT_Wignored_qualifiers
28433         instead of OPT_Wreturn_type in warning due to ignored return type
28434         qualifiers.
28435         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
28436         options included in -Wextra.
28437         * c.opt: New option -Wignored_qualifiers.
28438         * doc/invoke.texi (Warning Options, -Wextra): Add new option
28439         -Wignore_qualifiers.
28440         (-Wignored-qualifiers): Document.
28441         (-Wreturn-type): Remove description of functionality now handled
28442         by -Wignored-qualifiers.
28443
28444 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
28445
28446         PR ada/33788
28447         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
28448         NOP_EXPR if it is between integral types with the same precision.
28449
28450 2008-01-12  Jan Hubicka  <jh@suse.cz>
28451
28452         PR other/28023
28453         * invoke.texi (max-inline-recursive-depth): Fix default value.
28454
28455 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
28456
28457         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
28458         correct type.
28459
28460 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
28461
28462         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
28463
28464 2008-01-11  James E. Wilson  <wilson@specifix.com>
28465
28466         PR target/26015
28467         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
28468
28469 2008-01-11  Anatoly Sokolov <aesok@post.ru>
28470
28471         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
28472         save/restore frame pointer register and don't use 'call-prologues'
28473         optimization in function with "OS_task" attribute.
28474
28475 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
28476
28477         PR middle-end/31309
28478         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
28479         when copying to memory.
28480
28481 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
28482
28483         PR rtl-optimization/30905
28484         * cfgcleanup.c: Include dce.h
28485         (crossjumps_occured): New global variable.
28486         (try_crossjump_bb): Exit loop after finding a fallthru edge.
28487         If something changed, set crossjumps_occured to true.
28488         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
28489         Don't add/remove fake edges to exit here...
28490         (cleanup_cfg): ...but do it here, when crossjumping.
28491         Run a fast DCE when successful crossjumps occured in the latest
28492         iteration of try_optimize_cfg.
28493
28494 2008-01-11  Richard Guenther  <rguenther@suse.de>
28495
28496         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
28497         (struct vn_unary_op_s): Likewise.
28498         (vn_reference_insert): Free old reference on hash collision.
28499
28500 2008-01-10  Raksit Ashok  <raksit@google.com>
28501
28502         PR rtl-optimization/27971
28503         * combine.c (find_split_point): Split PLUS expressions which are
28504         inside a MEM rtx, and whose first operand is complex.
28505
28506 2008-01-10  DJ Delorie  <dj@redhat.com>
28507
28508         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
28509         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
28510         (m32c_hard_regno_ok): Call the underlying function.
28511
28512 2008-01-10  Richard Guenther  <rguenther@suse.de>
28513
28514         PR middle-end/34683
28515         * tree-cfg.c (tree_merge_blocks): Do not go through the
28516         full-blown folding and stmt updating path if we just deal
28517         with virtual operands.
28518         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
28519         test for abnormal SSA_NAMEs.
28520
28521 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
28522
28523         PR middle-end/34641
28524         * reload.c (push_reload): Add assertions.  All constants from
28525         reg_equiv_constant should have been used for replacing the respective
28526         pseudo earlier.
28527         (find_reloads_address): Invoke find_reloads_address_part for
28528         constant taken from the reg_equiv_constant array.
28529
28530 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
28531
28532         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
28533         field (valnum) the first in the struct.  Replace bools with
28534         unit bit fields.
28535
28536 2008-01-10  Richard Guenther  <rguenther@suse.de>
28537
28538         PR tree-optimization/34651
28539         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
28540         types and ordering for masking and converting.
28541
28542 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
28543
28544         PR tree-optimization/34017
28545         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
28546         also for PHI_NODE expressions.
28547
28548 2008-01-09  Jan Hubicka  <jh@suse.cz>
28549
28550         PR tree-optimization/34708
28551         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
28552         based on number of case labels.
28553         (init_inline_once): Remove switch_cost.
28554         * tree-inline.h (eni_weights_d): Remove switch_cost.
28555
28556 2008-01-09  Richard Guenther  <rguenther@suse.de>
28557         Andrew Pinski  <andrew_pinski@playstation.sony.com>
28558
28559         PR middle-end/30132
28560         * gimplify.c (gimplify_cond_expr): Do not create an addressable
28561         temporary if an rvalue is ok or an lvalue is not required.
28562
28563 2008-01-09  Richard Guenther  <rguenther@suse.de>
28564
28565         PR middle-end/34458
28566         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
28567         adjust return type.
28568
28569 2008-01-09  Richard Guenther  <rguenther@suse.de>
28570
28571         PR middle-end/34679
28572         * tree.c (host_integerp): Check for sizetype only if the
28573         type is an integer type.
28574
28575 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
28576
28577         PR debug/26364
28578         * opts.c (decode_options): Disable inlining of functions called
28579         once if not in unit-at-a-time mode.
28580
28581 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
28582
28583         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
28584
28585 2008-01-08  Richard Guenther  <rguenther@suse.de>
28586
28587         PR middle-end/31863
28588         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
28589         out early if the result will be unused.
28590
28591 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
28592
28593         PR target/34709
28594         Revert:
28595
28596         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28597         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28598         for TARGET_RECIP.
28599
28600 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
28601
28602         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
28603         for vectorization tuned.
28604
28605 2008-01-08  Richard Guenther  <rguenther@suse.de>
28606
28607         PR tree-optimization/34683
28608         * tree-ssa-operands.c (operand_build_cmp): Export.
28609         * tree-ssa-operands.h (operand_build_cmp): Declare.
28610         * tree-vn.c (vuses_compare): Remove.
28611         (sort_vuses): Use operand_build_cmp.
28612         (sort_vuses_heap): Likewise.
28613         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
28614         to re-use old VEC if available.  Do not sort already sorted VUSEs.
28615         (vdefs_to_vec): Do not sort already sorted VDEFs.
28616
28617 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
28618
28619         PR middle-end/34694
28620         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
28621
28622 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
28623
28624         PR target/34702
28625         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
28626         limitations of reciprocal sequences on x86 targets.
28627
28628 2008-01-08  Richard Guenther  <rguenther@suse.de>
28629
28630         PR tree-optimization/34683
28631         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
28632
28633 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
28634
28635         PR target/34622
28636         * config/darwin.c (darwin_mergeable_string_section): Don't use
28637         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
28638
28639 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
28640
28641         PR target/34682
28642         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
28643         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
28644         predicates of op0 and op1 to register_operand.
28645         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
28646         expander using X87MODEF mode iterator.  Change predicates of
28647         op0 and op1 to register_operand.
28648         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
28649         corresponding patterns and macroize using MODEF macro.  Change
28650         predicates of op0 and op1 to register_operand and remove
28651         "m" constraint. Disparage "r" alternative with "!".
28652         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
28653         macroize using X87MODEF macro.  Change predicates of op0 and op1
28654         to register_operand and remove "m" constraint.  Disparage "r"
28655         alternative with "!".
28656         (absneg splitter with memory operands): Remove.
28657         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
28658         patterns and macroize using X87MODEF mode iterator.
28659         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
28660         Change predicate of op1 to register_operand.
28661         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
28662         for memory operands.
28663
28664 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
28665
28666         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
28667
28668 2008-01-07  Richard Guenther  <rguenther@suse.de>
28669
28670         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
28671         fields.
28672
28673 2008-01-07  Richard Guenther  <rguenther@suse.de>
28674
28675         PR tree-optimization/34683
28676         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
28677         VOPs of the needed size to save memory.  Use VEC_quick_push
28678         to save compile-time.
28679         (vdefs_to_vec): Likewise.
28680
28681 2008-01-07  Sa Liu  <saliu@de.ibm.com>
28682
28683         * config/spu/spu.md (divdf3): Genetate inline code for double
28684         division.  The implementation doesn't handle INF or NAN, therefore it
28685         only applies when -ffinite-math-only is given.
28686
28687 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
28688
28689         PR libstdc++/34680
28690         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
28691         * doc/cpp.texi ([Common Predefined Macros]): Document.
28692
28693 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
28694
28695         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
28696         order to use commutative addition instead of subtraction.
28697
28698 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
28699             Mircea Namolaru  <namolaru@il.ibm.com>
28700             Vladimir Yanovsky  <yanov@il.ibm.com>
28701             Revital Eres  <eres@il.ibm.com>
28702
28703         PR tree-optimization/34263
28704         * tree-outof-ssa.c (process_single_block_loop_latch,
28705         contains_tree_r): New functions.
28706         (analyze_edges_for_bb): Call process_single_block_loop_latch
28707         function to empty single-basic-block latch block if possible.
28708
28709 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28710
28711         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28712         for TARGET_RECIP.
28713         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
28714
28715 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
28716
28717         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
28718
28719 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
28720
28721         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
28722
28723 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
28724
28725         PR tree-optimization/34618
28726         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
28727         flag from T.
28728
28729 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28730
28731         PR target/34673
28732         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
28733         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
28734         Update copyright year.
28735
28736         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
28737         Update copyright year.
28738         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
28739         using NR fixup.
28740
28741 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
28742
28743         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
28744         edge does not point to current bb before changing need_assert.
28745
28746 2008-01-04  Richard Guenther  <rguenther@suse.de>
28747
28748         PR middle-end/34029
28749         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
28750         for verifying purposes if they are is_gimple_min_invariant.
28751
28752 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
28753
28754         PR tree-optimization/34448
28755         PR tree-optimization/34465
28756         * gimplify.c (gimplify_init_constructor): Add new parameter
28757         notify_temp_creation.  Use it.
28758         (gimplify_modify_expr_rhs): Take volatiles into account when
28759         optimizing constructors.
28760         Do not optimize constructors if gimplify_init_constructor will dump to
28761         memory.
28762         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
28763         * gcc.c-torture/compile/pr34448.c: New.
28764
28765 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
28766
28767         PR gcov-profile/34609
28768         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
28769         return_slot if result is TREE_ADDRESSABLE.
28770
28771 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
28772
28773         * config/mips/mips.md (sqrt_condition): Tweak comment.
28774         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
28775
28776 2008-01-03  Tom Tromey  <tromey@redhat.com>
28777
28778         PR c/34457
28779         * c-common.c (c_type_hash): Handle VLAs.
28780
28781 2008-01-03  Jan Hubicka  <jh@suse.cz>
28782
28783         PR tree-optimization/31081
28784         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
28785         0 when inlining and not inlining to first basic block.
28786         (remap_decl): When var is initialized to 0, don't set default_def.
28787         (expand_call_inline): Set entry_bb.
28788         * tree-inline.h (copy_body_data): Add entry_bb.
28789
28790 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
28791
28792         PR c++/34619
28793         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
28794         before returning.
28795
28796         PR tree-optimization/29484
28797         * tree-inline.c (inline_forbidden_p_2): New function.
28798         (inline_forbidden_p): Disallow inlining if some static var
28799         has an address of a local LABEL_DECL in its initializer.
28800         * doc/extend.texi (Labels as Values): Document &&foo behaviour
28801         vs. inlining.
28802
28803 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
28804
28805         PR tree-optimization/34635
28806         * tree-data-ref.c (add_other_self_distances): Make sure that the
28807         evolution step is constant.
28808
28809 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
28810
28811         PR middle-end/34608
28812         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
28813
28814 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
28815
28816         * tree-sra.c (scalarize_init): Insert the generate_element_init
28817         statements after the generate_element_zero statements.
28818
28819 2008-01-02  Richard Guenther  <rguenther@suse.de>
28820
28821         PR middle-end/34093
28822         PR middle-end/31976
28823         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
28824         for very large number of operands instead of ICEing.
28825
28826 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
28827
28828         PR target/34013
28829         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
28830         while stack probing.
28831
28832 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
28833
28834         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
28835         in C++0x mode.
28836
28837 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
28838
28839         PR libmudflap/26442
28840         * tree-mudflap.c (mx_register_decls): Guard warning by
28841         !DECL_ARTIFICIAL check.
28842
28843 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
28844
28845         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
28846         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
28847         sse5_perm<mode>): Fix constraints.