OSDN Git Service

5c3789a2a820bc1a03f7d72909981af9f3c76598
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-12-30  Paolo Bonzini  <bonzini@gnu.org>
2
3         PR tree-optimization/38572
4         * tree-vrp.c (vrp_visit_phi_node): Look out for invalid ranges
5         and change them to VARYING.
6
7 2008-12-30  Richard Guenther  <rguenther@suse.de>
8
9         PR middle-end/38564
10         * fold-const.c (fold_comparison): Use the correct result type.
11
12 2008-12-30  Dorit Nuzman  <dorit@il.ibm.com>
13             Ira Rosen  <irar@il.ibm.com>
14
15         PR tree-optimization/38529
16         * tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts
17         whose DEF is used in the loop-nest that is being vectorized, but
18         outside the immediately enclosing loop.
19
20 2008-12-29  Seongbae Park  <seongbae.park@gmail.com>
21
22         * tree-profile.c (tree_init_ic_make_global_vars): Make static
23         variables TLS.
24
25 2008-12-29  Jakub Jelinek  <jakub@redhat.com>
26
27         PR c++/36191
28         * tree-complex.c (expand_complex_libcall): Call
29         maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges
30         instead of passing true as 3rd argument to gsi_replace.
31
32 2008-12-28  Uros Bizjak  <ubizjak@gmail.com>
33
34         PR middle-end/38652
35         * dse.c: Include target.h.
36         * Makefile.in (dse.o): Depend on $(TARGET_H).
37
38 2008-12-29  Jakub Jelinek  <jakub@redhat.com>
39
40         PR driver/38381
41         * gcc.c (process_command): Accept also -b with configuration name
42         in the next argument.
43         * doc/invoke.texi (-b): Document that no hyphen is required if
44         configuration name is in the next argument after -b.
45
46 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
47
48         PR middle-end/38641
49         * gimple-pretty-print.c (dump_binary_rhs): Print
50         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR,
51         VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, VEC_PACK_FIX_TRUNC_EXPR,
52         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR
53         VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR similarly
54         to COMPLEX_EXPR, MIN_EXPR and MAX_EXPR.
55
56         PR middle-end/38633
57         * tree-cfg.c (replace_block_vars_by_duplicates): Only call
58         replace_by_duplicate_decl for VAR_DECLs or CONST_DECLs.
59
60 2008-12-24  Kazu Hirata  <kazu@codesourcery.com>
61
62         * Makefile.in (GTFILES): Add $(srcdir)/expr.h.
63         * expr.h: Fix the declaration of block_clear_fn.
64
65 2008-12-23  Andrew Pinski  <pinski@gmail.com>
66
67         PR middle-end/38590
68         * fold-const.c (fold_binary): Call fold_convert on arguments to
69         fold_build2 for negative divide optimization.
70
71 2008-12-23  Jakub Jelinek  <jakub@redhat.com>
72
73         PR middle-end/31150
74         * dse.c (struct store_info): Add const_rhs field.
75         (clear_rhs_from_active_local_stores): Clear also const_rhs.
76         (record_store): Try also cselib_expand_value_rtx to get a constant.
77         (find_shift_sequence, get_stored_val): Use const_rhs instead of
78         rhs if worthwhile.
79         * cselib.c (cselib_record_sets): If !cselib_record_memory and
80         there is just one set from read-only MEM, look at REG_EQUAL or
81         REG_EQUIV note.
82
83         * dse.c (struct store_info): Add redundant_reason field.
84         (record_store): When storing the same constant as has been stored by
85         an earlier store, set redundant_reason field to the earlier store's
86         insn_info_t.  Don't delete cannot_delete insns.
87         (find_shift_sequence): Remove read_info argument, add read_mode
88         and require_cst arguments.  Return early if require_cst and
89         constant wouldn't be returned.
90         (get_stored_val): New function.
91         (replace_read): Use it.
92         (scan_insn): Put even cannot_delete insns with exactly 1 store
93         into active_local_stores.
94         (dse_step1): Don't delete cannot_delete insns.  Remove redundant
95         constant stores if contains_cselib_groups and earlier store storing
96         the same value hasn't been eliminated.
97         (dse_step6): Renamed to dse_step7.  New function.
98         (dse_step7): Renamed from dse_step6.
99         (rest_of_handle_dse): Call dse_step6 and dse_step7 at the end.
100         * cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs
101         into CONST unless really necessary.  Handle SUBREG, unary,
102         ternary, bitfield and compares specially, to be able to simplify
103         operations on constants.
104         (expand_loc): Try to optimize LO_SUM.
105
106         * dse.c (get_call_args): New function.
107         (scan_insn): Don't handle BUILT_IN_BZERO.  For memset, attempt
108         to get call arguments and if successful and both len and val are
109         constants, handle the call as (mem:BLK) (const_int) store.
110
111         * dse.c (struct store_info): Add is_large bool field, change
112         positions_needed into a union of a bitmask and bitmap + count.
113         (free_store_info): Free bitmap if is_large.
114         (set_usage_bits): Don't look at stores where
115         offset + width >= MAX_OFFSET.
116         (set_position_unneeded, set_all_positions_unneeded,
117         any_positions_needed_p, all_positions_needed_p): New static inline
118         functions.
119         (record_store): Handle BLKmode stores of CONST_INT, if
120         MEM_SIZE is set on the MEM.  Use the new positions_needed
121         accessor inlines.
122         (replace_read): Handle reads from BLKmode CONST_INT stores.
123         (check_mem_read_rtx): Use all_positions_needed_p function.
124         (dse_step1): Free large positions_needed bitmaps and clear is_large.
125
126         * dse.c (struct store_info): Change begin and end types to
127         HOST_WIDE_INT.
128
129         * dse.c (record_store): Fix check for unused store.
130
131         * expr.c (block_clear_fn): No longer static.
132         * expr.h (block_clear_fn): Declare.
133         * dse.c (scan_insn): Memset and bzero can just read their arguments.
134
135         * config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
136         argument.  If ORIG_VALUE is const0_rtx and COUNT is constant,
137         set MEM_SIZE on DESTMEM.
138         (ix86_expand_setmem): Adjust callers.
139
140         PR target/38488
141         * expr.h (get_mem_align_offset): New prototype.
142         * emit-rtl.c (get_mem_align_offset): New function.
143         * config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE
144         correctly.
145         (expand_constant_movmem_prologue, expand_constant_setmem_prologue):
146         New functions.
147         (ix86_expand_movmem): Optimize if COUNT_EXP
148         is constant, desired_align > align and dst & (desired_align - 1)
149         is computable at compile time.
150         (ix86_expand_setmem): Likewise.
151
152         * builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet
153         resolved SAVE_EXPR or POINTER_PLUS_EXPR.
154
155 2008-12-22  Uros Bizjak  <ubizjak@gmail.com>
156
157         * config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro.
158
159         PR target/34571
160         * config/alpha/predicates.md (symbolic_operand): Return 1 for a
161         label_ref with an offset.
162
163 2008-12-21  Andrew Pinski  <pinskia@gmail.com>
164
165         PR target/38300
166         * configure: Regenerate.
167
168 2008-12-21  Richard Sandiford  <rdsandiford@googlemail.com>
169
170         * config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand,
171         changing operand 1 to a pmode_register_operand.
172         (mips_lhx, mips_lwx): Likewise.
173         (mips_lbux_<mode>, mips_lhx_<mode>, mips_lwx_<mode>): New patterns.
174         * config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of
175         the value from the argument expression.
176
177 2008-12-21  Jan Hubicka  <jh@suse.cz>
178             Kai Tietz <kai.tietz@onevision.com>
179
180         * i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant.
181         (call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv,
182         call_value_1_rex64_ms_sysv): New patterns.
183         * i386.c (function_arg_ms_64): Pass magical value of -2 as callarg.
184         (ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls.
185
186 2008-12-21  Uros Bizjak  <ubizjak@gmail.com>
187
188         * config/alpha/alpha.c (alpha_pad_noreturn): New static function.
189         (alpha_reorg): Call alpha_pad_noreturn.
190
191 2008-12-21  Denis Chertykov  <denisc@overta.ru>
192
193         * config/avr/avr.md ("andsi3"): Fix wrong cc attribute.
194
195 2008-12-20  Eric Botcazou  <ebotcazou@adacore.com>
196
197         PR target/37610
198         * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no'
199         if readelf is nowhere to be found.
200         * configure: Regenerate.
201
202 2008-12-19  Andrew Haley  <aph@redhat.com>
203
204         * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c:
205         Fix comments.
206
207 2008-12-19  Richard Earnshaw  <rearnsha@arm.com>
208
209         PR target/38548
210         * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3.
211         * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction.
212
213 2008-12-19  Richard Earnshaw  <rearnsha@arm.com>
214
215         PR bootstrap/38578
216         * arm.c (load_multiple_sequence): Initialize ORDER array.
217         (store_multiple_sequence): Likewise.
218         (output_move_double): Make reg0 unsigned.
219         (arm_output_epilogue): Make amount unsigned.
220         (arm_expand_prologue): Move declaration of dwarf before block
221         statements.
222
223 2008-12-19  Steve Ellcey  <sje@cup.hp.com>
224
225         * df-scan.c (df_hard_reg_init): Move declaration of i.
226
227 2008-12-19  Jakub Jelinek  <jakub@redhat.com>
228
229         PR bootstrap/37739
230         * config.host: For powerpc*-*-linux* host with 32-bit GCC,
231         use rs6000/x-linux-relax snippet if ld is new enough,
232         otherwise use rs6000/x-linux-O1.
233         * config/rs6000/x-linux-relax: New file.
234         * config/x-cflags-O1: New file.
235
236 2008-12-18  Joseph Myers  <joseph@codesourcery.com>
237
238         * config/rs6000/rs6000.c (rs6000_generate_compare): Condition
239         choice of e500 comparison instructions on flag_finite_math_only &&
240         !flag_trapping_math, not flag_unsafe_math_optimizations.
241         * config/rs6000/rs6000.md (abstf2): Condition choice of e500
242         instructions on flag_finite_math_only && !flag_trapping_math, not
243         flag_unsafe_math_optimizations.
244         (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS.
245         * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr,
246         tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr,
247         cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr,
248         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
249         Condition choice of comparison instructions on
250         flag_finite_math_only && !flag_trapping_math, not
251         flag_unsafe_math_optimizations.
252
253 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
254
255         * configure: Regenerate.
256
257 2008-12-18  Jan Hubicka  <jh@suse.cz>
258             Kai Tietz <kai.tietz@onevision.com>
259
260         * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
261         (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
262         df_invalidated_by_call to invalidated_by_call_regset.
263         * df.h (df_invalidated_by_call): Remove.
264         * regclass.c (regs_invalidated_by_call_regset, persistent_obstack):
265         New variables.
266         (init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
267         (globalize_reg): Likewise.
268         * df-problems.c (df_rd_local_compute, df_lr_confluence_n,
269         df_byte_lr_alloc): Rename df_invalidated_by_call to
270         invalidated_by_call_regset.
271         * basic-block.h (regs_invalidated_by_call_regset): Declare.
272
273 2008-12-18  Jan Hubicka  <jh@suse.cz>
274             Kai Tietz <kai.tietz@onevision.com>
275
276         * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed.
277
278 2008-12-18  Jan Hubicka  <jh@suse.cz>
279             Kai Tietz <kai.tietz@onevision.com>
280
281         * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current
282         function ABI.
283         * i386.c (ix86_call_abi_override): Do not trigger target re-init and
284         do not try to modify call used regs.
285         (ix86_maybe_switch_abi): New function.
286         (TARGET_EXPAND_TO_RTL_HOOK): New macro.
287
288 2008-12-18  Kenneth Zadeck <zadeck@naturalbridge.com>
289
290         PR rtl-optimization/37922
291         * dse.c (bb_info): Added regs_live field.
292         (look_for_hardregs): New function.
293         (replace_read): Added regs_live parameter and code to check that
294         shift sequence does not clobber live hardregs.
295         (check_mem_read_rtx): Added parameter to replace_read.
296         (dse_step1): Added regs_live bitmap and initialize it.
297         (rest_of_handle_dse): Added DF_NOTES problem and earlier call to
298         df_analyze.
299         * df-problems.c Renamed to df_simulate_initialize_backwards.
300         (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
301         (df_simulate_artificial_refs_at_top): Renamed to
302         df_simulate_finalize_backwards.
303         (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
304         df_simulate_finalize_backwards): New functions.
305         * df.h (df_simulate_artificial_refs_at_end): Renamed to
306         df_simulate_initialize_backwards.
307         (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
308         (df_simulate_artificial_refs_at_top): Renamed to
309         df_simulate_finalize_backwards.
310         (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
311         df_simulate_finalize_backwards): New functions.
312         * ra-conflict.c (global_conflicts): Renamed
313         df_simulate_artificial_refs_at_end to
314         df_simulate_initialize_backwards.
315         * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
316         df_simulate_one_insn_backwards.
317         * ifcvt.c (dead_or_predicable): Renamed
318         df_simulate_artificial_refs_at_end to
319         df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
320         df_simulate_one_insn_backwards.
321         * recog.c (peephole2_optimize): Ditto.
322         * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.
323
324 2008-12-18  Jakub Jelinek  <jakub@redhat.com>
325
326         PR middle-end/38533
327         * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
328         (rewrite_expr_tree): Add moved argument, move stmts together if
329         needed.  Call remove_visited_stmt_chain.
330         (linearize_expr_tree): Don't move stmts here.
331         (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
332         Adjust rewrite_expr_tree caller.
333
334         PR middle-end/38505
335         * tree-ssa.c (useless_type_conversion_p_1): Return
336         false if inner_type is incomplete and outer_type is complete.
337
338 2008-12-17  Sebastian Pop  <sebastian.pop@amd.com>
339
340         * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL
341         dependences and the configure options.
342         (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib,
343         --with-ppl-lib, --with-cloog-incude, --with-ppl-include.
344
345 2008-12-17  H.J. Lu  <hongjiu.lu@intel.com>
346
347         PR middle-end/38556
348         * calls.c (expand_call): Check outgoing_reg_parm_stack_space
349         only if REG_PARM_STACK_SPACE is defined.
350
351 2008-12-17  Jan Hubicka  <jh@suse.cz>
352             Kai Tietz <kai.tietz@onevision.com>
353
354         * calls.c (expand_call): Do not sibcall if
355         outgoing_reg_parm_stack_space does not match.
356
357 2008-12-16  Anatoly Sokolov  <aesok@post.ru>
358
359         * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
360         atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
361         devices.
362         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
363         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
364
365 2008-12-16  Hariharan Sandanagobalane <hariharan@picochip.com>
366
367         PR target/38842
368         * config/picochip/picochip.opt (mae): Squeezed the comments onto one
369         line.
370
371 2008-12-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
372
373         * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
374         supports hidden.
375         * configure: Regenerate.
376
377 2008-12-16  Richard Earnshaw  <rearnsha@arm.com>
378
379         PR target/37436
380         * arm.c (arm_legitimate_index): Only accept addresses that are in
381         canonical form.
382         * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
383         * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
384         for operand1.
385         (extendqisi2): Likewise.
386         (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
387         predicate for operand1.
388         
389 2008-12-15  Adam Nemet  <anemet@caviumnetworks.com>
390
391         * config/mips/mips.c (mips_output_conditional_branch): Assert that
392         openrands[1] is a CODE_LABEL.
393
394 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
395
396         * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
397         the result of mips_prepare_builtin_target.
398
399 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
400
401         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
402         if TARGET_ABICALLS is true.
403
404 2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>
405
406         * config/mips/mips.md (move_doubleword_fpr<mode>): Use
407         TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
408
409 2008-12-15  Hariharan Sandanagobalane <hariharan@picochip.com>
410
411         * config/picochip/picochip.c (picochip_override_options): Disable CFI
412         asm and change the signature of brev and byteSwap functions to use
413         unsigned values.
414         * config/picochip/picochip.md (commsTestPort): This is a complex
415         instruction and should not be vliwed. Don't set insn type.
416
417 2008-12-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
418         * config/s390/s390.c (s390_swap_cmp): New function.
419         (s390_non_addr_reg_read_p): New function.
420         (s390_z10_optimize_cmp): New function.
421         (s390_reorg): Added call to s390_optimize_cmp.
422         * config/s390/s390.md (nop1): New insn.
423
424 2008-12-12  Rainer Emrich  <r.emrich@de.tecosim.com>
425
426         PR bootstrap/38383
427         * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
428         for the milli.a library.
429
430 2008-12-12  Andrew Pinski  <andrew_pinskia@playstation.sony.com>
431             Peter Bergner <bergner@vnet.ibm.com>
432
433         PR target/24779
434         * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
435         TOC into the call pattern.
436         (call_indirect_aix64): Likewise.
437         (call_value_indirect_aix32): Likewise.
438         (call_value_indirect_aix64): Likewise.
439         (call_indirect_nonlocal_aix32_internal): New insn and split patterns
440         to split off the load of the TOC.
441         (call_indirect_nonlocal_aix32): Enable only after reload.
442         (call_indirect_nonlocal_aix64_internal): New insn and split patterns
443         to split off the load of the TOC.
444         (call_indirect_nonlocal_aix64): Enable only after reload.
445         (call_value_indirect_nonlocal_aix32_internal): New insn and split
446         patterns to split off the load of the TOC.
447         (call_value_indirect_nonlocal_aix32): Enable only after reload.
448         (call_value_indirect_nonlocal_aix64_internal): New insn and split
449         patterns to split off the load of the TOC.
450         (call_value_indirect_nonlocal_aix64): Enable only after reload.
451
452 2008-12-12  Andreas Schwab  <schwab@suse.de>
453
454         Revert:
455         2008-12-12  Andreas Schwab  <schwab@suse.de>
456         * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
457         a BARRIER insn.
458
459 2008-12-12  Zdenek Dvorak  <ook@ucw.cz>
460
461         PR tree-optimization/32044
462         * tree-scalar-evolution.h (expression_expensive_p): Declare.
463         * tree-scalar-evolution.c (expression_expensive_p): New function.
464         (scev_const_prop): Avoid introducing expensive expressions.
465         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
466
467 2008-12-12  Sebastian Pop  <sebastian.pop@amd.com>
468
469         PR middle-end/38409
470         * graphite.c (nb_reductions_in_loop): Use simple_iv.
471
472 2008-12-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
473
474         * config/i386/x86intrin.h: New header file to support all x86
475         intrinsics
476         * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
477
478 2008-12-12  H.J. Lu  <hongjiu.lu@intel.com>
479
480         PR target/38402
481         * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
482         constraints for x86.
483
484 2008-12-12  Andreas Schwab  <schwab@suse.de>
485
486         * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
487         a BARRIER insn.
488
489 2008-12-12  Uros Bizjak  <ubizjak@gmail.com>
490
491         * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
492         Use Pmode for scratch reg.
493         (*mb_internal): Use (match_dup 0) for unspec operand.
494
495 2008-12-12  Alexandre Oliva  <aoliva@redhat.com>
496
497         * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
498         floor_log2 of zero.  Negate widened zero.
499
500 2008-12-12  Ben Elliston  <bje@au.ibm.com>
501
502         * config/fp-bit.c (nan): Rename from this ...
503         (makenan): ... to this.
504
505 2008-12-11  Adam Nemet  <anemet@caviumnetworks.com>
506
507         * config/mips/mips.md (*branch_bit<bbv><mode>,
508         *branch_bit<bbv><mode>_inverted): Renumber operands so that the
509         label becomes operands[1].
510
511 2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>
512
513         PR tree-optimization/38446
514         * graphite.c (register_bb_in_sese): New.
515         (bb_in_sese_p): Check if bb belongs to sese region by explicitly
516         looking at the bbs in the region.
517         * graphite.h (sese): Add region_basic_blocks pointer set to
518         structure and initialize at the time of defining new scop.
519
520 2008-12-11  Tobias Grosser  <grosser@fim.uni-passau.de>
521
522         * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
523         (find_params_in_bb): Do not free data refs.
524         (free_graphite_bb): Add FIXME on disabled free_data_refs.
525
526 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
527
528         * graphite.c (struct ivtype_map_elt): New.
529         (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
530         new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
531         gcc_type_for_cloog_iv): New.
532         (loop_iv_stack_patch_for_consts): Use the type of the induction
533         variable from the original loop, except for the automatically
534         generated loops, i.e., in the case of a strip-mined loop, in
535         which case there is no original loop: in that case just use
536         integer_type_node.
537         (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
538         (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
539         (clast_name_to_gcc): Accept params to be NULL.
540         (clast_to_gcc_expression): Take an extra parameter for the type.
541         Convert to that type all the expressions built by this function.
542         (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
543         (graphite_translate_clast_equation): Compute the type of the
544         clast_equation before translating its LHS and RHS.
545         (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
546         (graphite_create_new_loop): Compute the type of the induction
547         variable before translating the lower and upper bounds and before
548         creating the induction variable.
549         (rename_variables_from_edge, rename_phis_end_scop): New.
550         (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
551         (sese_add_exit_phis_edge): Do not use integer_zero_node.
552         (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
553         compute_cloog_iv_types): New.
554         (gloog): Call compute_cloog_iv_types before starting the
555         translation of the clast.
556
557         * graphite.h (struct graphite_bb): New field cloog_iv_types.
558         (GBB_CLOOG_IV_TYPES): New.
559         (debug_ivtype_map): Declared.
560         (oldiv_for_loop): New.
561
562 2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>
563
564         PR middle-end/38459
565         * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
566         (param_index): Assert if parameter is not know after parameter
567         detection.
568         (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
569         (find_scop_parameters): Mark, that we have finished parameter
570         detection.
571         (graphite_transform_loops): Move condition detection before parameter
572         detection.
573         * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
574
575 2008-12-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
576
577         PR testsuite/35677
578         * emutls.c (__emutls_get_address): Make sure offset is really zero
579         before initializing the object's offset.
580
581 2008-12-11  Jakub Jelinek  <jakub@redhat.com>
582
583         PR c++/38253
584         * gimplify.c (gimplify_init_constructor): Don't force constructor
585         into memory if there is just one nonzero element.
586
587 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
588
589         Fix testsuite/gfortran.dg/graphite/id-4.f90.
590         * graphite.c (scan_tree_for_params): Do not compute the multiplicand
591         when not needed.
592
593 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
594
595         * graphite.c (build_scops_1): Initialize open_scop.exit
596         and sinfo.last.
597
598 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
599             Jan Sjodin  <jan.sjodin@amd.com>
600             Harsha Jagasia  <harsha.jagasia@amd.com>
601
602         PR middle-end/37852
603         PR middle-end/37883
604         PR middle-end/37928
605         PR middle-end/37980
606         PR middle-end/38038
607         PR middle-end/38039
608         PR middle-end/38073
609         PR middle-end/38083
610         PR middle-end/38125
611
612         * tree-phinodes.c (remove_phi_nodes): New, extracted from...
613         * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
614         ... here.
615         * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
616         * Makefile.in (graphite.o): Depend on value-prof.h.
617         (graphite.o-warn): Removed -Wno-error.
618         * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
619         to be a NULL pointer.  Call update_stmt.  Return the newly created
620         cannonical induction variable.
621
622         * graphite.h (debug_rename_map): Declared.  Fix some comments.
623
624         * graphite.c: Reimplement the code generation from graphite to gimple.
625         Include value-prof.h.
626         (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
627         (get_old_iv_from_ssa_name): Removed.
628         (graphite_stmt_p): New.
629         (new_graphite_bb): Test for useful statements before building a
630         graphite statement for the basic block.
631         (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
632         in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
633         (recompute_all_dominators, graphite_verify,
634         nb_reductions_in_loop, graphite_loop_normal_form): New.
635         (scop_record_loop): Call graphite_loop_normal_form.
636         (build_scop_loop_nests): Iterate over all the blocks of the
637         function instead of relying on the incomplete information from
638         SCOP_BBS.  Return the success of the operation.
639         (find_params_in_bb): Use the data from GBB_DATA_REFS.
640         (add_bb_domains): Removed.
641         (build_loop_iteration_domains): Don't call add_bb_domains.
642         Add the iteration domain only to the basic blocks that have been
643         translated to graphite.
644         (build_scop_conditions_1): Add constraints only if the basic
645         block have been translated to graphite.
646         (build_scop_data_accesses): Completely disabled until data
647         dependence is correctly implemented.
648         (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
649         (remove_all_edges_1, remove_all_edges): Removed.
650         (get_new_name_from_old_name): New.
651         (graphite_rename_variables_in_stmt): Renamed.
652         rename_variables_in_stmt.  Call get_new_name_from_old_name.
653         Use replace_exp and update_stmt.
654         (is_old_iv): Renamed is_iv.
655         (expand_scalar_variables_stmt): Extra parameter for renaming map.
656         Use replace_exp and update_stmt.
657         (expand_scalar_variables_expr): Same.  Use the map to get the
658         new names for the renaming of induction variables and for the
659         renaming of variables after a basic block has been copied.
660         (expand_scalar_variables): Same.
661         (graphite_rename_variables): Renamed rename_variables.
662         (move_phi_nodes): Removed.
663         (get_false_edge_from_guard_bb): New.
664         (build_iv_mapping): Do not insert the induction variable of a
665         loop in the renaming iv map if the basic block does not belong
666         to that loop.
667         (register_old_new_names, graphite_copy_stmts_from_block,
668         copy_bb_and_scalar_dependences): New.
669         (translate_clast): Heavily reimplemented: copy basic blocks,
670         do not move them.  Finally, in call cleanup_tree_cfg in gloog.
671         At each translation step call graphite_verify ensuring the
672         consistency of the SSA, loops and dominators information.
673         (collect_virtual_phis, find_vdef_for_var_in_bb,
674         find_vdef_for_var_1, find_vdef_for_var,
675         patch_phis_for_virtual_defs): Removed huge hack.
676         (mark_old_loops, remove_dead_loops, skip_phi_defs,
677         collect_scop_exit_phi_args, patch_scop_exit_phi_args,
678         gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
679         (remove_sese_region, ifsese, if_region_entry, if_region_exit,
680         if_region_get_condition_block, if_region_set_false_region,
681         create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
682         sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
683         sese_add_exit_phis_edge, sese_add_exit_phis_var,
684         rewrite_into_sese_closed_ssa): New.
685         (gloog): Remove dead code.  Early return if code cannot be
686         generated.  Call cleanup_tree_cfg once the scop has been code
687         generated.
688         (graphite_trans_scop_block, graphite_trans_loop_block): Do not
689         block loops with less than two loops.
690         (graphite_apply_transformations): Remove the call to
691         scop_remove_ignoreable_gbbs.
692         (limit_scops): When build_scop_loop_nests fails, continue on next
693         scop.  Fix open_scop.entry.
694         (graphite_transform_loops): Call recompute_all_dominators: force the
695         recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
696         Call initialize_original_copy_tables and free_original_copy_tables
697         to be able to copy basic blocks during code generation.
698         When build_scop_loop_nests fails, continue on next scop.
699         (value_clast): New union.
700         (clast_to_gcc_expression): Fix type cast warning.
701
702 2008-12-10  Richard Guenther  <rguenther@suse.de>
703
704         PR tree-optimization/36792
705         * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
706         tcc_binary.
707
708 2008-12-10  Daniel Berlin  <dberlin@dberlin.org>
709
710         PR tree-optimization/36792
711         * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
712
713 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
714
715         PR target/37033
716         * dwarf2out.c (saved_do_cfi_asm): New.
717         (dwarf2out_do_frame): Take it into account.
718         (dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
719
720 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
721
722         PR middle-end/38271
723         * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
724         variables initialized from SRAed bit fields.
725
726 2008-12-10  Martin Guy <martinwguy@yahoo.it>
727
728         PR target/37668
729         * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
730         result will be in an FPU register.
731
732 2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>
733
734         PR target/37170
735         PR target/38448
736         * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
737         on the associated SYMBOL_REF_DECL node, if any.
738
739 2008-12-09 David Daney <ddaney@caviumnetworks.com>
740
741         * config/mips/sync.md (sync_<optab>_12): Replace
742         MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
743         (sync_old_<optab>_12): Remove third paramater to
744         MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
745         with MIPS_SYNC_OLD_OP_12_AND.
746         (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
747         with MIPS_SYNC_NEW_OP_12_AND.
748         (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
749         MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
750         (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
751         macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
752         MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
753         (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
754         MIPS_SYNC_NEW_OP_12_XOR.
755         * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
756         MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
757         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
758         MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
759         MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
760         to implement new __sync_nand semantics.
761         (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
762         remove third parameter.
763         (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
764         MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
765         (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
766         (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
767         (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
768         (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
769         (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
770         (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
771
772 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
773
774         * graphite.c (graphite_transform_loops): Always call find_transform ()
775         in ENABLE_CHECKING.  So we test these code paths, even if we do not
776         generate code.
777
778 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
779
780         * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
781
782 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
783
784         PR middle-end/38454
785         * function.h (struct function): Add always_inline_functions_inlined.
786         * ipa-inline.c (cgraph_early_inlining): Set it to true.
787         * tree-optimize.c (execute_fixup_cfg): Likewise.
788         * builtins.c (avoid_folding_inline_builtin): New function.
789         (fold_call_expr): Don't optimize always_inline builtins before
790         inlining.
791         (fold_call_stmt): Likewise.
792         (fold_builtin_call_array): Likewise.  Don't call
793         fold_builtin_varargs for BUILT_IN_MD builtins.
794
795         PR tree-optimization/37416
796         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
797
798 2008-12-09  Janis Johnson  <janis187@us.ibm.com>
799
800         * doc/sourcebuild.texi (Test Directives): Fix formatting.
801
802 2008-12-09  Vladimir Makarov  <vmakarov@redhat.com>
803
804         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
805
806         * doc/invoke.texi (-fira-region): Describe new option.
807         (-fira-algorithm): Change the values.
808
809         * ira-conflicts.c (build_conflict_bit_table,
810         build_allocno_conflicts): Use ira_reg_classes_intersect_p.
811         (ira_build_conflicts): Use flag flag_ira_region instead of
812         flag_ira_algorithm.  Prohibit usage of callee-saved likely spilled
813         base registers for allocnos crossing calls.
814
815         * flags.h (enum ira_algorithm): Redefine.
816         (enum ira_region): New.
817         (flag_ira_region): New.
818
819         * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
820         instead of flag_ira_algorithm.
821
822         * toplev.c (flag_ira_algorithm): Change the initial value.
823         (flag_ira_region): New.
824
825         * ira-int.h (ira_reg_classes_intersect_p,
826         ira_reg_class_super_classes): New.
827
828         * ira-color.c (update_copy_costs): Use
829         ira_reg_classes_intersect_p.  Use right class to find hard reg index.
830         (update_conflict_hard_regno_costs): Ditto.  Add a new parameter.
831         (assign_hard_reg): Ditto.  Pass additional argument to
832         update_conflict_hard_regno_costs.  Do not uncoalesce for priority
833         coloring.
834         (allocno_priorities, setup_allocno_priorities,
835         allocno_priority_compare_func): Move before color_allocnos.
836         (color_allocnos): Add priority coloring.  Use flag flag_ira_region
837         instead of flag_ira_algorithm.
838         (move_spill_restore): Check classes of the same reg allocno from
839         different regions.
840         (update_curr_costs): Use ira_reg_classes_intersect_p.
841         (ira_reassign_conflict_allocnos): Ditto.
842
843         * opts.c (decode_options): Always set up flag_ira.  Set up
844         flag_ira_algorithm.  Warn CB can not be used for architecture.
845         (common_handle_option): Modify code for -fira-algorithm.  Add code
846         to process -fira-region.
847
848         * ira-lives.c (update_allocno_pressure_excess_length): Process
849         superclasses too.
850         (set_allocno_live, clear_allocno_live, mark_reg_live,
851         mark_reg_dead, process_bb_node_lives): Ditto.
852
853         * ira-emit.c (ira_emit): Fix insn codes.
854
855         * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
856         instead of flag_ira_algorithm.
857         (allocno_range_compare_func): Ignore classes for priority coloring.
858         (setup_min_max_conflict_allocno_ids): Ditto.
859         (ira_flattening): Use ira_reg_classes_intersect_p.
860
861         * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
862
863         * common.opt (fira-algorithm): Modify.
864         (fira-region): New.
865
866         * ira.c (setup_class_hard_regs): Initialize.
867         (setup_cover_and_important_classes): Modify code setting class
868         related info for priority coloring.
869         (setup_class_translate): Ditto.
870         (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
871         (setup_reg_class_intersect_union): Rename to
872         setup_reg_class_relations.  Add code for setting up new variables.
873         (find_reg_class_closure): Do not check targetm.ira_cover_classes.
874         (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
875
876         * ira-costs.c (common_classes): New.
877         (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
878         (find_allocno_class_costs): Ditto.  Use common_classes.  Translate
879         alt_class.
880         (ira_costs): Allocate/deallocate common_classes.
881
882         * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
883         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
884         R02A_REGS.
885
886         * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
887         smallest_mode_for_size.
888
889 2008-12-10  Ben Elliston  <bje@au.ibm.com>
890
891         * config/rs6000/linux-unwind.h (get_regs): Constify casts.
892
893 2008-12-09  Jan Hubicka  <jh@suse.cz>
894
895         * predict.c (estimate_bb_frequencies): Fix test if profile is present.
896
897 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
898
899         PR tree-optimization/35468
900         * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
901         string on LHS.
902
903 2008-12-09  Richard Guenther  <rguenther@suse.de>
904
905         PR tree-optimization/38445
906         * tree-ssa-structalias.c (emit_pointer_definition): Only visit
907         names once.
908         (emit_alias_warning): Adjust.
909
910 2008-12-09  Andrew Haley  <aph@redhat.com>
911
912         * fixed-value.c (do_fixed_add): Add comment.
913         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
914         * builtins.c (fold_builtin_sqrt): Likewise.
915
916 2008-12-09  Kai Tietz  <kai.tietz@onevision.com>
917
918         PR/38366
919         * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
920         case.
921         * calls.c (nitialize_argument_information): Add fntype argument
922         and use it for calls.promote_function_args.
923         (expand_call): Pass fntype to aggregate_value_p if no fndecl
924         available and pass additional fntype to
925         initialize_argument_information.
926         * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
927         to get function abi type.
928         (init_cumulative_args): Use for abi kind detection fntype, when no
929         fndecl is available.
930
931 2008-12-09  Andreas Krebbel  <krebbel1@de.ibm.com>
932
933         * config/s390/s390.md (movti, movdi_64, movdi_31,
934         *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
935         *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
936         Q->Q alternative.
937         (Integer->BLKmode splitter): Removed.
938
939 2008-12-08  Uros Bizjak  <ubizjak@gmail.com>
940
941         * config/alpha/alpha.c (alpha_set_memflags): Process memory
942         references in full insn sequence.
943
944 2008-12-09  Jason Merrill  <jason@redhat.com>
945
946         * gimplify.c (gimplify_init_constructor): Revert to using < rather
947         than <= for sparseness test.
948
949         PR c++/38410
950         * gimplify.c (gimplify_init_constructor): Don't write out a static
951         copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
952         initializers.
953
954 2008-12-09 Tobias Grosser  <grosser@fim.uni-passau.de>
955
956         PR middle-end/38084
957         Fix testsuite/gfortran.dg/graphite/id-3.f90.
958         * graphite.c (scopdet_basic_block_info): Fix bug that found some
959         regions more than once.
960
961 2008-12-09  Ben Elliston  <bje@au.ibm.com>
962
963         * emutls.c (__emutls_get_address): Prototype.
964         (__emutls_register_common): Likewise.
965
966         * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
967
968 2008-12-09  Ben Elliston  <bje@au.ibm.com>
969
970         * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
971
972 2008-12-08  Steve Ellcey  <sje@cup.hp.com>
973
974         * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
975         (nonlocal_goto_receiver): New instruction.
976
977 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
978
979         PR c/35443
980         * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
981
982         PR c/35442
983         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
984         VIEW_CONVERT_EXPR the same as CASE_CONVERT.
985
986 2008-12-08  Richard Henderson  <rth@redhat.com>
987
988         PR 38240
989         * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
990         (SET_TYPE_MODE): New.
991         * c-decl.c (parser_xref_tag): Use it.
992         (finish_enum): Likewise.
993         * tree.c (build_pointer_type_for_mode): Likewise.
994         (build_reference_type_for_mode, build_index_type): Likewise.
995         (build_range_type, make_vector_type): Likewise.
996         (build_common_tree_nodes_2): Likewise.
997         * stor-layout.c (compute_record_mode): Likewise.
998         (finalize_type_size, layout_type, make_fract_type): Likewise.
999         (make_accum_type, initialize_sizetypes): Likewise.
1000         (vector_type_mode): New.
1001         * function.c (allocate_struct_function): Call
1002         invoke_set_current_function_hook before querying anything else.
1003
1004         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
1005
1006 2008-12-08  Luis Machado  <luisgpm@br.ibm.com>
1007
1008         * alias.c (find_base_term): Synch LO_SUM handling with what
1009         find_base_value does.
1010
1011 2008-12-08  Andrew Haley  <aph@redhat.com>
1012             Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
1013
1014         * gimple.h (gimple_build_try): Fix declaration.
1015
1016         * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
1017         * fixed-value.c (do_fixed_add): Likewise.
1018         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
1019
1020 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
1021
1022         PR middle-end/36802
1023         * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
1024         on parallel and task contexts.
1025
1026 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1027
1028         * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
1029
1030 2008-12-07  Richard Guenther  <rguenther@suse.de>
1031
1032         PR tree-optimization/38405
1033         * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
1034         not sign-extend truth values.
1035
1036 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1037
1038         * tree-sra.c (scalarize_use): Create another temporary with the proper
1039         type for signed types in the use_all && !is_output bitfield case.
1040
1041 2008-12-06  Steven Bosscher  <steven@gcc.gnu.org>
1042
1043         PR rtl-optimization/36365
1044         * df-core.c (df_worklist_dataflow_overeager): Remove.
1045         (df_worklist_dataflow): Don't call it, use double-queue only.
1046         * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
1047
1048 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
1049
1050         PR middle-end/38428
1051         * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
1052         gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
1053
1054 2008-12-07  Ben Elliston  <bje@au.ibm.com>
1055
1056         * gthr-single.h (__gthread_once): Adjust prototype to match all
1057         other gthreads models.
1058
1059 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
1060
1061         * config/i386/i386.c (override_options): Use CPU_AMDFAM10
1062         instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
1063
1064         PR middle-end/38422
1065         * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
1066         operands to mult_type if it isn't narrower than op0's type.
1067
1068 2008-12-06  Jan Hubicka  <jh@suse.cz>
1069             Jakub Jelinek <jakub@redhat.com>
1070
1071         PR tree-optimization/38074
1072         * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
1073         entry frequency.
1074         * predict.c (combine_predictions_for_bb): Ignore predictor predicting
1075         in both dirrection for first match heuristics.
1076         (tree_bb_level_predictions): Disable noreturn heuristic when there
1077         is no returning path.
1078
1079 2008-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1080
1081         PR rtl-optimization/38272
1082         * reload1.c (choose_reload_regs): Keep reload_spill_index correct
1083         in all cases.
1084
1085 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1086
1087         PR c++/35336
1088         * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
1089         (pp_c_expression): Likewise.
1090
1091 2008-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
1092
1093         PR c/38416
1094         * c-parser.c (struct c_token): Make pragma_kind 8 bits.
1095
1096 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1097
1098         PR middle-end/37248
1099         * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
1100         arguments to HOST_WIDE_INT.  If type has different signedness
1101         than unsignedp or different precision from bitsize, create
1102         the right type for BIT_FIELD_REF and cast to type.
1103         (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
1104
1105         Revert:
1106         2008-03-05  Richard Guenther  <rguenther@suse.de>
1107         PR c++/35336
1108         * fold-const.c (fold_truthop): Remove code generating
1109         BIT_FIELD_REFs of structure bases.
1110         (fold_binary): Likewise.
1111         (make_bit_field_ref): Remove.
1112         (optimize_bit_field_compare): Remove.
1113         (all_ones_mask_p): Remove.
1114
1115 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1116
1117         * tree-sra.c (sra_explode_bitfield_assignment): Always
1118         call unsigned_type_for, if the precision is higher than
1119         needed, call build_nonstandard_integer_type.
1120
1121         PR debug/38367
1122         * function.c (assign_parm_find_stack_rtl): If promoted_mode
1123         is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
1124         big endian.
1125
1126         PR middle-end/38338
1127         * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
1128         only if internal_arg_pointer is a non-virtual pseudo.
1129
1130 2008-12-05  Joseph Myers  <joseph@codesourcery.com>
1131
1132         * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
1133         TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
1134         * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
1135
1136 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1137
1138         PR tree-optimization/37716
1139         * gimplify.c (gimplify_expr): Allow COND_EXPR if
1140         gimplify_ctxp->allow_rhs_cond_expr.
1141
1142 2008-12-05  Uros Bizjak  <ubizjak@gmail.com>
1143
1144         * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
1145         VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
1146
1147         (alpha_emit_conditional_branch): Do not generate direct branch
1148         for UNORDERED comparisons.
1149
1150 2008-12-05  Andreas Schwab  <schwab@suse.de>
1151
1152         * config/rs6000/linux-unwind.h (frob_update_context): Check for
1153         NULL lr.
1154
1155 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
1156
1157         PR c/38408
1158         * fold-const.c (fold_checksum_tree): Change buf type to union
1159         tree_node.
1160
1161 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
1162
1163         PR bootstrap/38262
1164         * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
1165         (BACKENDLIBS): New.
1166         (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
1167
1168 2008-12-05  Ben Elliston  <bje@au.ibm.com>
1169
1170         * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
1171         comma_loc.
1172         (c_parser_initelt): Initialise des_loc and ellipsis_loc.
1173
1174 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
1175             Gary Funck  <gary@intrepid.com>
1176
1177         * cse.c (lookup_as_function): Delete mode frobbing code.
1178         (equiv_constant): Re-implement it there for SUBREGs.
1179
1180 2008-12-04  Richard Guenther  <rguenther@suse.de>
1181
1182         PR middle-end/36509
1183         * Makefile.in (tree-ssa-alias-warnings.o): Remove.
1184         (tree-ssa-structalias.o): Remove errors.h dependency.
1185         (tree-ssa-reassoc.o): Likewise.
1186         * tree-ssa-reassoc.c: Do not include errors.h.
1187         * tree-ssa-alias-warnings.c: Remove.
1188         * tree-ssa-alias.c (compute_may_aliases): Remove call to
1189         strict_aliasing_warning_backend.
1190         * tree-ssa-structalias.c (emit_pointer_definition): New function.
1191         (emit_alias_warning): Likewise.
1192         (set_uids_in_ptset): Warn for clear cases of type-punning.
1193         * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
1194         on INDIRECT_REFs.
1195
1196 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
1197
1198         * cse.c (equiv_constant): Fix pasto.
1199
1200 2008-12-04  Nick Clifton  <nickc@redhat.com>
1201
1202         * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
1203         * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
1204         formatting of quotes.
1205
1206 2008-12-04  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR middle-end/38371
1209         * fold-const.c (fold_checksum_tree): Allow modification of
1210         TYPE_NEXT_VARIANT.
1211
1212 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
1213
1214         PR middle-end/38360
1215         * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
1216         have the right number of arguments.
1217
1218 2008-12-03  Richard Guenther  <rguenther@suse.de>
1219
1220         PR middle-end/36326
1221         * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
1222         non-BLKmode types.
1223
1224 2008-12-03  Tomas Bily  <tbily@suse.cz>
1225
1226         PR middle-end/38250
1227         * tree-loop-distribution.c (build_size_arg): New function.
1228         (generate_memset_zero): Checks if dr_analyze_innermost succeed.
1229         Reorganized generating of stmts.
1230         * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
1231         * tree-data-ref.c (dr_analyze_innermost): Returns bool.
1232         Indicate if analysis succeed.
1233         * tree-data-ref.h (dr_analyze_innermost): Returns bool.
1234         * tree-predcom.c (valid_initializer_p, find_looparound_phi):
1235         Uses new definition of dr_analyze_innermost.
1236
1237 2008-12-03  Ben Elliston  <bje@au.ibm.com>
1238
1239         * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
1240
1241 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
1242
1243         PR tree-optimization/37716
1244         * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
1245         all the needed operations as trees and gimplify_assign it to dst.
1246
1247         PR target/37610
1248         * configure.ac (gcc_cv_readelf): Look for readelf.
1249         (gcc_cv_as_cfi_advance_working): Check for working
1250         cfi advances with code alignment factor > 1.
1251         (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
1252         don't work properly.
1253         * configure: Regenerated.
1254
1255 2008-12-03  Eric Botcazou  <ebotcazou@adacore.com>
1256             Jakub Jelinek  <jakub@redhat.com>
1257             Andrew Pinski  <andrew_pinski@playstation.sony.com>
1258
1259         PR rtl-optimization/38281
1260         * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
1261         set it to NULL_RTX afterwards.
1262
1263         * emit-rtl.c (set_insn_deleted): Fix formatting.
1264
1265 2008-12-02  Richard Sandiford  <rdsandiford@googlemail.com>
1266
1267         * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
1268         error return value.
1269         * config/mips/mips.md (IMOVE32): New mode iterator.
1270         (movsi): Generalize with IMOVE32.
1271         (*movsi_internal): Likewise.
1272         (*mov<mode>_mips16): Likewise.
1273         (*lwxs): Likewise.
1274
1275 2008-12-02  Nathan Sidwell  <nathan@codesourcery.com>
1276             Maxim Kuvyrkov  <maxim@codesourcery.com>
1277
1278         * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
1279         PC-relative addressing when compiling for uclinux PIC.
1280         (__cmpdf_internal, __cmpsf_internal): Hide.
1281         (__cmpdf, __cmpsf): Use PIC call sequence.
1282
1283 2008-12-02  Andreas Tobler  <a.tobler@schweiz.org>
1284             Jack Howarth <howarth@bromo.med.uc.edu>
1285
1286         * config/i386/t-darwin64: Add m32 multilib support.
1287
1288 2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>
1289
1290         * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
1291
1292 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
1293
1294         PR middle-end/38343
1295         * builtins.c (fold_builtin_memory_op): Convert len to sizetype
1296         before using it in POINTER_PLUS_EXPR.
1297
1298 2008-12-02  Richard Guenther  <rguenther@suse.de>
1299
1300         PR tree-optimization/38359
1301         * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
1302         non-negative x.
1303
1304 2008-12-02  Martin Jambor  <mjambor@suse.cz>
1305
1306         PR middle-end/37861
1307         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
1308         for INDIRECT_REFs.
1309         (forward_propagate_addr_into_variable_array_index): Check that the
1310         offset is not computed from a MULT_EXPR, use is_gimple_assign rather
1311         than the gimple code directly.
1312
1313 2008-12-02  Ben Elliston  <bje@au.ibm.com>
1314
1315         * config/spu/float_disf.c (__floatdisf): Prototype.
1316         * config/spu/float_unsdisf.c (__float_undisf): Likewise.
1317         * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
1318         * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
1319
1320 2008-12-02  DJ Delorie  <dj@redhat.com>
1321
1322         * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
1323         (DWARF_CIE_DATA_ALIGNMENT): Define.
1324
1325         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
1326         Invert add/sub for INCOMING_FRAME_SP_OFFSET.
1327         (xstormy16_expand_prologue): Likewise.
1328         (xstormy16_expand_builtin_va_start): Likewise.
1329         (xstormy16_gimplify_va_arg_expr): Likewise.
1330
1331 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
1332
1333         PR middle-end/38343
1334         * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
1335         potentially returned from folding memcpy.
1336         (expand_builtin_stpcpy_args): Similarly for folding strcpy.
1337         (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
1338
1339 2008-12-02  Danny Smith  <dannysmith@users.sourceforge.net>
1340
1341         PR target/38054
1342         * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
1343         decoration of function RTL names here on Ada language.
1344
1345 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
1346
1347         PR rtl-optimization/38280
1348         * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
1349         ira_rebuild_regno_allocno_list): New functions.
1350         (regno_allocnos): New static variable.
1351         (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
1352         Call ira_rebuild_regno_allocno_list.
1353
1354 2008-12-01  David Daney  <ddaney@caviumnetworks.com>
1355             Adam Nemet  <anemet@caviumnetworks.com>
1356
1357         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
1358         LINUX_DRIVER_SELF_SPECS.
1359
1360 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
1361
1362         PR rtl-optimization/37514
1363         * reload1.c (reload_as_needed): Invalidate reg_last_reload
1364         from previous insns.
1365
1366 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
1367
1368         PR c++/38348
1369         * c-omp.c (c_finish_omp_for): Only transform pointer
1370         ++ or -- into MODIFY_EXPR if second argument is non-NULL.
1371
1372         PR rtl-optimization/38245
1373         * tree-vrp.c (abs_extent_range): New function.
1374         (extract_range_from_binary_expr): Compute range
1375         for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
1376         or includes zero or if vr1 is VR_RANGE and op0 has some
1377         other range.
1378
1379 2008-12-01  Uros Bizjak  <ubizjak@gmail.com>
1380
1381         PR middle-end/37908
1382         * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
1383         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1384         * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
1385         to (not:I48MODE (and:I48MODE (...))).
1386         (sync_old_nand<mode>): Ditto.
1387         (sync_new_nand<mode>): Ditto.
1388
1389 2008-12-01  Nick Clifton  <nickc@redhat.com>
1390
1391         * config/stormy16/stormy16.md (CARRY_REG): New constant.
1392         Replace uses of the "y" register class with direct references to
1393         the CARRY_REG register.
1394         * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
1395         register with clobbers of the carry register.
1396         (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
1397         (xstormy16_split_cbranch): Remove redundant carry parameter.
1398         (xstormy16_expand_arith): Likewise.
1399         * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
1400         (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1401         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1402         (CARRY_REGNUM): Define.
1403         * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
1404         Update prototype.
1405         (xstormy16_expand_arith): Likewise.
1406
1407 2008-12-01  Chen Liqin  <liqin.chen@sunplusct.com>
1408
1409         * config/score/score.h (IRA_COVER_CLASSES): Define.
1410
1411 2008-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1412
1413         PR target/38287
1414         * config/sparc/sparc.md (divsi3 expander): Remove constraints.
1415         (divsi3_sp32): Add new alternative with 'K' for operand #2.
1416         (cmp_sdiv_cc_set): Factor common string.
1417         (udivsi3_sp32): Add new alternative with 'K' for operand #2.
1418         Add TARGET_V9 case.
1419         (cmp_udiv_cc_set): Factor common string.
1420
1421 2008-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1422
1423         PR middle-end/38283
1424         * varasm.c (emutls_finish): Fix common registration.
1425
1426 2008-11-29  Jakub Jelinek  <jakub@redhat.com>
1427
1428         PR target/29987
1429         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1430
1431 2008-11-29  David Edelsohn  <edelsohn@gnu.org>
1432
1433         * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1434         operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
1435         (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1436         * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
1437         Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1438         Ignore sub-word case for now.
1439         (sync_nand<mode>_internal): Represent NAND in RTL.
1440         (sync_old_nand<mode): Same.
1441         (sync_old_name<mode>_internal): Same.
1442         (sync_new_nand<mode>): Same.
1443         (sync_new_nand<mode>_internal): Same.
1444         (sync_boolcshort_internal): Expect NAND.
1445
1446 2008-11-28  Richard Guenther  <rguenther@suse.de>
1447
1448         PR tree-optimization/37955
1449         PR tree-optimization/37742
1450         * tree-vect-transform.c (vectorizable_store): Remove assert for
1451         compatible aliases.
1452         (vectorizable_load): Likewise.
1453
1454 2008-11-27  Richard Guenther  <rguenther@suse.de>
1455
1456         * tree-ssa-structalias.c (intra_create_variable_infos): Make
1457         a constraint for the static chain parameter.
1458
1459 2008-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1460
1461         * config/bfin/bfin.opt (micplb): New option.
1462         * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1463         * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1464         ENABLE_WA_INDIRECT_CALLS): New macros.
1465         * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1466         all 54x CPUs.
1467         (indirect_call_p): New function.
1468         (workaround_speculation): Handle anomaly 05-00-0426 when
1469         ENABLE_WA_INDIRECT_CALLS is true.
1470         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1471         __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1472         * doc/invoke.texi (Blackfin Options): Document -micplb.
1473
1474 2008-11-26  DJ Delorie  <dj@redhat.com>
1475
1476         * config/m32c/mov.md ("extendhipsi2"): New.
1477
1478         * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1479
1480         * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1481         * config/m32c/mov.md (zero_extendqihi2): Likewise.
1482
1483 2008-11-26  Adam Nemet  <anemet@caviumnetworks.com>
1484
1485         * config/mips/mips.md (clear_hazard): Rename to
1486         clear_hazard_<mode>.  Use mode-specific addition.
1487         (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1488         or gen_clear_hazard_di depending on the size of Pmode.
1489
1490 2008-11-26  DJ Delorie  <dj@redhat.com>
1491
1492         * configure.ac: Test m32c-elf-gas for .loc.
1493         * configure: Likewise.
1494
1495 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1496
1497         PR testsuite/28870
1498         * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1499         dg-timeout-factor.
1500
1501 2008-11-26  Uros Bizjak  <ubizjak@gmail.com>
1502
1503         * config/i386/sync.md (memory_barrier_nosse): Disable also for
1504         TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
1505         (memory_barrier): Do not generate memory_barrier_nosse instruction
1506         for TARGET_64BIT.
1507         * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1508
1509 2008-11-26  Fredrik Unger  <fred@tree.se>
1510
1511         * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1512         function name from __floatundisf.
1513         * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1514         DFtype.
1515
1516 2008-11-25  Daniel Berlin  <dberlin@dberlin.org>
1517             Richard Guenther  <rguenther@suse.de>
1518
1519         PR tree-optimization/37869
1520         * tree-ssa-structalias.c (struct constraint_graph): Remove
1521         pt_used and number_incoming members.
1522         (build_pred_graph): Do not allocate them.
1523         (condense_visit): Do not use them.
1524         (label_visit): Likewise.
1525         (free_var_substitution_info): Do not free them.
1526
1527 2008-11-25  Vladimir Makarov  <vmakarov@redhat.com>
1528
1529         * doc/invoke.texi (ira-max-loops-num): Change semantics.
1530
1531         * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1532
1533         * ira-color.c (allocno_spill_priority): New function.
1534         (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1535         Print more info about the spilled allocno.
1536         (push_allocnos_to_stack): Use allocno_spill_priority.  Add more
1537         checks on bad spill.
1538
1539         * ira-build.c (loop_node_to_be_removed_p): Remove.
1540         (loop_compare_func, mark_loops_for_removal): New functions.
1541         (remove_uneccesary_loop_nodes_from_loop_t): Use member
1542         to_remove_p.
1543         (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1544
1545         * ira.c (ira): Don't change flag_ira_algorithm.
1546
1547         * params.def (ira-max-loops-num): Change the value.
1548
1549 2008-11-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
1550
1551         * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1552         Disable unsupported alternative for ColdFire,
1553         add new alternative that ColdFire can handle.
1554
1555 2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1556
1557         * regrename.c (merge_overlapping_regs): Add registers artificially
1558         defined at the top of the basic block to the set of live ones just
1559         before the first insn.
1560
1561 2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1562             Joey Ye  <joey.ye@intel.com>
1563
1564         PR middle-end/37843
1565         * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1566         false if we need to align the outgoing stack.
1567         (ix86_update_stack_boundary): Check parm_stack_boundary.
1568
1569 2008-11-25  Richard Guenther  <rguenther@suse.de>
1570
1571         PR middle-end/38151
1572         PR middle-end/38236
1573         * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1574         Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1575         in favor of dereferenced_ptrs.
1576         (init_alias_info): Adjust.
1577         (delete_alias_info): Likewise.
1578         (compute_flow_insensitive_aliasing): Properly
1579         include all aliased variables.
1580         (update_alias_info_1): Use dereferenced_ptrs.
1581         (setup_pointers_and_addressables): Likewise.
1582         (get_smt_for): Honor ref-all pointers and pointers with known alias
1583         set properly.
1584         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1585
1586 2008-11-25  Uros Bizjak  <ubizjak@gmail.com>
1587
1588         PR target/38254
1589         * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1590         (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1591
1592 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1593
1594         * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1595
1596 2008-11-24  Richard Sandiford  <rdsandiford@googlemail.com>
1597
1598         * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1599
1600 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1601
1602         PR target/35018
1603         * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1604         (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1605
1606 2008-11-24  Uros Bizjak  <ubizjak@gmail.com>
1607
1608         * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1609         UNSPECV_CMPXCHG_[12].
1610         * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1611         UNSPECV_CMPXCHG_[12].
1612
1613         PR target/36793
1614         * config/i386/sync.md (memory_barrier): New expander.
1615
1616 2008-11-24  Jakub Jelinek  <jakub@redhat.com>
1617
1618         PR middle-end/37135
1619         * dse.c (find_shift_sequence): Optimize extraction from a constant.
1620
1621 2008-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1622
1623         * pa.c (function_arg): Revert 2008-10-26 change.
1624
1625 2008-11-23  Helge Deller  <deller@gmx.de>
1626
1627         * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1628         (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1629         succeeded and lws_ret is not equal to oldval.
1630
1631 2008-11-23  Kaz Kojima  <kkojima@gcc.gnu.org>
1632
1633         * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1634
1635 2008-11-22  Andreas Schwab  <schwab@suse.de>
1636
1637         * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1638         -dA and -dP.
1639
1640 2008-11-22  Adam Nemet  <anemet@caviumnetworks.com>
1641
1642         * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1643         Use constant 1 as the operand.
1644         * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1645         Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1646         gen_rdhwr_synci_step_di depending on the size of Pmode.
1647
1648 2008-11-22  Uros Bizjak  <ubizjak@gmail.com>
1649
1650         PR target/38222
1651         * config/i386/i386.md (SWI248): New mode iterator.
1652         (SWI32): Remove mode iterator.
1653         (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1654         popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1655         iterator.  Generate popcnt mnemonic without mode extensions
1656         for Darwin x86 targets.
1657         (*popcount<mode>2_cmp): Ditto.
1658         (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1659         extensions for Darwin x86 targets.
1660
1661 2008-11-22  Eric Botcazou  <ebotcazou@adacore.com>
1662
1663         * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1664         only if HAVE_AS_SPARC_UA_PCREL is defined.
1665
1666 2008-11-22  Richard Sandiford  <rdsandiford@googlemail.com>
1667
1668         * ira-costs.c (find_allocno_class_costs): Work out the maximum
1669         allocno_costs value of the classees with the lowest total_costs
1670         value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
1671         (setup_allocno_cover_class_and_costs): ...rather than here.
1672         Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1673         preferred class.
1674
1675 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
1676
1677         PR middle-end/37323
1678         * builtins.c (expand_builtin_apply_args): Emit sequence before
1679         parm_birth_insn instead of after entry_of_function's first insn.
1680
1681         PR middle-end/37316
1682         * function.c (assign_parm_remove_parallels): Pass
1683         data->passed_type as third argument to emit_group_store.
1684
1685         PR target/37170
1686         * final.c (mark_symbol_refs_as_used): New function.
1687         * output.h (mark_symbol_refs_as_used): New prototype.
1688         * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1689         (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1690         * config/arm/arm.md (consttable_4): Likewise.
1691
1692         PR target/37880
1693         * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1694
1695 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1696
1697         PR middle-end/38200
1698         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1699         propagate x = &a into *x = b if conversion from b to a's type is
1700         useless.
1701
1702 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1703
1704         * caller-save.c (insert_one_insn): Take into account REG_INC notes
1705         for the liveness computation of the new insn.
1706
1707 2008-11-21  DJ Delorie  <dj@redhat.com>
1708
1709         * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1710         Moves to/from below100 space (W) can only use r0-r7.
1711
1712 2008-11-21  Paolo Carlini  <paolo.carlini@oracle.com>
1713
1714         PR other/38214
1715         * doc/invoke.texi (Optimization Options): Fix typo.
1716
1717 2008-11-21  H.J. Lu  <hongjiu.lu@intel.com>
1718             Xuepeng Guo  <xuepeng.guo@intel.com>
1719
1720         * config.gcc (extra_headers): For x86 and x86-64, remove
1721         gmmintrin.h, add immintrin.h and avxintrin.h.
1722
1723         * config/i386/gmmintrin.h: Renamed to ...
1724         * config/i386/avxintrin.h: This.  Issue an error if
1725         _IMMINTRIN_H_INCLUDED is undedined.
1726
1727         * config/i386/immintrin.h: New.
1728
1729 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1730
1731         PR target/38208
1732         * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1733         mode of PLUS, not mode of the eliminated register.
1734
1735 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1736
1737         * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1738         * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1739         (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1740         (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1741         (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1742         (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1743         (*nand<mode>3): Rename to *andnot<mode>3.
1744         (*nandtf3): rename to *andnottf3.
1745         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1746         Use CODE_FOR_mmx_andnotv2si3.
1747         [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1748         [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1749         [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1750         [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1751         [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1752
1753 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1754
1755         PR middle-end/37908
1756         * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1757         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1758         * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1759         to (not:IMODE (and:IMODE (...))).
1760         (sync_old_nand<mode>): Ditto.
1761         (sync_new_nand<mode>): Ditto.
1762
1763 2008-11-20  Joseph Myers  <joseph@codesourcery.com>
1764
1765         * config/arm/thumb2.md (thumb2_casesi_internal,
1766         thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1767
1768 2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>
1769
1770         * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1771         nand to the changed 4.4 semantic.
1772
1773 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1774
1775         PR middle-end/29215
1776         * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1777         (fold_builtin_memory_op): Handle even the case where just one
1778         of src and dest is an address of a var decl component, using
1779         TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
1780         and readonly_data_expr src check.
1781         * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1782         up warnings.
1783
1784         PR rtl-optimization/36998
1785         * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1786         arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1787         (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1788         stack_adjust_offset callers.
1789         (dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
1790         branches properly.
1791         (compute_barrier_args_size): Handle insns in annulled branches
1792         properly.
1793
1794 2008-11-20  Uros Bizjak  <ubizjak@gmail.com>
1795
1796         PR target/38151
1797         * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1798         Handle cases when integer argument crosses argument register boundary.
1799
1800 2008-11-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1801
1802         PR bootstrap/33100
1803         * config.gcc (i[34567]86-*-solaris2*): Don't include
1804         i386/t-crtstuff here.
1805         Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1806         * config/i386/t-sol2: Move to libgcc/config/i386.
1807
1808 2008-11-20  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1809
1810         PR driver/21706
1811         * tlink.c: Include "libiberty.h".
1812         (initial_cwd): Change type into char *.
1813         (tlink_init): Call getpwd instead of getcwd.
1814
1815 2008-11-19  Zdenek Dvorak  <ook@ucw.cz>
1816
1817         PR rtl-optimization/32283
1818         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1819         of the induction variable to decide whether it may wrap.
1820         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1821         initialization of the bound before the loop.
1822         * simplify-rtx.c (simplify_binary_operation_1): Add two
1823         simplifications regarding AND.
1824         (simplify_plus_minus): Only fail if no simplification is possible.
1825         * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1826
1827 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1828
1829         PR c++/36631
1830         * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1831         checking until GIMPLE lowering.
1832         * gimple-low.c (check_call_args): New function.
1833         (lower_stmt) <case GIMPLE_CALL>: Call it.
1834
1835 2008-11-19  Adam Nemet  <anemet@caviumnetworks.com>
1836
1837         * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1838         with the same type as the first operand of the AND expression.
1839
1840 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1841
1842         PR bootstrap/37859
1843         * ira-int.h (struct ira_loop_tree_node): New member
1844         entered_from_non_parent_p.
1845
1846         * ira-color.c (print_loop_title): Print loop bbs.
1847
1848         * ira-emit.c (entered_from_non_parent_p,
1849         setup_entered_from_non_parent_p): New functions.
1850         (not_modified_p): Rename to store_can_be_removed_p.  Check there
1851         is no side entries.
1852         (generate_edge_moves): Use store_can_be_removed_p instead of
1853         not_modified_p.
1854         (ira_emit): Call setup_entered_from_non_parent_p.
1855
1856         * ira-build.c (copy_info_to_removed_store_destinations):
1857         Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1858         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1859         (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1860         update all accumulated attributes.
1861
1862 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1863
1864         PR bootstrap/37790
1865         * ira-int.h (ira_copy_allocno_live_range_list,
1866         ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1867         ira_finish_allocno_live_range_list): New prototypes.
1868         (ira_allocno_live_ranges_intersect_p,
1869         ira_pseudo_live_ranges_intersect_p): Remove.
1870
1871         * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1872         ira_pseudo_live_ranges_intersect_p): Rename to
1873         allocnos_have_intersected_live_ranges_p and
1874         pseudos_have_intersected_live_ranges_p.  Move them from here to ...
1875
1876         * ira-color.c: ... here
1877         (coalesced_allocno_conflict_p): Use
1878         allocnos_have_intersected_live_ranges_p.
1879         (coalesced_allocnos_living_at_program_points,
1880         coalesced_allocnos_live_at_points_p,
1881         set_coalesced_allocnos_live_points): Remove.
1882         (slot_coalesced_allocnos_live_ranges,
1883         slot_coalesced_allocno_live_ranges_intersect_p,
1884         setup_slot_coalesced_allocno_live_ranges): New.
1885         (coalesce_spill_slots): Use ranges of coalesced allocnos.
1886         (ira_sort_regnos_for_alter_reg): Use
1887         allocnos_have_intersected_live_ranges_p.
1888         (ira_reuse_stack_slot): Use
1889         pseudos_have_intersected_live_ranges_p.
1890
1891         * global.c (pseudo_for_reload_consideration_p): Check
1892         flag_ira_share_spill_slots too.
1893
1894         * ira-build.c (copy_allocno_live_range_list): Rename to
1895         ira_copy_allocno_live_range_list.  Make it external.
1896         (merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
1897         external.
1898         (ira_allocno_live_ranges_intersect_p): New.
1899         (ira_finish_allocno_live_range_list): New.
1900         (finish_allocno): Use it.
1901         (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1902         (copy_info_to_removed_store_destinations): Ditto.  Use
1903         ira_copy_allocno_live_range_list.
1904         (ira_flattening): Use ira_merge_allocno_live_ranges.
1905
1906         * ira.c (too_high_register_pressure_p): New function.
1907         (ira): Switch off sharing spill slots if the pressure is too high.
1908
1909 2008-11-19  Richard Guenther  <rguenther@suse.de>
1910
1911         * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1912         non-sizetype offsets if their precision matches that of the pointer.
1913         * expr.c (expand_expr_real_1): Always sign-extend the offset
1914         operand of a POINTER_PLUS_EXPR.
1915
1916 2008-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1917
1918         * config.gcc: Unobsolete mips-sgi-irix[56]*.
1919         (mips-sgi-irix[56]*): No need to use fixproto.
1920
1921 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1922             Paul Brook  <paul@codesourcery.com>
1923
1924         * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1925         executable stack.
1926
1927 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1928
1929         * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1930
1931 2008-11-19  Razya Ladelsky  <razya@il.ibm.com>
1932
1933         PR target/38156
1934         * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1935         (separate_decls_in_region): Create shared struct even when there
1936         are only reductions.
1937
1938 2008-11-19  Hariharan Sandanagobalane <hariharan@picochip.com>
1939
1940         * config/picochip/picochip.c (headers): Remove an unnecessary
1941         header file.
1942
1943 2008-11-19  Andrew Stubbs  <ams@codesourcery.com>
1944
1945         PR target/36133
1946         * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1947         * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1948         shift instructions.
1949         * config/m68k/m68k.md: Adjust all conditional branches that use the
1950         carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1951
1952 2008-11-18  Uros Bizjak  <ubizjak@gmail.com>
1953
1954         PR target/37362
1955         * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1956         is a register or zero operand in the correct mode before generating
1957         mtch1 insn or a register operand in the correct mode before generating
1958         mfch1 insn.
1959         (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1960
1961 2008-11-18  Adam Nemet  <anemet@caviumnetworks.com>
1962
1963         * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1964         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1965         mipsisa*-*-elf*.  Handle mipsisa64r2*.
1966         * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1967         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1968         mips64r2.
1969         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1970         * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1971         mips64r2.
1972         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
1973         Fix mips16 if mips64 or mips64r2 are multilib defaults.
1974         * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1975         mips64r2.
1976
1977 2008-11-18  Jakub Jelinek  <jakub@redhat.com>
1978
1979         PR target/38130
1980         * config/i386/i386.md (allocate_stack_worker_32,
1981         allocate_stack_worker_64): Don't use match_dup between input and
1982         output operand.
1983         (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1984         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1985
1986 2008-11-18  Kai Tietz  <kai.tietz@onevision.com>
1987
1988         * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1989         is forced when trying to do a symbol link for it.
1990
1991 2008-11-17  Adam Nemet  <anemet@caviumnetworks.com>
1992
1993         * expmed.c (extract_bit_field_1): Also use a temporary and
1994         convert_extracted_bit_field when the conversion from ext_mode to
1995         the target mode requires explicit truncation.
1996
1997 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1998
1999         * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
2000         Tweak formatting.
2001         * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
2002         registers when not optimizing.
2003
2004 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
2005
2006         * config/mips/mips.md (*mul_acc_si): Remove middle alternative
2007         and its associated define_split.  Expose the all-d alternative
2008         to the register allocator, but mark it with "?".  Mark the first
2009         alternative with "*?*?".
2010         (*mul_sub_si): Likewise.
2011         (*mul_acc_si_r3900): New pattern.
2012
2013 2008-11-17  Jakub Jelinek  <jakub@redhat.com>
2014
2015         PR middle-end/38140
2016         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
2017         propagating x = &a into *x = b, add a cast if not useless
2018         type conversion or don't optimize if another stmt would be
2019         needed.
2020
2021 2008-11-17  Uros Bizjak  <ubizjak@gmail.com>
2022
2023         PR middle-end/37908
2024         * optabs.c (expand_sync_operation): Properly handle NAND case
2025         by calculating ~(t1 & val) instead of (~t1 & val).
2026         * builtins.c (expand_builtin_sync_operation): Warn for changed
2027         semantics in NAND builtins.
2028         * c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.
2029
2030         * doc/invoke.texi (Warning options): Add Wsync-nand.
2031         * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
2032         __sync_fetch_and_nand builtin operation in the example.  Add a note
2033         about changed semantics in GCC 4.4.
2034         [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
2035         operation in the example.  Add a note about changed semantics in
2036         GCC 4.4.
2037
2038 2008-11-16  Jan Hubicka  <jh@suse.cz>
2039
2040         * cgraph.c (cgraph_function_body_availability): Fix test of externally
2041         visible.
2042
2043 2008-11-16  Joshua Kinard  <kumba@gentoo.org>
2044
2045         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
2046         to -mips4.
2047
2048 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
2049
2050         PR target/38052
2051         * config/mips/mips.c (mips_cfun_call_saved_reg_p)
2052         (mips_cfun_might_clobber_call_saved_reg_p): New functions,
2053         split out from...
2054         (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
2055         rather than call_really_used_regs when handling $gp.
2056
2057 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
2058
2059         PR target/38052
2060         * config/mips/mips.c (machine_function): Update the comment
2061         above global_pointer.
2062         (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
2063         that a function doesn't need a global pointer.
2064         (mips_current_loadgp_style): Update accordingly.
2065         (mips_restore_gp): Likewise.
2066         (mips_output_cplocal): Likewise.
2067         (mips_expand_prologue): Likewise.
2068
2069 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2070
2071         * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
2072         parameter.  Use DImode for computing the number of registers.
2073         (function_arg): Adjust for above change.
2074         (function_value): Likewise.
2075
2076 2008-11-15  Zdenek Dvorak  <ook@ucw.cz>
2077
2078         PR tree-optimization/37950
2079         * tree-flow-inline.h (memory_partition): Return NULL when aliases were
2080         not computed for the current function.
2081
2082 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
2083
2084         PR target/38123
2085         * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
2086         gpr and other COMPONENT_REFs.
2087
2088 2008-11-15  Richard Guenther  <rguenther@suse.de>
2089
2090         PR tree-optimization/38051
2091         * tree-ssa-alias.c (update_alias_info_1): Manually find
2092         written variables.
2093
2094 2008-11-15  Joshua Kinard  <kumba@gentoo.org>
2095
2096         * doc/invoke.texi (-mfix-r10000): Document.
2097         * config/mips/mips.opt (mfix-r10000): New option.
2098         * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
2099         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
2100         (MIPS_COMPARE_AND_SWAP_12): Likewise.
2101         (MIPS_SYNC_OP): Likewise.
2102         (MIPS_SYNC_OP_12): Likewise.
2103         (MIPS_SYNC_OLD_OP_12): Likewise.
2104         (MIPS_SYNC_NEW_OP_12): Likewise.
2105         (MIPS_SYNC_OLD_OP): Likewise.
2106         (MIPS_SYNC_NAND): Likewise.
2107         (MIPS_SYNC_OLD_NAND): Likewise.
2108         (MIPS_SYNC_EXCHANGE): Likewise.
2109         (MIPS_SYNC_EXCHANGE_12): Likewise.
2110         (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
2111         delay slots.
2112         (MIPS_SYNC_NEW_NAND): Likewise.
2113         * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
2114         (mips_init_print_operand_punct): Treat '~' as a punctuation character.
2115         (mips_output_sync_loop): New function.
2116         (mips_override_options): Make -march=r10000 imply -mfix-r10000.
2117         Make -mfix-r10000 require branch-likely instructions.
2118         * config/mips/sync.md (sync_compare_and_swap<mode>): Use
2119         mips_output_sync_loop.
2120         (compare_and_swap_12): Likewise.
2121         (sync_add<mode>): Likewise.
2122         (sync_<optab>_12): Likewise.
2123         (sync_old_<optab>_12): Likewise.
2124         (sync_new_<optab>_12): Likewise.
2125         (sync_nand_12): Likewise.
2126         (sync_old_nand_12): Likewise.
2127         (sync_new_nand_12): Likewise.
2128         (sync_sub<mode>): Likewise.
2129         (sync_old_add<mode>): Likewise.
2130         (sync_old_sub<mode>): Likewise.
2131         (sync_new_add<mode>): Likewise.
2132         (sync_new_sub<mode>): Likewise.
2133         (sync_<optab><mode>): Likewise.
2134         (sync_old_<optab><mode>): Likewise.
2135         (sync_new_<optab><mode>): Likewise.
2136         (sync_nand<mode>): Likewise.
2137         (sync_old_nand<mode>): Likewise.
2138         (sync_new_nand<mode>): Likewise.
2139         (sync_lock_test_and_set<mode>): Likewise.
2140         (test_and_set_12): Likewise.
2141
2142 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
2143
2144         * gcc.c (cc1_options): Fix comment.
2145
2146 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
2147
2148         PR c++/37561
2149         * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
2150         argtype instead of result_type.
2151
2152 2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>
2153
2154         * ira-int.h (struct ira_loop_tree_node): Improve comments for
2155         subloop_next/next and subloops/childen fields.
2156
2157 2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2158
2159         * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
2160         (STANDARD_INCLUDE_DIR): Redefine to "/include".
2161         (LOCAL_INCLUDE_DIR): Undefine.
2162         * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
2163
2164 2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>
2165
2166         PR rtl-optimization/37397
2167         * ira-int.h (struct ira_allocno): New member bad_spill_p.
2168         (ALLOCNO_BAD_SPILL_P): New macro.
2169
2170         * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
2171
2172         * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
2173         (create_cap_allocno, propagate_allocno_info,
2174         remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
2175         (update_bad_spill_attribute): New function.
2176         (ira_build): Call it.
2177
2178         * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
2179
2180 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
2181
2182         PR tree-optimization/38104
2183         * gimplify.c (gimple_regimplify_operands): Add referenced vars
2184         before calling mark_symbols_for_renaming, not after it.
2185
2186 2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2187
2188         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
2189         (OVERRIDE_OPTIONS): Likewise.
2190
2191 2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
2192             Andrew Stubbs  <ams@codesourcery.com>
2193             Gunnar Von Boehn  <gunnar@genesi-usa.com>
2194
2195         PR target/36134
2196         * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
2197         the shorter LEA insn over ADD.L where possible.
2198
2199 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
2200
2201         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
2202         systems, which are assumend to always provide SSP-support in glibc.
2203         Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
2204         case.
2205         * configure: Regenerate.
2206
2207 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
2208
2209         PR middle-end/36125
2210         * function.c (gimplify_parameters): For callee copies parameters,
2211         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
2212
2213 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
2214
2215         PR target/28102
2216         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
2217         x86 parts into the `i[34567]86-*-linux*' and parts that are
2218         independent of the processor architecture into the `*-*-linux*' cases.
2219         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
2220         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
2221         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
2222         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
2223         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
2224         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
2225         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
2226
2227 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
2228
2229         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
2230         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
2231         (ls2_idiv): Likewise idiv3.
2232         (ls2_prefetch): New reservation.
2233         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
2234         * config/mips/mips.md (type): Add imul3nc and idiv3.
2235         (length): Handle idiv3.
2236         (any_mod): New code_iterator.
2237         (u): Handle MOD and UMOD.
2238         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
2239         (prefetch): Handle TARGET_LOONGSON_2EF.
2240
2241 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
2242
2243         PR c++/27017
2244         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
2245         (prune_unused_types_walk): Call it for non-perennial local classes.
2246         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
2247         entry, just set it to 2 and recurse on children, don't walk attributes
2248         again.
2249
2250 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
2251
2252         * c-common.c (warn_about_parentheses): Add missing whitespace
2253         in warning.
2254
2255 2008-11-13  Paul Brook  <paul@codesourcery.com>
2256
2257         * doc/invoke.texi: Document --fix-cortex-m3.
2258         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
2259         Cortex-M3 cpu is selected.
2260         (output_move_double): Avoid overlapping base register and first
2261         destination register when fix_cm3_ldrd.
2262         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
2263
2264 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
2265
2266         PR bootstrap/38100
2267         * gimple.h (gimple_range_check_failed): Remove prototype.
2268         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
2269         in guarding #if.
2270         (gimple_range_check_failed): Removed.
2271
2272 2008-11-13  Andrew Haley  <aph@redhat.com>
2273
2274         PR bootstrap/38088
2275         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
2276         __LONG_LONG_MAX__.
2277
2278 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2279
2280         PR c++/36478
2281         Revert:
2282         2007-05-07  Mike Stump  <mrs@apple.com>
2283         * doc/invoke.texi (Warning Options): Document that -Wempty-body
2284         also checks for and while statements in C++.
2285
2286 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
2287
2288         PR debug/27574
2289         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
2290         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
2291         - which clones are reachable - as "abstract and needed".
2292         * cgraph.c (cgraph_release_function_body):  If a node is
2293         "abstract and needed", do not release its DECL_INITIAL() content
2294         that will be needed to emit debug info.
2295
2296 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
2297
2298         PR target/27880
2299         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
2300         to set HAVE_GETIPINFO.
2301         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
2302         * configure: Regenerate.
2303         * config.in: Regenerate.
2304
2305 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
2306
2307         PR bootstrap/38010
2308         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
2309
2310 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2311
2312         Revert:
2313         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
2314         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2315
2316 2008-11-12  Jason Merrill  <jason@redhat.com>
2317
2318         PR c++/38007
2319         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
2320         special casing.
2321
2322 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
2323
2324         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
2325         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
2326         atmega32u6 devices.
2327         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2328         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2329
2330 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2331
2332         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
2333         packed-stack special handling.
2334         (FRAME_ADDR_RTX): Add definition.
2335
2336 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2337
2338         PR target/35366
2339         * fold-const.c (native_encode_string): New function.
2340         (native_encode_expr): Use it for STRING_CST.
2341
2342 2008-11-12  DJ Delorie  <dj@redhat.com>
2343
2344         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
2345         insns if the intermediate value will be used later.
2346
2347 2008-11-12  Andreas Schwab  <schwab@suse.de>
2348
2349         * config/m68k/m68k.c (print_operand): Mask off extra extension
2350         bits when writing out the representation of real values.
2351
2352 2008-11-12  Ira Rosen  <irar@il.ibm.com>
2353
2354         PR tree-optimization/38079
2355         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
2356         with vect_dump.
2357
2358 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
2359
2360         PR c++/35334
2361         * c-pretty-print.c (pp_c_complex_expr): New function.
2362         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
2363
2364         PR target/35366
2365         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
2366         than INNER and INNER is a constant, forcibly align INNER as much
2367         as needed.
2368
2369 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
2370
2371         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
2372
2373 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
2374
2375         PR rtl-optimization/37363
2376         * simplify-rtx.c (simplify_plus_minus): Don't create
2377         (const (minus ...)) expresisons.
2378
2379 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2380
2381         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
2382         handling.
2383
2384 2008-11-10  Catherine Moore  <clm@codesourcery.com>
2385
2386         * config.gcc (mips64vrel-*-elf*): Include the tm_file
2387         prior to vr.h.
2388         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
2389         (BASE_DRIVER_SELF_SPECS): Remove.
2390         (DRIVER_SELF_SPECS): New definition.
2391         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include
2392         BASE_DRIVER_SELF_SPECS.
2393         * config/mips/sde.h: Likewise.
2394         * config/mips/iris6.h: Likewise.
2395         * config/mips/vr.h: Likewise.
2396         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
2397
2398 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
2399
2400         PR rtl-optimizations/37948
2401         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
2402         (ira_create_copy, ira_add_allocno_copy): New parameter.
2403
2404         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
2405         to ira_add_allocno_copy.
2406         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
2407         parameter to process_regs_for_copy.
2408         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
2409         Fix typo in passing second allocno to ira_add_allocno_copy.
2410
2411         * ira-color.c (update_conflict_hard_regno_costs): Use head of
2412         coalesced allocnos list.
2413         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
2414         the graph.
2415         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
2416         (add_ira_allocno_to_ordered_bucket): Rename to
2417         add_allocno_to_ordered_bucket.
2418         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
2419         head of coalesced allocnos list.
2420         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
2421         Check that it is aready calculated.
2422         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2423         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2424         list.
2425         (coalesce_allocnos): Do extended coalescing too.
2426
2427         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2428         parameter to ira_add_allocno_copy.
2429
2430         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2431         parameter.
2432         (print_copy): Print copy origination too.
2433
2434         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2435         equivalent memory.
2436
2437 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2438
2439         PR rtl-optimization/37514
2440         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2441         flag_ira_share_spill_slots to 2 if it's already non-zero.
2442         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2443         flag_ira_share_spill_slots is 2.
2444
2445 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
2446
2447         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2448         (prologue_enter_32): Set FB to SP - 4.
2449
2450 2008-11-10  DJ Delorie  <dj@redhat.com>
2451
2452         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2453         constraint for single-bit-clear in lower byte of HI constant, vs
2454         Imb which just ignores the upper byte.
2455         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2456         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2457         (iorhi3_16): Check for single bit set, not single bit clear.
2458
2459 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
2460
2461         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2462
2463         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2464
2465 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2466
2467         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2468         values living in memory and use more precise alignment information.
2469
2470 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
2471
2472         PR middle-end/35314
2473         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2474         after __mf_check call if the call must end a bb.
2475
2476 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
2477
2478         PR middle-end/37807
2479         PR middle-end/37809
2480         * combine.c (force_to_mode): Do not process vector types.
2481
2482         * rtlanal.c (nonzero_bits1): Do not process vector types.
2483         (num_sign_bit_copies1): Likewise.
2484
2485 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
2486
2487         * config/i386/gnu.h: Add copyright and licensing header.
2488         * config/gnu.h: Likewise.
2489
2490 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2491
2492         * fwprop.c (fwprop_done): Call df_remove_problem.
2493
2494 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
2495
2496         PR middle-end/37379
2497         * tree-scalar-evolution.c (instantiate_scev_1): Return
2498         chrec_dont_know for VL_EXP_CLASS_P.
2499
2500 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2501
2502         * reg-stack.c (reg_to_stack): Add missing braces in memset
2503         size calculation.
2504
2505 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
2506
2507         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2508         (NO_PROFILE_COUNTERS): New define.
2509
2510 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
2511
2512         PR target/26397
2513         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2514
2515 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
2516
2517         PR target/35574
2518         * config/sparc/constraints.md (D): New.
2519         * config/sparc/predicates.md (const_double_or_vector_operand): New.
2520         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2521         'D' constraint.
2522         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2523         Use the 'D' constraint in addition to 'F' in some alternatives.
2524         (DF splitter): Generalize for V64mode.
2525         * doc/md.texi (SPARC): Document the 'D' constraint.
2526
2527 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2528
2529         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2530
2531 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2532
2533         * gcc.c: Remove ancient comment about a bug in Sun cc.
2534
2535 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
2536
2537         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2538
2539 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2540
2541         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2542
2543 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2544
2545         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2546         description.
2547
2548 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
2549
2550         PR target/38016
2551         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2552         just MEM_P.
2553
2554 2008-11-05  Martin Jambor  <mjambor@suse.cz>
2555
2556         PR middle-end/37861
2557         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2558         pointer arithmetics into array_ref if the array is accessed
2559         through an indirect_ref.
2560
2561 2008-11-05  Richard Guenther  <rguenther@suse.de>
2562
2563         PR middle-end/37742
2564         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2565         qualified pointer conversion before stripping qualifiers.
2566         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2567         * tree-flow.h (may_propagate_address_into_dereference): Declare.
2568         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2569         function.
2570         (ccp_fold): Use it.
2571         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2572         properly canonicalize binary ops.
2573         (forward_propagate_addr_expr_1): Use
2574         may_propagate_address_into_dereference.
2575
2576 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
2577
2578         PR middle-end/37286
2579         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2580         Initialize uninitialized input registers with a NaN.
2581
2582 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2583
2584         PR middle-end/37833
2585
2586         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2587
2588 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2589
2590         PR middle-end/37943
2591
2592         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2593         exits and conditions.
2594         * testsuite/gcc.dg/graphite/pr37943.c: New.
2595
2596 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
2597             Andrew Pinski  <andrew_pinski@playstation.sony.com>
2598
2599         PR c/35430
2600         * c-common.c (warn_for_sign_compare): For complex result_type
2601         use component's type.
2602
2603 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
2604
2605         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2606
2607         * print-tree.c (print_node): Don't print DECL_INITIAL
2608         for PARM_DECL.
2609
2610         PR c/37106
2611         * c-common.c (parse_optimize_options): Save and restore
2612         flag_strict_aliasing around decode_options call.
2613
2614 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
2615
2616         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2617         (host_detect_local_cpu): Use it instead of casted strings to
2618         compare vendor signatures.
2619
2620 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
2621
2622         PR target/37989
2623         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2624         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2625
2626 2008-11-03  Catherine Moore  <clm@codesourcery.com>
2627
2628         * config/mips.c (mips_conditional_register_usage):  Handle the
2629         DSP control register.
2630         * doc/extend.texi: Document the DSP control register.
2631
2632 2008-11-03  Steve Ellcey <sje@cup.hp.com>
2633             Jakub Jelinek  <jakub@redhat.com>
2634
2635         * omp-low.c (expand_omp_for_generic): If iter_type has different
2636         precision than type and type is a pointer type, cast n1 and n2
2637         first to an integer type with the same precision as pointers
2638         and only afterwards to iter_type.
2639
2640 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2641
2642         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2643         (UNSPEC_GOTSYM_OFF): New unspec.
2644         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2645         (pic_add_dot_plus_eight): Likewise.
2646         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
2647         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2648         UNSPEC_PIC_BASE operands.
2649         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2650         (arm_output_addr_const_extra): Handle it.
2651
2652 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2653
2654         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2655         integer class to full integer class if the offset is not word-aligned.
2656
2657 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2658
2659         PR rtl-opt/37782
2660         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2661         mode count is in.
2662         (doloop_optimize): Update call to doloop_modify.
2663
2664 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2665
2666         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2667
2668 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2669
2670         PR other/37463
2671         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2672         gcc_cv_as_cfi_directive.
2673         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2674         merging read-only and read-write sections or assembler emits
2675         read-write .eh_frame sections.
2676         * configure: Regenerate.
2677
2678 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
2679
2680         Revert:
2681         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2682
2683         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2684         problem.
2685         (rs6000_emit_prologue): Invert logic.
2686         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2687         (reg:P 11) instead of match_operand.
2688         (*save_fpregs_<mode>): Likewise.
2689         (*restore_gpregs_<mode>): Likewise.
2690         (*return_and_restore_gpregs_<mode>): Likewise.
2691         (*return_and_restore_fpregs_<mode>): Likewise.
2692         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2693         (reg:P 11) insted of match_operand.
2694         (*restore_gpregs_spe): Likewise.
2695         (*return_and_restore_gpregs_spe): Likewise.
2696
2697 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
2698
2699         PR tree-optimization/37684
2700         * gcc.dg/graphite/pr37684.c: New.
2701         * graphite.c (exclude_component_ref): New.
2702         (is_simple_operand): Call exclude_component_ref.
2703
2704 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2705
2706         PR tree-optimization/36908
2707         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2708         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2709         (number_of_rw_in_partition): New.
2710         (partition_contains_all_rw): New.
2711         (ldist_gen): Do not distribute when one of the partitions
2712         contains all the memory operations.
2713
2714 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2715
2716         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2717         EDGE_IRREDUCIBLE_LOOP.
2718
2719 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
2720
2721         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2722         where we have one entry point in the loop which isn't the head.
2723
2724 2008-11-03  Richard Guenther  <rguenther@suse.de>
2725
2726         PR middle-end/37573
2727         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2728
2729 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
2730
2731         PR middle-end/37858
2732         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2733         for ipa and simple ipa passes.
2734
2735 2008-11-02  Richard Guenther  <rguenther@suse.de>
2736
2737         PR tree-optimization/37542
2738         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2739         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2740         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2741         (vn_nary_op_insert_stmt): Likewise.
2742         (visit_use): Likewise.
2743
2744 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
2745
2746         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2747         (*swap): Remove.
2748         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2749         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2750         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2751         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2752         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2753         peephole2's): Replace unspec with rotate.
2754         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2755
2756 2008-11-02  Richard Guenther  <rguenther@suse.de>
2757
2758         PR tree-optimization/37991
2759         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2760         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2761         (set_ssa_val_to): Print if the value changed.
2762         (simplify_binary_expression): Strip useless conversions.
2763
2764 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
2765
2766         PR target/37939
2767         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2768         operand.
2769
2770 2008-11-01  Richard Guenther  <rguenther@suse.de>
2771
2772         PR middle-end/37976
2773         * builtins.c (fold_builtin_strspn): Return a size_t.
2774         (fold_builtin_strcspn): Likewise.
2775
2776 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2777
2778         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2779         attribute for struct return convention.
2780
2781 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2782
2783         * config/rs6000/crtsavres.asm: Really, really delete.
2784
2785 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2786
2787         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2788         problem.
2789         (rs6000_emit_prologue): Invert logic.
2790         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2791         (reg:P 11) instead of match_operand.
2792         (*save_fpregs_<mode>): Likewise.
2793         (*restore_gpregs_<mode>): Likewise.
2794         (*return_and_restore_gpregs_<mode>): Likewise.
2795         (*return_and_restore_fpregs_<mode>): Likewise.
2796         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2797         (reg:P 11) insted of match_operand.
2798         (*restore_gpregs_spe): Likewise.
2799         (*return_and_restore_gpregs_spe): Likewise.
2800
2801 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
2802
2803         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2804         list of word switches that take args.
2805
2806 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
2807
2808         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2809         (s390_output_pool_entry): Call it through for_each_rtx.
2810
2811         PR middle-end/37730
2812         * expr.c (store_constructor): For vectors, if target is a MEM, use
2813         target's MEM_ALIAS_SET instead of elttype alias set.
2814
2815 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2816
2817         PR target/37909
2818         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2819         no address.
2820
2821 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
2822
2823         PR target/37878
2824         * config/rs6000/predicates.md (word_offset_memref_operand):
2825         Restructure code and look inside auto-inc/dec addresses.
2826
2827 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
2828
2829         PR target/32277
2830         * libgcov.c (__gcov_indirect_call_profiler): Check
2831         TARGET_VTABLE_USES_DESCRIPTORS.
2832
2833 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
2834
2835         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2836         (INITIAL_FRAME_POINTER_OFFSET): Remove.
2837         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2838         offset if eliminating soft frame pointer.
2839         * config/spu/spu.md (stack_protect_set, stack_protect_test)
2840         (stack_protect_test_si): Add initial machine description
2841         for Stack Smashing Protector
2842
2843 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2844
2845         PR 11492
2846         * c-common.c (min_precision): Move to...
2847         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2848         * tree.h (tree_int_cst_min_precision): Declare.
2849         * c-common.h (min_precision): Delete declaration.
2850         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2851         multiplication of non-negative integer constants.
2852         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2853         tree_int_cst_min_precision.
2854         (finish_enum): Likewise.
2855
2856 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
2857
2858         PR middle-end/36578
2859         * convert.c (convert_to_real): Do not optimize conversions of
2860         binary arithmetic operations between binary and decimal
2861         floating-point types.  Consider mode of target type in determining
2862         decimal type for arithmetic.  Unless
2863         flag_unsafe_math_optimizations, do not optimize binary conversions
2864         where this may change rounding behavior.
2865         * real.c (real_can_shorten_arithmetic): New.
2866         * real.h (real_can_shorten_arithmetic): Declare.
2867
2868 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2869
2870         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2871         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2872         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2873         appropriate.
2874         (must_save_p): For some workarounds, interrupts need to clobber a
2875         P register.
2876         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2877         and LC1 for WA_05000257.
2878         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2879         WA_05000283 and WA_05000315.
2880         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2881         (movbi): Add alternative to set CC to 1; improve code for setting
2882         CC to 0.
2883         (dummy_load): New pattern.
2884
2885 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
2886
2887         PR middle-end/37870
2888         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2889         BLKmode for non-memory, convert using a wider MODE_INT mode
2890         or through memory.
2891
2892         PR middle-end/37913
2893         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2894         that haven't been removed yet.
2895
2896 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2897
2898         * config/bfin/bfin.c (struct machine_function): New member
2899         has_loopreg_clobber.
2900         (bfin_expand_movmem): Set it when generating memcpy insns.
2901         (n_regs_saved_by_prologue, expand_prologue_reg_save,
2902         expand_epilogue_reg_restore): If we have hardware loops,
2903         memcpy insns (indicated by has_loopreg_clobber) or function
2904         calls, we need to save the loop registers.
2905
2906 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
2907
2908         * config/i386/i386.c (core2_cost): Fix typos in comments.
2909
2910 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2911
2912         PR c/37924
2913         * combine.c (make_compound_operation): Don't call make_extraction with
2914         non-positive length.
2915         (simplify_shift_const_1): Canonicalize count even if complement_p.
2916
2917 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
2918
2919         * convert.c (strip_float_extensions): Do not remove or introduce
2920         conversions between binary and decimal floating-point types.
2921
2922 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2923
2924         PR middle-end/37931
2925         * fold-const.c (distribute_bit_expr): Convert common, left and
2926         right arguments to type.
2927
2928 2008-10-28  Nick Clifton  <nickc@redhat.com>
2929
2930         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2931         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2932         call_really_used_regs array rather than the call_used_regs array.
2933         (mn10300_get_live_callee_saved_regs, expand_prologue,
2934         expand_epilogue, output_tst): Likewise.
2935
2936 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
2937
2938         PR target/37378
2939         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2940         (df_get_entry_block_def_set): Neither here.
2941         (df_get_regular_block_artificial_uses): Add EH_USES registers.
2942
2943         PR tree-optimization/37879
2944         * predict.c (tree_estimate_probability): Check if last_stmt is
2945         non-NULL before dereferencing it.
2946
2947 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2948
2949         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2950         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2951         (ira_fast_allocation): Remove the prototype.
2952
2953         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2954         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2955         (color_pass): Modify the updated costs.
2956         (ira_color): Rename to color.  Make it static.
2957         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
2958         (ira_color): New function.
2959
2960         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2961         change.
2962
2963         * ira-lives.c (last_call_num, allocno_saved_at_call): New
2964         variables.
2965         (set_allocno_live, clear_allocno_live, mark_ref_live,
2966         mark_ref_dead): Invalidate corresponding element of
2967         allocno_saved_at_call.
2968         (process_bb_node_lives): Increment last_call_num.  Setup
2969         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
2970         allocno was already saved.
2971         (ira_create_allocno_live_ranges): Initiate last_call_num and
2972         allocno_saved_at_call.
2973
2974         * ira-build.c (ira_create_allocno): Initiate
2975         ALLOCNO_UPDATED_COVER_CLASS_COST.
2976         (create_cap_allocno, propagate_allocno_info,
2977         remove_unnecessary_allocnos): Remove setting updated costs.
2978         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2979
2980         * ira.c (ira):  Don't call ira_fast_allocation.
2981
2982         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2983         updated costs.
2984
2985 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2986
2987         PR middle-end/37813
2988         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2989
2990         * ira-int.h (ira_hard_regno_cover_class): New.
2991
2992         * ira-lives.c (mark_reg_live, mark_reg_dead,
2993         process_bb_node_lives): Use ira_hard_regno_cover_class.
2994
2995         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2996         (setup_hard_regno_cover_class): New function.
2997         (ira_init): Call setup_hard_regno_cover_class.
2998
2999         * ira-costs.c (cost_class_nums): Add comment.
3000         (find_allocno_class_costs): Initiate cost_class_nums.
3001         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
3002
3003 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
3004
3005         PR middle-end/37884
3006         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
3007         Rename to copy_info_to_removed_store_destinations.  Propagate
3008         conflict hard regs and register stack attribute.
3009
3010 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3011
3012         PR middle-end/37316
3013         * pa.c (function_arg_padding):  Pad complex and vector types
3014         upward in 64-bit runtime.
3015         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
3016
3017 2008-10-26  Matthias Klose  <doko@ubuntu.com>
3018
3019         * doc/install.texi: Document requirements on antlr.
3020
3021 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
3022
3023         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
3024         first.
3025
3026 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3027
3028         PR target/37841
3029         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
3030         is defined, use it to modify the constant offset.
3031
3032         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
3033
3034         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
3035         and short arguments to the correct location as mandated by the ABI.
3036
3037 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3038
3039         PR rtl-optimization/37769
3040         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
3041
3042 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3043
3044         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
3045         unwind-dw2-Os-4-200.o.
3046
3047 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
3048
3049         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
3050         (convert_for_assignment): Remove ic_argpass_nonproto cases.
3051
3052 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
3053
3054         PR tree-optimization/36038
3055         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
3056         add sizetype IV with initial value zero instead of pointer type.
3057
3058 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3059
3060         PR c/7543
3061         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
3062         around bit operation.
3063         * profile.c (is_edge_inconsistent): Likewise.
3064         * fold-const.c (truth_value_p): Move from here...
3065         * tree.h (truth_value_p): ... to here.
3066         * c-tree.h (c_expr): Update description of original_code.
3067         * c-typeck.c (parser_build_unary_op): Set original_code.
3068         (parser_build_binary_op): Update call to warn_about_parentheses.
3069         * c-common.c (warn_about_parentheses): Take two additional
3070         arguments of the operands. Use a switch. Quote operators
3071         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
3072         Add warning about !x | y and !x & y.
3073         * c-common.h (warn_about_parentheses): Update declaration.
3074
3075 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
3076
3077         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
3078         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
3079         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
3080         New variables.
3081         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
3082         (check-%): For test targets listed in lang_checks_parallelized
3083         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
3084         run the testing in multiple make goals, possibly parallel, and
3085         afterwards run dg-extract-results.sh to merge the sum and log files.
3086
3087 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
3088
3089         * config/mips/mips.c (mips_canonicalize_move_class): New function.
3090         (mips_move_to_gpr_cost): Likewise.
3091         (mips_move_from_gpr_cost): Likewise.
3092         (mips_register_move_cost): Make more fine-grained.
3093
3094 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
3095
3096         * graphite.c (graphite_apply_transformations): Check for
3097         -fgraphite-identity.
3098         * toplev.c (process_options): Add graphite_identity.
3099         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
3100
3101 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
3102
3103         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
3104         mulhisihl and mulhisihh builtins.
3105
3106         From Jie Zhang  <jie.zhang@analog.com>
3107         * config/bfin/bfin.md (composev2hi): Put operands into vector
3108         with correct order.
3109
3110 2008-10-22  Chao-ying Fu  <fu@mips.com>
3111
3112         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
3113
3114 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
3115
3116         From Mike Frysinger  <michael.frysinger@analog.com>
3117         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
3118         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
3119         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
3120         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
3121         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
3122         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
3123         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
3124         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
3125         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
3126         __ADSPBF51x__ for all of them.
3127         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
3128         -mcpu bf512, bf514, bf516, and bf518.
3129         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
3130         bf512-none, bf514-none, bf516-none, and bf518-none.
3131         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
3132         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
3133         * doc/invoke.texi (Blackfin Options): Document that
3134         -mcpu now accepts bf512, bf514, bf516, and bf518.
3135
3136 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
3137
3138         PR middle-end/37882
3139         * fold-const.c (build_range_type): For 1 .. signed_max
3140         range call build_nonstandard_inter_type if signed_type_for
3141         returned a type with bigger precision.
3142
3143 2008-10-22  Richard Guenther  <rguenther@suse.de>
3144
3145         * tree.def (COMPLEX_TYPE): Constrain element type.
3146         * tree.c (build_complex_type): Assert that.
3147         * tree-ssa-structalias.c (could_have_pointers): Complex types
3148         cannot have pointers.
3149
3150 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3151
3152         PR c/30949
3153         * c-typeck.c (convert_for_assignment): Do not give declaration's
3154         location for builtins. Spell out which type was expected and which
3155         was given.
3156
3157 2008-10-22  Nick Clifton  <nickc@redhat.com>
3158
3159         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
3160         the fdpic register to be a target when running in fdpic mode.
3161
3162 2008-10-22 Rafael Espindola  <espindola@google.com>
3163
3164         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
3165         newly created statements.
3166
3167 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3168
3169         PR target/37633
3170         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
3171         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
3172         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
3173
3174 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
3175
3176         PR target/37880
3177         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
3178         Adjust -mcmodel=medium description for 2005-07-31 changes.
3179
3180 2008-10-22  Jan Hubicka  <jh@suse.cz>
3181             Jakub Jelinek  <jakub@redhat.com>
3182
3183         PR middle-end/35853
3184         * doc/invoke.texi: Remove references to obsoleted -d dumps.
3185
3186 2008-10-21  Richard Henderson  <rth@redhat.com>
3187
3188         PR 37815
3189         * emit-rtl.c (get_spill_slot_decl): Export.
3190         * emit-rtl.h (get_spill_slot_decl): Declare.
3191         * var-tracking.c (vt_add_function_parameters): Relax assertion
3192         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
3193
3194 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
3195
3196         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
3197         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
3198         of from insn.
3199
3200 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
3201
3202         PR middle-end/37669
3203         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
3204         processed by get_maxval_strlen.
3205
3206 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
3207
3208         PR target/35485
3209         * tree.c (get_file_function_name): Copy first_global_object_name.
3210         Centralize call to clean_symbol_name.
3211
3212 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
3213
3214         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
3215         * config/svr4.h (SVR4_ASM_SPEC): New.
3216         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3217         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3218
3219         * doc/invoke.texi (Option Summary): Add -T to linker options.
3220         (Link Options): Document -T.
3221
3222 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
3223
3224         * tree-inline.c (tree_inlinable_function_p): Remove tuples
3225         debugging hack.
3226
3227         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
3228
3229         PR debug/37020
3230         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
3231
3232 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
3233
3234         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
3235         part of expression.
3236
3237 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
3238
3239         * doc/install.texi: Fix typos in previous patch.
3240
3241 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
3242
3243         * doc/install.texi: Document in-tree building of gcc and mpfr.
3244
3245 2008-10-19  Richard Guenther  <rguenther@suse.de>
3246
3247         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
3248
3249 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3250
3251         PR c/30260
3252         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
3253         (build_enumerator): Convert enumerators that fit in integer to
3254         integer type.
3255
3256 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
3257
3258         * config/i386/i386.md (unnamed peephole2): Do not force memory
3259         operands of arith or logical instructions into registers for
3260         non-TARGET_READ_MODIFY targets.
3261
3262         (ffs_cmove): Change operand 0 predicate to register_operand.
3263         Change operand 1 predicate to nonimmediate_operand.
3264         (ffsdi2): Ditto.
3265         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
3266
3267 2008-10-18  Richard Guenther  <rguenther@suse.de>
3268
3269         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
3270         VIEW_CONVERT_EXPR case against invalid gimple.
3271
3272 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3273
3274         * c-parser.c (c_parser_binary_expression): Silence the
3275         uninitialized variable warning emitted for binary_loc.
3276
3277 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
3278
3279         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
3280         translation cache.
3281
3282 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
3283
3284         PR c/33192
3285         * c-typeck.c (build_unary_op): Use omit_one_operand for
3286         IMAGPART_EXPR of real argument.
3287
3288 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
3289
3290         PR tree-optimization/37664
3291         * fold-const.c (fold_binary): When optimizing comparison with
3292         highest or lowest type's value, don't consider TREE_OVERFLOW.
3293
3294 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
3295
3296         PR target/35483
3297         * Makefile.in (coverage.o): Depend on $(TM_P_H).
3298         * coverage.c: Include tm_p.h.
3299         * config/rs6000/x-aix (jc1): Override LDFLAGS.
3300         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
3301         dollar signs from PREFIX.
3302         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
3303         instead of manual strip_name_encoding.
3304
3305 2008-10-16  Richard Guenther  <rguenther@suse.de>
3306
3307         PR middle-end/37418
3308         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
3309         volatile qualified functions or methods as relevant.
3310
3311 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
3312
3313         PR tree-optimization/37525
3314         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
3315         sizetype unsigned constants, both in the case of C and bounds.
3316
3317 2008-10-15  Jan Hubicka  <jh@suse.cz>
3318
3319         * ira-emit.c (change_regs): Return false when replacing reg by itself.
3320
3321 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
3322
3323         PR target/37633
3324         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
3325         HARD_REGNO_CALL_PART_CLOBBERED.
3326
3327 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
3328
3329         PR middle-end/37535
3330         * ira-lives.c (mark_early_clobbers): Remove.
3331         (make_pseudo_conflict, check_and_make_def_use_conflicts,
3332         check_and_make_def_conflicts,
3333         make_early_clobber_and_input_conflicts,
3334         mark_hard_reg_early_clobbers): New functions.
3335         (process_bb_node_lives): Call
3336         make_early_clobber_and_input_conflicts and
3337         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
3338
3339         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
3340         early clobbers of pseudo-registers.
3341
3342 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
3343
3344         PR middle-end/37674
3345         * ira-build.c (ira_flattening): Recalculate
3346         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
3347         from the scratch instead of the propagation.
3348
3349 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
3350
3351         * doc/rtl.texi (const_double): Remove the "addr" operand.
3352         Describe CONST_DOUBLE_* macros under const_double rather
3353         than const_vector.
3354         (const_fixed): Fix the operand description.
3355         (const): Add an @findex directive.
3356         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
3357         after the constant rtl table.
3358         (fix): Combine floating-point and fixed-point descriptions.
3359         Fix hyphenation.
3360         * sched-deps.c (sched_analyze_2): Remove reference to
3361         CONST_DOUBLE_CHAIN.
3362
3363 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
3364
3365         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
3366         UNSPEC_GOTSYM_OFFs.
3367         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
3368         for UNSPEC_GOTSYM_OFFs.
3369         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
3370         (add_GOT_to_pic_reg): Use it.
3371         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
3372
3373 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
3374             Harsha Jagasia  <harsha.jagasia@amd.com>
3375
3376         PR tree-optimization/37485
3377         * graphite.c (gmp_cst_to_tree): Moved.
3378         (iv_stack_entry_is_constant): New.
3379         (iv_stack_entry_is_iv): New.
3380         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
3381         (loop_iv_stack_insert_constant): New.
3382         (loop_iv_stack_pop): Use new datatpype.
3383         (loop_iv_stack_get_iv): Same.
3384         (loop_iv_stack_get_iv_from_name): Same.
3385         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
3386         (loop_iv_stack_patch_for_consts): New.
3387         (loop_iv_stack_remove_constants): New.
3388         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
3389         (translate_clast): Call loop_iv_stack_patch_for_consts and
3390         loop_iv_stack_remove_constants.
3391         (gloog): Use new datatype.  Redirect construction edge to end
3392         block to avoid accidental deletion.
3393         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
3394         iv stack entry.
3395         (union iv_stack_entry_data): New.  Data in iv stack entry.
3396         (struct iv_stack_entry): New.  Datatype for iv stack entries.
3397
3398 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3399
3400         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
3401         * graphite.c (free_scop): Same.
3402         (build_scops): Same.
3403         (free_scattering): New.
3404         (build_cloog_prog): Call free_scattering.
3405         (patch_phis_for_virtual_defs): Fix memleak.
3406         (graphite_trans_bb_strip_mine): Same.
3407         (limit_scops): Same.
3408
3409 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3410             Harsha Jagasia  <harsha.jagasia@amd.com>
3411
3412         PR tree-optimization/37828
3413         * graphite.c (graphite_trans_loop_block): Do not loop block
3414         single nested loops.
3415
3416 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
3417
3418         PR tree-optimization/37686
3419         * tree-loop-linear.c (linear_transform_loops): Build a
3420         loop nest vector.  Pass it to lambda_compute_access_matrices.
3421         * tree-data-ref.h (struct access_matrix): Store the loop nest
3422         relative to which it encodes the information.
3423         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3424         (am_vector_index_for_loop): Reimplemented: iterate over the
3425         loop nest for finding the loop index in the access matrix.
3426         (lambda_compute_access_matrices): Update declaration.
3427         * lambda-code.c (build_access_matrix): Pass the loop nest and
3428         record it.
3429         (lambda_compute_access_matrices): Same.
3430
3431 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
3432
3433         * config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3434         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3435         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3436         already implies hard float.  Also fix several insn condition
3437         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3438
3439 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
3440
3441         PR target/35483
3442         Based on patches by Laurent Vivier.
3443         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3444         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3445         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3446         dollar sign to underscore.
3447         (ASM_OUTPUT_EXTERNAL): Same.
3448         (ASM_OUTPUT_LABELREF): New.
3449         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3450
3451         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3452         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3453         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3454         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3455
3456 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
3457
3458         PR tree-optimization/36881
3459         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3460         that each value doesn't need runtime relocations, for !flag_pic
3461         check that each value is just a valid initializer constant.
3462
3463 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
3464
3465         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3466         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3467         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3468         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3469         GR_AND_ACC_REGS.
3470         (REG_CLASS_NAMES): Update accordingly.
3471         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
3472         rather than an unpredictable descriptive string.
3473         * config/mips/mips.c (mips_register_move_cost): Remove comment.
3474         (mips_register_move_cost): Check for specific COP*_REGS classes,
3475         instead of ALL_COP_AND_GR_REGS.
3476         (mips_ira_cover_classes): New function.
3477         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3478         (TARGET_IRA_COVER_CLASSES): Define.
3479
3480 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
3481
3482         PR c++/37553
3483         * tree.c (build_type_attribute_qual_variant): Hash on the
3484         unqualified type, and don't overwrite an existing
3485         (type_hash_eq): Make the TYPE_NAME of the types significant, to
3486         allow distinguishing between wchar_t and its underlying type. This
3487         also means that we'll retain a little more typedef information.
3488
3489 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
3490             Dmitry Melnik  <dm@ispras.ru>
3491             Dmitry Zhurikhin  <zhur@ispras.ru>
3492             Alexander Monakov  <amonakov@ispras.ru>
3493             Maxim Kuvyrkov  <maxim@codesourcery.com>
3494
3495         * target.h (struct gcc_target): Update prototypes of needs_block_p
3496         and gen_spec_check.
3497         * haifa-sched.c (create_check_block_twin): Update calls to the above.
3498         * sel-sched.c (create_speculation_check): Likewise.
3499         * doc/tm.texi: Provide documentation for new target hooks.
3500
3501         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
3502         (ia64_gen_spec_insn): Removed.
3503         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3504         ia64_gen_spec_check): New static functions.
3505         (ia64_alloc_sched_context, ia64_init_sched_context,
3506         ia64_set_sched_context, ia64_clear_sched_context,
3507         ia64_free_sched_context, ia64_get_insn_spec_ds,
3508         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3509         (ia64_needs_block_p): Change prototype.
3510         (ia64_gen_check): Rename to ia64_gen_spec_check.
3511         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
3512         into declaration, add special memory dependencies handling.
3513         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3514         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3515         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3516         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3517         Define new target hooks.
3518         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3519         (ia64_optimization_options): Turn on selective scheduling with -O3,
3520         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3521         default with selective scheduling.
3522         (ia64_override_options): Initialize align_loops and align_functions
3523         to 32 and 64, respectively.  Set global selective scheduling flags
3524         according to target-dependent flags.
3525         (rtx_needs_barrier): Support UNSPEC_LDS_A.
3526         (group_barrier_needed): Use new mstop-bit-before-check flag.
3527         Add heuristic.
3528         (dfa_state_size): Make global.
3529         (spec_check_no, max_uid): Remove.
3530         (mem_ops_in_group, current_cycle): New variables.
3531         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3532         Initialize new variables.
3533         (is_load_p, record_memory_reference): New functions.
3534         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3535         reached.
3536         (ia64_variable_issue): Change use of current_sched_info to
3537         sched_deps_info.  Update comment.  Note if a load or a store is issued.
3538         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3539         advance if maximal number of loads or stores was issued on current
3540         cycle.
3541         (scheduled_good_insn): New static helper function.
3542         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3543         a group barrier is needed.  Fix vertical spacing.  Guard the code
3544         doing state transition with last_scheduled_insn check.
3545         Mark that a stop bit should be before current insn if there was a
3546         cycle advance.  Update current_cycle and mem_ops_in_group.
3547         (ia64_h_i_d_extended): Change use of current_sched_info to
3548         sched_deps_info. Reallocate stops_p by larger chunks.
3549         (struct _ia64_sched_context): New structure.
3550         (ia64_sched_context_t): New typedef.
3551         (ia64_alloc_sched_context, ia64_init_sched_context,
3552         ia64_set_sched_context, ia64_clear_sched_context,
3553         ia64_free_sched_context): New static functions.
3554         (gen_func_t): New typedef.
3555         (get_spec_load_gen_function): New function.
3556         (SPEC_GEN_EXTEND_OFFSET): Declare.
3557         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3558         (get_mode_no_for_insn): Change the condition that prevents use of
3559         special hardware registers so it can now handle pseudos.
3560         (get_spec_unspec_code): New function.
3561         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3562         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3563         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3564         during selective scheduling.
3565         (ia64_speculate_insn): Use ds_get_speculation_types when
3566         determining whether we need to change the pattern.
3567         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3568         (ia64_spec_check_src_p): Support new speculation/check codes.
3569         (struct bundle_state): New field.
3570         (issue_nops_and_insn): Initialize it.
3571         (insert_bundle_state): Minimize mid-bundle stop bits.
3572         (important_for_bundling_p): New function.
3573         (get_next_important_insn): Use important_for_bundling_p.
3574         (bundling): When shifting TImode from unimportant insns, ignore
3575         also group barriers.  Assert that best state is found before
3576         the backward bundling pass.  Print number of mid-bundle stop bits.
3577         Minimize mid-bundle stop bits.  Check correct calculation of
3578         mid-bundle stop bits.
3579         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3580         (final_emit_insn_group_barriers): Emit stop bits before insns starting
3581         a new cycle.
3582         (sel2_run): New variable.
3583         (ia64_reorg): When flag_selective_scheduling2 is set, run the
3584         selective scheduling pass instead of schedule_ebbs.
3585
3586         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3587         (UNSPEC_LDS_A): New UNSPEC.
3588         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3589         movti_internal, movsf_internal, movdf_internal,
3590         movxf_internal): Make visible.  Add speculable* attributes.
3591         (output_c_nc): New mode attribute.
3592         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3593         mov<mode>_nc, zero_extend<mode>di2_nc,
3594         advanced_load_check_nc_<mode>): New insns.
3595         (zero_extend*): Add speculable* attributes.
3596
3597         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3598         (msched-stop-bits-after-every-cycle): Likewise.
3599         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3600         Likewise.
3601         (msched-spec-verbose): Remove.
3602         (msched-prefer-non-data-spec-insns,
3603         msched-prefer-non-control-spec-insns,
3604         msched-count-spec-in-critical-path,
3605         msel-sched-dont-check-control-spec): Use Target  Report Var
3606         instead of Common Report Var.
3607
3608         * config/ia64/itanium2.md: Remove incorrect bypass.
3609
3610         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3611
3612 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3613
3614         PR middle-end/37805
3615         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3616         and -fhelp=separate.
3617
3618 2008-10-14  Ben Elliston  <bje@au.ibm.com>
3619
3620         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3621
3622 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
3623
3624         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3625         non-integer modes.
3626
3627 2008-10-13  Matthias Klose  <doko@ubuntu.com>
3628
3629         * config/pa/linux-atomic.c: Work around missing header file
3630         for hppa64-linux-gnu targets.
3631
3632 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3633             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3634             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
3635             Grace Cao  <grace_cao@playstation.sony.com>
3636
3637         * doc/invoke.texi (-mgen-cell-microcode): Document.
3638         (-mwarn-cell-microcode): Document.
3639         * cfglayout.c (locator_location): Export.
3640         * rtl.h (locator_location): Define prototype.
3641         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3642         New predicate.
3643         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3644         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3645         (mwarn-cell-microcode): New option.
3646         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3647         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3648         cell and not already set.
3649         Turn off string instructions if not generating cell microcode.
3650         (rs6000_final_prescan_insn): New function that warns about microcoded
3651         instructions.
3652         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3653         * config/rs6000/rs6000.md
3654         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3655         the instruction would have been microcoded on the Cell.  Set
3656         cell_micro to always on unnamed patterns for the string instructions.
3657         (cell_micro): Update definition, remove load/store conditional
3658         microcoded.
3659         (sign_extend:DI): Define new pattern for non microcoded version.
3660         (sign_extend:SI): Likewise.
3661         (compare (div:P)): Set cell_micro to not.
3662         (andsi3): Define as an expand.
3663         (andsi3_mc): New pattern.
3664         (andsi3_nomc): New pattern.
3665         (andsi3_internal0_nomc): New pattern.
3666         (andsi3_internal2): Rename to ...
3667         (andsi3_internal2_mc): this and enable iff generating microcode.
3668         (andsi3_internal3): Rename to ...
3669         (andsi3_internal3_mc): this and enable iff generating microcode.
3670         (andsi3_internal4): Enable iif generating microcode.
3671         (andsi3_internal5): Rename to ..
3672         (andsi3_internal5_mc): this and enable iff generating microcode.
3673         (andsi3_internal5_nomc): New pattern.
3674         (extzvdi_internal1): Enable iff generating microcode.
3675         (extzvdi_internal2): Likewise.
3676         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3677         (anddi3): Change to expand.
3678         (anddi3_mc): Rename from anddi3.
3679         (anddi3_no_mc): New pattern.
3680         (anddi3_internal2): Rename to ..
3681         (anddi3_internal2_mc): this and enable iff generating microcode.
3682         (anddi3_internal2_nomc): New pattern.
3683         (anddi3_internal3): Rename to ..
3684         (anddi3_internal3_mc): this and enable iff generating microcode.
3685         (anddi3_internal3_nomc): New pattern.
3686         (movti_string): Set cell_micro to always if TARGET_STRING.
3687         (stmsi8): Set cell_micro to always.
3688         (stmsi7): Likewise.
3689         (stmsi6): Likewise.
3690         (stmsi5): Likewise.
3691         (stmsi4): Likewise.
3692         (stmsi3): Likewise.
3693         (stmsi8_power): Likewise.
3694         (stmsi7_power): Likewise.
3695         (stmsi6_power): Likewise.
3696         (stmsi5_power): Likewise.
3697         (stmsi4_power): Likewise.
3698         (stmsi3_power): Likewise.
3699         (movsi_update2): Enable iff generating microcode.
3700         (movhi_update3): Likewise.
3701         (lmw): Set cell_micro to always.
3702
3703 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
3704
3705         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3706         * config/s390/s390.c (machine_function): Remove
3707         decomposed_literal_pool_addresses_ok_p.
3708         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3709         the difference of two labels.
3710         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3711         (s390_pool_offset): New function.
3712         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3713         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3714
3715 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
3716
3717         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3718         (powerpc*-*-linux-gnu*): Describe.
3719         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3720         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3721         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3722         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3723         config/rs6000/e500crtres32gpr.asm,
3724         config/rs6000/e500crtres64gpr.asm,
3725         config/rs6000/e500crtres64gprctr.asm,
3726         config/rs6000/e500crtrest32gpr.asm,
3727         config/rs6000/e500crtrest64gpr.asm,
3728         config/rs6000/e500crtresx32gpr.asm,
3729         config/rs6000/e500crtresx64gpr.asm,
3730         config/rs6000/e500crtsav32gpr.asm,
3731         config/rs6000/e500crtsav64gpr.asm,
3732         config/rs6000/e500crtsav64gprctr.asm,
3733         config/rs6000/e500crtsavg32gpr.asm,
3734         config/rs6000/e500crtsavg64gpr.asm,
3735         config/rs6000/e500crtsavg64gprctr.asm: Use it.
3736         * config/rs6000/crtsavres.asm: Really remove.
3737
3738 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
3739
3740         Fix PR/25502
3741         * c-format.c (convert_format_name_to_system_name): Use
3742         TARGET_OVERRIDES_FORMAT_INIT.
3743         * config.gcc (extra_options): Add for mingw targets mingw.opt.
3744         * config/i386/mingw.opt: New.
3745         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3746         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3747         (ms_printf_length_specs): Removed const specifier.
3748         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3749         * doc/invoke.texi (Wno-pedantic-ms-format): New.
3750
3751 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3752
3753         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3754         * doc/install.texi: Bump recommended MPFR to 2.3.2.
3755
3756 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
3757
3758         PR middle-end/37808
3759         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3760         sure that ref has valid bb.
3761
3762 2008-10-12  Richard Henderson  <rth@redhat.com>
3763
3764         PR middle-end/37447
3765         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3766         * alias.c (value_addr_p, stack_addr_p): Remove.
3767         (nonoverlapping_memrefs_p): Remove IRA special case.
3768         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3769         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3770         * reload1.c (alter_reg): Use it.
3771
3772 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
3773
3774         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3775         of registers instead of eax, ebx, ecx and edx.  Use for loop
3776         and check register for non-zero value before the call
3777         to decode_caches_intel.
3778
3779 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3780
3781         PR rtl-optimization/37448
3782         * df.h (df_ref_class): New enum.
3783         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3784         (struct df_ref): Replaced with union df_ref_d.
3785         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3786         New members of df_ref_d union.
3787         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3788         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3789         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3790         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3791         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3792         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3793         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3794         (df_scan_bb_info, df_bb_regno_first_def_find,
3795         df_bb_regno_last_def_find, df_find_def, df_find_use,
3796         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3797         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3798         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3799         df_get_artificial_defs, df_get_artificial_uses, union_defs)
3800         Replaced struct df_ref * with df_ref.
3801         * df-scan.c (df_collection_rec, df_null_ref_rec,
3802         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3803         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3804         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3805         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3806         df_reorganize_refs_by_reg_by_reg,
3807         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3808         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3809         df_sort_and_compress_refs, df_install_ref, df_install_refs,
3810         df_ref_record, df_get_conditional_uses, df_get_call_refs,
3811         df_bb_refs_record, df_exit_block_uses_collect,
3812         df_record_exit_block_uses, df_reg_chain_mark,
3813         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3814         df_ref * with df_ref.
3815         (df_ref_record, df_uses_record, df_ref_create_structure): Added
3816         df_ref_class parameter.
3817         (df_scan_problem_data): Added new pools for different types of refs.
3818         (df_scan_free_internal, df_scan_alloc, df_free_ref,
3819         df_ref_create_structure): Processed new ref pools.
3820         (df_scan_start_dump): Added counts of refs and insns.
3821         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3822         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3823         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3824         code to pass df_ref_class down to ref creation functions.
3825         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3826         df_reg_chain_mark): Use macros to hide references to df_refs.
3827         (df_ref_chain_change_bb): Removed.
3828         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3829         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3830         Enhanced to understand df_ref union structure.
3831         * fwprop.c (local_ref_killed_between_p, use_killed_between,
3832         all_uses_available_at, update_df, try_fwprop_subst,
3833         forward_propagate_subreg, forward_propagate_and_simplify,
3834         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3835         df_ref * with df_ref.
3836         (use_killed_between, all_uses_available_at): Use macros to hide
3837         references to df_refs.
3838         * regstat.c (regstat_bb_compute_ri,
3839         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3840         df_ref.
3841         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3842         see_handle_relevant_refs, see_analyze_one_def,
3843         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3844         struct df_ref * with df_ref.
3845         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3846         global_conflicts): Replaced struct df_ref * with df_ref.
3847         * ddg.c (create_ddg_dep_from_intra_loop_link,
3848         add_cross_iteration_register_deps, build_inter_loop_deps):
3849         Replaced struct df_ref * with df_ref.
3850         (create_ddg_dep_from_intra_loop_link,
3851         add_cross_iteration_register_deps): Use macros to hide references
3852         to df_refs.
3853         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3854         df_ref * with df_ref.
3855         * df-core.c (df_bb_regno_first_def_find,
3856         df_bb_regno_last_def_find, df_find_def, df_find_use,
3857         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3858         debug_df_ref): Replaced struct df_ref * with df_ref.
3859         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3860         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3861         df_ref.
3862         * web.c (union_defs, entry_register, replace_ref, web_main):
3863         Replaced struct df_ref * with df_ref.
3864         (union_defs, replace_ref): Use macros to hide references to df_refs.
3865         * global.c (compute_regs_asm_clobbered, build_insn_chain):
3866         Replaced struct df_ref * with df_ref.
3867         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3868         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
3869         Replaced struct df_ref * with df_ref.
3870         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3871         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3872         with df_ref.
3873         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3874         * df-byte-scan.c (df_compute_accessed_bytes_extract,
3875         df_compute_accessed_bytes_strict_low_part,
3876         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3877         Replaced struct df_ref * with df_ref.
3878         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3879         * init-regs.c (initialize_uninitialized_regs): Replaced struct
3880         df_ref * with df_ref.
3881         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3882         check_dependency, check_dependencies, record_uses): Replaced
3883         struct df_ref * with df_ref.
3884         (invariant_for_use, check_dependency): Use macros to hide
3885         references to df_refs.
3886         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3887         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3888         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3889         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3890         references to df_refs.
3891         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3892         with df_ref.
3893         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3894         * df-problems.c (df_rd_bb_local_compute_process_def,
3895         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3896         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3897         df_chain_remove_problem, df_chain_create_bb_process_use,
3898         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3899         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3900         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3901         df_byte_lr_simulate_artificial_refs_at_top,
3902         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3903         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3904         df_simulate_uses, df_simulate_artificial_refs_at_end,
3905         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3906         df_ref.
3907         (df_chain_dump): Use macros to hide references to df_refs.
3908         * config/mips/mips.c (r10k_simplify_address): Replaced struct
3909         df_ref * with df_ref.
3910         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3911         mark_artificial_uses, mark_reg_dependencies,
3912         byte_dce_process_block): Replaced struct df_ref * with df_ref.
3913
3914 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
3915
3916         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3917         head comment.
3918         (array_ref_element_size): Likewise.
3919         (array_ref_low_bound): Likewise.
3920         (array_ref_up_bound): Likewise.
3921         * expr.c (contains_packed_reference): Likewise.
3922         (array_ref_element_size): Likewise.
3923         (array_ref_low_bound): Likewise.
3924         (array_ref_up_bound): Likewise.
3925         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3926         with ARRAY_RANGE_REF.
3927         (idx_find_step): Likewise.
3928         (idx_record_use): Likewise.
3929         (strip_offset_1): Likewise.
3930         (idx_remove_ssa_names): Likewise.
3931
3932 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
3933             Andi Kleen  <ak@linux.intel.com>
3934
3935         * config/i386/cpuid.h (__cpuid_count): New defines.
3936         * config/i386/driver-i386.c (struct cache_desc): New structure.
3937         (describe_cache): Use struct cache_desc to pass cache descriptions.
3938         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3939         (detect_caches_amd): Use struct cache_desc to describe caches.
3940         (decode_caches_intel): Use struct cache_desc to pass cache
3941         descriptions.  Update descriptions to match latest (rev -032,
3942         December 2007) CPUID documentation.  Do not check valid bit here.
3943         Check for Xeon MP value 0x49 problems.
3944         (detect_caches_cpuid2): New function, split from detect_caches_intel.
3945         Check valid bit before calling decode_caches_intel.  Detect number
3946         of times to repeat CPUID instruction.
3947         (detect_caches_cpuid4): New function.
3948         (detect_caches_intel): Depending on max_level, call
3949         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
3950         only when other methods fail to provide valid L2 cache description.
3951
3952 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3953
3954         PR middle-end/37608
3955         * pa.md (call, call_value): Generate an rtx for register r4 and pass
3956         it to PIC call patterns.
3957         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
3958         code generation and attributes from pattern.  Change peephole2 to
3959         split for noreturn case.  Revise split pattern for non noreturn case.
3960         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3961         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3962         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
3963         asserts.
3964
3965 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
3966
3967         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
3968         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
3969         and fp_type.
3970         (divdf3): Reformat long line.
3971
3972 2008-10-11  Michael J. Eager  <eager@eagercon.com>
3973
3974         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
3975         -mfpu options.
3976         (rs6000_handle_option): Process -mfpu options.
3977         * config/rs6000/rs6000.h (TARGET_XILINX_FPU): New.
3978         (enum fpu_type_t): New.
3979         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
3980         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
3981         fp_type.
3982         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
3983         (floatdidf2): Add TARGET_SINGLE_FPU condition.
3984         * config/rs6000/rs6000.opt (-mfpu): New.
3985         (-mxilinx-fpu): New.
3986         * config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New.
3987         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
3988         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
3989         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
3990         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
3991
3992 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
3993
3994         PR target/35760
3995         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
3996         LO_SUM on Darwin if mode has just one unit.
3997
3998 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
3999
4000         PR debug/37002
4001         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
4002         has been optimized out.
4003
4004 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
4005
4006         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
4007         instead of PIC_DIRECT_ADDR_P.
4008         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
4009         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
4010         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
4011         (PIC_OFFSET_P): Rename to...
4012         (PCREL_SYMOFF_P): ...this.
4013         (PIC_DIRECT_ADDR_P): Delete.
4014         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
4015         PIC_OFFSET_P.
4016         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
4017         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
4018         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
4019         * config/sh/sh.c (print_operand): Remove CONST handling.
4020         (unspec_caller_rtx_p): Rewrite to use split_const and check
4021         the operands of UNSPEC bases.
4022         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
4023         with (unspec [A B] UNSPEC_SYMOFF).
4024         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
4025         UNSPEC_PCREL_SYMOFF.
4026         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
4027         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
4028         (UNSPEC_EXTRACT_U16): Likewise.
4029         (UNSPEC_SYMOFF): Likewise.
4030         (UNSPEC_PCREL_SYMOFF): Likewise.
4031         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
4032         of constants.
4033         (movsi_const_16bit): Likewise.
4034         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
4035         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
4036         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
4037         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
4038         with (unspec [A B] UNSPEC_SYMOFF).
4039         (symPLT_label2reg): Replace (minus A (minus B pc)) with
4040          (unspec [A B] PCREL_UNSPEC_SYMOFF).
4041         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
4042         (Csu): Likewise UNSPEC_EXTRACT_U16.
4043         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
4044         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
4045
4046 2008-10-10  Stepan Kasal  <skasal@redhat.com>
4047
4048         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
4049         for loop strip mining and loop blocking.
4050
4051 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
4052
4053         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
4054         vary types depending on debug info.
4055