OSDN Git Service

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