OSDN Git Service

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