OSDN Git Service

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