OSDN Git Service

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