OSDN Git Service

a38894e44e01e8a33c78ada70987c8ab2b3333b8
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-12-06  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/20983
4         * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
5         (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
6         BUILT_IN_VA_COPY and BUILT_IN_VA_END.
7
8         * target.h (struct ggc_target): Add expand_builtin_va_start
9         hook.
10         * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
11         (TARGET_INITIALIZER): Add it.
12         * builtins.c (expand_builtin_va_start): Use
13         targetm.expand_builtin_va_start hook instead of
14         EXPAND_BUILTIN_VA_START macro.
15         * alpha/alpha.c (alpha_va_start): Made static.
16         (override_options): Clear targetm.expand_builtin_va_start if
17         TARGET_UNICOSMK.
18         (TARGET_EXPAND_BUILTIN_VA_START): Define.
19         * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
20         * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
21         * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
22         * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
23         * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
24         (xtensa_va_start): Made static.
25         * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
26         * pa/pa-protos.h (hppa_va_start): Remove prototype.
27         * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
28         * pa/pa.c (hppa_va_start): Made static, add prototype.
29         (TARGET_EXPAND_BUILTIN_VA_START): Define.
30         * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
31         (TARGET_EXPAND_BUILTIN_VA_START): Define.
32         * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
33         * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
34         * i386/i386.c (override_options): Clear
35         targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
36         (ix86_va_start): Made static.
37         (TARGET_EXPAND_BUILTIN_VA_START): Define.
38         * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
39         * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
40         * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
41         * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
42         * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
43         (TARGET_EXPAND_BUILTIN_VA_START): Define.
44         * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
45         * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
46         (TARGET_EXPAND_BUILTIN_VA_START): Define.
47         (rs6000_override_options): Clear targetm.expand_builtin_va_start if
48         DEFAULT_ABI != ABI_V4.
49         * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
50         * spu/spu.c (spu_va_start): Made static, add prototype.
51         (TARGET_EXPAND_BUILTIN_VA_START): Define.
52         * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
53         * spu/spu-protos.h spu_va_start): Remove prototype.
54         * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
55         * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
56         Remove prototype.
57         * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made
58         static.
59         (TARGET_EXPAND_BUILTIN_VA_START): Define.
60         * s390/s390-protos.h (s390_va_start): Remove prototype.
61         * s390/s390.c (s390_va_start): Made static.
62         (TARGET_EXPAND_BUILTIN_VA_START): Define.
63         * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
64         * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
65         * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
66         * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
67         (TARGET_EXPAND_BUILTIN_VA_START): Define.
68         * arc/arc.c (arc_va_start): Made static, add prototype.
69         (TARGET_EXPAND_BUILTIN_VA_START): Define.
70         * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
71         * arc/arc-protos.h (arc_va_start): Remove prototype.
72         * mt/mt-protos.h (mt_va_start): Remove prototype.
73         * sparc/sparc.c (sparc_va_start): Made static, add prototype.
74         (TARGET_EXPAND_BUILTIN_VA_START): Define.
75         * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
76         * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
77         * sh/sh.c (sh_va_start): Made static, add prototype.
78         (TARGET_EXPAND_BUILTIN_VA_START): Define.
79         * sh/sh-protos.h (sh_va_start): Remove prototype.
80         * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
81         * mips/mips-protos.h (mips_va_start): Remove prototype.
82         * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
83         * mips/mips.c (mips_va_start): Made static.
84         (TARGET_EXPAND_BUILTIN_VA_START): Define.
85
86 2007-12-05  Uros Bizjak  <ubizjak@gmail.com>
87
88         * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
89         "flag_tree_parallelize_loops > 1".
90         
91 2007-12-06  Zdenek Dvorak  <ook@ucw.cz>
92             Dorit Nuzman  <dorit@il.ibm.com>
93             Jakub Jelinek  <jakub@redhat.com>
94
95         PR tree-optimization/34005
96         * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
97         * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
98         (gimplify_pure_cond_expr): New function.
99         (generic_expr_could_trap_p): New function.
100         (gimplify_cond_expr): Call gimplify_pure_cond_expr.
101         (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
102
103 2007-12-06  Andreas Krebbel  <krebbel1@de.ibm.com>
104
105         * config/s390/s390.c (s390_emit_stack_tie): New function.
106         (s390_emit_prologue): Emit a stack tie when writing to the
107         f8-f15 stack slots.
108         * config/s390/s390.md ("stack_tie"): New insn definition.
109
110 2007-12-06  Ben Elliston  <bje@au.ibm.com>
111
112         * SERVICE: Remove.
113         * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
114
115 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
116
117         PR middle-end/34337
118         * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
119         number of bits set in C1 if a mode mask for some mode can be used
120         instead.
121
122 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
123
124         * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
125         fixes.
126
127 2007-12-05  Richard Guenther  <rguenther@suse.de>
128
129         PR tree-optimization/34138
130         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
131         Do not forward propagate addresses if that changes volatileness of
132         the pointed-to type.
133
134 2007-12-05  Uros Bizjak  <ubizjak@gmail.com>
135
136         PR target/34312
137         * config/i386/i386.c (ix86_function_regparm): Also check for fixed
138         registers when checking that regparm registers are available.
139         Lower regparm value due to fixed registers usage in addition to
140         global regs usage.
141
142 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
143
144         * sparseset.c: Include config.h and system.h before sparseset.h.
145         * sparseset.h: Remove inclusion of system.h.
146
147 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
148             Richard Sandiford  <rsandifo@nildram.co.uk>
149
150         * optabs.c (init_insn_codes): New function.
151         (new_optab): Delete.
152         (init_optab, init_optabv): Don't call new_optab.
153         (init_convert_optab): Don't clear the insn codes.
154         (init_optabs): Call init_insn_codes.
155
156 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
157
158         * omp-low.c (optimize_omp_library_calls): New function.
159         (expand_omp_parallel): Call it if optimizing.
160
161         PR middle-end/34134
162         * stmt.c (expand_stack_restore): Call expand_normal on var to get
163         rtx for it instead of assuming it will be a VAR_DECL.
164
165 2007-12-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
166
167         * c-parser (c_parser_statement_after_labels): Move error from here...
168         (c_parser_label): ... to here. Check that the declaration is not
169         actually just another label.
170
171 2007-12-04  Richard Guenther  <rguenther@suse.de>
172
173         PR middle-end/34334
174         PR middle-end/34222
175         * tree-ssa-operands.c (get_addr_dereference_operands): If we
176         fall back to using the SMTs aliases, make sure to add virtual
177         operands for the SMT itself.
178         (create_ssa_artificial_load_stmt): Fix typo.  Make sure to also
179         clear the loaded and stored symbols bitmaps.
180
181 2007-12-04  Ben Elliston  <bje@au.ibm.com>
182
183         * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
184
185 2007-12-04  Ben Elliston  <bje@au.ibm.com>
186
187         * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
188
189 2007-12-03  Steven Bosscher  <stevenb.gcc@gmail.com>
190
191         PR middle-end/33713
192         * doc/invoke.texi: Remove -fforce-addr documentation.
193         * expr.c (emit_move_insn): Remove use of flag_force_addr.
194         (expand_expr_real_1): Same.
195         (do_tablejump): Same.
196         Call memory_address instead of memory_address_noforce.
197         * expr.h (memory_address_noforce): Remove prototype.
198         * explow.c (memory_address): Remove support for flag_force_addr.
199         (validize_mem): Same.
200         (memory_address_noforce): Remove.
201         * common.opt: Add dummy documentation for -fforce-addr.
202         * combine.c (can_combine_p): Remove -fforce-addr comment.
203         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
204         flag_force_addr.
205         * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
206         relating to memory_address_noforce.
207         * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
208         * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
209         
210 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
211
212         * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
213         with !ctx->is_nested.
214         (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
215         even if !ctx->is_nested.
216         (lower_copyprivate_clauses, lower_send_clauses,
217         lower_send_shared_vars): Call lookup_decl_in_outer_ctx
218         unconditionally.
219
220         PR middle-end/29749
221         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
222         (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
223         and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
224         (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
225         (X & C2) << C1 into (X << C1) & (C2 << C1) and
226         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
227         optimizations.
228
229         PR tree-optimization/33453
230         * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
231         for pointer addition.
232         * tree-parloops.c (canonicalize_loop_ivs): Likewise.
233         (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
234         var_copy.
235
236 2007-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>
237
238         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
239         necessary.
240
241 2007-12-03  Razya Ladelsky <razya@il.ibm.com>
242
243         * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
244
245 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
246
247         PR middle-end/34317
248         * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
249         * common.opt (ftree-store-copy-prop): Use the same help text as for
250         other nop switches.
251
252 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
253             Revital Eres  <eres@il.ibm.com>
254
255         * modulo-sched.c (calculate_must_precede_follow,
256         try_scheduling_node_in_cycle): New functions.
257         (sms_schedule_by_order): Call the new functions.
258         (ps_insn_find_column): Use must_follow and must_precede only if
259         they are not NULL.
260         (ps_insn_advance_column): Likewise.
261
262 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
263             Revital Eres  <eres@il.ibm.com>
264
265         * modulo-sched.c (get_sched_window): Fix the direction of the
266         scheduling window and add dump info.
267
268 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
269
270         * config/sh/sh.md (cmpgeusi_t): Fix condition.
271
272 2007-11-30  Jan Hubicka  <jh@suse.cz>
273
274         * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
275
276 2007-11-30  Seongbae Park <seongbae.park@gmail.com>
277
278         PR rtl-optimization/34171
279         * cfgrtl.c (update_bb_for_insn_chain): New function,
280         refactored from update_bb_for_insn.
281         (update_bb_for_insn): Call update_bb_for_insn.
282         (rtl_merge_blocks, try_redirect_by_replacing_jump):
283         Replace a loop with update_bb_for_insn_chain call.
284         (cfg_layout_merge_blocks): Add a call to
285         update_bb_for_insn_chain. Replace the for loop
286         with a call to update_bb_for_insn_chain.
287
288 2007-11-30  Ben Elliston  <bje@au.ibm.com>
289
290         * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
291
292 2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
293
294         PR tree-optimization/34244
295         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
296         (record_numbers_of_iterations): New function.
297         (execute_vrp): Cache the numbers of iterations of loops.
298         * tree-scalar-evolution.c (scev_reset_except_niters):
299         New function.
300         (scev_reset): Use scev_reset_except_niters.
301         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
302
303 2007-11-29  Jan Hubicka  <jh@suse.cz>
304             Jakub Jelinek  <jakub@redhat.com>
305
306         PR tree-optimization/33434
307         * tree-inline.c (setup_one_parameter): If the value passed to
308         a parameter is never used, don't set it up.
309
310 2007-11-29  Jakub Jelinek  <jakub@redhat.com>
311
312         PR target/32130
313         * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
314         * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
315
316 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
317
318         * Makefile.in: Use separate vpath lines for each path.
319
320 2007-11-29  Ben Elliston  <bje@au.ibm.com>
321
322         * SERVICE: Update URL.
323
324 2007-11-28  Jakub Jelinek  <jakub@redhat.com>
325
326         PR tree-optimization/34140
327         * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
328         loop->header has virtual phi nodes.
329
330 2007-11-28  Richard Sandiford  <rsandifo@nildram.co.uk>
331
332         PR target/32406
333         * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
334         of GP register, if valid and fixed.
335
336         Revert:
337         2007-06-21  David Daney  <ddaney@avtrex.com>
338
339         PR target/32406
340         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
341         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
342         (exception_receiver): Renamed to ...
343         (nonlocal_goto_receiver): ... this.
344
345 2007-11-27  H.J. Lu  <hongjiu.lu@intel.com>
346             Joey Ye <joey.ye@intel.com>
347
348         PR target/34001
349         * config/i386/i386.c (function_arg_32): Don't pass aggregate
350         arguments in ECX/EDX for fastcall.
351
352 2007-11-28  Rask Ingemann Lambertsen  <rask@sygehus.dk>
353
354         * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
355         asm to macro.
356         * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
357         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
358
359 2007-11-28  Ben Elliston  <bje@au.ibm.com>
360
361         * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
362         (maix32): Add Negative(maix64).
363
364 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
365
366         PR tree-optimization/34016
367         * tree-ssa-loop.c (pass_linear_transform): Add
368         TODO_update_ssa_only_virtuals to todo_flags_finish.
369
370 2007-11-27  Eric B. Weddington  <eric.weddington@atmel.com>
371
372         * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
373         * config/avr/avr.h (LINK_SPEC): Likewise.
374         (CRT_BINUTILS_SPECS): Likewsie.
375         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
376         
377 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
378
379         PR target/34225
380         * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
381         MEM_SIZE is set on all MEMs.
382
383 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
384
385         * config/s390/s390.opt (mhard-float): Add the option to be
386         overridden.  That was missing in my last patch.
387
388 2007-11-27  Richard Guenther  <rguenther@suse.de>
389
390         PR tree-optimization/34241
391         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
392         to only delete real conversion chains.
393
394 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
395
396         * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
397         mhard-float, mlong-double-64, mlong-double-128): Add the
398         option to be overridden.
399
400 2007-11-27  Richard Guenther  <rguenther@suse.de>
401
402         * builtins.c (fold_builtin_1): Verify the argument types
403         of BUILT_IN_ISNORMAL.
404         (fold_builtin_n): Verify the number of arguments to variadic
405         built-in functions.
406
407 2007-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
408
409         * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
410         * doc/invoke.texi (Blackfin Options): Document the effects.
411
412 2007-11-27  Ben Elliston  <bje@au.ibm.com>
413
414         * config/rs6000/sysv4.opt (m32): Add Negative(m64).
415         (m64): Add Negative(m32).
416         * config/rs6000/darwin.opt (m32): Add Negative(m64).
417         (m64): Add Negative(m32).
418
419 2007-11-26  Eric Botcazou  <ebotcazou@adacore.com>
420
421         * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
422
423 2007-11-26  Michael Meissner  <michael.meissner@amd.com>
424
425         PR target/34077
426         * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
427         constant, avoid calling emit_cmp_and_jump_insns.  Use counter_mode
428         to get the mode for loading a pseudo register with a count rather
429         than duplicating code.
430
431 2007-11-25  Eric B. Weddington  <eric.weddington@atmel.com>
432
433         * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
434         * config/avr/avr.h (LINK_SPEC): Likewise.
435         (CRT_BINUTILS_SPECS): Likewsie.
436         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
437
438 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
439         
440         * c-common.c (conversion_warning): Use get_unwidened instead of
441         get_narrower.
442         
443 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
444
445         PR c/23722
446         * c-parser.c (struct c_parser): New bit in_if_block.
447         (c_parser_compound_statement_nostart): Handle unexpected 'else'
448         keyword.
449         (c_parser_statement_after_labels): Set in_if_block to false while
450         parsing.
451         (c_parser_if_body): Don't call c_parser_statement_after_labels if
452         a semicolon is found, just consume it. Don't call
453         c_parser_statement_after_labels if an open brace is found, call
454         c_parser_compound_statement instead.
455         (c_parser_else_body): New.
456         (c_parser_if_statement): Set in_if_block to true when parsing the
457         body of the 'if' statement. Use c_parser_else_body.
458
459 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
460
461         PR c++/34081
462         * c-decl.c (store_parm_decls): Pass 'false' for the new
463         allocate_struct_function parameter.
464         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
465         * tree-parloops.c (create_loop_fn): Likewise.
466         * function.c (push_function_context_to, push_struct_function,
467         init_function_start): Likewise.
468         (allocate_struct_function): Add boolean parameter.
469         * tree.h (allocate_struct_function): Add boolean parameter.
470         * function.h (struct function): Move returns_struct and
471         returns_pcc_struct to the end of the structure definiton.
472
473 2007-11-26  Uros Bizjak  <ubizjak@gmail.com>
474
475         PR target/34215
476         * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
477         virtual registers are already instantiated.
478         (truncxf<mode>2): Ditto.
479         (floatsi<mode>2): Ditto.
480         (floatdisf2): Ditto.
481         (floatdidf2): Ditto.
482
483 2007-11-26  Rask Ingemann Lambertsen  <rask@sygehus.dk>
484
485         PR target/34174
486         * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
487         the address before it is clobbered.
488
489 2007-11-26  Nick Clifton  <nickc@redhat.com>
490
491         * config/mn10300/mn10300.md: (call_internal): Remove mode on
492         operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
493         (call_value_internal): Remove mode on operands 0 and 1 in order to
494         match UNPSEC'ed calls generated in PIC mode.
495         (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
496         two insns.
497
498 2007-11-26  Richard Guenther  <rguenther@suse.de>
499
500         PR middle-end/34233
501         * builtins.c (expand_builtin_pow): Use expand_expr to expand
502         the result of build_call_expr.
503
504 2007-11-26  Steven Bosscher  <stevenb.gcc@gmail.com> 
505             Revital Eres  <eres@il.ibm.com> 
506
507         PR middle-end/34085
508         * bb-reorder.c (insert_section_boundary_note): Clear
509         BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
510
511 2007-11-26  Richard Sandiford  <rsandifo@nildram.co.uk>
512
513         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
514
515 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
516
517         * dwarf2asm.c (splay_tree_compare_strings): New function.
518         (dw2_force_const_mem): Use it.
519
520 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
521
522         * tree.c (type_hash_add): Don't violate strict aliasing rules.
523
524 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
525
526         PR c/27898
527         * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
528         matches between anonymous union fields.
529
530 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>, Jan Hubicka  <jh@suse.cz>
531
532         * tree-ssa-live.c (remove_unused_scope_block_p): Drop
533         declarations and blocks only after inlining.  Check that
534         non-empty blocks are not dropped.
535         * tree-inline.c (expand_call_inline): Check that functions are
536         not inlined too late.
537
538 2007-11-26  Ben Elliston  <bje@au.ibm.com>
539
540         * unwind-dw2-fde.c: Fix comment typo.
541         * unwind-generic.h: Likewise, fix comment typos.
542         
543 2007-11-25  Richard Sandiford  <rsandifo@nildram.co.uk>
544
545         * tree-sra.c (scalarize_use): Adjust the vpos argument to
546         sra_explode_bitfield_assignment in cases where the type is
547         wider than the bitfield.
548
549 2007-11-25  Richard Guenther  <rguenther@suse.de>
550
551         * tree.h (struct tree_block): Move locus member next to flags.
552         * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
553         (SCOPE_LIST_CONCAT): Likewise.
554         (pop_scope): Likewise.
555         * function.c (instantiate_decls_1): Likewise.
556         (setjmp_vars_warning): Likewise.
557         * emit-rtl.c (set_used_decls): Likewise.
558         * tree-inline.c (add_lexical_block): Likewise.
559
560 2007-11-24  Hans-Peter Nilsson  <hp@axis.com>
561
562         * rtlanal.c (label_is_jump_target_p): Return true for a matching
563         REG_LABEL_TARGET.
564         * reorg.c (fill_slots_from_thread): Correct last change to use
565         NULL_RTX, not NULL.  Outside of REG_NOTES loop, increase and
566         decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
567         * jump.c (mark_jump_label_1): Add comment for last change
568         regarding JUMP_LABEL setting.
569         * gcse.c (add_label_notes): Remove conditional that the label is
570         mentioned in insn before adding regnote.
571         * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
572         single_set insn only feeding a label to a jump through a
573         register that dies there.
574
575 2007-11-23  Dirk Mueller  <dmueller@suse.de>
576             Richard Guenther <rguenther@suse.de>
577
578         PR middle-end/34197
579         * tree-vrp.c (check_array_ref): Move check for valid location..
580         (check_array_bounds) here. Use EXPR_HAS_LOCATION().
581
582 2007-11-23  Hans-Peter Nilsson  <hp@axis.com>
583
584         * reload.c (find_reloads_address_1) <autoincdec cases>:
585         Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
586
587 2007-11-23  Richard Guenther  <rguenther@suse.de>
588             Michael Matz  <matz@suse.de>
589
590         PR tree-optimization/34176
591         * alloc-pool.h (empty_alloc_pool): Declare.
592         * alloc-pool.c (empty_alloc_pool): New function.
593         * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
594         valid table if a lookup from the optimistic table failed.
595         (vn_unary_op_lookup): Likewise.
596         (vn_binary_op_lookup): Likewise.
597         (vn_phi_lookup): Likewise.
598         (process_scc): Clear optimistic tables before every iteration.
599
600 2007-11-23  Richard Guenther  <rguenther@suse.de>
601
602         * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
603         (merge_alias_info): Do verification only if checking is
604         enabled.  Merge flow-sensitive alias information in simple cases.
605         * tree-ssa-operands.c (get_addr_dereference_operands): Also
606         complain about missing NMTs.
607
608 2007-11-23  Jakub Jelinek  <jakub@redhat.com>
609
610         PR c++/34198
611         * c-common.c (conversion_warning): For INTEGER_TYPE to
612         INTEGER_TYPE conversions call get_narrower on expr to avoid
613         spurious warnings from binop shortening or when the implicit
614         conversion can't change the value.
615
616 2007-11-22  Joseph Myers  <joseph@codesourcery.com>
617
618         PR c/14050
619         * c-decl.c (set_array_declarator_inner): Don't give error for
620         static or type qualifiers in abstract declarator.  Remove
621         abstract_p parameter.
622         * c-tree.h (set_array_declarator_inner): Update prototype.
623         * c-parser.c (c_parser_direct_declarator_inner): Update call to
624         set_array_declarator_inner.
625         * doc/standards.texi: Update for C99 TC3.
626
627 2007-11-22  Hans-Peter Nilsson  <hp@bitrange.com>
628
629         * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
630         line in my edit of the last change.
631
632 2007-11-22  Jakub Jelinek  <jakub@redhat.com>
633
634         PR target/33947
635         * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
636         and TREE_READONLY on the fn decl rather than passing a chain
637         of attributes.
638
639 2007-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
640
641         * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
642
643 2007-11-22  Uros Bizjak  <ubizjak@gmail.com>
644
645         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
646         of ix86_arch and ix86_tune into a switch statement.
647         (enum processor_type): Default PROCESSOR_I386 to 0.
648         * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
649         of "ix86_tune == PROCESSOR_K6".
650         (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
651         a switch statement.
652
653 2007-11-22  Tom Tromey  <tromey@redhat.com>
654
655         * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
656         avoid writing into string allocated by ggc_alloc_string.
657
658 2007-11-21  Kaz Kojima  <kkojima@gcc.gnu.org>
659
660         PR target/34155
661         * config/sh/sh.md (binary_sf_op): Remove.
662         (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
663         * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
664         and gen_binary_sf_op1.
665
666 2007-11-21  Hans-Peter Nilsson  <hp@axis.com>
667
668         * regclass.c (init_reg_autoinc): Fix typo preventing test of
669         secondary output reload when setting forbidden_inc_dec_class.
670
671 2007-11-21  Richard Guenther  <rguenther@suse.de>
672
673         PR tree-optimization/34148
674         * tree-ssa-structalias.c (create_variable_info_for): Do not use
675         field-sensitive PTA for single-element structures.
676         * tree-ssa-alias.c (create_overlap_variables_for): Do not create
677         SFTs for single-element structures.
678
679 2007-11-20  Richard Guenther  <rguenther@suse.de>
680
681         PR middle-end/34154
682         * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
683         of the signed INT_CST_LT.
684         * stmt.c (expand_case): Likewise.
685         (estimate_case_costs): Likewise.
686
687 2007-11-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
688
689         * read-rtl.c (fatal_expected_char): Print EOF as text rather that
690         its binary representation.
691
692 2007-11-20  Richard Guenther  <rguenther@suse.de>
693
694         * tree-ssa-operands.c (add_virtual_operand): Consistently prune
695         accesses.
696
697 2007-11-20  Thiemo Seufer  <ths@mips.com>
698
699         * config/mips/mips.c (mips_file_start): Add support for
700         flagging 32-bit code with -mfp64 floating-point.
701
702 2007-11-20  Jakub Jelinek  <jakub@redhat.com>
703
704         PR c/34146
705         * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
706         (c_gimplify_expr): Use it.
707
708 2007-11-20  Ben Elliston  <bje@au.ibm.com>
709
710         * config/spu/spu_mfcio.h: Fix typo.
711
712 2007-11-20  Ben Elliston  <bje@au.ibm.com>
713
714         * unwind.inc: Comment that unwind-sjlj.c includes this file.
715
716 2007-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
717             Ben Elliston  <bje@au.ibm.com>
718
719         * config/spu/mfc_tag_release.c: New file.
720         * config/spu/mfc_multi_tag_release.c: Likewise.
721         * config/spu/mfc_multi_tag_reserve.c: Likewise.
722         * config/spu/mfc_tag_release.c: Likewise.
723         * config/spu/mfc_tag_reserve.c: Likewise.
724         * config/spu/mfc_tag_table.c: Likewise.
725         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
726         (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
727         * config/spu/spu_mfcio.h: Avoid <stdint.h>.
728         (uint64_t): Typedef if __IN_LIBGCC2 is defined.
729         (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
730         (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
731         mfc_multi_tag_release): Likewise.
732         (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
733         __mfc_multi_tag_release): Declare.
734
735 2007-11-19  Jason Merrill  <jason@redhat.com>
736
737         PR debug/28834, debug/29436, c/32326
738         * tree.c (build_type_attribute_qual_variant): Refuse to make
739         a distinct copy of a struct/enum type.  Use build_distinct_type_copy.
740         * doc/extend.texi (Type Attributes): Don't encourage people to add
741         attributes to struct/enum types in a typedef.  Fix
742         transparent_union example.
743
744         * tree-inline.c (remap_type_1): Remove code that's redundant with
745         remap_type.
746         (build_duplicate_type): Set id.copy_decl.
747         * c-common.c (handle_transparent_union_attribute): Simplify logic.
748
749 2007-11-19  Peter Bergner  <bergner@vnet.ibm.com>
750
751         * config/rs6000/rs6000.c (invalid_e500_subreg,
752         rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
753         rs6000_legitimize_address, rs6000_legitimize_reload_address,
754         rs6000_legitimate_address, function_arg_advance,
755         spe_build_register_parallel, rs6000_spe_function_arg,
756         rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
757         emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
758         rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
759         TDmode similarly to DFmode and TFmode.
760         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
761         DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
762
763 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
764
765         * stor-layout.c (lang_adjust_rli): Delete.
766         (set_lang_adjust_rli): Likewise.
767         (layout_type): Do not call lang_adjust_rli hook.
768         * tree.h (set_lang_adjust_rli): Delete.
769
770 2007-11-19  Bernd Schmidt  <bernd.schmidt@analog.com>
771         
772         * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
773         n_dregs_to_save and n_pregs_to_save.
774         (n_pregs_to_save, n_dregs_to_save): Use it.  New argument CONSECUTIVE;
775         all callers changed.
776         (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
777         able to save single D/P registers that aren't saved by the push/pop
778         multiple insns.
779
780 2007-11-19  Richard Guenther  <rguenther@suse.de>
781
782         PR tree-optimization/34099
783         * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
784         MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
785         if only one operand is undefined.
786
787 2007-11-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
788
789         PR tree-optimization/34036
790         * opts.c (set_fast_math_flags): Do not set flags in common
791         with set_unsafe_math_optimizations_flags, invoke it directly.
792         (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
793         and flag_signed_zeros.
794         * toplev.c (process_options): Force flag_associative_math to 0 and
795         warn, if it is set and either flag_trapping_math or flag_signed_zeros
796         is set too.
797         * doc/invoke.texi (Optimize Options): Document the new behavior
798         of -funsafe-math-optimizations, that -fassociative-math requires
799         both -fno-signed-zeros and -fno-trapping-math and make it clear
800         that -fno-trapping-math requires -fno-signaling-nans.  Refactor
801         documentation of -ffast-math.
802
803 2007-11-18  Jakub Jelinek  <jakub@redhat.com>
804
805         PR rtl-optimization/34132
806         * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
807         and insn.
808
809         PR middle-end/33335
810         * optabs.h (optab_table): Change type to struct optab from optab.
811         (convert_optab_table): Similarly.
812         Adjust all _optab macros to expand to addresses of optab_table
813         resp. convert_optab_table elements rather than the values of the
814         elements.
815         * optabs.c (optab_table): Change typype to struct optab from optab.
816         If compiled by recent GCC, initialize all the insn_code fields in
817         the array using designated range initializers.
818         (convert_optab_table): Similarly.
819         (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
820         set_conv_libfunc): Into libfunc_entry's optab field store index within
821         optab_table resp. convert_optab_table array instead of difference
822         between two separately malloced addresses.
823         (new_optab): Add op argument, don't return anything.  Initialize
824         just the insn_code field in handlers array and only when needed.
825         (init_optab, init_optabv): Add op argument, don't return anything.
826         Adjust new_optab caller.
827         (new_convert_optab): Removed.
828         (init_convert_optab): Add op argument, don't return anything, don't
829         call new_convert_optab.  If needed, initialize insn_code field in
830         handlers array.
831         (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
832         callers.
833         (debug_optab_libfuncs): Adjust uses of optab_table and
834         convert_optab_table arrays.
835
836 2007-11-18  Richard Guenther  <rguenther@suse.de>
837
838         PR tree-optimization/34127
839         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
840         Make code match up the comments, require compatibility of the
841         pointed-to types.
842
843 2007-11-17  Richard Guenther  <rguenther@suse.de>
844
845         PR middle-end/34130
846         * fold-const.c (extract_muldiv_1): Do not move negative
847         constants inside ABS_EXPR.
848
849 2007-11-16  Ian Lance Taylor  <iant@google.com>
850
851         * collect2.c (dump_file): If a demangled symbol is followed by a
852         space, make sure we output at least one space.
853
854 2007-11-16  Richard Guenther  <rguenther@suse.de>
855
856         PR middle-end/34030
857         * fold-const.c (fold_binary): Use correct types for folding
858         1 << X & Y to Y >> X & 1.
859
860 2007-11-16  Richard Guenther  <rguenther@suse.de>
861
862         PR tree-optimization/33870
863         * tree.h (struct tree_memory_tag): Add base_for_components flag.
864         (struct tree_struct_field_tag): Remove nesting_level field.
865         (SFT_NESTING_LEVEL): Remove.
866         (SFT_BASE_FOR_COMPONENTS_P): Add.
867         * tree-flow.h (struct fieldoff): Remove nesting_level field.  Add
868         base_for_components flag.
869         (push_fields_onto_fieldstack): Remove nesting_level parameter.
870         * tree-ssa-alias.c (create_sft): Likewise.  Add base_for_components
871         parameter.
872         (create_overlap_variables_for): Deal with it.
873         * tree-dfa.c (dump_subvars_for): Likewise.
874         (dump_variable): Likewise.
875         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
876         Set base_for_components for first elements of sub-structures.
877         (create_variable_info_for): Handle base_for_components.
878         (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
879         pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
880         * tree-ssa-operands.c (ref_nesting_level): Remove.
881         (add_vars_for_offset): Remove full_ref parameter, always add
882         the offset of the pointed-to SFT.
883         (add_virtual_operand): Adjust for changed signature of
884         add_vars_for_offset.
885
886 2007-11-16  Sa Liu  <saliu@de.ibm.com>
887
888         * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined 
889         floatunssidf2 and floatunsdidf2.
890
891 2007-11-16  Richard Guenther  <rguenther@suse.de>
892
893         PR tree-optimization/34113
894         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
895         Use correct conversion direction for checking type compatibility.
896
897 2007-11-16  Richard Guenther  <rguenther@suse.de>
898
899         PR tree-optimization/34099
900         * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
901         that produce UNDEFINED result if at least one of its operands
902         is UNDEFINED.  By default the result is only UNDEFINED if all
903         operands are UNDEFINED.
904
905 2007-11-16  Jakub Jelinek  <jakub@redhat.com>
906
907         PR driver/30460
908         * gcc.c (init_spec): Don't initialize asm_debug here...
909         (main): ... but here.
910
911 2007-11-07  Tom Tromey  <tromey@redhat.com>
912
913         * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. 
914         * tree-parloops.c (create_loop_fn): Use set_cfun.
915         * gengtype.c (open_base_files): Emit #undef cfun.
916         * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
917         * function.h (cfun): New define.
918         * function.c: Undefine cfun.
919
920 2007-11-07  Eric B. Weddington  <eweddington@cso.atmel.com>
921
922         * config/avr/avr.c (avr_mcu_types): Add attiny88.
923         * config/avr/avr.h (LINK_SPEC): Likewise.
924         (CRT_BINUTILS_SPECS): Likewsie.
925         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
926
927 2007-11-15  Jakub Jelinek  <jakub@redhat.com>
928
929         PR middle-end/23848
930         * tree-ssa-ccp.c (optimize_stack_restore): New function.
931         (execute_fold_all_builtins): Call optimize_stack_restore for
932         BUILT_IN_STACK_RESTORE.
933
934 2007-11-15  Paolo Bonzini  <bonzini@gnu.org>
935
936         * fwprop.c (try_fwprop_subst): Skip profitability check for forward
937         propagation into an address; that's done in should_replace_address.
938                 
939 2007-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
940
941         * config/spu/spu-protos.h (legitimate_const): Remove prototype.
942         * config/spu/spu.c (legitimate_const): Remove.
943         (classify_immediate): Inline call to legitimate_const.
944         (spu_legitimate_address): Likewise.  Allow SYMBOL_REF + CONST_INT
945         for any constant, not just -512 .. 511.
946
947 2007-11-15  Sa Liu  <saliu@de.ibm.com>
948
949         * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
950         condition from HONOR_NANS test.
951         * config/spu/spu.md (ceq_df): Always generate comparison code
952         inline, including checks for NaNs and infinities.
953         (cgt_df): Likewise.
954         (cgt_v2df): Likewise.
955         (cmpdf): Make this expander unconditional.
956
957 2007-11-15  Richard Guenther  <rguenther@suse.de>
958
959         * tree-ssa-alias.c (create_overlap_variables_for): Make sure
960         to only create SFTs if we also create variable infos for PTA.
961         * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
962
963 2007-11-15  Richard Guenther  <rguenther@suse.de>
964
965         * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
966         type for TBAA pruning.
967         (find_what_p_points_to): Call set_uids_in_ptset with the original
968         pointer, not the decl of the solution we collapsed to.
969
970 2007-11-14  David Daney  <ddaney@avtrex.com>
971
972         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
973         to find sigcontext.
974
975 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
976
977         PR target/33923
978         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
979         for registers in BR_REGS class.
980
981 2007-11-14  Jakub Jelinek  <jakub@redhat.com>
982
983         PR middle-end/34088
984         * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
985         init_ssa_operands has not been called for cfun.
986
987 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
988
989         PR tree-optimization/34046
990         * cfg.c (update_bb_profile_for_threading): Avoid the division for the
991         scaling if the old probability is greater than the new base.
992
993 2007-11-14  Sebastian Pop  <sebastian.pop@amd.com>
994
995         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
996         unused edges after loop duplication.
997
998 2007-11-14  Uros Bizjak  <ubizjak@gmail.com>
999
1000         * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
1001         (enum target_cpu_default): ... this enum.
1002         (TARGET_CPU_DEFAULT_NAMES): Remove macro.  Move initializer to ...
1003         * config/i386/i386.c (override_options): ... here.
1004         * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
1005         TARGET_CPU_DEFAULT_i486.
1006
1007 2007-11-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1008
1009         * global.c (rest_of_handle_global_alloc): Fix comment typos.
1010         * config/sh/sh.c (sh_rtx_costs): Likewise.
1011         * ChangeLog: Likewise.
1012
1013 2007-11-13  Sebastian Pop  <sebastian.pop@amd.com>
1014
1015         * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
1016         should not be of pointer type.
1017
1018 2007-11-13  Michael Meissner  <michael.meissner@amd.com>
1019
1020         * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
1021
1022 2007-11-13  Sterling Augustine  <sterling@tensilica.com>
1023             Bob Wilson  <bob.wilson@acm.org>
1024         
1025         * config/xtensa/unwind-dw2-xtensa.c: New.
1026         * config/xtensa/unwind-dw2-xtensa.h: New.
1027         * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1028         (DWARF2_UNWIND_INFO): Remove.
1029         (DWARF_FRAME_REGISTERS): Define.
1030         (EH_RETURN_DATA_REGNO): Define.
1031         * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
1032         (eh_return): New.
1033         * config/xtensa/t-xtensa (LIB2ADDEH): Define.
1034         
1035 2007-11-13  Jakub Jelinek  <jakub@redhat.com>
1036
1037         * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
1038         -fsched-stalled-insns.
1039
1040         PR tree-optimization/34063
1041         * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
1042         as first chrec_fold_plus operand rather than second.
1043
1044 2007-11-13  Diego Novillo  <dnovillo@google.com>
1045
1046         PR tree-optimization/33870
1047         * tree.h (strcut tree_memory_tag): Add field unpartitionable.
1048         Remove field in_nested_struct.
1049         (struct tree_struct_field_tag): Add field nesting_level.
1050         (sft_in_nested_struct): Remove.
1051         (sft_nesting_level): Define.
1052         (sft_unpartitionable_p): Define.
1053         * tree-ssa-alias.c (mem_sym_score): If mp->var is not
1054         partitionable, return long_max.
1055         (compute_memory_partitions): Do not partition sfts marked
1056         unpartitionable.
1057         (create_sft): Add argument nesting_level.  Set
1058         sft_nesting_level with it.  Update all users.
1059         (create_overlap_variables_for): Show nesting level.
1060         * tree-dfa.c (dump_subvars_for): Likewise.
1061         (dump_variable): Likewise. Show whether the sft is
1062         partitionable or not.
1063         * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
1064         Add field nesting_level.
1065         * tree-ssa-structalias.c (struct variable_info): Remove
1066         field in_nested_struct.
1067         (push_fields_onto_fieldstack): Add argument nesting_level.
1068         Update all users.  Update documentation. Update pair->nesting_level
1069         with nesting_level.  Make recursive calls with nesting_level + 1.
1070         (set_uids_in_ptset): If an sft is added to the points-to set,
1071         mark it as unpartitionable.
1072         * tree-ssa-operands.c (ref_nesting_level): New.
1073         (add_vars_for_offset): Call it.  Add argument full_ref. Update
1074         callers.  If var is inside a nested structure and the nesting level
1075         of full_ref is lower than the nesting level of var,
1076         adjust offset by the offset of var.
1077
1078 2007-11-13  Victor Kaplansky  <victork@il.ibm.com>
1079
1080         PR tree-optimization/32582
1081         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
1082
1083 2007-11-12  Danny Smith  <dannysmith@users.sourceforge.net>
1084
1085         * doc/extend.texi (dllimport): Document that pointers to dllimport'd
1086         functions can be used as constant.
1087
1088 2007-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1089
1090         PR rtl-optimization/34035
1091         * cse.c (cse_cfg_altered): New global variable.
1092         (cse_jumps_altered): Make boolean.
1093         (recorded_label_ref): Likewise.
1094         (cse_insn): Adjust for above changes.
1095         (cse_extended_basic_block): Likewise.  Set cse_cfg_altered
1096         if dead edges have been purged.
1097         (cse_main): Change return value specification and adjust code.
1098         (rest_of_handle_cse): Adjust for above change.
1099         (rest_of_handle_cse2): Likewise.
1100         * gcse.c (rest_of_handle_gcse): Likewise.
1101
1102 2007-11-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1103             Michael Meissner  <michael.meissner@amd.com>
1104
1105         * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
1106         get the appropriate suffix for the coms* instruction.
1107         (sse5_pcmov_<mode>): Restrict operands of pcmov
1108         for scalar case to be only xmm registers and not memory.
1109
1110         * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
1111         constraints to follow the mnemonics for the pcmov instruction   
1112
1113 2007-11-12  Richard Sandiford  <rsandifo@nildram.co.uk>
1114
1115         PR target/34042
1116         * config/mips/mips.c (mips_return_fpr_single): New function.
1117         (mips_function_value): Use it when returning single-field
1118         aggregates in FPRs.
1119         (mips_expand_call): Handle the PARALLELs created by
1120         mips_return_fpr_single.
1121
1122 2007-11-12  Richard Guenther  <rguenther@suse.de>
1123
1124         PR middle-end/34070
1125         * fold-const.c (fold_binary): If testing for non-negative
1126         operands with tree_expr_nonnegative_warnv_p make sure to
1127         use op0 which has all (sign) conversions retained.
1128
1129 2007-11-12  Richard Guenther  <rguenther@suse.de>
1130
1131         PR middle-end/34027
1132         * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
1133         (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
1134
1135 2007-11-12  Ira Rosen  <irar@il.ibm.com>
1136
1137         PR tree-optimization/33953
1138         * tree-vect-transform.c (vectorizable_operation): In case of SLP,
1139         allocate vec_oprnds1 according to the number of created vector
1140         statements. In case of shift with scalar argument, store scalar operand
1141         for every vector statement to be created for the SLP node. Fix a
1142         comment.
1143
1144 2007-11-10  Steven Bosscher  <stevenb.gcc@gmail.com>
1145
1146         * gcse.c (CUID_INSN): Remove.
1147         (cuid_insn): Ditto.
1148         (alloc_gcse_mem): Don't allocate cuid_insn.
1149         (free_gcse_mem): Don't free cuid_insn.
1150
1151 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
1152
1153         PR fortran/34020
1154         * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
1155         nops.
1156
1157         PR middle-end/34018
1158         * tree-inline.h (copy_body_data): Add regimplify field.
1159         * tree-inline.c (copy_body_r): Set id->regimplify to true
1160         if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
1161         substitutions.
1162         (copy_bb): Clear id->regimplify before walk_tree, if it is
1163         set afterwards, regimplify the whole statement.
1164
1165         PR tree-optimization/33680
1166         * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
1167         if the added cast involves variable length types.
1168
1169 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
1170             Maxim Kuvyrkov  <maxim@codesourcery.com>
1171
1172         * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
1173         instead of TRUE_BARRIER for jumps.  Add register dependencies
1174         even when reg_pending_barrier is set.
1175
1176 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
1177
1178         * haifa-sched.c (haifa_classify_insn): Rename to ...
1179         (haifa_classify_rtx): ...  this.  Improve handling of COND_EXECs,
1180         handle PARALLELs by recursing.  Use it ...  
1181         (haifa_classify_insn): ...  here.  Reimplement.
1182
1183 2007-11-09  Richard Guenther  <rguenther@suse.de>
1184
1185         * bitmap.h (bitmap_single_bit_set_p): Declare.
1186         * bitmap.c (bitmap_single_bit_set_p): New function.
1187         * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
1188         (maybe_create_global_var): Use bitmap_empty_p.
1189
1190 2007-11-09  Paolo Bonzini  <bonzini@gnu.org>
1191             Jakub Jelinek  <jakub@redhat.com>
1192
1193         PR rtl-optimization/34012
1194         * fwprop.c (try_fwprop_subst): Do not replace if the new
1195         SET_SRC has a higher cost than the old one.
1196
1197 2007-11-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1198
1199         PR rtl-optimization/33732
1200         * reload.c (push_reload): Check that the REG_DEAD note was referring
1201         to a hardreg or to a pseudo that has been assigned exactly one hardreg
1202         before considering it in order to select the reload register.
1203         (combine_reloads): Likewise.
1204         (find_dummy_reload): Likewise.
1205
1206 2007-11-09  Richard Guenther  <rguenther@suse.de>
1207
1208         * tree-flow.h (struct ptr_info_def): Make escape_mask a
1209         ENUM_BITFIELD.
1210         (struct ptr_info_def): Likewise.
1211         (enum escape_type): Also use bit zero.
1212
1213 2007-11-09  Richard Guenther  <rguenther@suse.de>
1214
1215         PR tree-optimization/33604
1216         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1217         Disregard changes in CV qualifiers of pointed to types for
1218         forward propagating ADDR_EXPRs.
1219         * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
1220         expression.
1221
1222 2007-11-09  Richard Sandiford  <rsandifo@nildram.co.uk>
1223
1224         * dse.c (find_shift_sequence): Always choose an integer mode for
1225         new_mode.
1226         (replace_read): Require both the read and store mode to be
1227         integer ones.  Remove a then-redundant FLOAT_P check.
1228
1229 2007-11-08  Richard Guenther  <rguenther@suse.de>
1230
1231         * tree-dfa.c (remove_referenced_var): If removing a
1232         variable which has subvars, also remove those from
1233         the referenced vars.  Do not create a variable annotation.
1234
1235 2007-11-08  Bob Wilson  <bob.wilson@acm.org>
1236
1237         * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
1238         argument for gen_entry calls.
1239         * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
1240         (entry): Use the new attribute value.  Remove unused first operand.
1241
1242 2007-11-08  Tom Tromey  <tromey@redhat.com>
1243
1244         * c-parser.c (c_parser_translation_unit): Use location in error.
1245         (c_parser_external_declaration): Likewise.
1246         (c_parser_declaration_or_fndef): Likewise.
1247         (c_parser_enum_specifier): Likewise.
1248         (c_parser_struct_or_union_specifier): Likewise.
1249         (c_parser_struct_declaration): Likewise.
1250         (c_parser_typeof_specifier): Likewise.
1251         (c_parser_parms_list_declarator): Likewise.
1252         (c_parser_asm_string_literal): Likewise.
1253         (c_parser_braced_init): Likewise.
1254         (c_parser_initelt): Likewise.
1255         (c_parser_compound_statement_nostart): Likewise.
1256         (c_parser_statement_after_labels): Likewise.
1257         (c_parser_do_statement): Likewise.
1258         (c_parser_asm_statement): Likewise.
1259         (c_parser_conditional_expression): Likewise.
1260         (c_parser_unary_expression): Likewise.
1261         (c_parser_sizeof_expression): Likewise.
1262         (c_parser_postfix_expression): Likewise.
1263         (c_parser_postfix_expression_after_paren_type): Likewise.
1264         (c_parser_objc_class_instance_variables): Likewise.
1265         (c_parser_objc_method_definition): Likewise.
1266         (c_parser_objc_methodprotolist): Likewise.
1267         (c_parser_pragma): Likewise.
1268         (c_parser_omp_clause_num_threads): Likewise.
1269         (c_parser_omp_clause_schedule): Likewise.
1270         (c_parser_omp_all_clauses): Likewise.
1271         (c_parser_omp_sections_scope): Likewise.
1272         (c_parser_label): Use location of label, not colon.
1273
1274 2007-11-08  Danny Smith  <dannysmith@users.sourceforge.net>
1275
1276         PR target/33774
1277         * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
1278         IN_TARGET_LIBS.
1279
1280 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1281
1282         PR middle-end/33826
1283         * ipa-pure-const.c (static_execute): Added code to keep recursive
1284         functions from being marked as pure or const.
1285         * ipa-utils.c (searchc): Fixed comment.
1286                 
1287 2007-11-08  Tom Tromey  <tromey@redhat.com>
1288
1289         * common.opt (fshow-column): Default to 0.
1290         * configure: Rebuilt.
1291         * configure.ac (--enable-mapped-location): Default to 'yes'.
1292
1293 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1294
1295         * common.opt: Add pointer to doc/options.texi.
1296         * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
1297         -fipa-reference): Add or correct doc.  Sorted options list for -Os
1298         -O, -O2.
1299
1300 2007-11-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1301
1302         PR target/16350
1303         * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
1304         * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
1305         TARGET_BIG_ENDIAN_DEFAULT.  Use for MULTILIB_DEFAULTS.
1306         (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
1307         (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
1308         * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
1309         to TARGET_BIG_ENDIAN_DEFAULT.
1310         (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
1311         * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
1312         to TARGET_BIG_ENDIAN_DEFAULT.
1313
1314 2007-11-07  Diego Novillo  <dnovillo@google.com>
1315
1316         * tree.h (struct tree_struct_field_tag): Move field
1317         in_nested_struct ...
1318         (struct tree_memory_tag): ... here.
1319
1320 2007-11-07  Diego Novillo  <dnovillo@google.com>
1321
1322         PR 33870
1323         * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
1324         (SFT_IN_NESTED_STRUCT): Define.
1325         * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
1326         * tree-flow.h (struct fieldoff): Add field in_nested_struct.
1327         * tree-ssa-structalias.c (struct variable_info): Likewise.
1328         (push_fields_onto_fieldstack): If OFFSET is positive,
1329         set in_nested_struct.
1330         (create_variable_info_for): Copy setting of
1331         in_nested_struct from the field offset object.
1332         (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
1333         variable info object.
1334         * tree-ssa-operands.c (add_vars_for_offset): If VAR
1335         belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
1336
1337 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1338
1339         PR rtl-optimization/33737
1340         * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
1341         target block after computing the probabilities of outgoing edges.
1342         Cap the frequency to BB_FREQ_MAX.
1343         * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
1344         frequency of the basic block if it has been reused.
1345
1346 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1347
1348         PR rtl-optimization/33822
1349         * rtl.h (REG_OFFSET): Fix comment.
1350         * var-tracking.c (INT_MEM_OFFSET): New macro.
1351         (var_mem_set): Use it.
1352         (var_mem_delete_and_set): Likewise.
1353         (var_mem_delete): Likewise.
1354         (same_variable_part_p): Likewise.
1355         (vt_get_decl_and_offset): Likewise.
1356         (offset_valid_for_tracked_p): New predicate.
1357         (count_uses): Do not track locations with invalid offsets.
1358         (add_uses): Likewise.
1359         (add_stores): Likewise.
1360
1361 2007-11-07  Tom Tromey  <tromey@redhat.com>
1362
1363         * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
1364         (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
1365
1366 2007-11-07  Dmitry Zhurikhin  <zhur@ispras.ru>
1367             Andrey Belevantsev  <abel@ispras.ru>
1368
1369         * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
1370         generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
1371         (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
1372         Save calculated max_asap in it.         
1373         (sms_schedule): Calculate maxii using max_asap.
1374
1375 2007-11-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1376
1377         * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
1378         with -mhard-dfp/-mno-hard-dfp.
1379
1380 2007-11-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1381             Jakub Jelinek  <jakub@redhat.com>
1382
1383         PR middle-end/33670
1384         * haifa-sched.c (check_sched_flags): Remove.
1385         (sched_init): Don't call it.
1386
1387 2007-11-06  Diego Novillo  <dnovillo@google.com>
1388
1389         * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
1390         * tree-ssa-operands.c: Tidy top-level comments.
1391         (add_vop): Likewise.
1392         (add_vars_for_offset): Tidy parameter formatting..
1393         (get_addr_dereference_operands): Likewise.
1394         (get_indirect_ref_operands): Likewise.
1395         (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
1396         <OMP_ATOMIC_STORE>: Likewise.
1397
1398 2007-11-06  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1399
1400         PR target/32787
1401         * config/i386/driver-i386.c: Test for __GNUC__ instead of
1402         GCC_VERSION which is always defined.
1403
1404 2007-11-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1405
1406         PR target/30961
1407         * reload1.c (find_reloads): Also check in_reg when handling a
1408         simple move with an input reload and a destination of a hard register.
1409
1410 2007-11-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1411
1412         * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
1413         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
1414         TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
1415         TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1416         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
1417         (m68k_sched_attr_type2): New function.
1418         (sched_adjust_cost_state): New static variable.
1419         (m68k_sched_adjust_cost): New static function implementing
1420         scheduler hook.
1421         (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
1422         New static variables.
1423         (m68k_sched_variable_issue): New static function implementing
1424         scheduler hook.
1425         (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
1426         (sched_dump_split_class): New static function.
1427         (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
1428         variables.
1429         (sched_dump_dfa_class, m68k_sched_dump): New static function.
1430         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1431         m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
1432         m68k_sched_dfa_post_advance_cycle): New static functions implementing
1433         scheduler hooks.
1434
1435         * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
1436         (CPU_UNITS_QUERY): Define.
1437
1438         * config/m68k/cf.md: New file.
1439         * config/m68k/m68.md (cf.md): New include.
1440
1441 2007-11-06  Tom Tromey  <tromey@redhat.com>
1442
1443         PR c++/32256, PR c++/32368:
1444         * function.c (saved_in_system_header): New global.
1445         (push_cfun): Save in_system_header.
1446         (pop_cfun): Restore in_system_header.
1447         (push_struct_function): Save in_system_header.
1448
1449 2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
1450
1451         PR c++/33977
1452         PR c++/33886
1453         * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
1454         (complete_array_type): Set canonical type appropriately.
1455         * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
1456         C and C++ front ends now have different versions of this function,
1457         because the C++ version needs to maintain canonical types here.
1458
1459 2007-11-04  Razya Ladelsky  <razya@il.ibm.com>
1460         
1461         * tree-parloops.c (reduction_info): Remove reduction_init field.
1462         (initialize_reductions): Remove creation of the reduction_init variable.
1463         (struct data_arg): Remove.
1464         (add_field_for_reduction, create_stores_for_reduction): New functions.
1465         (add_field_for_name): Remove reduction handling.
1466         (separate_decls_in_loop): Call add_field_for_reduction,
1467         create_stores_for_reduction.
1468
1469 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
1470
1471         PR tree-optimization/33458
1472         * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
1473         !is_gimple_val PHI argument, gimplify it and insert it on edge.
1474
1475         PR tree-optimization/33993
1476         * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
1477         rather than build_constructor_from_list if all list values are
1478         constants.
1479         (get_initial_def_for_induction): Use build_vector instead of
1480         build_constructor_from_list.
1481
1482 2007-11-05  Mark Mitchell  <mark@codesourcery.com>
1483
1484         PR target/33579
1485         * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
1486         (DECL_FINI_PRIORITY): Likewise.
1487         * tree.c (decl_init_priority_lookup): Remove assert.
1488         (decl_fini_priority_insert): Likewise.
1489         * cgraphunit.c (static_ctors): Make it a VEC.
1490         (static_dtors): Likewise.
1491         (record_cdtor_fn): Adjust accordingly.
1492         (build_cdtor): Generate multiple functions for each initialization
1493         priority.
1494         (compare_ctor): New function.
1495         (compare_dtor): Likewise.
1496         (cgraph_build_cdtor_fns): Sort the functions by priority before
1497         calling build_cdtor.
1498         (cgraph_build_static_cdtor): Put the priority in the function's name.
1499
1500 2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1501
1502         PR driver/32632
1503         * common.opt: Add shared and pie.
1504
1505 2007-11-05  Bob Wilson  <bob.wilson@acm.org>
1506
1507         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
1508         replace references to virtual_stack_vars_rtx in goto_handler.
1509
1510 2007-11-05  Paul Brook  <paul@codesourcery.com>
1511
1512         * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
1513         * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
1514         (arm_file_start): Don't set Tag_ABI_PCS_wchar_t.  Call
1515         arm_lang_output_object_attributes_hook.
1516         * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
1517         (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
1518         * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
1519         prototype.
1520         * config/arm/t-arm.c (arm.o): New rule.
1521         * config/arm/arm-c.c: New file.
1522
1523 2007-11-05  Nick Clifton  <nickc@redhat.com>
1524             Sebastian Pop  <sebastian.pop@amd.com>
1525
1526         PR tree-optimization/32540
1527         PR tree-optimization/33922
1528         * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
1529         * tree-ssa-pre.c: Include params.h.
1530         (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
1531         to limit the maximum length of the PA set for a given block.
1532         * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
1533         * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
1534
1535 2007-11-05  Nathan Sidwell  <nathan@codesourcery.com>
1536
1537         * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1538         __fixunssfDI): Make return type unsigned.
1539         * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1540         __fixunssfDI): Make return type unsigned.
1541
1542 2007-11-05  Jakub Jelinek  <jakub@redhat.com>
1543
1544         PR tree-optimization/33856
1545         * tree-data-ref.c (get_references_in_stmt): Don't add
1546         REFERENCE_CLASS_P trees to references vector if get_base_address
1547         returns NULL on them.
1548
1549 2007-11-05  Alexandre Oliva  <aoliva@redhat.com>
1550
1551         * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
1552
1553 2007-11-04  Andrew Pinski  <pinskia@gmail.com>
1554
1555         PR middle-end/32931
1556         * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
1557         for TRUTH_NOT_EXPR to type.
1558
1559 2007-11-04  Gerald Pfeifer  <gerald@pfeifer.com>
1560
1561         * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
1562
1563 2007-11-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1564
1565         PR fortran/10220
1566         * dwarf2out.c (add_calling_convention_attribute): Change
1567         second argument. Set calling convention to DW_CC_program for
1568         Fortran main program.
1569         (gen_subprogram_die): Adjust to new prototype for
1570         add_calling_convention_attribute.
1571
1572 2007-11-03  Dorit Nuzman  <dorit@il.ibm.com>
1573
1574         PR tree-optimization/33987
1575         * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
1576         Fix indentation.
1577         (vectorizable_reduction): Add type check.
1578
1579 2007-11-03  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1580
1581         PR c/29062
1582         * c-parser.c (c_parser_statement_after_labels): Error if a
1583         declaration is parsed after a label.
1584         
1585 2007-11-03  Daniel Jacobowitz  <dan@codesourcery.com>
1586
1587         PR debug/33921
1588         * reorg.c (emit_delay_sequence): Do not clear the locator on
1589         the jump instruction.
1590
1591 2007-11-03  Jakub Jelinek  <jakub@redhat.com>
1592
1593         PR middle-end/33670
1594         * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
1595         current sched region.
1596
1597 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
1598
1599         * config/ia64/ia64.c (struct reg_write_state): Change into
1600         unsigned short bitfields rather than unsigned int, decrease
1601         first_pred to just 10 bits.
1602         (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
1603         into two char array.
1604         (rws_insn_set, rws_insn_test): New functions.
1605         (in_safe_group_barrier): New variable.
1606         (rws_update): Remove first argument, always set rws_sum array.
1607         (rws_access_regno): Use rws_insn_set macro.  Only call rws_update
1608         or update rws_sum if !in_safe_group_barrier, adjust rws_update
1609         args.
1610         (rtx_needs_barrier): Use rws_insn_test macro.
1611         (safe_group_barrier_needed): Don't save/restore rws_sum array,
1612         instead set/clear in_safe_group_barrier flag.
1613
1614 2007-11-02  Bob Wilson  <bob.wilson@acm.org>
1615
1616         * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
1617         REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
1618         pointer or frame pointer.
1619         * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
1620         (MUST_USE_SJLJ_EXCEPTIONS): Define.
1621         (DWARF2_UNWIND_INFO): Define.
1622         (INCOMING_RETURN_ADDR_RTX): Define.
1623         (DWARF_FRAME_RETURN_COLUMN): Define.
1624
1625 2007-11-02  Tom Tromey  <tromey@redhat.com>
1626
1627         * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
1628         traversing pool.
1629
1630 2007-11-02  Diego Novillo  <dnovillo@google.com>
1631
1632         * langhooks.h (struct lang_hooks_for_callgraph): Remove third
1633         argument from function pointer ANALYZE_EXPR.  Update all users.
1634         * cgraph.c (debug_cgraph_node): New.
1635         (debug_cgraph): New.
1636
1637 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
1638
1639         PR rtl-optimization/33648
1640         * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
1641         the newly created basic block.
1642
1643 2007-11-01  Richard Guenther  <rguenther@suse.de>
1644
1645         * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
1646
1647 2007-11-01  Steven Bosscher  <stevenb.gcc@gmail.com>
1648
1649         PR rtl-optimization/33828
1650         * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
1651         of VBEIN and VBEOUT.
1652
1653 2007-11-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1654
1655         * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
1656         * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
1657         * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
1658
1659 2007-11-01  Nathan Sidwell  <nathan@codesourcery.com>
1660
1661         * gcc.c (getenv_spec_function): Escape the environment variable's
1662         value.
1663
1664 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
1665
1666         * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
1667         show that CSE means common subexpression elimination.  Change wording
1668         for -fsee and define LCM.  Remove capitalization of optimizations
1669         for -ftree-reassoc, -ftree-pre, and -ftree-fre.
1670
1671 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
1672
1673         PR testsuite/25352
1674         * doc/sourcebuild.texi (Test Directives): Document that xfail
1675         has no effect for dg-do except when dg-do-what is "run".
1676
1677 2007-11-01  Tom Tromey  <tromey@redhat.com>
1678
1679         * c-decl.c (grokdeclarator): Set decl source locations.
1680         * c-parser.c (c_parser_enum_specifier): Set location.
1681         (c_parser_struct_or_union_specifier): Likewise.
1682
1683 2007-11-01  Tom Tromey  <tromey@redhat.com>
1684
1685         * print-tree.c (print_node): Print column number.
1686
1687 2007-11-01  Jakub Jelinek  <jakub@redhat.com>
1688
1689         PR debug/33537
1690         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
1691         gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
1692         rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
1693
1694         PR rtl-optimization/33673
1695         * gcse.c (cprop_jump): If a conditional jump has been optimized
1696         into unconditional jump, make the remaining normal edge fallthru
1697         and delete the jump insn.
1698
1699 2007-11-01  Ben Elliston  <bje@au.ibm.com>
1700
1701         * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
1702         (set_mem_attrs_from_reg): Likewise.
1703
1704 2007-11-01  Michael Matz  <matz@suse.de>
1705
1706         PR tree-optimization/33961
1707         * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
1708         (name_to_bb_hash, name_to_bb_eq): Consider and check it.
1709         (add_or_mark_expr): New argument 'store', using it to search
1710         the hash table.
1711         (nt_init_block): Adjust calls to add_or_mark_expr.
1712
1713 2007-10-31  Jakub Jelinek  <jakub@redhat.com>
1714
1715         PR target/31507
1716         * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
1717         for the first push_operand.
1718
1719 2007-10-31  Revital Eres  <eres@il.ibm.com>
1720
1721         * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
1722         reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
1723         vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
1724         movmisalignv2sf, vcondv2sf): New.
1725         (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
1726         UNSPEC_EXTODD_V2SF): Define new constants.
1727         * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
1728         paired_emit_vector_cond_expr): New.
1729         * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
1730         * config/rs6000/rs6000.c (paired_expand_vector_move,
1731         paired_emit_vector_cond_expr, paired_emit_vector_compare):
1732         New functions.
1733         * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
1734
1735 2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>
1736
1737         PR tree-optimization/32377
1738         * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
1739         work also for unknown number of iterations.
1740         (analyze_subscript_affine_affine): Clean up.  Don't fail when the 
1741         number of iterations is not known.
1742
1743 2007-10-31  Richard Guenther  <rguenther@suse.de>
1744
1745         PR middle-end/33779
1746         * fold-const.c (extract_muldiv_1): Make sure to not introduce
1747         new undefined integer overflow.
1748         (fold_binary): Avoid useless conversion.
1749
1750 2007-10-31  Richard Sandiford  <rsandifo@nildram.co.uk>
1751
1752         PR target/33948
1753         * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
1754
1755 2007-10-31  Andreas Krebbel  <krebbel1@de.ibm.com>
1756
1757         * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
1758
1759         * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
1760         with -mhard-dfp/-mno-hard-dfp.
1761         * config/s390/s390.opt: Likewise.
1762         * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
1763         definition.
1764
1765 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
1766
1767         * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
1768
1769 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
1770
1771         * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
1772         optimization options.
1773         (Optimize Options): Add -fdce and -fdse to the list of optimizations
1774         enabled by -O.  Document -fdce and -fdse.
1775
1776 2007-10-30  Jakub Jelinek  <jakub@redhat.com>
1777
1778         PR c++/33709
1779         * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
1780         convert second operand of COMPOUND_EXPR to the original type of
1781         that argument.
1782
1783 2007-10-30  Richard Guenther  <rguenther@suse.de>
1784
1785         * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
1786         of loop adding SFTs as virtual operands.
1787
1788 2007-10-30  Richard Guenther  <rguenther@suse.de>
1789
1790         * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
1791
1792 2007-10-29  Dorit Nuzman  <dorit@il.ibm.com>
1793
1794         PR tree-optimization/32893
1795         * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
1796         STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
1797
1798 2007-10-29  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1799
1800         * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
1801         x86_64 versions.
1802         (sub_ddmmss): Likewise.
1803         (umul_ppmm): Likewise.
1804         (udiv_qrnnd): Likewise.
1805
1806 2007-10-29  Janis Johnson  <janis187@us.ibm.com>
1807
1808         PR testsuite/24841
1809         * doc/sourcebuild.texi (Test Directives): Document that dg-require
1810         directives must come before dg-additional-sources.
1811
1812 2007-10-29  Jakub Jelinek  <jakub@redhat.com>
1813
1814         PR tree-optimization/33723
1815         * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
1816         MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
1817
1818 2007-10-29  Richard Sandiford  <rsandifo@nildram.co.uk>
1819
1820         PR tree-optimization/33614
1821         * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
1822         if they can't be reduced to VECTOR_CSTs and aren't legitimate
1823         initializer constants.
1824
1825 2007-10-29  Richard Guenther  <rguenther@suse.de>
1826
1827         PR tree-optimization/33870
1828         * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
1829         (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
1830         SFTs.
1831
1832 2007-10-29  Richard Guenther  <rguenther@suse.de>
1833
1834         * passes.c (init_optimization_passes): Exchange store_copy_prop
1835         with copy_prop.
1836         * tree-pass.h (pass_store_copy_prop): Remove.
1837         * tree-ssa-copy.c (do_store_copy_prop): Remove.
1838         (stmt_may_generate-copy): Do not handle store_copy_prop.
1839         (get_copy_of_val): Likewise.
1840         (set_copy_of_val): Likewise.
1841         (copy_prop_visit_assignment): Likewise.
1842         (copy_prop_visit_stmt): Likewise.
1843         (copy_prop_visit_phi_node): Likewise.
1844         (init_copy_prop): Likewise.
1845         (execute_copy_prop): Likewise.
1846         (do_copy_prop): Remove.
1847         (gate_store_copy_prop): Likewise.
1848         (store_copy_prop): Likewise.
1849         (pass_store_copy_prop): Likewise.
1850         (pass_copy_prop): Call execute_copy_prop.
1851         * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
1852         * common.opt (ftree-store-copy-prop): Mark obsolete.
1853         * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
1854
1855 2007-10-29  Ian Lance Taylor  <iant@google.com>
1856
1857         * ifcvt.c (noce_can_store_speculate_p): New static function.
1858         (noce_process_if_block): Call it.
1859         (if_convert): Remove recompute_dominance parameter.  Change all
1860         callers.
1861
1862 2007-10-29  Richard Guenther  <rguenther@suse.de>
1863
1864         * tree-flow-inline.h (get_subvar_at): Use binary search.
1865         (get_first_overlapping_subvar): New function to binary search
1866         for the first overlapping subvar.
1867         * tree-ssa-operands.c (add_vars_for_offset): Strip down to
1868         just handle adding subvars for a pointed-to subvar.  Optimize
1869         and use get_first_overlapping_subvar.
1870         (add_vars_for_bitmap): Fold into single caller.
1871         (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
1872         and non pointed-to bits of add_vars_for_offset.
1873
1874 2007-10-29  Revital Eres  <eres@il.ibm.com> 
1875
1876         * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
1877
1878 2007-10-29  Razya Ladelsky  <razya@il.ibm.com>
1879             Zdenek Dvorak  <ook@ucw.cz>
1880
1881         OMP_ATOMIC Changes,
1882         reduction support for automatic parallelization.
1883
1884         * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
1885         OMP_ATOMIC_STORE.
1886         * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
1887         * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
1888         and OMP_ATOMIC_STORE.
1889         * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1890         * gimple-low.c (lower_stmt): Same.
1891         * gimplify.c (gimplify_expr): Same.
1892         (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
1893         gimplify_omp_atomic_mutex): Remove.
1894         (gimplify_omp_atomic): Change it to simply gimplify the
1895         statement instead of expanding it.
1896         * omp-low.c: Add includes to optabs.h, cfgloop.h.
1897         (expand_omp_atomic, expand_omp_atomic_pipeline,
1898         goa_stabilize_expr, expand_omp_atomic_mutex,
1899         expand_omp_atomic_fetch_op): New functions to implement
1900         expansion of OMP_ATOMIC.
1901         (expand_omp, build_omp_regions_1): Add support for
1902         OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
1903         * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
1904         OMP_ATOMIC_STORE.
1905         * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
1906         OMP_ATOMIC_STORE.
1907         * tree-parloops.c: add include to tree-vectorizer.h.
1908         (reduction_info): New structure for reduction.
1909         (reduction_list): New list to represent list of reductions per loop.
1910         (struct data_arg): New helper structure for reduction.
1911         (reduction_info_hash, reduction_info_eq, reduction_phi,
1912         initialize_reductions, create_call_for_reduction,
1913         create_phi_for_local_result, create_call_for_reduction_1,
1914         create_loads_for_reductions, create_final_loads_for_reduction):
1915         New functions.
1916         (loop_parallel_p): Identify reductions, add reduction_list parameter.
1917         (separate_decls_in_loop_name): Support reduction variables.
1918         (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
1919         call create_loads_for_reduction for each reduction.
1920         (canonicalize_loop_ivs): Identify reductions, add reduction_list
1921         parameter.
1922         (transform_to_exit_first_loop): Add reduction support, add
1923         reduction_list parameter.
1924         (gen_parallel_loop): Add reduction_list parameter.  Add call
1925         separate_decls_in_loop with
1926         the new argument.  Traverse reductions and call
1927         initialize_reductions, create_call_for_reduction.
1928         (parallelize_loops): Create and delete the reduction list.
1929         (add_field_for_name): Change use of data parameter.  Add fields for
1930         reductions.
1931         * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
1932         * tree-vect-analyze.c (vect_analyze_loop_form): export it.
1933         * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1934         * tree-inline.c (estimate_num_insns_1): add cases for
1935         OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1936         * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1937         * tree-ssa-operands.c (get_addr_dereference_operands):
1938         New function.  Subroutine of get_indirect_ref_operands.
1939         (get_indirect_ref_operands): Call get_addr_dereference_operands.
1940         (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1941
1942
1943 2007-10-29  Hans-Peter Nilsson  <hp@axis.com>
1944
1945         * config/cris/cris.c: Include df.h.
1946         (cris_address_cost): Add gcc_assert for canonicalization
1947         assumptions.  For PLUS with MULT or register, correct
1948         test for register in other arm.  Tweak comments.
1949
1950 2007-10-28  Richard Guenther  <rguenther@suse.de>
1951
1952         * tree-ssa-operands.c (add_vars_for_offset): Add parameter
1953         telling if the var is to be treated as points-to location.
1954         (add_vars_for_bitmap): Pass true to add_vars_for_offset.
1955         (add_virtual_operand): Only recurse into MPTs if aliases
1956         is from a NMT.
1957
1958 2007-10-28  Richard Guenther  <rguenther@suse.de>
1959
1960         * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
1961         (add_vars_for_bitmap): Do not recurse further.  Only add vars
1962         for pointed-to SFTs.
1963         (add_virtual_operand): Re-instantiate loop to add operands for
1964         aliases.  Recurse into MPTs.
1965         (get_indirect_ref_operands): If we fall back to use a pointers
1966         SMT, make sure to not prune based on the access offset and size.
1967
1968 2007-10-28  Andrew Pinski  <pinskia@gmail.com>
1969
1970         PR tree-opt/33589
1971         * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
1972         the eh information on the statement.
1973
1974 2007-10-28  Richard Guenther  <rguenther@suse.de>
1975
1976         * tree-flow.h (subvar_t): Make it a VEC.
1977         (struct subvar): Remove.
1978         (struct var_ann_d): Use VEC(tree,gc) to store subvars.
1979         * tree-flow-inline.h (get_subvar_at): Adjust iterators over
1980         variable subvars.
1981         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1982         * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
1983         * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
1984         (set_initial_properties): Likewise.
1985         (setup_pointers_and_addressables): Likewise.
1986         (new_type_alias): Likewise.
1987         (create_overlap_variables_for): Likewise.
1988         * tree-dfa.c (dump_subvars_for): Likewise.
1989         * tree-ssa-operands.c (add_vars_for_offset): Likewise.
1990         (get_expr_operands): Likewise.
1991         (add_to_addressable_set): Likewise.
1992         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
1993
1994 2007-10-28  Uros Bizjak  <ubizjak@gmail.com>
1995
1996         PR tree-optimization/33920
1997         * tree-if-conv.c (tree_if_conversion): Force predicate of single
1998         successor bb to true when predecessor bb has NULL predicate.
1999         (find_phi_replacement_condition): Assert that tmp_cond is non-null.
2000
2001 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2002
2003         * config/mips/mips.md: Add combiner patterns for DImode extensions
2004         of HImode and QImode truncations.  Reformat HImode <- QImode pattern
2005         for consistency.
2006
2007 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2008
2009         PR target/33895
2010         * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
2011
2012 2007-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2013
2014         * dce.c (delete_unmarked_insns): Just delete the RETVAL and
2015         LIBCALL notes if they are about to be moved to the same insn.
2016
2017 2007-10-27  Richard Guenther  <rguenther@suse.de>
2018
2019         PR tree-optimization/33870
2020         * tree-ssa-operands.c (add_vars_for_offset): Reduce code
2021         duplication.  Remove redundant call to access_can_touch_variable.
2022         (add_vars_for_bitmap): New helper for recursing over MPT contents.
2023         (add_virtual_operand): Use it.
2024
2025 2007-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2026
2027         PR fortran/31608
2028         * pa.h (ASM_PN_FORMAT): Delete define.
2029
2030 2007-10-26  Janis Johnson  <janis187@us.ibm.com>
2031
2032         * doc/invoke.texi (Option Summary, optimizations): Remove
2033         -fbounds-check.  Add -fassociative-math, -freciprocal-math,
2034         -ftree-vrp and -funit-at-a-time.  Change -fno-split-wide-types to
2035         -fsplit-wide-types to match later entry.  Break up a long line.
2036         (Option Summary, code gen options)  Add -fno-stack-limit.  Add
2037         missing @gol to the end of a line.
2038         (Optimization Options): Remove -fbounds-check, which is also
2039         documented under Code Generation Options.  Remove =n from
2040         index entry for -ftree-parallelize-loops.  Change -fno-cprop-registers
2041         to -fcprop-registers to match other options, and say when it is
2042         enabled rather than disabled.  Remove extra index entry for
2043         -fno-cx-limited-range.  Add index entries for -fstack-protector
2044         and -fstack-protector-all.
2045         (Code Gen Options): Add index entry for -ftls-model.
2046
2047 2007-10-26  Anatoly Sokolov <aesok@post.ru>
2048
2049         * config/avr/avr.c (avr_OS_task_function_p): Add new function.
2050         (avr_regs_to_save): Handle functions with 'OS_task' attribute.
2051         (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
2052         expand_epilogue, output_movhi): Don't handle 'main' function.
2053         (avr_attribute_table): Add 'OS_task' function attribute.
2054         * config/avr/avr.h (machine_function): Remove 'is_main' field, add
2055         'is_OS_task' field.
2056         * config/avr/avr.md (return_from_main_epilogue): Remove insn.
2057         (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
2058         'main' function.
2059         * config/avr/avr.opt (minit-stack): Remove.
2060
2061 2007-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2062
2063         * tree-nested.c (get_trampoline_type): Fix thinko.
2064
2065 2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>
2066
2067         PR c++/33601
2068         * tree.c (build_offset_type): Build canonical type based on the
2069         TYPE_MAIN_VARIANT of the base type.
2070
2071 2007-10-26  Daniel Jacobowitz  <dan@codesourcery.com>
2072
2073         * reorg.c (emit_delay_sequence): Move insn locator from the
2074         first insn to the sequence.
2075
2076 2007-10-26  Samuel Tardieu  <sam@rfc1149.net>
2077
2078         * ipa-pure-const.c (check_decl): Return immediately when
2079         pure_const_state has been set to IPA_NEITHER.
2080
2081 2007-10-25  Ira Rosen  <irar@il.ibm.com>
2082
2083         PR tree-optimization/33833
2084         * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
2085         and convert init to sizetype in inner_base construction.
2086
2087 2007-10-25  Richard Guenther  <rguenther@suse.de>
2088
2089         * tree-flow.h (mem_sym_stats): Remove.
2090         (dump_mem_sym_stats_for_var): Declare.
2091         * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
2092         (mem_sym_stats): Move ...
2093         * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
2094         (mem_sym_score): Rename from ...
2095         (pscore): ... this.  Remove.
2096         (dump_mem_sym_stats_for_var): New function.  Dump the score, but
2097         not the frequencies.
2098         (compare_mp_info_entries): Make sort stable by disambiguating
2099         on DECL_UID.
2100
2101 2007-10-25  Ira Rosen  <irar@il.ibm.com>
2102
2103         PR tree-optimization/33866
2104         * tree-vect-transform.c (vectorizable_store): Check operands of all
2105         the stmts in the group of strided accesses. Get def stmt type for each
2106         store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
2107
2108 2007-10-25  Uros Bizjak  <ubizjak@gmail.com>
2109
2110         * config/i386/constraints.md (Y0): Rename register constraint to Yz.
2111         (Yt): Rename register constraint to Y2.
2112         * config/i386/sse.md: Use renamed register constraints.
2113         * config/i386/mmx.md: Ditto.
2114         * config/i386/i386.md: Ditto.
2115
2116 2007-10-25  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2117
2118         * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
2119
2120 2007-10-24  Chao-ying Fu  <fu@mips.com>
2121
2122         * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
2123         DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
2124
2125 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
2126             Olga Golovanevsky <olga@il.ibm.com>
2127         
2128         * ipa-struct-reorg.c (replace_field_acc): Make it clear to
2129         the compiler that wr.wrap and wr.domain are initialized in
2130         any case.
2131
2132 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
2133
2134         * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
2135         to print gcov_type values.
2136
2137 2007-10-24  Eric B. Weddington  <eweddington@cso.atmel.com>
2138
2139         * config/avr/avr.h: Do not include progmem_section definition when
2140         building with IN_TARGET_LIBS.
2141
2142 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
2143
2144         PR target/33755
2145         * config/mips/mips.c (mips_lo_sum_offset): New structure.
2146         (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
2147         (mips_lo_sum_offset_lookup, mips_record_lo_sum)
2148         (mips_orphaned_high_part_p: New functions.
2149         (mips_avoid_hazard): Don't check INSN_P here.
2150         (mips_avoid_hazards): Rename to...
2151         (mips_reorg_process_insns): ...this.  Cope with
2152         !TARGET_EXPLICIT_RELOCS.  Delete orphaned high-part relocations,
2153         or turn them into nops.
2154         (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
2155         dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
2156         (mips_set_mips16_mode): Don't set flag_delayed_branch here.
2157         (mips_override_options): Set flag_delayed_branch to 0.
2158
2159 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
2160
2161         * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
2162         MIPS-specific implementation details.
2163         (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
2164         (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
2165         (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
2166         for targets with movmemsi.
2167         (MOVE_BY_PIECES_P): Define.
2168         * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
2169         (mips_block_move_loop): Add a bytes_per_iter argument.
2170         (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
2171         Update call to mips_block_move_loop.
2172
2173 2007-10-24  Michael Matz  <matz@suse.de>
2174
2175         PR debug/33868
2176         * var-tracking.c (variable_union): Don't break after one loop
2177         iteration but only when a difference is found.
2178         (dump_variable): Also print DECL_UID.
2179
2180 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
2181
2182         * ipa-type-escape.h: Expose function
2183         is_array_access_through_pointer_and_index.
2184         * ipa-type-escape.c
2185         (is_array_access_through_pointer_and_index):
2186         Add three new parameters. Add support of
2187         POINTER_PLUS_EXPR tree code.
2188
2189 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
2190
2191         * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
2192         * tree-pass.h: Add pass_ipa_struct_reorg.
2193         * common.opt: Add ipa-struct-reorg flag.
2194         * Makefile.in: Add ipa-strcut-reorg.o compilation.
2195         * passes.c: Add pass pass_ipa_struct_reorg.
2196         * params.h:  Add STRUCT_REORG_COLD_STRUCT_RATIO.
2197         * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
2198
2199 2007-10-24  Ira Rosen  <irar@il.ibm.com>
2200
2201         PR tree-optimization/33804
2202         * tree-vect-transform.c (vectorizable_operation): Remove the
2203         checks that the vectorization is worthwhile from the transformation
2204         phase.
2205
2206 2007-10-24  Ira Rosen  <irar@il.ibm.com>
2207
2208         * tree-vect-analyze.c (vect_build_slp_tree): Return false if
2209         vectype cannot be determined for the scalar type.
2210         (vect_analyze_slp_instance): Likewise.
2211         * tree-vect-transform.c (vect_model_reduction_cost): Change the
2212         return type to bool. Return false if vectype cannot be determined 
2213         for the scalar type.
2214         (vect_get_constant_vectors): Return false if vectype cannot be
2215         determined for the scalar type.
2216         (get_initial_def_for_induction, vect_get_vec_def_for_operand,
2217         get_initial_def_for_reduction, vect_create_epilog_for_reduction,
2218         vectorizable_reduction): Likewise.      
2219
2220 2007-10-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2221
2222         * config.gcc: For a FreeBSD target, parse the value of ${target}
2223         to determine the value of FBSD_MAJOR, instead of adding an
2224         explicit check for every possible FreeBSD major version.
2225
2226 2007-10-23  Uros Bizjak  <ubizjak@gmail.com>
2227
2228         PR rtl-optimization/33846
2229         * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
2230
2231 2007-10-23  Dorit Nuzman  <dorit@il.ibm.com>
2232
2233         PR tree-optimization/33860
2234         * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
2235         interleaved accesses in case the dr is inside the inner-loop during
2236         outer-loop vectorization.
2237
2238 2007-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2239
2240         * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
2241         Document MEM_POINTER.  Replace mentions of "integrated"
2242         field with "return_val".  Delete outdated stuff.
2243
2244 2007-10-23  David Edelsohn  <edelsohn@gnu.org>
2245
2246         * config/rs6000/rs6000.c (rs6000_override_options): Set
2247         rs6000_altivec_abi on AIX.
2248         (conditional_register_usage): Set VR20:31 fixed on AIX.
2249
2250 2007-10-23  Richard Guenther  <rguenther@suse.de>
2251
2252         * alias.c (get_alias_set): For INDIRECT_REFs, deal with
2253         SSA_NAME pointers.
2254
2255 2007-10-22  Seongbae Park <seongbae.park@gmail.com>
2256         David S. Miller  <davem@davemloft.net>
2257
2258         * df-scan.c (df_get_call_refs): Mark global registers as both a
2259         DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
2260
2261 2007-10-22  Dorit Nuzman  <dorit@il.ibm.com>
2262
2263         PR tree-optimization/33834
2264         PR tree-optimization/33835
2265         * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
2266         stmts need to be checked for success seperately.
2267         * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
2268         Remove the check that stmt is not LIVE.
2269         (vectorizable_assignment, vectorizable_induction): Likewise.
2270         (vectorizable_operation, vectorizable_type_demotion): Likewise.
2271         (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
2272         Likewise.
2273         (vectorizable_live_operation): Check that op is not NULL. 
2274
2275 2007-10-22  Janis Johnson  <janis187@us.ibm.com>
2276
2277         * doc/invoke.texi (Optimization Options): In the summary, show
2278         that the value for options -falign-jumps, -falign-labels,
2279         -falign-loops, -falign-functions, -fsched-stalled-insns, and
2280         -fsched-stalled-insns-dep is optional.  In the summary, show that
2281         -fsched-stalled-insns takes an optional argument and that
2282         -fparallelize-loops takes an argument.  Add opindex for several
2283         optimization options, and fix typos in the opindex commands for
2284         several others.  In the descriptions for -fsched-stalled-insns
2285         and -fsched-stalled-insns-dep, show the options with and without
2286         values.
2287
2288 2007-10-22  Eric B. Weddington  <eweddington@cso.atmel.com>
2289
2290         * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
2291         produced.
2292         * config/avr/avr.h (LINK_SPEC): Likewise.
2293         (CRT_BINUTILS_SPECS): Likewsie.
2294         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2295
2296 2007-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2297
2298         PR rtl-optimization/33644
2299         * cfgcleanup.c: Do not include dce.h.
2300         * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
2301         * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
2302         * dce.c (something_changed): Delete.
2303         (libcall_dead_p): New predicate.
2304         (delete_unmarked_insns): Use it to delete dead libcalls.
2305         Deal with REG_LIBCALL and REG_RETVAL notes.
2306         (prescan_libcall_for_dce): New function.
2307         (prescan_insns_for_dce): Use it to deal with libcalls.
2308         (mark_reg_dependencies): Do nothing special for libcalls.
2309         (dce_process_block): Likewise.
2310         (fast_dce): Delete unused local variable.
2311         (run_fast_dce): Do not return a value.
2312         * dce.h (struct df): Delete.
2313         (run_fast_dce): Adjust prototype.
2314         * optabs.c (libcall_id): Delete.
2315         (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
2316         (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
2317         * reload1.c (reload): Delete REG_LIBCALL_ID case.
2318         * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
2319         * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
2320         notes instead of REG_LIBCALL_ID notes.
2321         * reg-notes.def (LIBCALL_ID): Delete.
2322         * Makefile.in (see.o): Add dce.h dependency.
2323         (cfgcleanup.o): Remove dce.h dependency.
2324
2325 2007-10-22  Michael Matz  <matz@suse.de>
2326
2327         PR tree-optimization/33855
2328         * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
2329         and VECTOR_TYPE.
2330
2331 2007-10-22  Ira Rosen  <irar@il.ibm.com>
2332
2333         PR tree-optimization/33854
2334         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
2335         FLOAT_EXPR to the list of promotion operations. 
2336
2337 2007-10-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2338
2339         PR target/29473
2340         PR target/29493
2341         * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
2342         (print_reg): Print register prefix only with AT&T asm syntax. 
2343         Support pc_rtx for RIP register.
2344         (print_operand_address): Use print_reg()'s pc_rtx support for RIP
2345         relative addressing.  Always print segment register prefix with AT&T
2346         asm syntax and never with Intel asm syntax.
2347         (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. 
2348         Fix prefix for 16-byte XFmode operands.
2349         (output_addr_const_extra): Support Intel asm syntax.
2350         (x86_file_start): Don't use register prefix with Intel asm syntax.
2351         * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
2352         ("return_internal_long"): Fix Intel asm syntax output.
2353         ("set_got_rex64"): Support Intel asm syntax.
2354         ("set_rip_rex64"): Likewise.
2355         ("set_got_offset_rex64"): Likewise.
2356         ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
2357         syntax.
2358         ("*tls_global_dynamic_64"): Likewise.
2359         ("*tls_local_dynamic_base_64"): Likewise.
2360         ("*load_tp_si")("*load_tp_di"): Likewise.
2361         ("*add_tp_si")("*add_tp_di"): Likewise.
2362         ("*tls_dynamic_lea_64"): Likewise.
2363         ("*sibcall_value_1_rex64_v"): Likewise.
2364         ("stack_tls_protect_set_si"): Likewise.
2365         ("stack_tls_protect_set_di"): Likewise.
2366         ("stack_tls_protect_test_si"): Likewise.
2367         ("stack_tls_protect_test_di"): Likewise.
2368         * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
2369         syntax output.
2370         ("*movv2sf_internal_rex64"): Likewise.
2371         * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
2372         (__get_cpuid_max): Likewise.
2373
2374 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2375
2376         * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
2377         the STRICT_P argument type "bool" rather than "int".
2378         (mips_legitimate_address_p): Likewise.
2379         (fp_register_operand, lo_operand): Delete.
2380         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2381         (mips_emit_scc): Rename to...
2382         (mips_expand_scc): ...this.
2383         (gen_conditional_branch): Rename to...
2384         (mips_expand_conditional_branch): ...this.
2385         (gen_conditional_move): Rename to...
2386         (mips_expand_conditional_move): ...this.
2387         (mips_gen_conditional_trap): Rename to...
2388         (mips_expand_conditional_trap): ...this and take an rtx code instead
2389         of an operands array.
2390         (mips_expand_call): Give the SIBCALL_P argument type "bool"
2391         rather than "int".
2392         (mips_emit_fcc_reload): Rename to...
2393         (mips_expand_fcc_reload): ...this.
2394         (init_cumulative_args): Rename to...
2395         (mips_init_cumulative_args): ...this and remove the libname argument.
2396         (function_arg_advance): Rename to...
2397         (mips_function_arg_advance): ...this.
2398         (function_arg): Rename to...
2399         (mips_function_arg): ...this and use "rtx" instead of
2400         "struct rtx_def *".
2401         (function_arg_boundary): Rename to...
2402         (mips_function_arg_boundary): ...this.
2403         (mips_expand_unaligned_load): Rename to...
2404         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2405         and BITPOS arguments type "HOST_WIDE_INT".
2406         (mips_expand_unaligned_store): Rename to...
2407         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2408         and BITPOS arguments type "HOST_WIDE_INT".
2409         (override_options): Rename to...
2410         (mips_override_options): ...this.
2411         (print_operand): Rename to...
2412         (mips_print_operand): ...this.
2413         (print_operand_address): Rename to...
2414         (mips_print_operand_address): ...this.
2415         (mips_output_ascii): Remove the PREFIX argument.
2416         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2417         rather than "int".
2418         (mips_can_use_return_insn): Return a "bool" rather than an "int".
2419         (mips_function_value): Remove the FUNC argument.  Use "rtx" instead
2420         of "struct rtx_def *".
2421         (mips_secondary_reload_class): Give the IN_P argument type "bool"
2422         rather than "int".
2423         (build_mips16_call_stub): Delete.
2424         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2425         (mips_use_ins_ext_p): Give the second and third arguments type
2426         "HOST_WIDE_INT" rather than "rtx".
2427         * config/mips/mips.h: Update after the above changes.  Tweak comments
2428         and formatting.
2429         (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
2430         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2431         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2432         element type from "char" to "bool".
2433         (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
2434         (mips_cpu_info_table): Delete.
2435         * config/mips/mips.md: Update after the above changes.  Tweak some
2436         formatting.
2437         * config/mips/mips-ps-3d.md: Likewise.
2438         * config/mips/mips.c: Tweak comments and formatting.
2439         Use NULL-like macros rather than 0 in various places.
2440         (mips_section_threshold): Rename to...
2441         (mips_small_data_threshold): ...this and give it an unsigned type.
2442         (num_source_filenames): Remove explicit initialization.
2443         (sdb_label_count): Likewise.
2444         (sym_lineno): Delete.
2445         (set_noat): Make static.
2446         (mips_branch_likely): Likewise, and give it type "bool".
2447         (mips_isa_info): Rename to...
2448         (mips_isa_option_info): ...this.
2449         (mips_flag_delayed_branch): Rename to...
2450         (mips_base_delayed_branch): ...this.
2451         (mips_split_addresses): Delete.
2452         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2453         element type from "char" to "bool".
2454         (mips_regno_to_class): Add an explicit array size.
2455         (mips16_flipper): Change from type "int" to type "bool".
2456         (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
2457         (mips_tls_operand_p): Rename to...
2458         (mips_tls_symbol_p): ...this.
2459         (mips_global_symbol_p): Remove redundant "const".
2460         (mips_offset_within_alignment_p): Simplify.
2461         (mips_regno_mode_ok_for_base_p): Change the name of the last argument
2462         to STRICT_P and give it type bool.
2463         (mips_valid_base_register_p): Likewise.
2464         (mips_classify_address): Likewise.
2465         (mips_legitimate_address_p): Likewise.
2466         (mips16_unextended_reference_p): Take the offset as an
2467         "unsigned HOST_WIDE_INT" rather than an "rtx".  Simplify.
2468         (mips_const_insns): Use IN_RANGE.
2469         (mips_force_temporary): Remove an unnecessary copy_rtx.
2470         (mips16_gp_pseudo_reg): Simplify.
2471         (mips_split_symbol): Remove an unnecessary copy_rtx.
2472         (mips_legitimize_tls_address): Only create registers if we need them.
2473         (mips_legitimize_address): Use mips_split_plus.
2474         (mips_move_integer): Swap DEST and TEMP arguments.  Rename local
2475         variable COST to NUM_OPS.
2476         (mips_legitimize_move): Use gen_lowpart.
2477         (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
2478         (m16_check_op): Use IN_RANGE.
2479         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2480         (mips_split_doubleword_move): Pass booleans to mips_subword.
2481         (mips_output_move): Store the mode in a local variable.
2482         Explicitly assert that this function does not deal with
2483         MFLO and MFHI.  Use SMALL_OPERAND_UNSIGNED.  Make order of
2484         cases more consistent.
2485         (mips_relational_operand_ok_p): Rename to...
2486         (mips_int_order_operand_ok_p): ...this.
2487         (mips_canonicalize_comparison): Rename to...
2488         (mips_canonicalize_int_order_test): ...this.
2489         (mips_emit_int_relational): Rename to...
2490         (mips_emit_int_order_test): ...this.  Store the mode in a local
2491         variable.
2492         (mips_reverse_fp_cond_p): Rename to...
2493         (mips_reversed_fp_cond): ...this.
2494         (mips_emit_compare): Make the order of the statements more consistent.
2495         (mips_emit_scc): Rename to...
2496         (mips_expand_scc): ...this.
2497         (gen_conditional_branch): Rename to...
2498         (mips_expand_conditional_branch): ...this.
2499         (gen_conditional_move): Rename to...
2500         (mips_expand_conditional_move): ...this.  Build the condition
2501         separately from the main pattern.
2502         (mips_gen_conditional_trap): Rename to...
2503         (mips_expand_conditional_trap): ...this and take an rtx code instead
2504         of an operands array.  Simplify.
2505         (init_cumulative_args): Rename to...
2506         (mips_init_cumulative_args): ...this.  Use memset rather than a
2507         copy from a zeroed static.  Use prototype_p and stdarg_p.
2508         (mips_arg_info): Rename to...
2509         (mips_get_arg_info): ...this and put the INFO argument first.
2510         (function_arg): Rename to...
2511         (mips_function_arg): ...this and use "rtx" instead of
2512         "struct rtx_def *".  Only split structures into chunks if 
2513         TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
2514         a chunk-by-chunk basis.  Use SCALAR_FLOAT_TYPE_P instead of a
2515         comparison with REAL_TYPE.  Rename local variable REG to REGNO
2516         and make it unsigned.
2517         (function_arg_advance): Rename to...
2518         (mips_function_arg_advance): ...this.
2519         (function_arg_boundary): Rename to...
2520         (mips_function_arg_boundary): ...this.
2521         (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
2522         with MODE_INT.
2523         (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
2524         comparison with REAL_TYPE.
2525         (mips_function_value): Remove the FUNC argument.  Rename local
2526         variable UNSIGNEDP to UNSIGNED_P.
2527         (mips_return_in_memory): Use IN_RANGE.
2528         (mips_setup_incoming_varargs): Pass a boolean rather than an int
2529         to FUNCTION_ARG_ADVANCE.
2530         (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
2531         to INDIRECT_P.  Remove a redundant mips_abi check.  Only calculate
2532         SIZE and RSIZE if needed.
2533         (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
2534         rather than "int".
2535         (build_mips16_function_stub): Rename to...
2536         (mips16_build_function_stub): ...this.
2537         (build_mips16_call_stub): Rename to...
2538         (mips16_build_call_stub): ...this.  Make static, and return a
2539         "bool" rather than an "int".  Rename the ARG_SIZE argument to
2540         ARGS_SIZE.  Rename the local variable FPRET to FP_RET_P and give
2541         it type "bool".  Use "jr" rather than "j".  Use XNEW.  Simplify.
2542         (mips_load_call_address): Give the SIBCALL_P argument type "bool"
2543         rather than "int".
2544         (mips_expand_call): Likewise.  Assert that MIPS16 calls via stubs
2545         are not sibling ones.
2546         (mips_emit_fcc_reload): Rename to...
2547         (mips_expand_fcc_reload): ...this.
2548         (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
2549         "HOST_WIDE_INT".
2550         (mips_expand_unaligned_load): Rename to...
2551         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2552         and BITPOS arguments type "HOST_WIDE_INT".  Remove redundant
2553         SUBREG_BYTE check.
2554         (mips_expand_unaligned_store): Rename to...
2555         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2556         and BITPOS arguments type "HOST_WIDE_INT".
2557         (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
2558         and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
2559         Use IN_RANGE.
2560         (mips_init_split_addresses): Replace with...
2561         (mips_split_addresses_p): ...this new function.
2562         (mips_init_relocs): Check mips_split_addresses_p () rather than
2563         mips_split_addresses.  Always initialize mips_split_p with booleans.
2564         (print_operand_reloc): Rename to...
2565         (mips_print_operand_reloc): ...this.  Use a gcc_assert rather than
2566         a fatal_error.
2567         (print_operand): Rename to...
2568         (mips_print_operand): ...this.
2569         (print_operand_address): Rename to...
2570         (mips_print_operand_address): ...this.  Use GP_REG_FIRST.
2571         (mips_in_small_data_p): Simplify.
2572         (mips_output_ascii): Remove the PREFIX argument and "register"
2573         keywords.  Use the STRING parameter directly and cast to
2574         "unsigned char".
2575         (mips16e_collect_argument_save_p): Use IN_RANGE.
2576         (mips_function_has_gp_insn): Simplify.
2577         (mips_set_return_address): Use BITSET_P.
2578         (mips_restore_gp): Use a separate statement to pick the base
2579         register.
2580         (mips_output_function_prologue): Use a local FRAME variable.
2581         (mips_save_reg): Pass booleans to mips_subword.
2582         (mips_expand_prologue): Use a local FRAME variable.  Use
2583         cprestore_size to detect when .cprestore is needed.
2584         (mips_restore_reg): Use GP_REG_FIRST.
2585         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2586         rather than "int".  Use local FRAME and REGNO variables.
2587         (mips_can_use_return_insn): Return a "bool" rather than an "int".
2588         (mips_secondary_reload_class): Give the IN_P argument type "bool"
2589         rather than "int".
2590         (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
2591         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2592         (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
2593         (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
2594         (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
2595         (builtin_description): Rename to...
2596         (mips_builtin_description): ...this.
2597         (mips_bdesc): Rename to...
2598         (mips_ps_bdesc): ...this.
2599         (sb1_bdesc): Rename to...
2600         (mips_sb1_bdesc): ...this.
2601         (dsp_bdesc): Rename to...
2602         (mips_dsp_bdesc): ...this.
2603         (dsp_32only_bdesc): Rename to...
2604         (mips_dsp_32only_bdesc): ...this.
2605         (bdesc_map): Rename to...
2606         (mips_bdesc_map): ...this.
2607         (bdesc_arrays): Rename to...
2608         (mips_bdesc_arrays): ...this.
2609         (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
2610         Tweak error message.
2611         (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
2612         Rename local variables I and J to OPNO and ARGNO respectively.
2613         Assert that the number of arguments is no more than the number of
2614         input operands.
2615         (mips_expand_builtin_compare): Use an array of arguments rather
2616         than an array of operands.  Assert that the number of operands is
2617         as expected.
2618         (add_constant): Rename to...
2619         (mips16_add_constant): ...this.  Use XNEW.
2620         (dump_constants_1): Rename to...
2621         (mips16_emit_constants_1): ...this.  Use ALL_SCALAR_FIXED_POINT_MODE_P.
2622         (dump_constants): Rename to...
2623         (mips16_emit_constants): ...this.
2624         (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
2625         (mips_set_mips16_mode): Don't call mips_init_split_addresses.
2626         Assign mips16_p to was_mips16_p.
2627         (mips_parse_cpu): Tweak warning message.
2628         (override_options): Rename to...
2629         (mips_override_options): ...this.  Move the mips_cost initialization
2630         out of the "shared with GAS" block.  Quote option names in error
2631         messages.
2632         (mips_conditional_register_usage): Make local variable REGNO unsigned.
2633         (mips_order_regs_for_local_alloc): Remove register keyword.
2634
2635 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2636
2637         * system.h (IN_RANGE): Cast each argument individually.
2638
2639 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2640
2641         * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
2642         MIPS16 code unless using o32 or o64.  
2643
2644 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2645
2646         * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
2647         for modes smaller than 4 bytes.
2648         * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
2649         FPR alternatives.
2650
2651 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2652
2653         * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
2654         * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
2655         (ASM_OUTPUT_ALIGNED_BSS): Delete.
2656         * config/mips/mips.c (mips_output_aligned_bss): Delete.
2657
2658 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2659
2660         * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
2661         sibling calls to "mips16" functions if the function satisfies
2662         const_call_insn_operand.
2663
2664 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2665
2666         * config/mips/mips.c (mips_va_start): Fix types in calls
2667         to build_int_cst.
2668
2669 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2670
2671         * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
2672         if ISA_HAS_FP4.
2673
2674 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2675
2676         * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
2677         * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
2678         instead of checking mips_isa.
2679
2680 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2681
2682         * doc/invoke.texi (-mpaired-single): Don't say that the option
2683         requires 64-bit code.
2684         * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
2685         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
2686         (ISA_HAS_NMADD_NMSUB): Add a mode argument.  Return true for
2687         V2SF if ISA_MIPS32R2.
2688         (MODES_TIEABLE_P): Use mips_modes_tieable_p.
2689         * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
2690         to ISA_HAS_NMADD_NMSUB.
2691         (mips_split_doubleword_move): Handle V2SF.
2692         (mips_modes_tieable_p): New function.
2693         (override_options): Report a warning rather than an error when
2694         -mpaired-single is used on ISAs that don't support it; use
2695         ISA_HAS_PAIRED_SINGLE to check that case.
2696         * config/mips/mips.md (MOVE64): New mode iterator.  Replace DI
2697         and DF move splitters with a single MOVE64 splitter, thereby adding
2698         a V2SF splitter too.
2699         (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
2700         Add a TARGET_FLOAT64 condition to TF.  Add V2SF to the iterator.
2701         (HALFMODE): Add V2SF.
2702         (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
2703         (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
2704         (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
2705         (movv2sf_hardfloat_32bit): New pattern.
2706         (load_low<mode>, load_high<mode>, store_word<mode>): Remove
2707         TARGET_DOUBLE_FLOAT conditions.
2708
2709 2007-10-20  Jakub Jelinek  <jakub@redhat.com>
2710
2711         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
2712         saved CR2 offset to low 32 bits of regs->ccr rather than the whole
2713         64-bit register in 64-bit libgcc.
2714
2715 2007-10-20  Eric B. Weddington  <eweddington@cso.atmel.com>
2716
2717         * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
2718         * config/avr/avr.h (LINK_SPEC): Likewise.
2719         (CRT_BINUTILS_SPECS): Likewsie.
2720         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2721
2722 2007-10-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2723
2724         * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
2725         and -Wfatal-errors together.
2726         
2727 2007-10-20  Alan Modra  <amodra@bigpond.net.au>
2728
2729         PR target/33812
2730         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
2731         change for vrsave, ie restore after frame pop.
2732
2733 2007-10-19  David S. Miller  <davem@davemloft.net>
2734
2735         * config/sparc/niagara2.md: Fix copyright notice.
2736
2737 2007-10-19  Sebastian Pop  <sebastian.pop@amd.com>
2738
2739         PR tree-optimization/23820
2740         PR tree-optimization/24309
2741         PR tree-optimization/33766
2742         * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
2743         * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
2744         * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
2745         * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
2746         * tree-loop-linear.c (perfect_loop_nest_depth): New.
2747         (linear_transform_loops): Use perfect_loop_nest_depth.
2748         * lambda-code.c (perfect_nest_p): Outer loops in perfect nests 
2749         should have a single condition: their exit.
2750
2751 2007-10-19  Richard Guenther  <rguenther@suse.de>
2752
2753         PR middle-end/33816
2754         PR middle-end/32921
2755         * stor-layout.c (layout_type): Assert that aggregates do not
2756         have their alias sets set.
2757         * alias.c (get_alias_set): Return alias set zero for incomplete
2758         types, return the alias set of the element for incomplete array
2759         types, but do not remember these.
2760
2761 2007-10-19  Richard Guenther  <rguenther@suse.de>
2762
2763         Revert
2764         2007-10-19  Richard Guenther  <rguenther@suse.de>
2765
2766         PR middle-end/32921
2767         * tree.c (build_array_type): Do not re-layout unbound array
2768         types.
2769
2770 2007-10-19  Richard Guenther  <rguenther@suse.de>
2771
2772         PR middle-end/32921
2773         * tree.c (build_array_type): Do not re-layout unbound array
2774         types.
2775
2776 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2777
2778         * config/mips/mips.c (mips_canonicalize_comparison):  Check
2779         mips_relational_operand_ok_p before trying to rewrite the test.
2780         Only calculate PLUS_ONE if needed.
2781         (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
2782         here.
2783
2784 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2785
2786         * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
2787         calculation.
2788
2789 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2790
2791         * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
2792         the call uses the incoming value of $2.
2793
2794 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2795
2796         * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
2797         rather then gen_rtx_MEM.
2798         (mips_setup_incoming_varargs): Use gen_frame_mem rather than
2799         gen_rtx_MEM.
2800         (mips_set_return_address): Likewise.
2801         (mips_restore_gp): Likewise.
2802
2803 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2804
2805         * config/mips/mips.c (gpr_mode): Delete.
2806         (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
2807         instead of gpr_mode.
2808         (mips_for_each_saved_reg): Likewise.
2809         (mips_expand_prologue, mips_expand_epilogue): Likewise.
2810         (override_options): Don't initialize gpr_mode.
2811         * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
2812
2813 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2814
2815         * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
2816         case last.
2817         (mips_class_max_nregs): Calculate the smallest consituent register
2818         size and use that to determine an upper bound on the number of
2819         registers.
2820
2821 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2822
2823         * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
2824         split out from...
2825         (mips_expand_epilogue): ...here.
2826         (mips_mdebug_abi_name): New function, split out from...
2827         (mips_file_start): ...here.
2828         (mips_hard_regno_mode_ok_p): New function, split out from...
2829         (override_options): ...here.
2830         (mips_expand_builtin_1): New function, split out from...
2831         (mips_expand_buitin): ...here.  Abort if we don't recognize
2832         the function.
2833
2834 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2835
2836         * config/mips/mips.c (build_mips16_function_stub): Load the
2837         target address into $1 before transfering the arguments.
2838         Don't use ".set noreorder".
2839         (build_mips16_call_stub): Likewise.
2840
2841 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2842
2843         * config/mips/mips.c (mips_output_32bit_xfer): New function.
2844         (mips_output_64bit_xfer): Likewise.
2845         (mips16_fp_args): Rename to...
2846         (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
2847         with a DIRECTION argument.  Use mips_output_32bit_xfer and
2848         mips_output_64bit_xfer.
2849         (build_mips16_function_stub): Update accordingly.
2850         (mips16_fpret_double): Delete.
2851         (build_mips16_call_stub): Update after above changes.
2852         Use mips_output_32bit_xfer.  Use mips_output_64bit_xfer instead
2853         of mips16_fpret_double.  Use GP_REG_RETURN.
2854
2855 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2856
2857         * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
2858         use asm_out_file instead.
2859         (build_mips16_function_stub): Likewise.
2860         (build_mips16_call_stub, mips_output_function_prologue): Update
2861         accordingly.
2862
2863 2007-10-18  David S. Miller  <davem@davemloft.net>
2864
2865         Add Niagara-2 support.
2866         * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
2867         * config.gcc: Add niagara2 to cpu and tune lists for sparc.
2868         * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
2869         (include): Add inclusion of niagara2.md
2870         * config/sparc/sparc.c (niagara2_costs): New.
2871         (sparc_override_options): Add niagara2 entry to cpu_default[]
2872         and cpu_table[].  Set align_functions to 32 on Niagara2.  Use
2873         niagara2_costs when PROCESSOR_NIAGARA2.  Handle Niagara2 for
2874         PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
2875         (sparc_initialize_trampoline): Handle niagara2 like niagara.
2876         (sparc64_initialize_trampoline): Likewise.
2877         (sparc_use_sched_lookahead): Likewise.
2878         (sparc_issue_rate): Likewise.
2879         * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
2880         mcpu=niagara2
2881         * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
2882         ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
2883         TARGET_CPU_niagara2.
2884         (PROCESSOR_NIAGARA2): New.
2885         (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
2886         (BRANCH_COST): Likewise.
2887         * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
2888         * config/sparc/sol2.h: Likewise.
2889         * config/sparc/niagara2.md: New file.
2890
2891 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2892
2893         * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
2894         and fp_reg_size.
2895         (mips_compute_frame_info): Remove associated code.
2896         (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
2897
2898 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2899
2900         * config/mips/mips-protos.h (compute_frame_size): Delete.
2901         * config/mips/mips.h: Update comments.
2902         * config/mips/mips.c (mips_frame_info): Remove initialized.
2903         (compute_frame_size): Rename to...
2904         (mips_compute_frame_info): ...this and make static.  Remove the
2905         SIZE argument and return no value.  Remove the setting of initialized.
2906         Update rest of file accordingly.
2907         (mips_set_return_address): Don't call compute_frame_size.
2908         (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
2909         Don't call compute_frame_size.
2910
2911 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2912
2913         * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
2914         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
2915         mips_hard_frame_pointer_required.
2916         (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
2917         large MIPS16 frames.
2918         * config/mips/mips.c (mips_frame_pointer_required): New function.
2919
2920 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2921
2922         * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
2923         and hard_frame_pointer_offset.
2924         (mips_debugger_offset): Use hard_frame_pointer_offset.
2925         (mips16e_collect_argument_save_p): Likewise.
2926         (compute_frame_size): Initialize arg_pointer_offset and
2927         hard_frame_pointer_offset.
2928         (mips_initial_elimination_offset): Use them.
2929         (mips_output_function_prologue): Use hard_frame_pointer_offset.
2930         (mips_expand_prologue, mips_expand_epilogue): Likewise.
2931
2932 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2933
2934         * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
2935         profiling code.
2936         * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
2937         "unsigned int" rather than "int" and put them with the other
2938         register-related fields.  Put expanded comments above fields
2939         rather than to their right.
2940         (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
2941         with a NUM_REGS_PTR argument.
2942         (mips16e_save_restore_pattern_p): Update accordingly.
2943         (compute_frame_size): Clarify frame diagram.  Rewrite.
2944
2945 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2946
2947         * config/mips/mips-ftypes.def: New file.
2948         * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
2949         (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
2950         (mips_function_type): Redefine using mips-ftypes.def.
2951         (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
2952         (mips_builtin_vector_type): New function.
2953         (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
2954         (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
2955         (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
2956         (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
2957         macros.
2958         (mips_build_function_type): New function.
2959         (mips_init_builtins): Use it to create types lazily.
2960
2961 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2962
2963         * config/mips/mips.h (set_volatile): Delete.
2964         * config/mips/mips.c (set_volatile): Delete.
2965         (mips_print_operand_punctuation): New function, split out from
2966         print_operand.  Remove '%{', '%}', '%~', '%&' and '%!'.
2967         Use the same character ordering in the code and the comments.
2968         Use a recursive call to handle '*'.  Abort on unknown characters.
2969         (mips_init_print_operand_punct): New function, split out from
2970         override_options.
2971         (mips_print_int_branch_condition): New function, split out from
2972         print_operand.  Use GET_RTX_NAME.  Use output_operand_lossage
2973         to report unexpected codes.
2974         (mips_print_float_branch_condition): New function, split out from
2975         print_operand.  Use output_operand_lossage to report unexpected codes.
2976         (print_operand): Rework to use a case statement.  Use the
2977         same letter ordering in the code and the comments.  Use
2978         output_operand_lossage to report unexpected codes and
2979         reverse_condition to handle inverted branch conditions.
2980         (override_options): Use mips_init_print_operand_punct.
2981
2982 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2983
2984         * config/mips/mips.h: Move variable declarations to end of file and
2985         enclose them all in #ifndef USED_FOR_TARGET.
2986         * config/mips/mips.c: Reorder functions into more logical groups,
2987         and so that callees appear before callers.  Put the targetm
2988         initializer at the end of the file.  Remove forward static
2989         declarations where possible.
2990         (mips_init_builtins): Add "static" to definition.
2991         (mips_expand_builtin, mips_mode_rep_extended): Likewise.
2992
2993 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2994
2995         * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
2996         (TARGET_MAX_ANCHOR_OFFSET): Delete.
2997         (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
2998         (mips_set_mips16_mode): Initialize min_anchor_offset and
2999         max_anchor_offset directly to constants.
3000
3001 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3002
3003         * config/mips/mips.c: Delete trailing whitespace.
3004
3005 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3006
3007         * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
3008         (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
3009         and pick the first.
3010         * config/mips/mips.md (load_call<mode>): Don't make the unspec
3011         depend on FAKE_CALL_REGNO.  Set FAKE_CALL_REGNO.
3012
3013 2007-10-18  David Daney  <ddaney@avtrex.com>
3014
3015         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
3016         reg_offset variable to calculate register locations.
3017
3018 2007-10-18  Richard Guenther  <rguenther@suse.de>
3019
3020         * tree-ssa.c (uid_ssaname_map_eq): New function.
3021         (uid_ssaname_map_has): Likewise.
3022         (init_tree_ssa): Allocate default_defs as uid_ssaname map.
3023         * tree-flow.h (struct gimple_df): Make default_defs a
3024         uid_ssaname map.
3025         * tree-dfa.c (gimple_default_def): Deal with it.
3026         (set_default_def): Likewise.
3027
3028 2007-10-18  Richard Guenther  <rguenther@suse.de>
3029
3030         * tree-flow.h (struct gimple_df): Make referenced_vars
3031         a uid_decl_map.
3032         (uid_decl_map_eq): Declare.
3033         (uid_decl_map_hash): Likewise.
3034         * tree-ssa.c (uid_decl_map_eq): New function.
3035         (uid_decl_map_hash): Likewise.
3036         (init_tree_ssa): Make referenced_vars a uid_decl_map.
3037         * tree-flow-inline.h (first_referenced_var): Deal with
3038         the referenced_vars representation change.
3039         (next_referenced_var): Likewise.
3040         * tree-dfa.c (referenced_var_lookup): Likewise.
3041         (referenced_var_check_and_insert): Likewise.
3042         (remove_referenced_var): Likewise.
3043
3044 2007-10-18  Daniel Jacobowitz  <dan@codesourcery.com>
3045
3046         * config/mips/mips.c (mips_dwarf_register_span): New.
3047         (TARGET_DWARF_REGISTER_SPAN): Define.
3048
3049 2007-10-18  Chen Liqin  <liqin@sunnorth.com.cn>
3050
3051         * config.gcc : update score-*-elf(extra_objs).
3052         * config/score/mac.md : Remove.
3053         * config/score/misc.md : Remove.
3054         * config/score/score7.md : Remove.
3055         * config/score/score-mdaux.h : Remove.
3056         * config/score/score-mdaux.c : Remove.
3057         * config/score/score-version.h : Remove.
3058         * config/score/score-generic.md : New.
3059         * config/score/score3.h : New.
3060         * config/score/score3.c : New.
3061         * config/score/score7.h : New.
3062         * config/score/score7.c : New.
3063         * config/score/mul-div.S : add flush_cache score3 support.
3064         * config/score/elf.h : Fix some typos.
3065         * config/score/score.md : merge score3 and score7 pattern.
3066         * config/score/score.c : use to seperate which target it used.
3067         * config/score/score.h : use to seperate the target macro.
3068         * config/score/score.opt : remove -mmac option , add -mscore3,
3069         -mscore3d and -march OPTION support.
3070  
3071 2007-10-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3072
3073         * cfgexpand.c (expand_stack_vars): Add checking to make sure
3074         that the offset of a variable is not greater than the size
3075         of the paritition.
3076
3077 2007-10-17  Anatoly Sokolov <aesok@post.ru>
3078
3079         * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, 
3080         atmega88p, atmega168p and atmega328p devices.
3081         * config/avr/avr.h (LINK_SPEC): (Ditto.).
3082         (CRT_BINUTILS_SPECS): (Ditto.).
3083         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3084
3085 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
3086
3087         * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
3088         * ddg.c: Ditto.
3089         * sched-deps.c: Ditto.  Remove nested #ifdef's INSN_SCHEDULING.
3090         * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
3091         (print_insn): Move declaration to ...
3092         * rtl.h (print_insn): ... here.
3093
3094 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
3095
3096         * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
3097         m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
3098         m68k_sched_branch_type): Move declarations to ...
3099         * config/m68/m68k-protos.h: ... here.
3100
3101 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
3102
3103         * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
3104
3105 2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>
3106
3107         * config/avr/avr.c (avr_mcu_types): Add attiny48.
3108         * config/avr/avr.h (LINK_SPEC): Likewise.
3109         (CRT_BINUTILS_SPECS): Likewsie.
3110         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3111
3112 2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>
3113
3114         * config/avr/avr.c (avr_mcu_types): Add attiny43u.
3115         * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
3116         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3117
3118 2007-10-17  Uros Bizjak  <ubizjak@gmail.com>
3119
3120         PR middle-end/33794
3121         * reg-stack.c (move_for_stack_reg): Swap input argument of
3122         UNSPEC_TAN insn to the top of the stack.
3123
3124 2007-10-17  Uros Bizjak  <ubizjak@gmail.com>
3125
3126         PR target/32961
3127         * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
3128         IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
3129         IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
3130         IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
3131         immediate shift value.
3132         * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
3133         _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
3134         _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
3135         Remove macros for !__OPTIMIZE__ case.
3136
3137 2007-10-17  Daniel Berlin  <dberlin@dberlin.org>
3138
3139         * tree-ssa-structalias.c (rewrite_constraints): Don't test for
3140         directness anymore.
3141         (perform_var_substitution): Only DFS from real nodes. Don't test
3142         for directness.
3143         (unite_pointer_equivalences): Fix broken test.
3144
3145 2007-10-17  Alan Modra  <amodra@bigpond.net.au>
3146
3147         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
3148         altivec sp_offset.  Rearrange sp_offset assignments to
3149         correspond to stack adjustments.  Use frame_reg_rtx for
3150         SPE register restores.  Correct SPE stack adjustment.
3151
3152 2007-10-17  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3153
3154         * builtins.c (gimplify_va_arg_expr): Use inform for help message.
3155         * toplev.c (check_global_declaration_1): Use appropriate warning
3156         option instead of unnamed warning.
3157         * stor-layout.c (layout_decl): Likewise.
3158         * c-typeck.c (build_conditional_expr): Likewise.
3159         (build_compound_expr): Fix wrong comment.
3160         (build_binary_op): Use appropriate warning option instead of
3161         unnamed warning.
3162         * cfgexpand.c (tree_expand_cfg): Likewise.
3163         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3164         * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
3165         (execute_warn_function_return): Likewise.
3166         * stmt.c (warn_if_unused_value): Likewise.
3167
3168 2007-10-16  Eric B. Weddington  <eweddington@cso.atmel.com>
3169
3170         * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
3171         * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
3172         similar devices.
3173         (CRT_BINUTILS_SPECS): Likewsie.
3174         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3175
3176 2007-10-16  Amruth Laxman  <amruth.laxman@nsn.com>
3177
3178         PR target/33594
3179         * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
3180
3181 2007-10-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
3182
3183         * dce.c (init_dce): Only initialize the obstacks for the fast pass.
3184         (fini_dce): Only release them for the fast pass.
3185         (end_ud_dce): Delete.
3186         (rest_of_handle_ud_dce): Do not modify df_in_progress.
3187         Call fini_dce instead of end_ud_dce.
3188         (rest_of_handle_fast_dce): Do not modify df_in_progress.
3189         (run_fast_df_dce): Reset df_in_progress to false on exit.
3190
3191 2007-10-16  Paolo Bonzini  <bonzini@gnu.org>
3192             Maxim Kuvyrkov  <maxim@codesourcery.com>
3193
3194         * target.h (unspec_may_trap_p): New target hook.
3195         * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
3196         * targhooks.c (default_unspec_may_trap_p): Default implementation of
3197         the hook.
3198         * targhooks.h (default_unspec_may_trap_p): Declare it.
3199         * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
3200         * rtlanal.c (may_trap_p_1): Use new hook.  Make global.
3201         * rtl.h (may_trap_p_1): Declare.
3202         
3203         * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
3204         override default hook implementation.
3205         (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
3206         hook.
3207
3208 2007-10-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3209
3210         * doc/invoke.texi (Wextra): Move it just after Wall, list the
3211         options enabled by Wextra and mention Wuninitialized.
3212         
3213 2007-10-15  Nigel Stephens  <nigel@mips.com>
3214
3215         * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
3216
3217 2007-10-15  Jakub Jelinek  <jakub@redhat.com>
3218
3219         PR tree-optimization/33136
3220         * opts.c (decode_options): Don't enable flag_ipa_type_escape.
3221
3222 2007-10-15  Alexandre Oliva  <aoliva@redhat.com>
3223
3224         PR tree-optimization/33735
3225         PR tree-optimization/33572
3226         * tree-inline.c (update_ssa_across_abnormal_edges): Revert
3227         2007-10-09's change.
3228         * except.c (duplicate_eh_regions): Don't look for prev_try
3229         beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
3230
3231 2007-10-15  Alexandre Oliva  <aoliva@redhat.com>
3232
3233         PR middle-end/33706
3234         * tree-inline.c (copy_bb): Use bsi_replace to replace a
3235         __builtin_va_arg_pack-containing call stmt.
3236
3237 2007-10-15  Razya Ladelsky  <razya@il.ibm.com>
3238
3239         * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
3240         program flag.
3241
3242 2007-10-15  Jakub Jelinek  <jakub@redhat.com>
3243
3244         PR tree-optimization/33619
3245         * tree-ssa-ter.c (is_replaceable_p): Return false for all
3246         calls.
3247
3248 2007-10-15  David Edelsohn  <edelsohn@gnu.org>
3249
3250         * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
3251
3252 2007-10-15  Richard Guenther  <rguenther@suse.de>
3253
3254         * fold-const.c (extract_array_ref): Remove.
3255         (fold_comparison): Handle POINTER_PLUS_EXPR with the
3256         generic address expression comparison folding.  Remove
3257         the folding that used extract_array_ref.
3258
3259 2007-10-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3260
3261         PR target/33133
3262         * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
3263         speculation type of insn can be changed before trying to do that.
3264
3265 2007-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
3266
3267         * dse.c (struct insn_info): Add 'frame_read' field.
3268         (scan_insn): For the call to a const function, set frame_read if
3269         reload has been run.
3270         If the insn reads the frame, kill the frame related stores.
3271         (scan_reads_nospill): Likewise.
3272
3273 2007-10-14  Jason Merrill  <jason@redhat.com>
3274
3275         * tree-eh.c (optimize_double_finally): Don't assume that the
3276         cleanup we're duplicating is only one statement.
3277
3278 2007-10-14  Kazu Hirata  <kazu@codesourcery.com>
3279
3280         * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
3281         config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
3282         modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
3283         tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
3284         tree-vect-transform.c: Fix comment typos.
3285         * doc/extend.texi: Fix a typo.
3286
3287         * c-common.h: Remove the prototype for c_expand_body.
3288         * c-tree.h: Remove the prototype for c_disregard_inline_limits.
3289         * tree.h: Remove the prototype for fold_build_call_expr.
3290
3291         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
3292         Remove.
3293         * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
3294
3295 2007-10-13  David Edelsohn  <edelsohn@gnu.org>
3296
3297         * config/rs6000/aix53.h: New file.
3298         * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
3299         (TARGET_ALTIVEC_ABI): Same.
3300         * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
3301         (TARGET_ALTIVEC_ABI): Delete.
3302         * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2.  Add new
3303         stanza defaulting to aix5.3.
3304
3305 2007-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3306
3307         * config/i386/i386.md (SI_REG, DI_REG): New constants.
3308         (strmov): Use defined constants.
3309         (cmpstrnsi): Likewise.
3310         * config/i386/i386.c (decide_alg): Use defined constants.
3311         (ix86_expand_strlen): Likewise.
3312
3313 2007-10-12  Richard Sandiford  <rsandifo@nildram.co.uk>
3314
3315         * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
3316         * var-tracking.c (micro_operation_def): Update comment on u.loc.
3317         (mode_for_reg_attrs, var_lowpart): New functions.
3318         (add_uses): Consider recording a lowpart of LOC for MO_USE.
3319         (add_stores): Likewise MO_SET and MO_COPY.  If the source of a set
3320         or copy is known, set LOC to the SET that performs the set, instead
3321         of the destination.
3322         (find_src_status, find_src_set_src): Remove LOC parameter.
3323         Replace INSN with the source value.
3324         (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
3325         handling MO_SET and MO_COPY.  Update the calls to find_src_status
3326         and find_src_set_src.
3327
3328 2007-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3329
3330         PR 11001
3331         * config/i386/i386.md (strmov): Check for esi and edi usage.
3332         * config/i386/i386.c (decide_alg): Check whether we can use a
3333         rep prefix and adjust algorithm choice accordingly.
3334         (ix86_expand_strlen): Check for eax, ecx, and edi usage.
3335
3336 2007-10-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3337
3338         * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
3339
3340 2007-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
3341
3342         * global.c (build_insn_chain): Formatting fixes.
3343
3344 2007-10-12  Richard Guenther <rguenther@suse.de>
3345
3346         * tree-ssa-forwprop.c (forward_propagate_into_cond): For
3347         combining both operands require either both have single uses
3348         or combining to a constant.
3349
3350 2007-10-12  Richard Guenther  <rguenther@suse.de>
3351
3352         PR middle-end/26198
3353         * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
3354         a rhs with side-effects or which is a load.
3355         (forward_propagate_into_cond): Also try combining both operands.
3356
3357 2007-10-12  Uros Bizjak  <ubizjak@gmail.com>
3358
3359         PR tree-optimization/33742
3360         * tree-vect-transform.c (vectorizable_operation): Return false
3361         if get_vectype_for_scalar_type for scalar_dest can't be determined.
3362         (vectorizable_call): Same for rhs_type and lhs_type.
3363
3364 2007-10-12  Jakub Jelinek  <jakub@redhat.com>
3365
3366         PR tree-optimization/33645
3367         * tree-ssa-live.c (mark_all_vars_used): Add data argument,
3368         pass it to walk_tree.
3369         (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
3370         When calling set_is_used on a VAR_DECL, if data is not NULL and
3371         its DECL_UID is in the bitmap, call mark_all_vars_used on its
3372         DECL_INITIAL after clearing the bit in bitmap.
3373         (remove_unused_locals): Adjust mark_all_vars_used callers.
3374         Instead of removing unused global vars from unexpanded_var_list
3375         immediately record them in bitmap, call mark_all_vars_used on
3376         all used global vars from unexpanded_var_list and only purge
3377         global vars that weren't found used even during that step.
3378  
3379 2007-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3380
3381         * gthr-posix.h (__gthread_active_init): Create detached instead of
3382         joinable thread when testing whether threads are active on hppa-hpux.
3383         * gthr-posix95.h (__gthread_active_init): Likewise.
3384
3385 2007-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3386
3387         PR middle-end/33676
3388         * global.c (build_insn_chain): Include insn that occur between
3389         basic blocks.
3390         
3391 2007-10-11  Tom Tromey  <tromey@redhat.com>
3392
3393         * gengtype-yacc.y: Delete.
3394
3395 2007-10-11  Uros Bizjak  <ubizjak@gmail.com>
3396
3397         * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
3398         * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
3399         function_value_32, function_value_64, function_value_ms_64,
3400         setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
3401         legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
3402         Use new constants.
3403
3404 2007-10-11  Richard Guenther  <rguenther@suse.de>
3405
3406         * gcse.c (hash_scan_set): If the next nonnote insn is in
3407         a different basic block insert the set.
3408
3409 2007-10-11  Richard Guenther  <rguenther@suse.de>
3410
3411         PR middle-end/33724
3412         * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
3413         (verify_gimple_expr): Use it to verify pointer-to types for
3414         ADDR_EXPRs.
3415
3416 2007-10-11  Richard Guenther  <rguenther@suse.de>
3417
3418         PR c/33726
3419         * c-typeck.c (build_array_ref): Do not strip qualifiers from
3420         the array element type.
3421
3422 2007-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3423
3424         PR rtl-optimization/33638
3425         * dse.c (struct insn_info): Remove 'stack_read' field,
3426         add 'stack_pointer_based' field.
3427         (record_store): For a store with non-constant base, record
3428         whether it is stack pointer based.
3429         (scan_insn): For the call to a const function, remove stack
3430         pointer based stores from the list of local active stores.
3431         (scan_reads_nospill): Delete code dealing with const functions.
3432
3433 2007-10-10  Peter Bergner  <bergner@vnet.ibm.com>
3434
3435         * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
3436         to HOST_WIDE_INT.
3437         (conflict_p, set_conflict, set_conflicts): Likewise.
3438         * global.c (global_alloc): Likewise.
3439         * ra.h: Update prototypes.
3440
3441 2007-10-10  Wolfgang Gellerich  <gellerich@de.ibm.com>
3442
3443         * opth-gen.awk: Fixed generation of comment stating the origin
3444           of options.h
3445
3446 2007-10-10  Kazu Hirata  <kazu@codesourcery.com>
3447
3448         Revert:
3449         2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3450         * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3451         and '%}', respectively.
3452
3453         Revert:
3454         2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3455         * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3456         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3457         and '}'.
3458         * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3459         meant to be output.
3460
3461         Revert:
3462         2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
3463         * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3464         syntax for ASSEMBLER_DIALECT.
3465         * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3466
3467 2007-10-10  Revital Eres  <eres@il.ibm.com>
3468
3469         * modulo-sched.c (check_nodes_order): Dump the final order of
3470         the nodes.
3471         (get_sched_window): Add dump info.
3472         (calculate_order_params): Dump order params of the nodes.
3473
3474 2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>
3475
3476         PR middle-end/33669
3477         * ra-conflict.c (record_one_conflict_between_regnos, 
3478         set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
3479         (global_conflicts): Enhanced incorrect check.
3480         
3481 2007-10-09  Geoffrey Keating  <geoffk@apple.com>
3482
3483         * dwarf2out.c (output_call_frame_info): FDEs are always emitted
3484         if flag_exceptions is not set.
3485         * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
3486         assemble_name rather than incorrectly emulating it.
3487
3488         * doc/extend.texi (Deprecated Features): Mention that <? and >? and
3489         friends are removed from G++.
3490
3491 2007-10-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3492
3493         * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
3494         -Wwrite-strings and -Wmultichar are enabled by default, so Wall
3495         enabling them is redundant. Don't check two times for
3496         c_dialect_cxx.
3497         
3498 2007-10-09  H.J. Lu  <hongjiu.lu@intel.com>
3499
3500         * ra-conflict.c (record_one_conflict_between_regnos): Revert
3501         the last change.
3502         (set_conflicts_for_earlyclobber): Likewise.
3503         (global_conflicts): Likewise.
3504
3505 2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3506
3507         * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3508         and '%}', respectively.
3509
3510 2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3511
3512         * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3513         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3514         and '}'.
3515         * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3516         meant to be output.
3517
3518 2007-10-09  Richard Guenther  <rguenther@suse.de>
3519
3520         PR middle-end/33692
3521         * gimplify.c (canonicalize_component_ref): Honor qualifiers
3522         of referenced structure and component.
3523
3524 2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>
3525
3526         PR middle-end/33669
3527         * ra-conflict.c (record_one_conflict_between_regnos,
3528         set_conflicts_for_earlyclobber, global_conflicts): Improved
3529         logging.
3530         (global_conflicts): Removed incorrect check.
3531
3532 2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>
3533
3534         PR tree-optimization/33615
3535         * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
3536         if the statement might throw.  Fix formatting.
3537
3538 2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>
3539
3540         PR tree-optimization/33615
3541         * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
3542         if the rhs might throw.
3543
3544 2007-10-09  Jan Hubicka  <jh@suse.cz>
3545
3546         * invoke.texi (align-threshold, align-loop-iterations): Document.
3547         * final.c: Include cfgloop.h, params.h
3548         (compute_alignments): Dump decisions and compare them with loop
3549         structure; honor given parameters.
3550         (pass_compute_alignments): New dump file.
3551         * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
3552         * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
3553
3554 2007-10-09  James E. Wilson  <wilson@specifix.com>
3555
3556         PR tree-optimization/33655
3557         PR middle-end/22156
3558         * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
3559         convert it to bitsizetype before size_binop call.
3560
3561 2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
3562
3563         PR tree-optimization/33572
3564         * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
3565         the absence of a corresponding edge from the exit block.
3566
3567 2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
3568
3569         PR middle-end/22156
3570         * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
3571         bit-field layout.
3572         (sra_build_assignment): Likewise.  Set up mask depending on
3573         precision, not type.
3574         (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN.  Don't overflow
3575         computing bit masks.
3576         (sra_build_elt_assignment): Don't view-convert from signed to
3577         unsigned.
3578         (sra_explode_bitfield_assignment): Use bit-field type if
3579         possible.  Use BYTES_BIG_ENDIAN.
3580
3581 2007-10-08  Alexandre Oliva  <aoliva@redhat.com>
3582
3583         PR middle-end/22156
3584         * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
3585         the original stmt can throw.
3586         (sra_build_bf_assignment): Fix type mismatch when applying negated
3587         mask.
3588
3589 2007-10-08  Geoffrey Keating  <geoffk@apple.com>
3590
3591         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
3592         '#pragma mark' to be executed at preprocessing time.
3593
3594 2007-10-08  Ollie Wild  <aaw@google.com>
3595
3596         * varasm.c (compare_constant): Removed call to
3597         lang_hooks.expand_constant.
3598         (copy_constants): Removed call to lang_hooks.expand_constant.
3599         (compute_reloc_for_constant): Removed call to
3600         lang_hooks.expand_constant.
3601         (output_addressed_constants): Removed call to
3602         lang_hooks.expand_constant.
3603         (constructor_static_from_elts_p): Removed call to
3604         lang_hooks.expand_constant.
3605         (output_constant): Removed calls to lang_hooks.expand_constant.
3606         * langhooks.h (struct lang_hooks): Removed field expand_constant.
3607         * langhooks-def.h (lhd_return_tree): Removed.
3608         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
3609         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
3610         * langhooks.c (lhd_return_tree): Removed.
3611
3612 2007-10-08  Mark Shinwell  <shinwell@codesourcery.com>
3613
3614         * combine.c (setup_incoming_promotions): Ensure that
3615         arguments that have not undergone mode promotions do not
3616         incorrectly get marked as being sign- or zero-extended.
3617
3618 2007-10-08  Richard Guenther  <rguenther@suse.de>
3619
3620         PR middle-end/33693
3621         PR middle-end/33695
3622         PR middle-end/33697
3623         * fold-const.c (fold_binary): Use correct types in folding
3624         of a * (1 << b) to (a << b).  Likewise for ~A & ~B to ~(A | B)
3625         and building of RROTATE_EXPR.
3626
3627 2007-10-08  Richard Guenther  <rguenther@suse.de>
3628
3629         PR middle-end/33691
3630         PR middle-end/33694
3631         PR middle-end/33696
3632         * fold-const.c (fold_binary): Use the correct types when
3633         folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
3634         (fold_binary): Use the correct types when folding
3635         (-A) - B to (-B) - A.
3636         (fold_unary): Use the correct types when folding ~(X).
3637
3638 2007-10-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3639
3640         * doc/invoke.texi (Wall): fix formatting issues.
3641         
3642 2007-10-07  Richard Sandiford  <rsandifo@nildram.co.uk>
3643
3644         * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
3645         truncated shift counts.
3646
3647 2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
3648
3649         * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3650         syntax for ASSEMBLER_DIALECT.
3651         * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3652
3653 2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3654             Nathan Froyd  <froydnj@codesourcery.com>
3655
3656         * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
3657         when determining whether to record INCOMING_RETURN_ADDR_RTX.
3658
3659 2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3660
3661         Revert:
3662         2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3663
3664         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
3665         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
3666         the function, temporarily point the debug interface to the null one.
3667
3668 2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
3669
3670         PR tree-optimization/33655
3671         PR middle-end/22156
3672         * tree-sra.c (bitfield_overlaps_p): Handle array and complex
3673         elements.
3674
3675 2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
3676
3677         PR tree-optimization/33572
3678         * tree-cfg.c (verify_stmts): Check for missing PHI defs.
3679         * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
3680         (update_ssa_across_abnormal_edges): ... this.  Set slots in the
3681         return PHI node.
3682         (copy_edges_for_bb): Handle nonlocal label edges.
3683         (make_nonlocal_label_edges): Deleted.
3684         (optimize_inline_calls): Don't call it.
3685
3686 2007-10-05  Hans-Peter Nilsson  <hp@axis.com>
3687
3688         * gthr-single.h: Revert last change.
3689
3690 2007-10-05  Michael Matz  <matz@suse.de>
3691
3692         PR middle-end/33667
3693         * lower-subreg.c (decompose_multiword_subregs): Use
3694         validate_unshare_change().
3695
3696 2007-10-05  Peter Bergner  <bergner@vnet.ibm.com>
3697
3698         * ra-conflict.c: Include "sparseset.h".
3699         (conflicts): Change to HOST_WIDEST_FAST_INT.
3700         (allocnos_live): Redefine variable as a sparseset.
3701         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
3702         Delete macros.
3703         (allocno_row_words): Removed global variable.
3704         (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
3705         (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
3706         (conflict_p, set_conflict_p, set_conflicts_p): New functions.
3707         (record_one_conflict_between_regnos): Cache allocno values and reuse.
3708         Use set_conflict_p.
3709         (record_one_conflict): Update uses of allocnos_live to use
3710         the sparseset routines.  Use set_conflicts_p.
3711         (mark_reg_store): Likewise.
3712         (set_reg_in_live): Likewise.
3713         (global_conflicts): Update uses of allocnos_live.
3714         Use the new adjacency list to visit an allocno's neighbors
3715         rather than iterating over all possible allocnos.
3716         Call set_conflicts_p to setup conflicts rather than adding
3717         them manually.
3718         * global.c: Comments updated.  
3719         (CONFLICTP): Delete define.
3720         (regno_compare): New function.  Add prototype.
3721         (global_alloc): Sort the allocno to regno mapping according to
3722         which basic blocks the regnos are referenced in.  Modify the
3723         conflict bit matrix to a compressed triangular bitmatrix.
3724         Only allocate the conflict bit matrix and adjacency lists if
3725         we are actually going to allocate something.
3726         (expand_preferences): Use conflict_p.  Update uses of allocnos_live.
3727         (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
3728         allocno's neighbors rather than iterating over all possible allocnos.
3729         (mirror_conflicts): Removed function.
3730         (dump_conflicts): Iterate over regnos rather than allocnos so
3731         that all dump output will be sorted by regno number.
3732         Use the FOR_EACH_CONFLICT macro.
3733         * ra.h: Comments updated.
3734         (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
3735         (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
3736         Add prototypes.
3737         (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
3738         (adjacency_list_d, adjacency_iterator_d): New types.
3739         (add_neighbor, adjacency_iter_init, adjacency_iter_done,
3740         adjacency_iter_next, regno_basic_block): New static inline functions.
3741         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
3742         (conflict_p): Add function prototype.
3743         * sparseset.h, sparseset.c: New files.
3744         * Makefile.in (OBJS-common): Add sparseset.o.
3745         (sparseset.o): New rule.
3746
3747 2007-10-05  Richard Guenther  <rguenther@suse.de>
3748
3749         PR middle-end/33666
3750         * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
3751         to (long long)ptr.
3752
3753 2007-10-05  Michael Matz  <matz@suse.de>
3754
3755         PR inline-asm/33600
3756         * function.c (match_asm_constraints_1): Check for input
3757         being used in the outputs.
3758
3759 2007-10-05  Richard Guenther  <rguenther@suse.de>
3760
3761         * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
3762
3763 2007-10-05  Richard Sandiford  <rsandifo@nildram.co.uk>
3764
3765         PR target/33635
3766         * config/mips/mips.c (mips_register_move_cost): Rewrite to use
3767         subset checks.  Make the cost of FPR -> FPR moves depend on
3768         mips_mode_ok_for_mov_fmt_p.
3769
3770 2007-10-04  Doug Kwan  <dougkwan@google.com>
3771
3772         * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
3773         __gthread_cond_wait_recursive): Add to extend interface for POSIX
3774         conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
3775         support of conditional variables.
3776         * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
3777         __gthread_cond_wait_recursive): Add to extend interface for POSIX
3778         conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
3779         support of conditional variables.
3780         * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
3781         __gthread_cond_wait_recursive): Add to extend interface for POSIX
3782         conditional variables.
3783         * gthr.h: Update comments to document new interface.
3784
3785 2007-10-04  Geoffrey Keating  <geoffk@apple.com>
3786
3787         * cgraphunit.c (cgraph_build_static_cdtor): Don't set
3788         DECL_IGNORED_P.
3789
3790 2007-10-04  Anatoly Sokolov <aesok@post.ru>
3791
3792         * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
3793
3794 2007-10-04  Richard Guenther  <rguenther@suse.de>
3795
3796         PR middle-end/33641
3797         * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
3798         does not need to be of INTEGER_TYPE.
3799         (verify_gimple_2): New function split out from ...
3800         (verify_gimple_1): ... here.  ICE if there was an error during
3801         verification.
3802
3803 2007-10-04  Michael Matz  <matz@suse.de>
3804
3805         PR rtl-optimization/33653
3806         * dce.c (deletable_insn_p_1): Use volatile_refs_p().
3807         * dse.c (scan_insn): Same.
3808
3809 2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
3810
3811         * config.gcc: Remove USE_GAS for m68k targets.
3812
3813 2007-10-04  Richard Guenther  <rguenther@suse.de>
3814
3815         PR tree-optimization/33627
3816         * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
3817         * tree-gimple.c (canonicalize_cond_expr_cond): New function,
3818         split out from ...
3819         * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
3820         * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
3821
3822 2007-10-04  Anatoly Sokolov <aesok@post.ru>
3823
3824         * config/avr/avr.c (commands_in_file, commands_in_prologues, 
3825         commands_in_epilogues): Remove variables.
3826         (avr_file_start): Remove unneded initializations of commands_in_file,
3827         commands_in_prologues and commands_in_epilogues variables.
3828         (avr_file_end): Remove dead code.
3829
3830 2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
3831
3832         * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
3833         MOTOROLA is to true.
3834
3835 2007-10-03  Richard Sandiford  <rsandifo@nildram.co.uk>
3836
3837         PR target/33635
3838         * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
3839         (mips_split_doubleword_move): ...this.
3840         * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
3841         use natural endianness for multi-format FPR values.
3842         (mips_split_64bit_move): Rename to...
3843         (mips_split_doubleword_move): ...this and extend to 64-bit words.
3844         Use move_doubleword_fpr* patterns for moves involving FPRs.
3845         (mips_save_reg): Update the call to mips_split_64bit_move.
3846         (mips_secondary_reload_class): Return NO_REGS for any reload of a
3847         nonzero constant into an FPR if the constant can be forced to memory.
3848         * config/mips/mips.md: Update the splitter calls to
3849         mips_split_64bit_move.
3850         (UNSPEC_LOAD_DF_LOW): Rename to...
3851         (UNSPEC_LOAD_LOW): ...this.
3852         (UNSPEC_LOAD_DF_HIGH): Rename to...
3853         (UNSPEC_LOAD_HIGH): ...this.
3854         (UNSPEC_STORE_DF_HIGH): Rename to...
3855         (UNSPEC_STORE_WORD): ...this.
3856         (SPLITF): New mode iterator.
3857         (HALFMODE): New mode attribute.
3858         (movtf): New expander.
3859         (*movtf_internal): New define_insn_and_split.
3860         (move_doubleword_fpr<mode>): New expander.
3861         (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
3862         with...
3863         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
3864         (mfhc1<mode>): ...these more general patterns.
3865
3866 2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
3867
3868         * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
3869
3870 2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
3871
3872         * gcse.c (hash_scan_set): Insert set in insn before note at
3873         the end of basic block.
3874
3875 2007-10-03  Sebastian Pop  <sebastian.pop@amd.com>
3876
3877         PR tree-optimization/33576
3878         * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
3879         * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
3880         * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
3881         (remove_iv): Declared.
3882         * lambda-code.c (remove_iv): Not static.
3883         (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
3884         Don't remove ivs there, save ivs in the buffer.
3885
3886 2007-10-03  Jason Merrill  <jason@redhat.com>
3887
3888         PR c++/15764
3889         * tree-eh.c (same_handler_p): New fn.
3890         (optimize_double_finally): New fn.
3891         (refactor_eh_r): New fn.
3892         (refactor_eh): New fn.
3893         (pass_refactor_eh): New pass.
3894         * tree-pass.h: Declare it.
3895         * passes.c (init_optimization_passes): Add it.
3896
3897 2007-10-03  Doug Kwan  <dougkwan@google.com>
3898         Richard Guenther  <rguenther@suse.de>
3899
3900         PR debug/31899
3901         * dwarf2out.c (reference_to_unused): Disable sanity checking,
3902         be conservative instead.
3903
3904 2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3905
3906         PR fortran/26682
3907         * doc/invoke.texi (-fwhole-program): Document that Fortran
3908         doesn't support this option.
3909
3910 2007-10-02  Richard Sandiford  <rsandifo@nildram.co.uk>
3911
3912         PR middle-end/33617
3913         * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
3914         expand_expr.
3915
3916 2007-10-02  David Daney  <ddaney@avtrex.com>
3917
3918         * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
3919         against constant zero.
3920         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP):  Handle constant zero
3921         operand.
3922
3923 2007-09-02  Kenneth Zadeck <zadeck@naturalbridge.com>
3924
3925         * ra-conflict.c: New file.
3926         * ra.h: New file.
3927         * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
3928         usage to DF_LIVE usage.
3929         (reload): Remove reference to df_get_live_top.
3930         * rtlanal.c (subreg_nregs_with_regno): New function.  
3931         * df-scan.c (df_def_record_1, df_uses_record): Add code to set
3932         DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
3933         (df_has_eh_preds): Removed.
3934         (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
3935         df_exit_block_uses_collect): Changed call from df_has_eh_preds to
3936         bb_has_eh_pred.
3937         * global.c (allocno, max_allocno, conflicts, allocno_row_words,
3938         reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
3939         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
3940         (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
3941         mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
3942         (global_alloc): Turn off rescanning insns after call to
3943         global_conflicts and added call to set_preferences.
3944         (global_conflicts): Moved to ra-alloc.c.
3945         (set_preferences_1, set_preferences): New function.
3946         (mirror_conflicts): Changed types for various variables.
3947         (mark_elimination): Change DF_RA_LIVE
3948         usage to DF_LIVE usage.
3949         (build_insn_chain): Rewritten from scratch and made local.
3950         (print_insn_chain, print_insn_chains): New functions.
3951         (dump_conflicts): Do not print conflicts for fixed_regs.
3952         (rest_of_handle_global_alloc): Turn off insn rescanning.
3953         * hard-reg-set.h: Fixed comment.
3954         * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
3955         usage to DF_LIVE usage and delete refs to TOP sets.
3956         (block_alloc): Mark regs as live if they are in the artificial
3957         defs at top of block.
3958         (find_stack_regs): New function.
3959         (rest_of_handle_local_alloc): Changed urec problem to live
3960         problem and do not turn off df rescanning.
3961         * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
3962         DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
3963         df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
3964         (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
3965         (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
3966         fields in df_ref_flags.  The rest have been renumbered.  
3967         * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
3968         at -O1.
3969         * rtl.h (subreg_nregs_with_regno): New function.
3970         * df-problems.c: (df_get_live_out, df_get_live_in,
3971         df_get_live_top): Removed reference to DF_RA_LIVE.
3972         (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
3973         df_live_alloc, df_live_reset, df_live_local_finalize,
3974         df_live_free): Make top set only if different from in set.
3975         (df_lr_top_dump, df_live_top_dump): Only print top set if
3976         different from in set.
3977         (df_lr_bb_local_compute): Removed unnecessary check.
3978         (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, 
3979         df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, 
3980         df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
3981         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
3982         df_urec_local_compute, df_urec_init, df_urec_local_finalize, 
3983         df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 
3984         df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
3985         df_urec_add_problem): Removed.
3986         (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
3987         bb_has_eh_pred. 
3988         * Makefile.in (ra-conflict.o, ra.h): New dependencies.
3989         * basic_block.h (bb_has_abnormal_pred): New function.
3990         * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
3991         usage to DF_LIVE usage.
3992         
3993 2007-10-02  Revital Eres  <eres@il.ibm.com>
3994
3995         * config/rs6000/predicates.md (easy_vector_constant): Return false
3996         for 750CL paired vectors.
3997         * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
3998         vector constant.
3999         (vec_initv2sf): Add new description.
4000         (vconcatsf): Likewise.
4001         * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
4002         * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
4003
4004 2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
4005
4006         * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
4007         sinking the last stmt in a BB.
4008
4009 2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
4010
4011         PR middle-end/22156
4012         * tree-sra.c (struct sra_elt): Add in_bitfld_block.
4013         (sra_hash_tree): Handle BIT_FIELD_REFs.
4014         (sra_elt_hash): Don't hash bitfld blocks.