OSDN Git Service

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