OSDN Git Service

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