OSDN Git Service

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