OSDN Git Service

2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-12-10  Kenneth Zadeck <zadeck@naturalbridge.com>
2
3         PR rtl-optimization/34302
4         * auto-inc-dec.c (attempt_change): Change place where move is
5         inserted.
6
7 2007-12-10  Jakub Jelinek  <jakub@redhat.com>
8
9         * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
10         Fortran multi-dimensional arrays use DW_AT_ordering
11         DW_ORD_col_major.
12
13 2007-12-10  Paolo Bonzini  <bonzini@gnu.org>
14
15         PR target/32086
16         * config/i386/i386.c (override_options): Enable -fvect-cost-model.
17
18 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
19
20         * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
21         array, registers that are members of global_regs are also members of
22         fixed_regs array.  Use REGPARM_MAX to check that no regparm hard
23         register is taken by a fixed register variable.  Check up to and
24         including DI_REG when adjusting regparm value due to fixed regs usage.
25         (rep_prefix_usable): Check fixed_regs array, not global_regs array for
26         available hard registers.
27         (ix86_expand_strlen): Ditto.
28         * config/i386/i386.md (strmov): Ditto.
29         (cmpstrnsi): Ditto.
30
31 2007-12-10  Kaz Kojima  <kkojima@gcc.gnu.org>
32
33         * genopinit.c: Include tm_p.h in generated file.
34
35         * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
36         to extract the integer from operands[2].
37         (vec_setv2di_internal): Likewise.
38
39         * config/arm/arm.c (arm_size_return_regs): Make return type
40         unsigned.
41         (arm_init_neon_builtins): Move code after declarations.
42
43 2007-12-10  Hans-Peter Nilsson  <hp@axis.com>
44
45         * reload.c (find_reloads_address_1): To properly mark as an
46         autoincdec, pass X for non-NULL OUT in call to push_reload for
47         autoincdec which can't be trivially used as an address.
48
49 2007-12-10  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
50             Hans-Peter Nilsson  <hp@axis.com>
51
52         * caller-save.c (insert_one_insn): If inserting before a call_insn
53         then the registers containing the arguments of the call are
54         live_throughout in the new insn.
55
56 2007-12-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
57
58         PR middle-end/32889
59         PR target/34091
60         * pa.md: Consolidate HImode and QImode move patterns into one pattern
61         each, eliminating floating-point alternatives.
62         * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
63         Declare functions.
64         * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
65         * pa.c (pa_secondary_reload): Use an intermediate general register
66         for copies to/from floating-point register classes.  Simplify code
67         SHIFT_REGS class.  Provide additional comments.
68         (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
69         * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
70         (SECONDARY_MEMORY_NEEDED): Delete define.
71         (INT14_OK_STRICT): Define.
72         (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
73         soft float.
74         (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
75         (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
76         SFmode and DFmode.
77         (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
78         Align DImode offsets when generating 64-bit code.
79         * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
80         (CANNOT_CHANGE_MODE_CLASS): Define.
81         * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
82         (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
83
84 2007-12-09  Jakub Jelinek  <jakub@redhat.com>
85
86         PR fortran/22244
87         * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
88         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
89         * langhooks.h (struct array_descr_info): Forward declaration.
90         (struct lang_hooks_for_types): Add get_array_descr_info field.
91         * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
92         (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
93         compatibility.
94         * dwarf2out.h (struct array_descr_info): New type.
95         * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
96         DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
97         (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
98         New functions.
99         (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
100         and gen_descr_array_type_die.
101
102 2007-12-08  Richard Guenther  <rguenther@suse.de>
103
104         PR tree-optimization/34391
105         * tree-vect-transform.c (vect_setup_realignment): Mark new
106         symbols for renaming.
107
108 2007-12-07  Bob Wilson  <bob.wilson@acm.org>
109         
110         * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
111         (ASM_OUTPUT_DWARF_PCREL): Define.
112         
113 2007-12-07  Richard Guenther  <rguenther@suse.de>
114
115         PR middle-end/34382
116         * opts.c (common_handle_option): Handle OPT_fforce_addr.
117
118 2007-12-07  Aldy Hernandez  <aldyh@redhat.com>
119
120         * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
121         (LEGITIMIZE_RELOAD_ADDRESS): Same.
122
123 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
124
125         PR ada/29157
126         * doc/install.texi: Explain how to check for a clean environment when
127         building GNAT.
128
129 2007-12-07  Richard Guenther  <rguenther@suse.de>
130
131         * tree-profile.c (gcov_type_tmp_var): New global variable.
132         (tree_gen_edge_profiler): Use a single shared variable decl per
133         function for edge counter incrementing.
134         (tree_profiling): Re-set the shared variable.
135
136 2007-12-06  Bob Wilson  <bob.wilson@acm.org>
137
138         * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
139
140 2007-12-06  Tom Tromey  <tromey@redhat.com>
141
142         PR c/29172:
143         * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
144
145 2007-12-06  Richard Sandiford  <rsandifo@nildram.co.uk>
146
147         * config/mips/mips.c (mips_function_ok_for_sibcall): Check
148         targetm.binds_local_p as well as DECL_EXTERNAL.
149
150 2007-12-06  Harsha Jagasia <harsha.jagasia@amd.com>
151
152         * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
153         (set_prologue_iterations): New. Set the prologue iterations to total
154         number of scalar iterations if the cost model check indicates that
155         scalar code should be generated.
156         (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for 
157         generating the cost condition for epilog. Call
158         set_prologue_iterations to generate cost condition for prolog.
159         (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
160         * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
161         (slpeel_tree_peel_loop_to_edge): Update declaration.
162         (set_prologue_iterations): New declaration.
163         * tree-vect-analyze.c (vect_analyze_loop_form): Update 
164         LOOP_VINFO_NITERS_UNCHANGED.
165         * tree-vect-transform.c
166         (vect_estimate_min_profitable_iters): Add new parameter and
167         code to  check if run time cost model test is needed.
168         Remove code that adds builtin vectorization cost to scalar
169         outside cost for the run time cost model test. If run time
170         cost model test is needed add the appropriate guard cost to
171         the scalar outside cost. The guard cost depends on whether
172         the guard is generated at versioning or at prolog generation
173         or at epilog generation. Change cost model equation to include
174         scalar outside cost.
175         (conservative_cost_threshold): New. Return the less conservative
176         profitability threshold between the cost model threshold and the
177         user defined vectorization threshold.
178         (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
179         (vect_do_peeling_for_alignment): Same.
180         (vect_loop_versioning): Same.
181         (vect_create_cond_for_align_checks): ANDs the cost model condition
182         with the alignment condition.
183         (vect_transform_loop): Call loop versioning only when there is a
184         misalignment or an aliasing problem.
185
186 2007-12-06  Jakub Jelinek  <jakub@redhat.com>
187
188         PR middle-end/20983
189         * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
190         (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
191         BUILT_IN_VA_COPY and BUILT_IN_VA_END.
192
193         * target.h (struct ggc_target): Add expand_builtin_va_start hook.
194         * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
195         (TARGET_INITIALIZER): Add it.
196         * builtins.c (expand_builtin_va_start): Use
197         targetm.expand_builtin_va_start hook instead of
198         EXPAND_BUILTIN_VA_START macro.
199         * alpha/alpha.c (alpha_va_start): Made static.
200         (override_options): Clear targetm.expand_builtin_va_start if
201         TARGET_UNICOSMK.
202         (TARGET_EXPAND_BUILTIN_VA_START): Define.
203         * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
204         * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
205         * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
206         * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
207         * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
208         (xtensa_va_start): Made static.
209         * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
210         * pa/pa-protos.h (hppa_va_start): Remove prototype.
211         * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
212         * pa/pa.c (hppa_va_start): Made static, add prototype.
213         (TARGET_EXPAND_BUILTIN_VA_START): Define.
214         * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
215         (TARGET_EXPAND_BUILTIN_VA_START): Define.
216         * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
217         * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
218         * i386/i386.c (override_options): Clear
219         targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
220         (ix86_va_start): Made static.
221         (TARGET_EXPAND_BUILTIN_VA_START): Define.
222         * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
223         * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
224         * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
225         * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
226         * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
227         (TARGET_EXPAND_BUILTIN_VA_START): Define.
228         * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
229         * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
230         (TARGET_EXPAND_BUILTIN_VA_START): Define.
231         (rs6000_override_options): Clear targetm.expand_builtin_va_start if
232         DEFAULT_ABI != ABI_V4.
233         * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
234         * spu/spu.c (spu_va_start): Made static, add prototype.
235         (TARGET_EXPAND_BUILTIN_VA_START): Define.
236         * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
237         * spu/spu-protos.h spu_va_start): Remove prototype.
238         * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
239         * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
240         Remove prototype.
241         * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made
242         static.
243         (TARGET_EXPAND_BUILTIN_VA_START): Define.
244         * s390/s390-protos.h (s390_va_start): Remove prototype.
245         * s390/s390.c (s390_va_start): Made static.
246         (TARGET_EXPAND_BUILTIN_VA_START): Define.
247         * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
248         * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
249         * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
250         * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
251         (TARGET_EXPAND_BUILTIN_VA_START): Define.
252         * arc/arc.c (arc_va_start): Made static, add prototype.
253         (TARGET_EXPAND_BUILTIN_VA_START): Define.
254         * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
255         * arc/arc-protos.h (arc_va_start): Remove prototype.
256         * mt/mt-protos.h (mt_va_start): Remove prototype.
257         * sparc/sparc.c (sparc_va_start): Made static, add prototype.
258         (TARGET_EXPAND_BUILTIN_VA_START): Define.
259         * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
260         * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
261         * sh/sh.c (sh_va_start): Made static, add prototype.
262         (TARGET_EXPAND_BUILTIN_VA_START): Define.
263         * sh/sh-protos.h (sh_va_start): Remove prototype.
264         * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
265         * mips/mips-protos.h (mips_va_start): Remove prototype.
266         * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
267         * mips/mips.c (mips_va_start): Made static.
268         (TARGET_EXPAND_BUILTIN_VA_START): Define.
269
270 2007-12-06  Uros Bizjak  <ubizjak@gmail.com>
271
272         * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
273         "flag_tree_parallelize_loops > 1".
274         
275 2007-12-06  Zdenek Dvorak  <ook@ucw.cz>
276             Dorit Nuzman  <dorit@il.ibm.com>
277             Jakub Jelinek  <jakub@redhat.com>
278
279         PR tree-optimization/34005
280         * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
281         * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
282         (gimplify_pure_cond_expr): New function.
283         (generic_expr_could_trap_p): New function.
284         (gimplify_cond_expr): Call gimplify_pure_cond_expr.
285         (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
286
287 2007-12-06  Andreas Krebbel  <krebbel1@de.ibm.com>
288
289         * config/s390/s390.c (s390_emit_stack_tie): New function.
290         (s390_emit_prologue): Emit a stack tie when writing to the
291         f8-f15 stack slots.
292         * config/s390/s390.md ("stack_tie"): New insn definition.
293
294 2007-12-06  Ben Elliston  <bje@au.ibm.com>
295
296         * SERVICE: Remove.
297         * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
298
299 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
300
301         PR middle-end/34337
302         * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
303         number of bits set in C1 if a mode mask for some mode can be used
304         instead.
305
306 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
307
308         * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
309         fixes.
310
311 2007-12-05  Richard Guenther  <rguenther@suse.de>
312
313         PR tree-optimization/34138
314         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
315         Do not forward propagate addresses if that changes volatileness of
316         the pointed-to type.
317
318 2007-12-05  Uros Bizjak  <ubizjak@gmail.com>
319
320         PR target/34312
321         * config/i386/i386.c (ix86_function_regparm): Also check for fixed
322         registers when checking that regparm registers are available.
323         Lower regparm value due to fixed registers usage in addition to
324         global regs usage.
325
326 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
327
328         * sparseset.c: Include config.h and system.h before sparseset.h.
329         * sparseset.h: Remove inclusion of system.h.
330
331 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
332             Richard Sandiford  <rsandifo@nildram.co.uk>
333
334         * optabs.c (init_insn_codes): New function.
335         (new_optab): Delete.
336         (init_optab, init_optabv): Don't call new_optab.
337         (init_convert_optab): Don't clear the insn codes.
338         (init_optabs): Call init_insn_codes.
339
340 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
341
342         * omp-low.c (optimize_omp_library_calls): New function.
343         (expand_omp_parallel): Call it if optimizing.
344
345         PR middle-end/34134
346         * stmt.c (expand_stack_restore): Call expand_normal on var to get
347         rtx for it instead of assuming it will be a VAR_DECL.
348
349 2007-12-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
350
351         * c-parser (c_parser_statement_after_labels): Move error from here...
352         (c_parser_label): ... to here. Check that the declaration is not
353         actually just another label.
354
355 2007-12-04  Richard Guenther  <rguenther@suse.de>
356
357         PR middle-end/34334
358         PR middle-end/34222
359         * tree-ssa-operands.c (get_addr_dereference_operands): If we
360         fall back to using the SMTs aliases, make sure to add virtual
361         operands for the SMT itself.
362         (create_ssa_artificial_load_stmt): Fix typo.  Make sure to also
363         clear the loaded and stored symbols bitmaps.
364
365 2007-12-04  Ben Elliston  <bje@au.ibm.com>
366
367         * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
368
369 2007-12-04  Ben Elliston  <bje@au.ibm.com>
370
371         * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
372
373 2007-12-03  Steven Bosscher  <stevenb.gcc@gmail.com>
374
375         PR middle-end/33713
376         * doc/invoke.texi: Remove -fforce-addr documentation.
377         * expr.c (emit_move_insn): Remove use of flag_force_addr.
378         (expand_expr_real_1): Same.
379         (do_tablejump): Same.
380         Call memory_address instead of memory_address_noforce.
381         * expr.h (memory_address_noforce): Remove prototype.
382         * explow.c (memory_address): Remove support for flag_force_addr.
383         (validize_mem): Same.
384         (memory_address_noforce): Remove.
385         * common.opt: Add dummy documentation for -fforce-addr.
386         * combine.c (can_combine_p): Remove -fforce-addr comment.
387         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
388         flag_force_addr.
389         * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
390         relating to memory_address_noforce.
391         * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
392         * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
393         
394 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
395
396         * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
397         with !ctx->is_nested.
398         (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
399         even if !ctx->is_nested.
400         (lower_copyprivate_clauses, lower_send_clauses,
401         lower_send_shared_vars): Call lookup_decl_in_outer_ctx
402         unconditionally.
403
404         PR middle-end/29749
405         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
406         (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
407         and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
408         (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
409         (X & C2) << C1 into (X << C1) & (C2 << C1) and
410         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
411         optimizations.
412
413         PR tree-optimization/33453
414         * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
415         for pointer addition.
416         * tree-parloops.c (canonicalize_loop_ivs): Likewise.
417         (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
418         var_copy.
419
420 2007-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>
421
422         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
423         necessary.
424
425 2007-12-03  Razya Ladelsky <razya@il.ibm.com>
426
427         * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
428
429 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
430
431         PR middle-end/34317
432         * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
433         * common.opt (ftree-store-copy-prop): Use the same help text as for
434         other nop switches.
435
436 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
437             Revital Eres  <eres@il.ibm.com>
438
439         * modulo-sched.c (calculate_must_precede_follow,
440         try_scheduling_node_in_cycle): New functions.
441         (sms_schedule_by_order): Call the new functions.
442         (ps_insn_find_column): Use must_follow and must_precede only if
443         they are not NULL.
444         (ps_insn_advance_column): Likewise.
445
446 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
447             Revital Eres  <eres@il.ibm.com>
448
449         * modulo-sched.c (get_sched_window): Fix the direction of the
450         scheduling window and add dump info.
451
452 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
453
454         * config/sh/sh.md (cmpgeusi_t): Fix condition.
455
456 2007-11-30  Jan Hubicka  <jh@suse.cz>
457
458         * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
459
460 2007-11-30  Seongbae Park <seongbae.park@gmail.com>
461
462         PR rtl-optimization/34171
463         * cfgrtl.c (update_bb_for_insn_chain): New function,
464         refactored from update_bb_for_insn.
465         (update_bb_for_insn): Call update_bb_for_insn.
466         (rtl_merge_blocks, try_redirect_by_replacing_jump):
467         Replace a loop with update_bb_for_insn_chain call.
468         (cfg_layout_merge_blocks): Add a call to
469         update_bb_for_insn_chain. Replace the for loop
470         with a call to update_bb_for_insn_chain.
471
472 2007-11-30  Ben Elliston  <bje@au.ibm.com>
473
474         * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
475
476 2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
477
478         PR tree-optimization/34244
479         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
480         (record_numbers_of_iterations): New function.
481         (execute_vrp): Cache the numbers of iterations of loops.
482         * tree-scalar-evolution.c (scev_reset_except_niters):
483         New function.
484         (scev_reset): Use scev_reset_except_niters.
485         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
486
487 2007-11-29  Jan Hubicka  <jh@suse.cz>
488             Jakub Jelinek  <jakub@redhat.com>
489
490         PR tree-optimization/33434
491         * tree-inline.c (setup_one_parameter): If the value passed to
492         a parameter is never used, don't set it up.
493
494 2007-11-29  Jakub Jelinek  <jakub@redhat.com>
495
496         PR target/32130
497         * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
498         * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
499
500 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
501
502         * Makefile.in: Use separate vpath lines for each path.
503
504 2007-11-29  Ben Elliston  <bje@au.ibm.com>
505
506         * SERVICE: Update URL.
507
508 2007-11-28  Jakub Jelinek  <jakub@redhat.com>
509
510         PR tree-optimization/34140
511         * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
512         loop->header has virtual phi nodes.
513
514 2007-11-28  Richard Sandiford  <rsandifo@nildram.co.uk>
515
516         PR target/32406
517         * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
518         of GP register, if valid and fixed.
519
520         Revert:
521         2007-06-21  David Daney  <ddaney@avtrex.com>
522
523         PR target/32406
524         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
525         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
526         (exception_receiver): Renamed to ...
527         (nonlocal_goto_receiver): ... this.
528
529 2007-11-27  H.J. Lu  <hongjiu.lu@intel.com>
530             Joey Ye <joey.ye@intel.com>
531
532         PR target/34001
533         * config/i386/i386.c (function_arg_32): Don't pass aggregate
534         arguments in ECX/EDX for fastcall.
535
536 2007-11-28  Rask Ingemann Lambertsen  <rask@sygehus.dk>
537
538         * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
539         asm to macro.
540         * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
541         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
542
543 2007-11-28  Ben Elliston  <bje@au.ibm.com>
544
545         * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
546         (maix32): Add Negative(maix64).
547
548 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
549
550         PR tree-optimization/34016
551         * tree-ssa-loop.c (pass_linear_transform): Add
552         TODO_update_ssa_only_virtuals to todo_flags_finish.
553
554 2007-11-27  Eric B. Weddington  <eric.weddington@atmel.com>
555
556         * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
557         * config/avr/avr.h (LINK_SPEC): Likewise.
558         (CRT_BINUTILS_SPECS): Likewsie.
559         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
560         
561 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
562
563         PR target/34225
564         * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
565         MEM_SIZE is set on all MEMs.
566
567 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
568
569         * config/s390/s390.opt (mhard-float): Add the option to be
570         overridden.  That was missing in my last patch.
571
572 2007-11-27  Richard Guenther  <rguenther@suse.de>
573
574         PR tree-optimization/34241
575         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
576         to only delete real conversion chains.
577
578 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
579
580         * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
581         mhard-float, mlong-double-64, mlong-double-128): Add the
582         option to be overridden.
583
584 2007-11-27  Richard Guenther  <rguenther@suse.de>
585
586         * builtins.c (fold_builtin_1): Verify the argument types
587         of BUILT_IN_ISNORMAL.
588         (fold_builtin_n): Verify the number of arguments to variadic
589         built-in functions.
590
591 2007-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
592
593         * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
594         * doc/invoke.texi (Blackfin Options): Document the effects.
595
596 2007-11-27  Ben Elliston  <bje@au.ibm.com>
597
598         * config/rs6000/sysv4.opt (m32): Add Negative(m64).
599         (m64): Add Negative(m32).
600         * config/rs6000/darwin.opt (m32): Add Negative(m64).
601         (m64): Add Negative(m32).
602
603 2007-11-26  Eric Botcazou  <ebotcazou@adacore.com>
604
605         * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
606
607 2007-11-26  Michael Meissner  <michael.meissner@amd.com>
608
609         PR target/34077
610         * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
611         constant, avoid calling emit_cmp_and_jump_insns.  Use counter_mode
612         to get the mode for loading a pseudo register with a count rather
613         than duplicating code.
614
615 2007-11-25  Eric B. Weddington  <eric.weddington@atmel.com>
616
617         * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
618         * config/avr/avr.h (LINK_SPEC): Likewise.
619         (CRT_BINUTILS_SPECS): Likewsie.
620         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
621
622 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
623         
624         * c-common.c (conversion_warning): Use get_unwidened instead of
625         get_narrower.
626         
627 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
628
629         PR c/23722
630         * c-parser.c (struct c_parser): New bit in_if_block.
631         (c_parser_compound_statement_nostart): Handle unexpected 'else'
632         keyword.
633         (c_parser_statement_after_labels): Set in_if_block to false while
634         parsing.
635         (c_parser_if_body): Don't call c_parser_statement_after_labels if
636         a semicolon is found, just consume it. Don't call
637         c_parser_statement_after_labels if an open brace is found, call
638         c_parser_compound_statement instead.
639         (c_parser_else_body): New.
640         (c_parser_if_statement): Set in_if_block to true when parsing the
641         body of the 'if' statement. Use c_parser_else_body.
642
643 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
644
645         PR c++/34081
646         * c-decl.c (store_parm_decls): Pass 'false' for the new
647         allocate_struct_function parameter.
648         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
649         * tree-parloops.c (create_loop_fn): Likewise.
650         * function.c (push_function_context_to, push_struct_function,
651         init_function_start): Likewise.
652         (allocate_struct_function): Add boolean parameter.
653         * tree.h (allocate_struct_function): Add boolean parameter.
654         * function.h (struct function): Move returns_struct and
655         returns_pcc_struct to the end of the structure definiton.
656
657 2007-11-26  Uros Bizjak  <ubizjak@gmail.com>
658
659         PR target/34215
660         * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
661         virtual registers are already instantiated.
662         (truncxf<mode>2): Ditto.
663         (floatsi<mode>2): Ditto.
664         (floatdisf2): Ditto.
665         (floatdidf2): Ditto.
666
667 2007-11-26  Rask Ingemann Lambertsen  <rask@sygehus.dk>
668
669         PR target/34174
670         * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
671         the address before it is clobbered.
672
673 2007-11-26  Nick Clifton  <nickc@redhat.com>
674
675         * config/mn10300/mn10300.md: (call_internal): Remove mode on
676         operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
677         (call_value_internal): Remove mode on operands 0 and 1 in order to
678         match UNPSEC'ed calls generated in PIC mode.
679         (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
680         two insns.
681
682 2007-11-26  Richard Guenther  <rguenther@suse.de>
683
684         PR middle-end/34233
685         * builtins.c (expand_builtin_pow): Use expand_expr to expand
686         the result of build_call_expr.
687
688 2007-11-26  Steven Bosscher  <stevenb.gcc@gmail.com> 
689             Revital Eres  <eres@il.ibm.com> 
690
691         PR middle-end/34085
692         * bb-reorder.c (insert_section_boundary_note): Clear
693         BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
694
695 2007-11-26  Richard Sandiford  <rsandifo@nildram.co.uk>
696
697         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
698
699 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
700
701         * dwarf2asm.c (splay_tree_compare_strings): New function.
702         (dw2_force_const_mem): Use it.
703
704 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
705
706         * tree.c (type_hash_add): Don't violate strict aliasing rules.
707
708 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
709
710         PR c/27898
711         * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
712         matches between anonymous union fields.
713
714 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>, Jan Hubicka  <jh@suse.cz>
715
716         * tree-ssa-live.c (remove_unused_scope_block_p): Drop
717         declarations and blocks only after inlining.  Check that
718         non-empty blocks are not dropped.
719         * tree-inline.c (expand_call_inline): Check that functions are
720         not inlined too late.
721
722 2007-11-26  Ben Elliston  <bje@au.ibm.com>
723
724         * unwind-dw2-fde.c: Fix comment typo.
725         * unwind-generic.h: Likewise, fix comment typos.
726         
727 2007-11-25  Richard Sandiford  <rsandifo@nildram.co.uk>
728
729         * tree-sra.c (scalarize_use): Adjust the vpos argument to
730         sra_explode_bitfield_assignment in cases where the type is
731         wider than the bitfield.
732
733 2007-11-25  Richard Guenther  <rguenther@suse.de>
734
735         * tree.h (struct tree_block): Move locus member next to flags.
736         * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
737         (SCOPE_LIST_CONCAT): Likewise.
738         (pop_scope): Likewise.
739         * function.c (instantiate_decls_1): Likewise.
740         (setjmp_vars_warning): Likewise.
741         * emit-rtl.c (set_used_decls): Likewise.
742         * tree-inline.c (add_lexical_block): Likewise.
743
744 2007-11-24  Hans-Peter Nilsson  <hp@axis.com>
745
746         * rtlanal.c (label_is_jump_target_p): Return true for a matching
747         REG_LABEL_TARGET.
748         * reorg.c (fill_slots_from_thread): Correct last change to use
749         NULL_RTX, not NULL.  Outside of REG_NOTES loop, increase and
750         decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
751         * jump.c (mark_jump_label_1): Add comment for last change
752         regarding JUMP_LABEL setting.
753         * gcse.c (add_label_notes): Remove conditional that the label is
754         mentioned in insn before adding regnote.
755         * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
756         single_set insn only feeding a label to a jump through a
757         register that dies there.
758
759 2007-11-23  Dirk Mueller  <dmueller@suse.de>
760             Richard Guenther <rguenther@suse.de>
761
762         PR middle-end/34197
763         * tree-vrp.c (check_array_ref): Move check for valid location..
764         (check_array_bounds) here. Use EXPR_HAS_LOCATION().
765
766 2007-11-23  Hans-Peter Nilsson  <hp@axis.com>
767
768         * reload.c (find_reloads_address_1) <autoincdec cases>:
769         Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
770
771 2007-11-23  Richard Guenther  <rguenther@suse.de>
772             Michael Matz  <matz@suse.de>
773
774         PR tree-optimization/34176
775         * alloc-pool.h (empty_alloc_pool): Declare.
776         * alloc-pool.c (empty_alloc_pool): New function.
777         * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
778         valid table if a lookup from the optimistic table failed.
779         (vn_unary_op_lookup): Likewise.
780         (vn_binary_op_lookup): Likewise.
781         (vn_phi_lookup): Likewise.
782         (process_scc): Clear optimistic tables before every iteration.
783
784 2007-11-23  Richard Guenther  <rguenther@suse.de>
785
786         * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
787         (merge_alias_info): Do verification only if checking is
788         enabled.  Merge flow-sensitive alias information in simple cases.
789         * tree-ssa-operands.c (get_addr_dereference_operands): Also
790         complain about missing NMTs.
791
792 2007-11-23  Jakub Jelinek  <jakub@redhat.com>
793
794         PR c++/34198
795         * c-common.c (conversion_warning): For INTEGER_TYPE to
796         INTEGER_TYPE conversions call get_narrower on expr to avoid
797         spurious warnings from binop shortening or when the implicit
798         conversion can't change the value.
799
800 2007-11-22  Joseph Myers  <joseph@codesourcery.com>
801
802         PR c/14050
803         * c-decl.c (set_array_declarator_inner): Don't give error for
804         static or type qualifiers in abstract declarator.  Remove
805         abstract_p parameter.
806         * c-tree.h (set_array_declarator_inner): Update prototype.
807         * c-parser.c (c_parser_direct_declarator_inner): Update call to
808         set_array_declarator_inner.
809         * doc/standards.texi: Update for C99 TC3.
810
811 2007-11-22  Hans-Peter Nilsson  <hp@bitrange.com>
812
813         * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
814         line in my edit of the last change.
815
816 2007-11-22  Jakub Jelinek  <jakub@redhat.com>
817
818         PR target/33947
819         * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
820         and TREE_READONLY on the fn decl rather than passing a chain
821         of attributes.
822
823 2007-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
824
825         * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
826
827 2007-11-22  Uros Bizjak  <ubizjak@gmail.com>
828
829         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
830         of ix86_arch and ix86_tune into a switch statement.
831         (enum processor_type): Default PROCESSOR_I386 to 0.
832         * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
833         of "ix86_tune == PROCESSOR_K6".
834         (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
835         a switch statement.
836
837 2007-11-22  Tom Tromey  <tromey@redhat.com>
838
839         * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
840         avoid writing into string allocated by ggc_alloc_string.
841
842 2007-11-21  Kaz Kojima  <kkojima@gcc.gnu.org>
843
844         PR target/34155
845         * config/sh/sh.md (binary_sf_op): Remove.
846         (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
847         * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
848         and gen_binary_sf_op1.
849
850 2007-11-21  Hans-Peter Nilsson  <hp@axis.com>
851
852         * regclass.c (init_reg_autoinc): Fix typo preventing test of
853         secondary output reload when setting forbidden_inc_dec_class.
854
855 2007-11-21  Richard Guenther  <rguenther@suse.de>
856
857         PR tree-optimization/34148
858         * tree-ssa-structalias.c (create_variable_info_for): Do not use
859         field-sensitive PTA for single-element structures.
860         * tree-ssa-alias.c (create_overlap_variables_for): Do not create
861         SFTs for single-element structures.
862
863 2007-11-20  Richard Guenther  <rguenther@suse.de>
864
865         PR middle-end/34154
866         * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
867         of the signed INT_CST_LT.
868         * stmt.c (expand_case): Likewise.
869         (estimate_case_costs): Likewise.
870
871 2007-11-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
872
873         * read-rtl.c (fatal_expected_char): Print EOF as text rather that
874         its binary representation.
875
876 2007-11-20  Richard Guenther  <rguenther@suse.de>
877
878         * tree-ssa-operands.c (add_virtual_operand): Consistently prune
879         accesses.
880
881 2007-11-20  Thiemo Seufer  <ths@mips.com>
882
883         * config/mips/mips.c (mips_file_start): Add support for
884         flagging 32-bit code with -mfp64 floating-point.
885
886 2007-11-20  Jakub Jelinek  <jakub@redhat.com>
887
888         PR c/34146
889         * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
890         (c_gimplify_expr): Use it.
891
892 2007-11-20  Ben Elliston  <bje@au.ibm.com>
893
894         * config/spu/spu_mfcio.h: Fix typo.
895
896 2007-11-20  Ben Elliston  <bje@au.ibm.com>
897
898         * unwind.inc: Comment that unwind-sjlj.c includes this file.
899
900 2007-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
901             Ben Elliston  <bje@au.ibm.com>
902
903         * config/spu/mfc_tag_release.c: New file.
904         * config/spu/mfc_multi_tag_release.c: Likewise.
905         * config/spu/mfc_multi_tag_reserve.c: Likewise.
906         * config/spu/mfc_tag_release.c: Likewise.
907         * config/spu/mfc_tag_reserve.c: Likewise.
908         * config/spu/mfc_tag_table.c: Likewise.
909         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
910         (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
911         * config/spu/spu_mfcio.h: Avoid <stdint.h>.
912         (uint64_t): Typedef if __IN_LIBGCC2 is defined.
913         (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
914         (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
915         mfc_multi_tag_release): Likewise.
916         (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
917         __mfc_multi_tag_release): Declare.
918
919 2007-11-19  Jason Merrill  <jason@redhat.com>
920
921         PR debug/28834, debug/29436, c/32326
922         * tree.c (build_type_attribute_qual_variant): Refuse to make
923         a distinct copy of a struct/enum type.  Use build_distinct_type_copy.
924         * doc/extend.texi (Type Attributes): Don't encourage people to add
925         attributes to struct/enum types in a typedef.  Fix
926         transparent_union example.
927
928         * tree-inline.c (remap_type_1): Remove code that's redundant with
929         remap_type.
930         (build_duplicate_type): Set id.copy_decl.
931         * c-common.c (handle_transparent_union_attribute): Simplify logic.
932
933 2007-11-19  Peter Bergner  <bergner@vnet.ibm.com>
934
935         * config/rs6000/rs6000.c (invalid_e500_subreg,
936         rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
937         rs6000_legitimize_address, rs6000_legitimize_reload_address,
938         rs6000_legitimate_address, function_arg_advance,
939         spe_build_register_parallel, rs6000_spe_function_arg,
940         rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
941         emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
942         rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
943         TDmode similarly to DFmode and TFmode.
944         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
945         DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
946
947 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
948
949         * stor-layout.c (lang_adjust_rli): Delete.
950         (set_lang_adjust_rli): Likewise.
951         (layout_type): Do not call lang_adjust_rli hook.
952         * tree.h (set_lang_adjust_rli): Delete.
953
954 2007-11-19  Bernd Schmidt  <bernd.schmidt@analog.com>
955         
956         * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
957         n_dregs_to_save and n_pregs_to_save.
958         (n_pregs_to_save, n_dregs_to_save): Use it.  New argument CONSECUTIVE;
959         all callers changed.
960         (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
961         able to save single D/P registers that aren't saved by the push/pop
962         multiple insns.
963
964 2007-11-19  Richard Guenther  <rguenther@suse.de>
965
966         PR tree-optimization/34099
967         * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
968         MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
969         if only one operand is undefined.
970
971 2007-11-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
972
973         PR tree-optimization/34036
974         * opts.c (set_fast_math_flags): Do not set flags in common
975         with set_unsafe_math_optimizations_flags, invoke it directly.
976         (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
977         and flag_signed_zeros.
978         * toplev.c (process_options): Force flag_associative_math to 0 and
979         warn, if it is set and either flag_trapping_math or flag_signed_zeros
980         is set too.
981         * doc/invoke.texi (Optimize Options): Document the new behavior
982         of -funsafe-math-optimizations, that -fassociative-math requires
983         both -fno-signed-zeros and -fno-trapping-math and make it clear
984         that -fno-trapping-math requires -fno-signaling-nans.  Refactor
985         documentation of -ffast-math.
986
987 2007-11-18  Jakub Jelinek  <jakub@redhat.com>
988
989         PR rtl-optimization/34132
990         * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
991         and insn.
992
993         PR middle-end/33335
994         * optabs.h (optab_table): Change type to struct optab from optab.
995         (convert_optab_table): Similarly.
996         Adjust all _optab macros to expand to addresses of optab_table
997         resp. convert_optab_table elements rather than the values of the
998         elements.
999         * optabs.c (optab_table): Change typype to struct optab from optab.
1000         If compiled by recent GCC, initialize all the insn_code fields in
1001         the array using designated range initializers.
1002         (convert_optab_table): Similarly.
1003         (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
1004         set_conv_libfunc): Into libfunc_entry's optab field store index within
1005         optab_table resp. convert_optab_table array instead of difference
1006         between two separately malloced addresses.
1007         (new_optab): Add op argument, don't return anything.  Initialize
1008         just the insn_code field in handlers array and only when needed.
1009         (init_optab, init_optabv): Add op argument, don't return anything.
1010         Adjust new_optab caller.
1011         (new_convert_optab): Removed.
1012         (init_convert_optab): Add op argument, don't return anything, don't
1013         call new_convert_optab.  If needed, initialize insn_code field in
1014         handlers array.
1015         (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
1016         callers.
1017         (debug_optab_libfuncs): Adjust uses of optab_table and
1018         convert_optab_table arrays.
1019
1020 2007-11-18  Richard Guenther  <rguenther@suse.de>
1021
1022         PR tree-optimization/34127
1023         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1024         Make code match up the comments, require compatibility of the
1025         pointed-to types.
1026
1027 2007-11-17  Richard Guenther  <rguenther@suse.de>
1028
1029         PR middle-end/34130
1030         * fold-const.c (extract_muldiv_1): Do not move negative
1031         constants inside ABS_EXPR.
1032
1033 2007-11-16  Ian Lance Taylor  <iant@google.com>
1034
1035         * collect2.c (dump_file): If a demangled symbol is followed by a
1036         space, make sure we output at least one space.
1037
1038 2007-11-16  Richard Guenther  <rguenther@suse.de>
1039
1040         PR middle-end/34030
1041         * fold-const.c (fold_binary): Use correct types for folding
1042         1 << X & Y to Y >> X & 1.
1043
1044 2007-11-16  Richard Guenther  <rguenther@suse.de>
1045
1046         PR tree-optimization/33870
1047         * tree.h (struct tree_memory_tag): Add base_for_components flag.
1048         (struct tree_struct_field_tag): Remove nesting_level field.
1049         (SFT_NESTING_LEVEL): Remove.
1050         (SFT_BASE_FOR_COMPONENTS_P): Add.
1051         * tree-flow.h (struct fieldoff): Remove nesting_level field.  Add
1052         base_for_components flag.
1053         (push_fields_onto_fieldstack): Remove nesting_level parameter.
1054         * tree-ssa-alias.c (create_sft): Likewise.  Add base_for_components
1055         parameter.
1056         (create_overlap_variables_for): Deal with it.
1057         * tree-dfa.c (dump_subvars_for): Likewise.
1058         (dump_variable): Likewise.
1059         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1060         Set base_for_components for first elements of sub-structures.
1061         (create_variable_info_for): Handle base_for_components.
1062         (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
1063         pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
1064         * tree-ssa-operands.c (ref_nesting_level): Remove.
1065         (add_vars_for_offset): Remove full_ref parameter, always add
1066         the offset of the pointed-to SFT.
1067         (add_virtual_operand): Adjust for changed signature of
1068         add_vars_for_offset.
1069
1070 2007-11-16  Sa Liu  <saliu@de.ibm.com>
1071
1072         * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined 
1073         floatunssidf2 and floatunsdidf2.
1074
1075 2007-11-16  Richard Guenther  <rguenther@suse.de>
1076
1077         PR tree-optimization/34113
1078         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1079         Use correct conversion direction for checking type compatibility.
1080
1081 2007-11-16  Richard Guenther  <rguenther@suse.de>
1082
1083         PR tree-optimization/34099
1084         * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
1085         that produce UNDEFINED result if at least one of its operands
1086         is UNDEFINED.  By default the result is only UNDEFINED if all
1087         operands are UNDEFINED.
1088
1089 2007-11-16  Jakub Jelinek  <jakub@redhat.com>
1090
1091         PR driver/30460
1092         * gcc.c (init_spec): Don't initialize asm_debug here...
1093         (main): ... but here.
1094
1095 2007-11-07  Tom Tromey  <tromey@redhat.com>
1096
1097         * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. 
1098         * tree-parloops.c (create_loop_fn): Use set_cfun.
1099         * gengtype.c (open_base_files): Emit #undef cfun.
1100         * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
1101         * function.h (cfun): New define.
1102         * function.c: Undefine cfun.
1103
1104 2007-11-07  Eric B. Weddington  <eweddington@cso.atmel.com>
1105
1106         * config/avr/avr.c (avr_mcu_types): Add attiny88.
1107         * config/avr/avr.h (LINK_SPEC): Likewise.
1108         (CRT_BINUTILS_SPECS): Likewsie.
1109         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1110
1111 2007-11-15  Jakub Jelinek  <jakub@redhat.com>
1112
1113         PR middle-end/23848
1114         * tree-ssa-ccp.c (optimize_stack_restore): New function.
1115         (execute_fold_all_builtins): Call optimize_stack_restore for
1116         BUILT_IN_STACK_RESTORE.
1117
1118 2007-11-15  Paolo Bonzini  <bonzini@gnu.org>
1119
1120         * fwprop.c (try_fwprop_subst): Skip profitability check for forward
1121         propagation into an address; that's done in should_replace_address.
1122                 
1123 2007-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1124
1125         * config/spu/spu-protos.h (legitimate_const): Remove prototype.
1126         * config/spu/spu.c (legitimate_const): Remove.
1127         (classify_immediate): Inline call to legitimate_const.
1128         (spu_legitimate_address): Likewise.  Allow SYMBOL_REF + CONST_INT
1129         for any constant, not just -512 .. 511.
1130
1131 2007-11-15  Sa Liu  <saliu@de.ibm.com>
1132
1133         * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
1134         condition from HONOR_NANS test.
1135         * config/spu/spu.md (ceq_df): Always generate comparison code
1136         inline, including checks for NaNs and infinities.
1137         (cgt_df): Likewise.
1138         (cgt_v2df): Likewise.
1139         (cmpdf): Make this expander unconditional.
1140
1141 2007-11-15  Richard Guenther  <rguenther@suse.de>
1142
1143         * tree-ssa-alias.c (create_overlap_variables_for): Make sure
1144         to only create SFTs if we also create variable infos for PTA.
1145         * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
1146
1147 2007-11-15  Richard Guenther  <rguenther@suse.de>
1148
1149         * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
1150         type for TBAA pruning.
1151         (find_what_p_points_to): Call set_uids_in_ptset with the original
1152         pointer, not the decl of the solution we collapsed to.
1153
1154 2007-11-14  David Daney  <ddaney@avtrex.com>
1155
1156         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
1157         to find sigcontext.
1158
1159 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1160
1161         PR target/33923
1162         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
1163         for registers in BR_REGS class.
1164
1165 2007-11-14  Jakub Jelinek  <jakub@redhat.com>
1166
1167         PR middle-end/34088
1168         * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
1169         init_ssa_operands has not been called for cfun.
1170
1171 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1172
1173         PR tree-optimization/34046
1174         * cfg.c (update_bb_profile_for_threading): Avoid the division for the
1175         scaling if the old probability is greater than the new base.
1176
1177 2007-11-14  Sebastian Pop  <sebastian.pop@amd.com>
1178
1179         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
1180         unused edges after loop duplication.
1181
1182 2007-11-14  Uros Bizjak  <ubizjak@gmail.com>
1183
1184         * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
1185         (enum target_cpu_default): ... this enum.
1186         (TARGET_CPU_DEFAULT_NAMES): Remove macro.  Move initializer to ...
1187         * config/i386/i386.c (override_options): ... here.
1188         * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
1189         TARGET_CPU_DEFAULT_i486.
1190
1191 2007-11-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1192
1193         * global.c (rest_of_handle_global_alloc): Fix comment typos.
1194         * config/sh/sh.c (sh_rtx_costs): Likewise.
1195         * ChangeLog: Likewise.
1196
1197 2007-11-13  Sebastian Pop  <sebastian.pop@amd.com>
1198
1199         * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
1200         should not be of pointer type.
1201
1202 2007-11-13  Michael Meissner  <michael.meissner@amd.com>
1203
1204         * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
1205
1206 2007-11-13  Sterling Augustine  <sterling@tensilica.com>
1207             Bob Wilson  <bob.wilson@acm.org>
1208         
1209         * config/xtensa/unwind-dw2-xtensa.c: New.
1210         * config/xtensa/unwind-dw2-xtensa.h: New.
1211         * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1212         (DWARF2_UNWIND_INFO): Remove.
1213         (DWARF_FRAME_REGISTERS): Define.
1214         (EH_RETURN_DATA_REGNO): Define.
1215         * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
1216         (eh_return): New.
1217         * config/xtensa/t-xtensa (LIB2ADDEH): Define.
1218         
1219 2007-11-13  Jakub Jelinek  <jakub@redhat.com>
1220
1221         * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
1222         -fsched-stalled-insns.
1223
1224         PR tree-optimization/34063
1225         * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
1226         as first chrec_fold_plus operand rather than second.
1227
1228 2007-11-13  Diego Novillo  <dnovillo@google.com>
1229
1230         PR tree-optimization/33870
1231         * tree.h (strcut tree_memory_tag): Add field unpartitionable.
1232         Remove field in_nested_struct.
1233         (struct tree_struct_field_tag): Add field nesting_level.
1234         (sft_in_nested_struct): Remove.
1235         (sft_nesting_level): Define.
1236         (sft_unpartitionable_p): Define.
1237         * tree-ssa-alias.c (mem_sym_score): If mp->var is not
1238         partitionable, return long_max.
1239         (compute_memory_partitions): Do not partition sfts marked
1240         unpartitionable.
1241         (create_sft): Add argument nesting_level.  Set
1242         sft_nesting_level with it.  Update all users.
1243         (create_overlap_variables_for): Show nesting level.
1244         * tree-dfa.c (dump_subvars_for): Likewise.
1245         (dump_variable): Likewise. Show whether the sft is
1246         partitionable or not.
1247         * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
1248         Add field nesting_level.
1249         * tree-ssa-structalias.c (struct variable_info): Remove
1250         field in_nested_struct.
1251         (push_fields_onto_fieldstack): Add argument nesting_level.
1252         Update all users.  Update documentation. Update pair->nesting_level
1253         with nesting_level.  Make recursive calls with nesting_level + 1.
1254         (set_uids_in_ptset): If an sft is added to the points-to set,
1255         mark it as unpartitionable.
1256         * tree-ssa-operands.c (ref_nesting_level): New.
1257         (add_vars_for_offset): Call it.  Add argument full_ref. Update
1258         callers.  If var is inside a nested structure and the nesting level
1259         of full_ref is lower than the nesting level of var,
1260         adjust offset by the offset of var.
1261
1262 2007-11-13  Victor Kaplansky  <victork@il.ibm.com>
1263
1264         PR tree-optimization/32582
1265         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
1266
1267 2007-11-12  Danny Smith  <dannysmith@users.sourceforge.net>
1268
1269         * doc/extend.texi (dllimport): Document that pointers to dllimport'd
1270         functions can be used as constant.
1271
1272 2007-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1273
1274         PR rtl-optimization/34035
1275         * cse.c (cse_cfg_altered): New global variable.
1276         (cse_jumps_altered): Make boolean.
1277         (recorded_label_ref): Likewise.
1278         (cse_insn): Adjust for above changes.
1279         (cse_extended_basic_block): Likewise.  Set cse_cfg_altered
1280         if dead edges have been purged.
1281         (cse_main): Change return value specification and adjust code.
1282         (rest_of_handle_cse): Adjust for above change.
1283         (rest_of_handle_cse2): Likewise.
1284         * gcse.c (rest_of_handle_gcse): Likewise.
1285
1286 2007-11-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1287             Michael Meissner  <michael.meissner@amd.com>
1288
1289         * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
1290         get the appropriate suffix for the coms* instruction.
1291         (sse5_pcmov_<mode>): Restrict operands of pcmov
1292         for scalar case to be only xmm registers and not memory.
1293
1294         * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
1295         constraints to follow the mnemonics for the pcmov instruction   
1296
1297 2007-11-12  Richard Sandiford  <rsandifo@nildram.co.uk>
1298
1299         PR target/34042
1300         * config/mips/mips.c (mips_return_fpr_single): New function.
1301         (mips_function_value): Use it when returning single-field
1302         aggregates in FPRs.
1303         (mips_expand_call): Handle the PARALLELs created by
1304         mips_return_fpr_single.
1305
1306 2007-11-12  Richard Guenther  <rguenther@suse.de>
1307
1308         PR middle-end/34070
1309         * fold-const.c (fold_binary): If testing for non-negative
1310         operands with tree_expr_nonnegative_warnv_p make sure to
1311         use op0 which has all (sign) conversions retained.
1312
1313 2007-11-12  Richard Guenther  <rguenther@suse.de>
1314
1315         PR middle-end/34027
1316         * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
1317         (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
1318
1319 2007-11-12  Ira Rosen  <irar@il.ibm.com>
1320
1321         PR tree-optimization/33953
1322         * tree-vect-transform.c (vectorizable_operation): In case of SLP,
1323         allocate vec_oprnds1 according to the number of created vector
1324         statements. In case of shift with scalar argument, store scalar operand
1325         for every vector statement to be created for the SLP node. Fix a
1326         comment.
1327
1328 2007-11-10  Steven Bosscher  <stevenb.gcc@gmail.com>
1329
1330         * gcse.c (CUID_INSN): Remove.
1331         (cuid_insn): Ditto.
1332         (alloc_gcse_mem): Don't allocate cuid_insn.
1333         (free_gcse_mem): Don't free cuid_insn.
1334
1335 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
1336
1337         PR fortran/34020
1338         * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
1339         nops.
1340
1341         PR middle-end/34018
1342         * tree-inline.h (copy_body_data): Add regimplify field.
1343         * tree-inline.c (copy_body_r): Set id->regimplify to true
1344         if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
1345         substitutions.
1346         (copy_bb): Clear id->regimplify before walk_tree, if it is
1347         set afterwards, regimplify the whole statement.
1348
1349         PR tree-optimization/33680
1350         * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
1351         if the added cast involves variable length types.
1352
1353 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
1354             Maxim Kuvyrkov  <maxim@codesourcery.com>
1355
1356         * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
1357         instead of TRUE_BARRIER for jumps.  Add register dependencies
1358         even when reg_pending_barrier is set.
1359
1360 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
1361
1362         * haifa-sched.c (haifa_classify_insn): Rename to ...
1363         (haifa_classify_rtx): ...  this.  Improve handling of COND_EXECs,
1364         handle PARALLELs by recursing.  Use it ...  
1365         (haifa_classify_insn): ...  here.  Reimplement.
1366
1367 2007-11-09  Richard Guenther  <rguenther@suse.de>
1368
1369         * bitmap.h (bitmap_single_bit_set_p): Declare.
1370         * bitmap.c (bitmap_single_bit_set_p): New function.
1371         * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
1372         (maybe_create_global_var): Use bitmap_empty_p.
1373
1374 2007-11-09  Paolo Bonzini  <bonzini@gnu.org>
1375             Jakub Jelinek  <jakub@redhat.com>
1376
1377         PR rtl-optimization/34012
1378         * fwprop.c (try_fwprop_subst): Do not replace if the new
1379         SET_SRC has a higher cost than the old one.
1380
1381 2007-11-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1382
1383         PR rtl-optimization/33732
1384         * reload.c (push_reload): Check that the REG_DEAD note was referring
1385         to a hardreg or to a pseudo that has been assigned exactly one hardreg
1386         before considering it in order to select the reload register.
1387         (combine_reloads): Likewise.
1388         (find_dummy_reload): Likewise.
1389
1390 2007-11-09  Richard Guenther  <rguenther@suse.de>
1391
1392         * tree-flow.h (struct ptr_info_def): Make escape_mask a
1393         ENUM_BITFIELD.
1394         (struct ptr_info_def): Likewise.
1395         (enum escape_type): Also use bit zero.
1396
1397 2007-11-09  Richard Guenther  <rguenther@suse.de>
1398
1399         PR tree-optimization/33604
1400         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1401         Disregard changes in CV qualifiers of pointed to types for
1402         forward propagating ADDR_EXPRs.
1403         * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
1404         expression.
1405
1406 2007-11-09  Richard Sandiford  <rsandifo@nildram.co.uk>
1407
1408         * dse.c (find_shift_sequence): Always choose an integer mode for
1409         new_mode.
1410         (replace_read): Require both the read and store mode to be
1411         integer ones.  Remove a then-redundant FLOAT_P check.
1412
1413 2007-11-08  Richard Guenther  <rguenther@suse.de>
1414
1415         * tree-dfa.c (remove_referenced_var): If removing a
1416         variable which has subvars, also remove those from
1417         the referenced vars.  Do not create a variable annotation.
1418
1419 2007-11-08  Bob Wilson  <bob.wilson@acm.org>
1420
1421         * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
1422         argument for gen_entry calls.
1423         * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
1424         (entry): Use the new attribute value.  Remove unused first operand.
1425
1426 2007-11-08  Tom Tromey  <tromey@redhat.com>
1427
1428         * c-parser.c (c_parser_translation_unit): Use location in error.
1429         (c_parser_external_declaration): Likewise.
1430         (c_parser_declaration_or_fndef): Likewise.
1431         (c_parser_enum_specifier): Likewise.
1432         (c_parser_struct_or_union_specifier): Likewise.
1433         (c_parser_struct_declaration): Likewise.
1434         (c_parser_typeof_specifier): Likewise.
1435         (c_parser_parms_list_declarator): Likewise.
1436         (c_parser_asm_string_literal): Likewise.
1437         (c_parser_braced_init): Likewise.
1438         (c_parser_initelt): Likewise.
1439         (c_parser_compound_statement_nostart): Likewise.
1440         (c_parser_statement_after_labels): Likewise.
1441         (c_parser_do_statement): Likewise.
1442         (c_parser_asm_statement): Likewise.
1443         (c_parser_conditional_expression): Likewise.
1444         (c_parser_unary_expression): Likewise.
1445         (c_parser_sizeof_expression): Likewise.
1446         (c_parser_postfix_expression): Likewise.
1447         (c_parser_postfix_expression_after_paren_type): Likewise.
1448         (c_parser_objc_class_instance_variables): Likewise.
1449         (c_parser_objc_method_definition): Likewise.
1450         (c_parser_objc_methodprotolist): Likewise.
1451         (c_parser_pragma): Likewise.
1452         (c_parser_omp_clause_num_threads): Likewise.
1453         (c_parser_omp_clause_schedule): Likewise.
1454         (c_parser_omp_all_clauses): Likewise.
1455         (c_parser_omp_sections_scope): Likewise.
1456         (c_parser_label): Use location of label, not colon.
1457
1458 2007-11-08  Danny Smith  <dannysmith@users.sourceforge.net>
1459
1460         PR target/33774
1461         * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
1462         IN_TARGET_LIBS.
1463
1464 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1465
1466         PR middle-end/33826
1467         * ipa-pure-const.c (static_execute): Added code to keep recursive
1468         functions from being marked as pure or const.
1469         * ipa-utils.c (searchc): Fixed comment.
1470                 
1471 2007-11-08  Tom Tromey  <tromey@redhat.com>
1472
1473         * common.opt (fshow-column): Default to 0.
1474         * configure: Rebuilt.
1475         * configure.ac (--enable-mapped-location): Default to 'yes'.
1476
1477 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1478
1479         * common.opt: Add pointer to doc/options.texi.
1480         * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
1481         -fipa-reference): Add or correct doc.  Sorted options list for -Os
1482         -O, -O2.
1483
1484 2007-11-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1485
1486         PR target/16350
1487         * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
1488         * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
1489         TARGET_BIG_ENDIAN_DEFAULT.  Use for MULTILIB_DEFAULTS.
1490         (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
1491         (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
1492         * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
1493         to TARGET_BIG_ENDIAN_DEFAULT.
1494         (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
1495         * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
1496         to TARGET_BIG_ENDIAN_DEFAULT.
1497
1498 2007-11-07  Diego Novillo  <dnovillo@google.com>
1499
1500         * tree.h (struct tree_struct_field_tag): Move field
1501         in_nested_struct ...
1502         (struct tree_memory_tag): ... here.
1503
1504 2007-11-07  Diego Novillo  <dnovillo@google.com>
1505
1506         PR 33870
1507         * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
1508         (SFT_IN_NESTED_STRUCT): Define.
1509         * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
1510         * tree-flow.h (struct fieldoff): Add field in_nested_struct.
1511         * tree-ssa-structalias.c (struct variable_info): Likewise.
1512         (push_fields_onto_fieldstack): If OFFSET is positive,
1513         set in_nested_struct.
1514         (create_variable_info_for): Copy setting of
1515         in_nested_struct from the field offset object.
1516         (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
1517         variable info object.
1518         * tree-ssa-operands.c (add_vars_for_offset): If VAR
1519         belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
1520
1521 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1522
1523         PR rtl-optimization/33737
1524         * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
1525         target block after computing the probabilities of outgoing edges.
1526         Cap the frequency to BB_FREQ_MAX.
1527         * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
1528         frequency of the basic block if it has been reused.
1529
1530 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1531
1532         PR rtl-optimization/33822
1533         * rtl.h (REG_OFFSET): Fix comment.
1534         * var-tracking.c (INT_MEM_OFFSET): New macro.
1535         (var_mem_set): Use it.
1536         (var_mem_delete_and_set): Likewise.
1537         (var_mem_delete): Likewise.
1538         (same_variable_part_p): Likewise.
1539         (vt_get_decl_and_offset): Likewise.
1540         (offset_valid_for_tracked_p): New predicate.
1541         (count_uses): Do not track locations with invalid offsets.
1542         (add_uses): Likewise.
1543         (add_stores): Likewise.
1544
1545 2007-11-07  Tom Tromey  <tromey@redhat.com>
1546
1547         * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
1548         (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
1549
1550 2007-11-07  Dmitry Zhurikhin  <zhur@ispras.ru>
1551             Andrey Belevantsev  <abel@ispras.ru>
1552
1553         * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
1554         generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
1555         (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
1556         Save calculated max_asap in it.         
1557         (sms_schedule): Calculate maxii using max_asap.
1558
1559 2007-11-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1560
1561         * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
1562         with -mhard-dfp/-mno-hard-dfp.
1563
1564 2007-11-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1565             Jakub Jelinek  <jakub@redhat.com>
1566
1567         PR middle-end/33670
1568         * haifa-sched.c (check_sched_flags): Remove.
1569         (sched_init): Don't call it.
1570
1571 2007-11-06  Diego Novillo  <dnovillo@google.com>
1572
1573         * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
1574         * tree-ssa-operands.c: Tidy top-level comments.
1575         (add_vop): Likewise.
1576         (add_vars_for_offset): Tidy parameter formatting..
1577         (get_addr_dereference_operands): Likewise.
1578         (get_indirect_ref_operands): Likewise.
1579         (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
1580         <OMP_ATOMIC_STORE>: Likewise.
1581
1582 2007-11-06  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1583
1584         PR target/32787
1585         * config/i386/driver-i386.c: Test for __GNUC__ instead of
1586         GCC_VERSION which is always defined.
1587
1588 2007-11-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1589
1590         PR target/30961
1591         * reload1.c (find_reloads): Also check in_reg when handling a
1592         simple move with an input reload and a destination of a hard register.
1593
1594 2007-11-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1595
1596         * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
1597         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
1598         TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
1599         TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1600         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
1601         (m68k_sched_attr_type2): New function.
1602         (sched_adjust_cost_state): New static variable.
1603         (m68k_sched_adjust_cost): New static function implementing
1604         scheduler hook.
1605         (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
1606         New static variables.
1607         (m68k_sched_variable_issue): New static function implementing
1608         scheduler hook.
1609         (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
1610         (sched_dump_split_class): New static function.
1611         (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
1612         variables.
1613         (sched_dump_dfa_class, m68k_sched_dump): New static function.
1614         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1615         m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
1616         m68k_sched_dfa_post_advance_cycle): New static functions implementing
1617         scheduler hooks.
1618
1619         * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
1620         (CPU_UNITS_QUERY): Define.
1621
1622         * config/m68k/cf.md: New file.
1623         * config/m68k/m68.md (cf.md): New include.
1624
1625 2007-11-06  Tom Tromey  <tromey@redhat.com>
1626
1627         PR c++/32256, PR c++/32368:
1628         * function.c (saved_in_system_header): New global.
1629         (push_cfun): Save in_system_header.
1630         (pop_cfun): Restore in_system_header.
1631         (push_struct_function): Save in_system_header.
1632
1633 2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
1634
1635         PR c++/33977
1636         PR c++/33886
1637         * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
1638         (complete_array_type): Set canonical type appropriately.
1639         * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
1640         C and C++ front ends now have different versions of this function,
1641         because the C++ version needs to maintain canonical types here.
1642
1643 2007-11-04  Razya Ladelsky  <razya@il.ibm.com>
1644         
1645         * tree-parloops.c (reduction_info): Remove reduction_init field.
1646         (initialize_reductions): Remove creation of the reduction_init variable.
1647         (struct data_arg): Remove.
1648         (add_field_for_reduction, create_stores_for_reduction): New functions.
1649         (add_field_for_name): Remove reduction handling.
1650         (separate_decls_in_loop): Call add_field_for_reduction,
1651         create_stores_for_reduction.
1652
1653 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
1654
1655         PR tree-optimization/33458
1656         * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
1657         !is_gimple_val PHI argument, gimplify it and insert it on edge.
1658
1659         PR tree-optimization/33993
1660         * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
1661         rather than build_constructor_from_list if all list values are
1662         constants.
1663         (get_initial_def_for_induction): Use build_vector instead of
1664         build_constructor_from_list.
1665
1666 2007-11-05  Mark Mitchell  <mark@codesourcery.com>
1667
1668         PR target/33579
1669         * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
1670         (DECL_FINI_PRIORITY): Likewise.
1671         * tree.c (decl_init_priority_lookup): Remove assert.
1672         (decl_fini_priority_insert): Likewise.
1673         * cgraphunit.c (static_ctors): Make it a VEC.
1674         (static_dtors): Likewise.
1675         (record_cdtor_fn): Adjust accordingly.
1676         (build_cdtor): Generate multiple functions for each initialization
1677         priority.
1678         (compare_ctor): New function.
1679         (compare_dtor): Likewise.
1680         (cgraph_build_cdtor_fns): Sort the functions by priority before
1681         calling build_cdtor.
1682         (cgraph_build_static_cdtor): Put the priority in the function's name.
1683
1684 2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1685
1686         PR driver/32632
1687         * common.opt: Add shared and pie.
1688
1689 2007-11-05  Bob Wilson  <bob.wilson@acm.org>
1690
1691         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
1692         replace references to virtual_stack_vars_rtx in goto_handler.
1693
1694 2007-11-05  Paul Brook  <paul@codesourcery.com>
1695
1696         * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
1697         * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
1698         (arm_file_start): Don't set Tag_ABI_PCS_wchar_t.  Call
1699         arm_lang_output_object_attributes_hook.
1700         * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
1701         (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
1702         * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
1703         prototype.
1704         * config/arm/t-arm.c (arm.o): New rule.
1705         * config/arm/arm-c.c: New file.
1706
1707 2007-11-05  Nick Clifton  <nickc@redhat.com>
1708             Sebastian Pop  <sebastian.pop@amd.com>
1709
1710         PR tree-optimization/32540
1711         PR tree-optimization/33922
1712         * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
1713         * tree-ssa-pre.c: Include params.h.
1714         (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
1715         to limit the maximum length of the PA set for a given block.
1716         * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
1717         * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
1718
1719 2007-11-05  Nathan Sidwell  <nathan@codesourcery.com>
1720
1721         * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1722         __fixunssfDI): Make return type unsigned.
1723         * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1724         __fixunssfDI): Make return type unsigned.
1725
1726 2007-11-05  Jakub Jelinek  <jakub@redhat.com>
1727
1728         PR tree-optimization/33856
1729         * tree-data-ref.c (get_references_in_stmt): Don't add
1730         REFERENCE_CLASS_P trees to references vector if get_base_address
1731         returns NULL on them.
1732
1733 2007-11-05  Alexandre Oliva  <aoliva@redhat.com>
1734
1735         * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
1736
1737 2007-11-04  Andrew Pinski  <pinskia@gmail.com>
1738
1739         PR middle-end/32931
1740         * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
1741         for TRUTH_NOT_EXPR to type.
1742
1743 2007-11-04  Gerald Pfeifer  <gerald@pfeifer.com>
1744
1745         * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
1746
1747 2007-11-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1748
1749         PR fortran/10220
1750         * dwarf2out.c (add_calling_convention_attribute): Change
1751         second argument. Set calling convention to DW_CC_program for
1752         Fortran main program.
1753         (gen_subprogram_die): Adjust to new prototype for
1754         add_calling_convention_attribute.
1755
1756 2007-11-03  Dorit Nuzman  <dorit@il.ibm.com>
1757
1758         PR tree-optimization/33987
1759         * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
1760         Fix indentation.
1761         (vectorizable_reduction): Add type check.
1762
1763 2007-11-03  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1764
1765         PR c/29062
1766         * c-parser.c (c_parser_statement_after_labels): Error if a
1767         declaration is parsed after a label.
1768         
1769 2007-11-03  Daniel Jacobowitz  <dan@codesourcery.com>
1770
1771         PR debug/33921
1772         * reorg.c (emit_delay_sequence): Do not clear the locator on
1773         the jump instruction.
1774
1775 2007-11-03  Jakub Jelinek  <jakub@redhat.com>
1776
1777         PR middle-end/33670
1778         * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
1779         current sched region.
1780
1781 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
1782
1783         * config/ia64/ia64.c (struct reg_write_state): Change into
1784         unsigned short bitfields rather than unsigned int, decrease
1785         first_pred to just 10 bits.
1786         (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
1787         into two char array.
1788         (rws_insn_set, rws_insn_test): New functions.
1789         (in_safe_group_barrier): New variable.
1790         (rws_update): Remove first argument, always set rws_sum array.
1791         (rws_access_regno): Use rws_insn_set macro.  Only call rws_update
1792         or update rws_sum if !in_safe_group_barrier, adjust rws_update
1793         args.
1794         (rtx_needs_barrier): Use rws_insn_test macro.
1795         (safe_group_barrier_needed): Don't save/restore rws_sum array,
1796         instead set/clear in_safe_group_barrier flag.
1797
1798 2007-11-02  Bob Wilson  <bob.wilson@acm.org>
1799
1800         * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
1801         REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
1802         pointer or frame pointer.
1803         * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
1804         (MUST_USE_SJLJ_EXCEPTIONS): Define.
1805         (DWARF2_UNWIND_INFO): Define.
1806         (INCOMING_RETURN_ADDR_RTX): Define.
1807         (DWARF_FRAME_RETURN_COLUMN): Define.
1808
1809 2007-11-02  Tom Tromey  <tromey@redhat.com>
1810
1811         * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
1812         traversing pool.
1813
1814 2007-11-02  Diego Novillo  <dnovillo@google.com>
1815
1816         * langhooks.h (struct lang_hooks_for_callgraph): Remove third
1817         argument from function pointer ANALYZE_EXPR.  Update all users.
1818         * cgraph.c (debug_cgraph_node): New.
1819         (debug_cgraph): New.
1820
1821 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
1822
1823         PR rtl-optimization/33648
1824         * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
1825         the newly created basic block.
1826
1827 2007-11-01  Richard Guenther  <rguenther@suse.de>
1828
1829         * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
1830
1831 2007-11-01  Steven Bosscher  <stevenb.gcc@gmail.com>
1832
1833         PR rtl-optimization/33828
1834         * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
1835         of VBEIN and VBEOUT.
1836
1837 2007-11-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1838
1839         * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
1840         * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
1841         * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
1842
1843 2007-11-01  Nathan Sidwell  <nathan@codesourcery.com>
1844
1845         * gcc.c (getenv_spec_function): Escape the environment variable's
1846         value.
1847
1848 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
1849
1850         * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
1851         show that CSE means common subexpression elimination.  Change wording
1852         for -fsee and define LCM.  Remove capitalization of optimizations
1853         for -ftree-reassoc, -ftree-pre, and -ftree-fre.
1854
1855 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
1856
1857         PR testsuite/25352
1858         * doc/sourcebuild.texi (Test Directives): Document that xfail
1859         has no effect for dg-do except when dg-do-what is "run".
1860
1861 2007-11-01  Tom Tromey  <tromey@redhat.com>
1862
1863         * c-decl.c (grokdeclarator): Set decl source locations.
1864         * c-parser.c (c_parser_enum_specifier): Set location.
1865         (c_parser_struct_or_union_specifier): Likewise.
1866
1867 2007-11-01  Tom Tromey  <tromey@redhat.com>
1868
1869         * print-tree.c (print_node): Print column number.
1870
1871 2007-11-01  Jakub Jelinek  <jakub@redhat.com>
1872
1873         PR debug/33537
1874         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
1875         gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
1876         rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
1877
1878         PR rtl-optimization/33673
1879         * gcse.c (cprop_jump): If a conditional jump has been optimized
1880         into unconditional jump, make the remaining normal edge fallthru
1881         and delete the jump insn.
1882
1883 2007-11-01  Ben Elliston  <bje@au.ibm.com>
1884
1885         * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
1886         (set_mem_attrs_from_reg): Likewise.
1887
1888 2007-11-01  Michael Matz  <matz@suse.de>
1889
1890         PR tree-optimization/33961
1891         * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
1892         (name_to_bb_hash, name_to_bb_eq): Consider and check it.
1893         (add_or_mark_expr): New argument 'store', using it to search
1894         the hash table.
1895         (nt_init_block): Adjust calls to add_or_mark_expr.
1896
1897 2007-10-31  Jakub Jelinek  <jakub@redhat.com>
1898
1899         PR target/31507
1900         * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
1901         for the first push_operand.
1902
1903 2007-10-31  Revital Eres  <eres@il.ibm.com>
1904
1905         * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
1906         reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
1907         vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
1908         movmisalignv2sf, vcondv2sf): New.
1909         (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
1910         UNSPEC_EXTODD_V2SF): Define new constants.
1911         * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
1912         paired_emit_vector_cond_expr): New.
1913         * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
1914         * config/rs6000/rs6000.c (paired_expand_vector_move,
1915         paired_emit_vector_cond_expr, paired_emit_vector_compare):
1916         New functions.
1917         * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
1918
1919 2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>
1920
1921         PR tree-optimization/32377
1922         * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
1923         work also for unknown number of iterations.
1924         (analyze_subscript_affine_affine): Clean up.  Don't fail when the 
1925         number of iterations is not known.
1926
1927 2007-10-31  Richard Guenther  <rguenther@suse.de>
1928
1929         PR middle-end/33779
1930         * fold-const.c (extract_muldiv_1): Make sure to not introduce
1931         new undefined integer overflow.
1932         (fold_binary): Avoid useless conversion.
1933
1934 2007-10-31  Richard Sandiford  <rsandifo@nildram.co.uk>
1935
1936         PR target/33948
1937         * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
1938
1939 2007-10-31  Andreas Krebbel  <krebbel1@de.ibm.com>
1940
1941         * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
1942
1943         * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
1944         with -mhard-dfp/-mno-hard-dfp.
1945         * config/s390/s390.opt: Likewise.
1946         * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
1947         definition.
1948
1949 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
1950
1951         * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
1952
1953 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
1954
1955         * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
1956         optimization options.
1957         (Optimize Options): Add -fdce and -fdse to the list of optimizations
1958         enabled by -O.  Document -fdce and -fdse.
1959
1960 2007-10-30  Jakub Jelinek  <jakub@redhat.com>
1961
1962         PR c++/33709
1963         * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
1964         convert second operand of COMPOUND_EXPR to the original type of
1965         that argument.
1966
1967 2007-10-30  Richard Guenther  <rguenther@suse.de>
1968
1969         * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
1970         of loop adding SFTs as virtual operands.
1971
1972 2007-10-30  Richard Guenther  <rguenther@suse.de>
1973
1974         * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
1975
1976 2007-10-29  Dorit Nuzman  <dorit@il.ibm.com>
1977
1978         PR tree-optimization/32893
1979         * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
1980         STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
1981
1982 2007-10-29  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1983
1984         * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
1985         x86_64 versions.
1986         (sub_ddmmss): Likewise.
1987         (umul_ppmm): Likewise.
1988         (udiv_qrnnd): Likewise.
1989
1990 2007-10-29  Janis Johnson  <janis187@us.ibm.com>
1991
1992         PR testsuite/24841
1993         * doc/sourcebuild.texi (Test Directives): Document that dg-require
1994         directives must come before dg-additional-sources.
1995
1996 2007-10-29  Jakub Jelinek  <jakub@redhat.com>
1997
1998         PR tree-optimization/33723
1999         * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2000         MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2001
2002 2007-10-29  Richard Sandiford  <rsandifo@nildram.co.uk>
2003
2004         PR tree-optimization/33614
2005         * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2006         if they can't be reduced to VECTOR_CSTs and aren't legitimate
2007         initializer constants.
2008
2009 2007-10-29  Richard Guenther  <rguenther@suse.de>
2010
2011         PR tree-optimization/33870
2012         * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
2013         (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
2014         SFTs.
2015
2016 2007-10-29  Richard Guenther  <rguenther@suse.de>
2017
2018         * passes.c (init_optimization_passes): Exchange store_copy_prop
2019         with copy_prop.
2020         * tree-pass.h (pass_store_copy_prop): Remove.
2021         * tree-ssa-copy.c (do_store_copy_prop): Remove.
2022         (stmt_may_generate-copy): Do not handle store_copy_prop.
2023         (get_copy_of_val): Likewise.
2024         (set_copy_of_val): Likewise.
2025         (copy_prop_visit_assignment): Likewise.
2026         (copy_prop_visit_stmt): Likewise.
2027         (copy_prop_visit_phi_node): Likewise.
2028         (init_copy_prop): Likewise.
2029         (execute_copy_prop): Likewise.
2030         (do_copy_prop): Remove.
2031         (gate_store_copy_prop): Likewise.
2032         (store_copy_prop): Likewise.
2033         (pass_store_copy_prop): Likewise.
2034         (pass_copy_prop): Call execute_copy_prop.
2035         * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
2036         * common.opt (ftree-store-copy-prop): Mark obsolete.
2037         * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
2038
2039 2007-10-29  Ian Lance Taylor  <iant@google.com>
2040
2041         * ifcvt.c (noce_can_store_speculate_p): New static function.
2042         (noce_process_if_block): Call it.
2043         (if_convert): Remove recompute_dominance parameter.  Change all
2044         callers.
2045
2046 2007-10-29  Richard Guenther  <rguenther@suse.de>
2047
2048         * tree-flow-inline.h (get_subvar_at): Use binary search.
2049         (get_first_overlapping_subvar): New function to binary search
2050         for the first overlapping subvar.
2051         * tree-ssa-operands.c (add_vars_for_offset): Strip down to
2052         just handle adding subvars for a pointed-to subvar.  Optimize
2053         and use get_first_overlapping_subvar.
2054         (add_vars_for_bitmap): Fold into single caller.
2055         (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
2056         and non pointed-to bits of add_vars_for_offset.
2057
2058 2007-10-29  Revital Eres  <eres@il.ibm.com> 
2059
2060         * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
2061
2062 2007-10-29  Razya Ladelsky  <razya@il.ibm.com>
2063             Zdenek Dvorak  <ook@ucw.cz>
2064
2065         OMP_ATOMIC Changes,
2066         reduction support for automatic parallelization.
2067
2068         * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
2069         OMP_ATOMIC_STORE.
2070         * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
2071         * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
2072         and OMP_ATOMIC_STORE.
2073         * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2074         * gimple-low.c (lower_stmt): Same.
2075         * gimplify.c (gimplify_expr): Same.
2076         (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
2077         gimplify_omp_atomic_mutex): Remove.
2078         (gimplify_omp_atomic): Change it to simply gimplify the
2079         statement instead of expanding it.
2080         * omp-low.c: Add includes to optabs.h, cfgloop.h.
2081         (expand_omp_atomic, expand_omp_atomic_pipeline,
2082         goa_stabilize_expr, expand_omp_atomic_mutex,
2083         expand_omp_atomic_fetch_op): New functions to implement
2084         expansion of OMP_ATOMIC.
2085         (expand_omp, build_omp_regions_1): Add support for
2086         OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
2087         * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
2088         OMP_ATOMIC_STORE.
2089         * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
2090         OMP_ATOMIC_STORE.
2091         * tree-parloops.c: add include to tree-vectorizer.h.
2092         (reduction_info): New structure for reduction.
2093         (reduction_list): New list to represent list of reductions per loop.
2094         (struct data_arg): New helper structure for reduction.
2095         (reduction_info_hash, reduction_info_eq, reduction_phi,
2096         initialize_reductions, create_call_for_reduction,
2097         create_phi_for_local_result, create_call_for_reduction_1,
2098         create_loads_for_reductions, create_final_loads_for_reduction):
2099         New functions.
2100         (loop_parallel_p): Identify reductions, add reduction_list parameter.
2101         (separate_decls_in_loop_name): Support reduction variables.
2102         (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
2103         call create_loads_for_reduction for each reduction.
2104         (canonicalize_loop_ivs): Identify reductions, add reduction_list
2105         parameter.
2106         (transform_to_exit_first_loop): Add reduction support, add
2107         reduction_list parameter.
2108         (gen_parallel_loop): Add reduction_list parameter.  Add call
2109         separate_decls_in_loop with
2110         the new argument.  Traverse reductions and call
2111         initialize_reductions, create_call_for_reduction.
2112         (parallelize_loops): Create and delete the reduction list.
2113         (add_field_for_name): Change use of data parameter.  Add fields for
2114         reductions.
2115         * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
2116         * tree-vect-analyze.c (vect_analyze_loop_form): export it.
2117         * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2118         * tree-inline.c (estimate_num_insns_1): add cases for
2119         OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2120         * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2121         * tree-ssa-operands.c (get_addr_dereference_operands):
2122         New function.  Subroutine of get_indirect_ref_operands.
2123         (get_indirect_ref_operands): Call get_addr_dereference_operands.
2124         (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2125
2126
2127 2007-10-29  Hans-Peter Nilsson  <hp@axis.com>
2128
2129         * config/cris/cris.c: Include df.h.
2130         (cris_address_cost): Add gcc_assert for canonicalization
2131         assumptions.  For PLUS with MULT or register, correct
2132         test for register in other arm.  Tweak comments.
2133
2134 2007-10-28  Richard Guenther  <rguenther@suse.de>
2135
2136         * tree-ssa-operands.c (add_vars_for_offset): Add parameter
2137         telling if the var is to be treated as points-to location.
2138         (add_vars_for_bitmap): Pass true to add_vars_for_offset.
2139         (add_virtual_operand): Only recurse into MPTs if aliases
2140         is from a NMT.
2141
2142 2007-10-28  Richard Guenther  <rguenther@suse.de>
2143
2144         * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
2145         (add_vars_for_bitmap): Do not recurse further.  Only add vars
2146         for pointed-to SFTs.
2147         (add_virtual_operand): Re-instantiate loop to add operands for
2148         aliases.  Recurse into MPTs.
2149         (get_indirect_ref_operands): If we fall back to use a pointers
2150         SMT, make sure to not prune based on the access offset and size.
2151
2152 2007-10-28  Andrew Pinski  <pinskia@gmail.com>
2153
2154         PR tree-opt/33589
2155         * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
2156         the eh information on the statement.
2157
2158 2007-10-28  Richard Guenther  <rguenther@suse.de>
2159
2160         * tree-flow.h (subvar_t): Make it a VEC.
2161         (struct subvar): Remove.
2162         (struct var_ann_d): Use VEC(tree,gc) to store subvars.
2163         * tree-flow-inline.h (get_subvar_at): Adjust iterators over
2164         variable subvars.
2165         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2166         * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
2167         * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
2168         (set_initial_properties): Likewise.
2169         (setup_pointers_and_addressables): Likewise.
2170         (new_type_alias): Likewise.
2171         (create_overlap_variables_for): Likewise.
2172         * tree-dfa.c (dump_subvars_for): Likewise.
2173         * tree-ssa-operands.c (add_vars_for_offset): Likewise.
2174         (get_expr_operands): Likewise.
2175         (add_to_addressable_set): Likewise.
2176         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2177
2178 2007-10-28  Uros Bizjak  <ubizjak@gmail.com>
2179
2180         PR tree-optimization/33920
2181         * tree-if-conv.c (tree_if_conversion): Force predicate of single
2182         successor bb to true when predecessor bb has NULL predicate.
2183         (find_phi_replacement_condition): Assert that tmp_cond is non-null.
2184
2185 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2186
2187         * config/mips/mips.md: Add combiner patterns for DImode extensions
2188         of HImode and QImode truncations.  Reformat HImode <- QImode pattern
2189         for consistency.
2190
2191 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2192
2193         PR target/33895
2194         * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
2195
2196 2007-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2197
2198         * dce.c (delete_unmarked_insns): Just delete the RETVAL and
2199         LIBCALL notes if they are about to be moved to the same insn.
2200
2201 2007-10-27  Richard Guenther  <rguenther@suse.de>
2202
2203         PR tree-optimization/33870
2204         * tree-ssa-operands.c (add_vars_for_offset): Reduce code
2205         duplication.  Remove redundant call to access_can_touch_variable.
2206         (add_vars_for_bitmap): New helper for recursing over MPT contents.
2207         (add_virtual_operand): Use it.
2208
2209 2007-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2210
2211         PR fortran/31608
2212         * pa.h (ASM_PN_FORMAT): Delete define.
2213
2214 2007-10-26  Janis Johnson  <janis187@us.ibm.com>
2215
2216         * doc/invoke.texi (Option Summary, optimizations): Remove
2217         -fbounds-check.  Add -fassociative-math, -freciprocal-math,
2218         -ftree-vrp and -funit-at-a-time.  Change -fno-split-wide-types to
2219         -fsplit-wide-types to match later entry.  Break up a long line.
2220         (Option Summary, code gen options)  Add -fno-stack-limit.  Add
2221         missing @gol to the end of a line.
2222         (Optimization Options): Remove -fbounds-check, which is also
2223         documented under Code Generation Options.  Remove =n from
2224         index entry for -ftree-parallelize-loops.  Change -fno-cprop-registers
2225         to -fcprop-registers to match other options, and say when it is
2226         enabled rather than disabled.  Remove extra index entry for
2227         -fno-cx-limited-range.  Add index entries for -fstack-protector
2228         and -fstack-protector-all.
2229         (Code Gen Options): Add index entry for -ftls-model.
2230
2231 2007-10-26  Anatoly Sokolov <aesok@post.ru>
2232
2233         * config/avr/avr.c (avr_OS_task_function_p): Add new function.
2234         (avr_regs_to_save): Handle functions with 'OS_task' attribute.
2235         (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
2236         expand_epilogue, output_movhi): Don't handle 'main' function.
2237         (avr_attribute_table): Add 'OS_task' function attribute.
2238         * config/avr/avr.h (machine_function): Remove 'is_main' field, add
2239         'is_OS_task' field.
2240         * config/avr/avr.md (return_from_main_epilogue): Remove insn.
2241         (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
2242         'main' function.
2243         * config/avr/avr.opt (minit-stack): Remove.
2244
2245 2007-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2246
2247         * tree-nested.c (get_trampoline_type): Fix thinko.
2248
2249 2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>
2250
2251         PR c++/33601
2252         * tree.c (build_offset_type): Build canonical type based on the
2253         TYPE_MAIN_VARIANT of the base type.
2254
2255 2007-10-26  Daniel Jacobowitz  <dan@codesourcery.com>
2256
2257         * reorg.c (emit_delay_sequence): Move insn locator from the
2258         first insn to the sequence.
2259
2260 2007-10-26  Samuel Tardieu  <sam@rfc1149.net>
2261
2262         * ipa-pure-const.c (check_decl): Return immediately when
2263         pure_const_state has been set to IPA_NEITHER.
2264
2265 2007-10-25  Ira Rosen  <irar@il.ibm.com>
2266
2267         PR tree-optimization/33833
2268         * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
2269         and convert init to sizetype in inner_base construction.
2270
2271 2007-10-25  Richard Guenther  <rguenther@suse.de>
2272
2273         * tree-flow.h (mem_sym_stats): Remove.
2274         (dump_mem_sym_stats_for_var): Declare.
2275         * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
2276         (mem_sym_stats): Move ...
2277         * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
2278         (mem_sym_score): Rename from ...
2279         (pscore): ... this.  Remove.
2280         (dump_mem_sym_stats_for_var): New function.  Dump the score, but
2281         not the frequencies.
2282         (compare_mp_info_entries): Make sort stable by disambiguating
2283         on DECL_UID.
2284
2285 2007-10-25  Ira Rosen  <irar@il.ibm.com>
2286
2287         PR tree-optimization/33866
2288         * tree-vect-transform.c (vectorizable_store): Check operands of all
2289         the stmts in the group of strided accesses. Get def stmt type for each
2290         store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
2291
2292 2007-10-25  Uros Bizjak  <ubizjak@gmail.com>
2293
2294         * config/i386/constraints.md (Y0): Rename register constraint to Yz.
2295         (Yt): Rename register constraint to Y2.
2296         * config/i386/sse.md: Use renamed register constraints.
2297         * config/i386/mmx.md: Ditto.
2298         * config/i386/i386.md: Ditto.
2299
2300 2007-10-25  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2301
2302         * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
2303
2304 2007-10-24  Chao-ying Fu  <fu@mips.com>
2305
2306         * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
2307         DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
2308
2309 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
2310             Olga Golovanevsky <olga@il.ibm.com>
2311         
2312         * ipa-struct-reorg.c (replace_field_acc): Make it clear to
2313         the compiler that wr.wrap and wr.domain are initialized in
2314         any case.
2315
2316 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
2317
2318         * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
2319         to print gcov_type values.
2320
2321 2007-10-24  Eric B. Weddington  <eweddington@cso.atmel.com>
2322
2323         * config/avr/avr.h: Do not include progmem_section definition when
2324         building with IN_TARGET_LIBS.
2325
2326 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
2327
2328         PR target/33755
2329         * config/mips/mips.c (mips_lo_sum_offset): New structure.
2330         (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
2331         (mips_lo_sum_offset_lookup, mips_record_lo_sum)
2332         (mips_orphaned_high_part_p: New functions.
2333         (mips_avoid_hazard): Don't check INSN_P here.
2334         (mips_avoid_hazards): Rename to...
2335         (mips_reorg_process_insns): ...this.  Cope with
2336         !TARGET_EXPLICIT_RELOCS.  Delete orphaned high-part relocations,
2337         or turn them into nops.
2338         (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
2339         dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
2340         (mips_set_mips16_mode): Don't set flag_delayed_branch here.
2341         (mips_override_options): Set flag_delayed_branch to 0.
2342
2343 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
2344
2345         * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
2346         MIPS-specific implementation details.
2347         (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
2348         (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
2349         (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
2350         for targets with movmemsi.
2351         (MOVE_BY_PIECES_P): Define.
2352         * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
2353         (mips_block_move_loop): Add a bytes_per_iter argument.
2354         (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
2355         Update call to mips_block_move_loop.
2356
2357 2007-10-24  Michael Matz  <matz@suse.de>
2358
2359         PR debug/33868
2360         * var-tracking.c (variable_union): Don't break after one loop
2361         iteration but only when a difference is found.
2362         (dump_variable): Also print DECL_UID.
2363
2364 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
2365
2366         * ipa-type-escape.h: Expose function
2367         is_array_access_through_pointer_and_index.
2368         * ipa-type-escape.c
2369         (is_array_access_through_pointer_and_index):
2370         Add three new parameters. Add support of
2371         POINTER_PLUS_EXPR tree code.
2372
2373 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
2374
2375         * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
2376         * tree-pass.h: Add pass_ipa_struct_reorg.
2377         * common.opt: Add ipa-struct-reorg flag.
2378         * Makefile.in: Add ipa-strcut-reorg.o compilation.
2379         * passes.c: Add pass pass_ipa_struct_reorg.
2380         * params.h:  Add STRUCT_REORG_COLD_STRUCT_RATIO.
2381         * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
2382
2383 2007-10-24  Ira Rosen  <irar@il.ibm.com>
2384
2385         PR tree-optimization/33804
2386         * tree-vect-transform.c (vectorizable_operation): Remove the
2387         checks that the vectorization is worthwhile from the transformation
2388         phase.
2389
2390 2007-10-24  Ira Rosen  <irar@il.ibm.com>
2391
2392         * tree-vect-analyze.c (vect_build_slp_tree): Return false if
2393         vectype cannot be determined for the scalar type.
2394         (vect_analyze_slp_instance): Likewise.
2395         * tree-vect-transform.c (vect_model_reduction_cost): Change the
2396         return type to bool. Return false if vectype cannot be determined 
2397         for the scalar type.
2398         (vect_get_constant_vectors): Return false if vectype cannot be
2399         determined for the scalar type.
2400         (get_initial_def_for_induction, vect_get_vec_def_for_operand,
2401         get_initial_def_for_reduction, vect_create_epilog_for_reduction,
2402         vectorizable_reduction): Likewise.      
2403
2404 2007-10-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2405
2406         * config.gcc: For a FreeBSD target, parse the value of ${target}
2407         to determine the value of FBSD_MAJOR, instead of adding an
2408         explicit check for every possible FreeBSD major version.
2409
2410 2007-10-23  Uros Bizjak  <ubizjak@gmail.com>
2411
2412         PR rtl-optimization/33846
2413         * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
2414
2415 2007-10-23  Dorit Nuzman  <dorit@il.ibm.com>
2416
2417         PR tree-optimization/33860
2418         * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
2419         interleaved accesses in case the dr is inside the inner-loop during
2420         outer-loop vectorization.
2421
2422 2007-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2423
2424         * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
2425         Document MEM_POINTER.  Replace mentions of "integrated"
2426         field with "return_val".  Delete outdated stuff.
2427
2428 2007-10-23  David Edelsohn  <edelsohn@gnu.org>
2429
2430         * config/rs6000/rs6000.c (rs6000_override_options): Set
2431         rs6000_altivec_abi on AIX.
2432         (conditional_register_usage): Set VR20:31 fixed on AIX.
2433
2434 2007-10-23  Richard Guenther  <rguenther@suse.de>
2435
2436         * alias.c (get_alias_set): For INDIRECT_REFs, deal with
2437         SSA_NAME pointers.
2438
2439 2007-10-22  Seongbae Park <seongbae.park@gmail.com>
2440         David S. Miller  <davem@davemloft.net>
2441
2442         * df-scan.c (df_get_call_refs): Mark global registers as both a
2443         DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
2444
2445 2007-10-22  Dorit Nuzman  <dorit@il.ibm.com>
2446
2447         PR tree-optimization/33834
2448         PR tree-optimization/33835
2449         * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
2450         stmts need to be checked for success seperately.
2451         * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
2452         Remove the check that stmt is not LIVE.
2453         (vectorizable_assignment, vectorizable_induction): Likewise.
2454         (vectorizable_operation, vectorizable_type_demotion): Likewise.
2455         (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
2456         Likewise.
2457         (vectorizable_live_operation): Check that op is not NULL. 
2458
2459 2007-10-22  Janis Johnson  <janis187@us.ibm.com>
2460
2461         * doc/invoke.texi (Optimization Options): In the summary, show
2462         that the value for options -falign-jumps, -falign-labels,
2463         -falign-loops, -falign-functions, -fsched-stalled-insns, and
2464         -fsched-stalled-insns-dep is optional.  In the summary, show that
2465         -fsched-stalled-insns takes an optional argument and that
2466         -fparallelize-loops takes an argument.  Add opindex for several
2467         optimization options, and fix typos in the opindex commands for
2468         several others.  In the descriptions for -fsched-stalled-insns
2469         and -fsched-stalled-insns-dep, show the options with and without
2470         values.
2471
2472 2007-10-22  Eric B. Weddington  <eweddington@cso.atmel.com>
2473
2474         * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
2475         produced.
2476         * config/avr/avr.h (LINK_SPEC): Likewise.
2477         (CRT_BINUTILS_SPECS): Likewsie.
2478         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2479
2480 2007-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2481
2482         PR rtl-optimization/33644
2483         * cfgcleanup.c: Do not include dce.h.
2484         * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
2485         * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
2486         * dce.c (something_changed): Delete.
2487         (libcall_dead_p): New predicate.
2488         (delete_unmarked_insns): Use it to delete dead libcalls.
2489         Deal with REG_LIBCALL and REG_RETVAL notes.
2490         (prescan_libcall_for_dce): New function.
2491         (prescan_insns_for_dce): Use it to deal with libcalls.
2492         (mark_reg_dependencies): Do nothing special for libcalls.
2493         (dce_process_block): Likewise.
2494         (fast_dce): Delete unused local variable.
2495         (run_fast_dce): Do not return a value.
2496         * dce.h (struct df): Delete.
2497         (run_fast_dce): Adjust prototype.
2498         * optabs.c (libcall_id): Delete.
2499         (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
2500         (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
2501         * reload1.c (reload): Delete REG_LIBCALL_ID case.
2502         * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
2503         * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
2504         notes instead of REG_LIBCALL_ID notes.
2505         * reg-notes.def (LIBCALL_ID): Delete.
2506         * Makefile.in (see.o): Add dce.h dependency.
2507         (cfgcleanup.o): Remove dce.h dependency.
2508
2509 2007-10-22  Michael Matz  <matz@suse.de>
2510
2511         PR tree-optimization/33855
2512         * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
2513         and VECTOR_TYPE.
2514
2515 2007-10-22  Ira Rosen  <irar@il.ibm.com>
2516
2517         PR tree-optimization/33854
2518         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
2519         FLOAT_EXPR to the list of promotion operations. 
2520
2521 2007-10-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2522
2523         PR target/29473
2524         PR target/29493
2525         * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
2526         (print_reg): Print register prefix only with AT&T asm syntax. 
2527         Support pc_rtx for RIP register.
2528         (print_operand_address): Use print_reg()'s pc_rtx support for RIP
2529         relative addressing.  Always print segment register prefix with AT&T
2530         asm syntax and never with Intel asm syntax.
2531         (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. 
2532         Fix prefix for 16-byte XFmode operands.
2533         (output_addr_const_extra): Support Intel asm syntax.
2534         (x86_file_start): Don't use register prefix with Intel asm syntax.
2535         * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
2536         ("return_internal_long"): Fix Intel asm syntax output.
2537         ("set_got_rex64"): Support Intel asm syntax.
2538         ("set_rip_rex64"): Likewise.
2539         ("set_got_offset_rex64"): Likewise.
2540         ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
2541         syntax.
2542         ("*tls_global_dynamic_64"): Likewise.
2543         ("*tls_local_dynamic_base_64"): Likewise.
2544         ("*load_tp_si")("*load_tp_di"): Likewise.
2545         ("*add_tp_si")("*add_tp_di"): Likewise.
2546         ("*tls_dynamic_lea_64"): Likewise.
2547         ("*sibcall_value_1_rex64_v"): Likewise.
2548         ("stack_tls_protect_set_si"): Likewise.
2549         ("stack_tls_protect_set_di"): Likewise.
2550         ("stack_tls_protect_test_si"): Likewise.
2551         ("stack_tls_protect_test_di"): Likewise.
2552         * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
2553         syntax output.
2554         ("*movv2sf_internal_rex64"): Likewise.
2555         * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
2556         (__get_cpuid_max): Likewise.
2557
2558 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2559
2560         * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
2561         the STRICT_P argument type "bool" rather than "int".
2562         (mips_legitimate_address_p): Likewise.
2563         (fp_register_operand, lo_operand): Delete.
2564         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2565         (mips_emit_scc): Rename to...
2566         (mips_expand_scc): ...this.
2567         (gen_conditional_branch): Rename to...
2568         (mips_expand_conditional_branch): ...this.
2569         (gen_conditional_move): Rename to...
2570         (mips_expand_conditional_move): ...this.
2571         (mips_gen_conditional_trap): Rename to...
2572         (mips_expand_conditional_trap): ...this and take an rtx code instead
2573         of an operands array.
2574         (mips_expand_call): Give the SIBCALL_P argument type "bool"
2575         rather than "int".
2576         (mips_emit_fcc_reload): Rename to...
2577         (mips_expand_fcc_reload): ...this.
2578         (init_cumulative_args): Rename to...
2579         (mips_init_cumulative_args): ...this and remove the libname argument.
2580         (function_arg_advance): Rename to...
2581         (mips_function_arg_advance): ...this.
2582         (function_arg): Rename to...
2583         (mips_function_arg): ...this and use "rtx" instead of
2584         "struct rtx_def *".
2585         (function_arg_boundary): Rename to...
2586         (mips_function_arg_boundary): ...this.
2587         (mips_expand_unaligned_load): Rename to...
2588         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2589         and BITPOS arguments type "HOST_WIDE_INT".
2590         (mips_expand_unaligned_store): Rename to...
2591         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2592         and BITPOS arguments type "HOST_WIDE_INT".
2593         (override_options): Rename to...
2594         (mips_override_options): ...this.
2595         (print_operand): Rename to...
2596         (mips_print_operand): ...this.
2597         (print_operand_address): Rename to...
2598         (mips_print_operand_address): ...this.
2599         (mips_output_ascii): Remove the PREFIX argument.
2600         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2601         rather than "int".
2602         (mips_can_use_return_insn): Return a "bool" rather than an "int".
2603         (mips_function_value): Remove the FUNC argument.  Use "rtx" instead
2604         of "struct rtx_def *".
2605         (mips_secondary_reload_class): Give the IN_P argument type "bool"
2606         rather than "int".
2607         (build_mips16_call_stub): Delete.
2608         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2609         (mips_use_ins_ext_p): Give the second and third arguments type
2610         "HOST_WIDE_INT" rather than "rtx".
2611         * config/mips/mips.h: Update after the above changes.  Tweak comments
2612         and formatting.
2613         (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
2614         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2615         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2616         element type from "char" to "bool".
2617         (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
2618         (mips_cpu_info_table): Delete.
2619         * config/mips/mips.md: Update after the above changes.  Tweak some
2620         formatting.
2621         * config/mips/mips-ps-3d.md: Likewise.
2622         * config/mips/mips.c: Tweak comments and formatting.
2623         Use NULL-like macros rather than 0 in various places.
2624         (mips_section_threshold): Rename to...
2625         (mips_small_data_threshold): ...this and give it an unsigned type.
2626         (num_source_filenames): Remove explicit initialization.
2627         (sdb_label_count): Likewise.
2628         (sym_lineno): Delete.
2629         (set_noat): Make static.
2630         (mips_branch_likely): Likewise, and give it type "bool".
2631         (mips_isa_info): Rename to...
2632         (mips_isa_option_info): ...this.
2633         (mips_flag_delayed_branch): Rename to...
2634         (mips_base_delayed_branch): ...this.
2635         (mips_split_addresses): Delete.
2636         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2637         element type from "char" to "bool".
2638         (mips_regno_to_class): Add an explicit array size.
2639         (mips16_flipper): Change from type "int" to type "bool".
2640         (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
2641         (mips_tls_operand_p): Rename to...
2642         (mips_tls_symbol_p): ...this.
2643         (mips_global_symbol_p): Remove redundant "const".
2644         (mips_offset_within_alignment_p): Simplify.
2645         (mips_regno_mode_ok_for_base_p): Change the name of the last argument
2646         to STRICT_P and give it type bool.
2647         (mips_valid_base_register_p): Likewise.
2648         (mips_classify_address): Likewise.
2649         (mips_legitimate_address_p): Likewise.
2650         (mips16_unextended_reference_p): Take the offset as an
2651         "unsigned HOST_WIDE_INT" rather than an "rtx".  Simplify.
2652         (mips_const_insns): Use IN_RANGE.
2653         (mips_force_temporary): Remove an unnecessary copy_rtx.
2654         (mips16_gp_pseudo_reg): Simplify.
2655         (mips_split_symbol): Remove an unnecessary copy_rtx.
2656         (mips_legitimize_tls_address): Only create registers if we need them.
2657         (mips_legitimize_address): Use mips_split_plus.
2658         (mips_move_integer): Swap DEST and TEMP arguments.  Rename local
2659         variable COST to NUM_OPS.
2660         (mips_legitimize_move): Use gen_lowpart.
2661         (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
2662         (m16_check_op): Use IN_RANGE.
2663         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2664         (mips_split_doubleword_move): Pass booleans to mips_subword.
2665         (mips_output_move): Store the mode in a local variable.
2666         Explicitly assert that this function does not deal with
2667         MFLO and MFHI.  Use SMALL_OPERAND_UNSIGNED.  Make order of
2668         cases more consistent.
2669         (mips_relational_operand_ok_p): Rename to...
2670         (mips_int_order_operand_ok_p): ...this.
2671         (mips_canonicalize_comparison): Rename to...
2672         (mips_canonicalize_int_order_test): ...this.
2673         (mips_emit_int_relational): Rename to...
2674         (mips_emit_int_order_test): ...this.  Store the mode in a local
2675         variable.
2676         (mips_reverse_fp_cond_p): Rename to...
2677         (mips_reversed_fp_cond): ...this.
2678         (mips_emit_compare): Make the order of the statements more consistent.
2679         (mips_emit_scc): Rename to...
2680         (mips_expand_scc): ...this.
2681         (gen_conditional_branch): Rename to...
2682         (mips_expand_conditional_branch): ...this.
2683         (gen_conditional_move): Rename to...
2684         (mips_expand_conditional_move): ...this.  Build the condition
2685         separately from the main pattern.
2686         (mips_gen_conditional_trap): Rename to...
2687         (mips_expand_conditional_trap): ...this and take an rtx code instead
2688         of an operands array.  Simplify.
2689         (init_cumulative_args): Rename to...
2690         (mips_init_cumulative_args): ...this.  Use memset rather than a
2691         copy from a zeroed static.  Use prototype_p and stdarg_p.
2692         (mips_arg_info): Rename to...
2693         (mips_get_arg_info): ...this and put the INFO argument first.
2694         (function_arg): Rename to...
2695         (mips_function_arg): ...this and use "rtx" instead of
2696         "struct rtx_def *".  Only split structures into chunks if 
2697         TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
2698         a chunk-by-chunk basis.  Use SCALAR_FLOAT_TYPE_P instead of a
2699         comparison with REAL_TYPE.  Rename local variable REG to REGNO
2700         and make it unsigned.
2701         (function_arg_advance): Rename to...
2702         (mips_function_arg_advance): ...this.
2703         (function_arg_boundary): Rename to...
2704         (mips_function_arg_boundary): ...this.
2705         (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
2706         with MODE_INT.
2707         (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
2708         comparison with REAL_TYPE.
2709         (mips_function_value): Remove the FUNC argument.  Rename local
2710         variable UNSIGNEDP to UNSIGNED_P.
2711         (mips_return_in_memory): Use IN_RANGE.
2712         (mips_setup_incoming_varargs): Pass a boolean rather than an int
2713         to FUNCTION_ARG_ADVANCE.
2714         (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
2715         to INDIRECT_P.  Remove a redundant mips_abi check.  Only calculate
2716         SIZE and RSIZE if needed.
2717         (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
2718         rather than "int".
2719         (build_mips16_function_stub): Rename to...
2720         (mips16_build_function_stub): ...this.
2721         (build_mips16_call_stub): Rename to...
2722         (mips16_build_call_stub): ...this.  Make static, and return a
2723         "bool" rather than an "int".  Rename the ARG_SIZE argument to
2724         ARGS_SIZE.  Rename the local variable FPRET to FP_RET_P and give
2725         it type "bool".  Use "jr" rather than "j".  Use XNEW.  Simplify.
2726         (mips_load_call_address): Give the SIBCALL_P argument type "bool"
2727         rather than "int".
2728         (mips_expand_call): Likewise.  Assert that MIPS16 calls via stubs
2729         are not sibling ones.
2730         (mips_emit_fcc_reload): Rename to...
2731         (mips_expand_fcc_reload): ...this.
2732         (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
2733         "HOST_WIDE_INT".
2734         (mips_expand_unaligned_load): Rename to...
2735         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2736         and BITPOS arguments type "HOST_WIDE_INT".  Remove redundant
2737         SUBREG_BYTE check.
2738         (mips_expand_unaligned_store): Rename to...
2739         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2740         and BITPOS arguments type "HOST_WIDE_INT".
2741         (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
2742         and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
2743         Use IN_RANGE.
2744         (mips_init_split_addresses): Replace with...
2745         (mips_split_addresses_p): ...this new function.
2746         (mips_init_relocs): Check mips_split_addresses_p () rather than
2747         mips_split_addresses.  Always initialize mips_split_p with booleans.
2748         (print_operand_reloc): Rename to...
2749         (mips_print_operand_reloc): ...this.  Use a gcc_assert rather than
2750         a fatal_error.
2751         (print_operand): Rename to...
2752         (mips_print_operand): ...this.
2753         (print_operand_address): Rename to...
2754         (mips_print_operand_address): ...this.  Use GP_REG_FIRST.
2755         (mips_in_small_data_p): Simplify.
2756         (mips_output_ascii): Remove the PREFIX argument and "register"
2757         keywords.  Use the STRING parameter directly and cast to
2758         "unsigned char".
2759         (mips16e_collect_argument_save_p): Use IN_RANGE.
2760         (mips_function_has_gp_insn): Simplify.
2761         (mips_set_return_address): Use BITSET_P.
2762         (mips_restore_gp): Use a separate statement to pick the base
2763         register.
2764         (mips_output_function_prologue): Use a local FRAME variable.
2765         (mips_save_reg): Pass booleans to mips_subword.
2766         (mips_expand_prologue): Use a local FRAME variable.  Use
2767         cprestore_size to detect when .cprestore is needed.
2768         (mips_restore_reg): Use GP_REG_FIRST.
2769         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2770         rather than "int".  Use local FRAME and REGNO variables.
2771         (mips_can_use_return_insn): Return a "bool" rather than an "int".
2772         (mips_secondary_reload_class): Give the IN_P argument type "bool"
2773         rather than "int".
2774         (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
2775         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2776         (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
2777         (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
2778         (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
2779         (builtin_description): Rename to...
2780         (mips_builtin_description): ...this.
2781         (mips_bdesc): Rename to...
2782         (mips_ps_bdesc): ...this.
2783         (sb1_bdesc): Rename to...
2784         (mips_sb1_bdesc): ...this.
2785         (dsp_bdesc): Rename to...
2786         (mips_dsp_bdesc): ...this.
2787         (dsp_32only_bdesc): Rename to...
2788         (mips_dsp_32only_bdesc): ...this.
2789         (bdesc_map): Rename to...
2790         (mips_bdesc_map): ...this.
2791         (bdesc_arrays): Rename to...
2792         (mips_bdesc_arrays): ...this.
2793         (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
2794         Tweak error message.
2795         (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
2796         Rename local variables I and J to OPNO and ARGNO respectively.
2797         Assert that the number of arguments is no more than the number of
2798         input operands.
2799         (mips_expand_builtin_compare): Use an array of arguments rather
2800         than an array of operands.  Assert that the number of operands is
2801         as expected.
2802         (add_constant): Rename to...
2803         (mips16_add_constant): ...this.  Use XNEW.
2804         (dump_constants_1): Rename to...
2805         (mips16_emit_constants_1): ...this.  Use ALL_SCALAR_FIXED_POINT_MODE_P.
2806         (dump_constants): Rename to...
2807         (mips16_emit_constants): ...this.
2808         (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
2809         (mips_set_mips16_mode): Don't call mips_init_split_addresses.
2810         Assign mips16_p to was_mips16_p.
2811         (mips_parse_cpu): Tweak warning message.
2812         (override_options): Rename to...
2813         (mips_override_options): ...this.  Move the mips_cost initialization
2814         out of the "shared with GAS" block.  Quote option names in error
2815         messages.
2816         (mips_conditional_register_usage): Make local variable REGNO unsigned.
2817         (mips_order_regs_for_local_alloc): Remove register keyword.
2818
2819 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2820
2821         * system.h (IN_RANGE): Cast each argument individually.
2822
2823 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2824
2825         * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
2826         MIPS16 code unless using o32 or o64.  
2827
2828 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2829
2830         * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
2831         for modes smaller than 4 bytes.
2832         * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
2833         FPR alternatives.
2834
2835 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2836
2837         * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
2838         * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
2839         (ASM_OUTPUT_ALIGNED_BSS): Delete.
2840         * config/mips/mips.c (mips_output_aligned_bss): Delete.
2841
2842 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2843
2844         * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
2845         sibling calls to "mips16" functions if the function satisfies
2846         const_call_insn_operand.
2847
2848 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2849
2850         * config/mips/mips.c (mips_va_start): Fix types in calls
2851         to build_int_cst.
2852
2853 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2854
2855         * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
2856         if ISA_HAS_FP4.
2857
2858 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2859
2860         * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
2861         * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
2862         instead of checking mips_isa.
2863
2864 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2865
2866         * doc/invoke.texi (-mpaired-single): Don't say that the option
2867         requires 64-bit code.
2868         * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
2869         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
2870         (ISA_HAS_NMADD_NMSUB): Add a mode argument.  Return true for
2871         V2SF if ISA_MIPS32R2.
2872         (MODES_TIEABLE_P): Use mips_modes_tieable_p.
2873         * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
2874         to ISA_HAS_NMADD_NMSUB.
2875         (mips_split_doubleword_move): Handle V2SF.
2876         (mips_modes_tieable_p): New function.
2877         (override_options): Report a warning rather than an error when
2878         -mpaired-single is used on ISAs that don't support it; use
2879         ISA_HAS_PAIRED_SINGLE to check that case.
2880         * config/mips/mips.md (MOVE64): New mode iterator.  Replace DI
2881         and DF move splitters with a single MOVE64 splitter, thereby adding
2882         a V2SF splitter too.
2883         (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
2884         Add a TARGET_FLOAT64 condition to TF.  Add V2SF to the iterator.
2885         (HALFMODE): Add V2SF.
2886         (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
2887         (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
2888         (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
2889         (movv2sf_hardfloat_32bit): New pattern.
2890         (load_low<mode>, load_high<mode>, store_word<mode>): Remove
2891         TARGET_DOUBLE_FLOAT conditions.
2892
2893 2007-10-20  Jakub Jelinek  <jakub@redhat.com>
2894
2895         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
2896         saved CR2 offset to low 32 bits of regs->ccr rather than the whole
2897         64-bit register in 64-bit libgcc.
2898
2899 2007-10-20  Eric B. Weddington  <eweddington@cso.atmel.com>
2900
2901         * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
2902         * config/avr/avr.h (LINK_SPEC): Likewise.
2903         (CRT_BINUTILS_SPECS): Likewsie.
2904         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2905
2906 2007-10-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2907
2908         * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
2909         and -Wfatal-errors together.
2910         
2911 2007-10-20  Alan Modra  <amodra@bigpond.net.au>
2912
2913         PR target/33812
2914         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
2915         change for vrsave, ie restore after frame pop.
2916
2917 2007-10-19  David S. Miller  <davem@davemloft.net>
2918
2919         * config/sparc/niagara2.md: Fix copyright notice.
2920
2921 2007-10-19  Sebastian Pop  <sebastian.pop@amd.com>
2922
2923         PR tree-optimization/23820
2924         PR tree-optimization/24309
2925         PR tree-optimization/33766
2926         * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
2927         * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
2928         * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
2929         * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
2930         * tree-loop-linear.c (perfect_loop_nest_depth): New.
2931         (linear_transform_loops): Use perfect_loop_nest_depth.
2932         * lambda-code.c (perfect_nest_p): Outer loops in perfect nests 
2933         should have a single condition: their exit.
2934
2935 2007-10-19  Richard Guenther  <rguenther@suse.de>
2936
2937         PR middle-end/33816
2938         PR middle-end/32921
2939         * stor-layout.c (layout_type): Assert that aggregates do not
2940         have their alias sets set.
2941         * alias.c (get_alias_set): Return alias set zero for incomplete
2942         types, return the alias set of the element for incomplete array
2943         types, but do not remember these.
2944
2945 2007-10-19  Richard Guenther  <rguenther@suse.de>
2946
2947         Revert
2948         2007-10-19  Richard Guenther  <rguenther@suse.de>
2949
2950         PR middle-end/32921
2951         * tree.c (build_array_type): Do not re-layout unbound array
2952         types.
2953
2954 2007-10-19  Richard Guenther  <rguenther@suse.de>
2955
2956         PR middle-end/32921
2957         * tree.c (build_array_type): Do not re-layout unbound array
2958         types.
2959
2960 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2961
2962         * config/mips/mips.c (mips_canonicalize_comparison):  Check
2963         mips_relational_operand_ok_p before trying to rewrite the test.
2964         Only calculate PLUS_ONE if needed.
2965         (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
2966         here.
2967
2968 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2969
2970         * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
2971         calculation.
2972
2973 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2974
2975         * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
2976         the call uses the incoming value of $2.
2977
2978 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2979
2980         * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
2981         rather then gen_rtx_MEM.
2982         (mips_setup_incoming_varargs): Use gen_frame_mem rather than
2983         gen_rtx_MEM.
2984         (mips_set_return_address): Likewise.
2985         (mips_restore_gp): Likewise.
2986
2987 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2988
2989         * config/mips/mips.c (gpr_mode): Delete.
2990         (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
2991         instead of gpr_mode.
2992         (mips_for_each_saved_reg): Likewise.
2993         (mips_expand_prologue, mips_expand_epilogue): Likewise.
2994         (override_options): Don't initialize gpr_mode.
2995         * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
2996
2997 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
2998
2999         * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
3000         case last.
3001         (mips_class_max_nregs): Calculate the smallest consituent register
3002         size and use that to determine an upper bound on the number of
3003         registers.
3004
3005 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3006
3007         * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
3008         split out from...
3009         (mips_expand_epilogue): ...here.
3010         (mips_mdebug_abi_name): New function, split out from...
3011         (mips_file_start): ...here.
3012         (mips_hard_regno_mode_ok_p): New function, split out from...
3013         (override_options): ...here.
3014         (mips_expand_builtin_1): New function, split out from...
3015         (mips_expand_buitin): ...here.  Abort if we don't recognize
3016         the function.
3017
3018 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3019
3020         * config/mips/mips.c (build_mips16_function_stub): Load the
3021         target address into $1 before transfering the arguments.
3022         Don't use ".set noreorder".
3023         (build_mips16_call_stub): Likewise.
3024
3025 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3026
3027         * config/mips/mips.c (mips_output_32bit_xfer): New function.
3028         (mips_output_64bit_xfer): Likewise.
3029         (mips16_fp_args): Rename to...
3030         (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
3031         with a DIRECTION argument.  Use mips_output_32bit_xfer and
3032         mips_output_64bit_xfer.
3033         (build_mips16_function_stub): Update accordingly.
3034         (mips16_fpret_double): Delete.
3035         (build_mips16_call_stub): Update after above changes.
3036         Use mips_output_32bit_xfer.  Use mips_output_64bit_xfer instead
3037         of mips16_fpret_double.  Use GP_REG_RETURN.
3038
3039 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3040
3041         * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
3042         use asm_out_file instead.
3043         (build_mips16_function_stub): Likewise.
3044         (build_mips16_call_stub, mips_output_function_prologue): Update
3045         accordingly.
3046
3047 2007-10-18  David S. Miller  <davem@davemloft.net>
3048
3049         Add Niagara-2 support.
3050         * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
3051         * config.gcc: Add niagara2 to cpu and tune lists for sparc.
3052         * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
3053         (include): Add inclusion of niagara2.md
3054         * config/sparc/sparc.c (niagara2_costs): New.
3055         (sparc_override_options): Add niagara2 entry to cpu_default[]
3056         and cpu_table[].  Set align_functions to 32 on Niagara2.  Use
3057         niagara2_costs when PROCESSOR_NIAGARA2.  Handle Niagara2 for
3058         PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
3059         (sparc_initialize_trampoline): Handle niagara2 like niagara.
3060         (sparc64_initialize_trampoline): Likewise.
3061         (sparc_use_sched_lookahead): Likewise.
3062         (sparc_issue_rate): Likewise.
3063         * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
3064         mcpu=niagara2
3065         * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
3066         ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
3067         TARGET_CPU_niagara2.
3068         (PROCESSOR_NIAGARA2): New.
3069         (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
3070         (BRANCH_COST): Likewise.
3071         * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
3072         * config/sparc/sol2.h: Likewise.
3073         * config/sparc/niagara2.md: New file.
3074
3075 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3076
3077         * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
3078         and fp_reg_size.
3079         (mips_compute_frame_info): Remove associated code.
3080         (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
3081
3082 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3083
3084         * config/mips/mips-protos.h (compute_frame_size): Delete.
3085         * config/mips/mips.h: Update comments.
3086         * config/mips/mips.c (mips_frame_info): Remove initialized.
3087         (compute_frame_size): Rename to...
3088         (mips_compute_frame_info): ...this and make static.  Remove the
3089         SIZE argument and return no value.  Remove the setting of initialized.
3090         Update rest of file accordingly.
3091         (mips_set_return_address): Don't call compute_frame_size.
3092         (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
3093         Don't call compute_frame_size.
3094
3095 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3096
3097         * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
3098         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
3099         mips_hard_frame_pointer_required.
3100         (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
3101         large MIPS16 frames.
3102         * config/mips/mips.c (mips_frame_pointer_required): New function.
3103
3104 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3105
3106         * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
3107         and hard_frame_pointer_offset.
3108         (mips_debugger_offset): Use hard_frame_pointer_offset.
3109         (mips16e_collect_argument_save_p): Likewise.
3110         (compute_frame_size): Initialize arg_pointer_offset and
3111         hard_frame_pointer_offset.
3112         (mips_initial_elimination_offset): Use them.
3113         (mips_output_function_prologue): Use hard_frame_pointer_offset.
3114         (mips_expand_prologue, mips_expand_epilogue): Likewise.
3115
3116 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3117
3118         * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
3119         profiling code.
3120         * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
3121         "unsigned int" rather than "int" and put them with the other
3122         register-related fields.  Put expanded comments above fields
3123         rather than to their right.
3124         (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
3125         with a NUM_REGS_PTR argument.
3126         (mips16e_save_restore_pattern_p): Update accordingly.
3127         (compute_frame_size): Clarify frame diagram.  Rewrite.
3128
3129 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3130
3131         * config/mips/mips-ftypes.def: New file.
3132         * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
3133         (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
3134         (mips_function_type): Redefine using mips-ftypes.def.
3135         (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
3136         (mips_builtin_vector_type): New function.
3137         (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
3138         (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
3139         (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
3140         (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
3141         macros.
3142         (mips_build_function_type): New function.
3143         (mips_init_builtins): Use it to create types lazily.
3144
3145 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3146
3147         * config/mips/mips.h (set_volatile): Delete.
3148         * config/mips/mips.c (set_volatile): Delete.
3149         (mips_print_operand_punctuation): New function, split out from
3150         print_operand.  Remove '%{', '%}', '%~', '%&' and '%!'.
3151         Use the same character ordering in the code and the comments.
3152         Use a recursive call to handle '*'.  Abort on unknown characters.
3153         (mips_init_print_operand_punct): New function, split out from
3154         override_options.
3155         (mips_print_int_branch_condition): New function, split out from
3156         print_operand.  Use GET_RTX_NAME.  Use output_operand_lossage
3157         to report unexpected codes.
3158         (mips_print_float_branch_condition): New function, split out from
3159         print_operand.  Use output_operand_lossage to report unexpected codes.
3160         (print_operand): Rework to use a case statement.  Use the
3161         same letter ordering in the code and the comments.  Use
3162         output_operand_lossage to report unexpected codes and
3163         reverse_condition to handle inverted branch conditions.
3164         (override_options): Use mips_init_print_operand_punct.
3165
3166 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3167
3168         * config/mips/mips.h: Move variable declarations to end of file and
3169         enclose them all in #ifndef USED_FOR_TARGET.
3170         * config/mips/mips.c: Reorder functions into more logical groups,
3171         and so that callees appear before callers.  Put the targetm
3172         initializer at the end of the file.  Remove forward static
3173         declarations where possible.
3174         (mips_init_builtins): Add "static" to definition.
3175         (mips_expand_builtin, mips_mode_rep_extended): Likewise.
3176
3177 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3178
3179         * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
3180         (TARGET_MAX_ANCHOR_OFFSET): Delete.
3181         (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
3182         (mips_set_mips16_mode): Initialize min_anchor_offset and
3183         max_anchor_offset directly to constants.
3184
3185 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3186
3187         * config/mips/mips.c: Delete trailing whitespace.
3188
3189 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3190
3191         * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
3192         (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
3193         and pick the first.
3194         * config/mips/mips.md (load_call<mode>): Don't make the unspec
3195         depend on FAKE_CALL_REGNO.  Set FAKE_CALL_REGNO.
3196
3197 2007-10-18  David Daney  <ddaney@avtrex.com>
3198
3199         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
3200         reg_offset variable to calculate register locations.
3201
3202 2007-10-18  Richard Guenther  <rguenther@suse.de>
3203
3204         * tree-ssa.c (uid_ssaname_map_eq): New function.
3205         (uid_ssaname_map_has): Likewise.
3206         (init_tree_ssa): Allocate default_defs as uid_ssaname map.
3207         * tree-flow.h (struct gimple_df): Make default_defs a
3208         uid_ssaname map.
3209         * tree-dfa.c (gimple_default_def): Deal with it.
3210         (set_default_def): Likewise.
3211
3212 2007-10-18  Richard Guenther  <rguenther@suse.de>
3213
3214         * tree-flow.h (struct gimple_df): Make referenced_vars
3215         a uid_decl_map.
3216         (uid_decl_map_eq): Declare.
3217         (uid_decl_map_hash): Likewise.
3218         * tree-ssa.c (uid_decl_map_eq): New function.
3219         (uid_decl_map_hash): Likewise.
3220         (init_tree_ssa): Make referenced_vars a uid_decl_map.
3221         * tree-flow-inline.h (first_referenced_var): Deal with
3222         the referenced_vars representation change.
3223         (next_referenced_var): Likewise.
3224         * tree-dfa.c (referenced_var_lookup): Likewise.
3225         (referenced_var_check_and_insert): Likewise.
3226         (remove_referenced_var): Likewise.
3227
3228 2007-10-18  Daniel Jacobowitz  <dan@codesourcery.com>
3229
3230         * config/mips/mips.c (mips_dwarf_register_span): New.
3231         (TARGET_DWARF_REGISTER_SPAN): Define.
3232
3233 2007-10-18  Chen Liqin  <liqin@sunnorth.com.cn>
3234
3235         * config.gcc : update score-*-elf(extra_objs).
3236         * config/score/mac.md : Remove.
3237         * config/score/misc.md : Remove.
3238         * config/score/score7.md : Remove.
3239         * config/score/score-mdaux.h : Remove.
3240         * config/score/score-mdaux.c : Remove.
3241         * config/score/score-version.h : Remove.
3242         * config/score/score-generic.md : New.
3243         * config/score/score3.h : New.
3244         * config/score/score3.c : New.
3245         * config/score/score7.h : New.
3246         * config/score/score7.c : New.
3247         * config/score/mul-div.S : add flush_cache score3 support.
3248         * config/score/elf.h : Fix some typos.
3249         * config/score/score.md : merge score3 and score7 pattern.
3250         * config/score/score.c : use to seperate which target it used.
3251         * config/score/score.h : use to seperate the target macro.
3252         * config/score/score.opt : remove -mmac option , add -mscore3,
3253         -mscore3d and -march OPTION support.
3254  
3255 2007-10-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3256
3257         * cfgexpand.c (expand_stack_vars): Add checking to make sure
3258         that the offset of a variable is not greater than the size
3259         of the paritition.
3260
3261 2007-10-17  Anatoly Sokolov <aesok@post.ru>
3262
3263         * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, 
3264         atmega88p, atmega168p and atmega328p devices.
3265         * config/avr/avr.h (LINK_SPEC): (Ditto.).
3266         (CRT_BINUTILS_SPECS): (Ditto.).
3267         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3268
3269 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
3270
3271         * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
3272         * ddg.c: Ditto.
3273         * sched-deps.c: Ditto.  Remove nested #ifdef's INSN_SCHEDULING.
3274         * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
3275         (print_insn): Move declaration to ...
3276         * rtl.h (print_insn): ... here.
3277
3278 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
3279
3280         * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
3281         m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
3282         m68k_sched_branch_type): Move declarations to ...
3283         * config/m68/m68k-protos.h: ... here.
3284
3285 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
3286
3287         * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
3288
3289 2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>
3290
3291         * config/avr/avr.c (avr_mcu_types): Add attiny48.
3292         * config/avr/avr.h (LINK_SPEC): Likewise.
3293         (CRT_BINUTILS_SPECS): Likewsie.
3294         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3295
3296 2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>
3297
3298         * config/avr/avr.c (avr_mcu_types): Add attiny43u.
3299         * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
3300         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3301
3302 2007-10-17  Uros Bizjak  <ubizjak@gmail.com>
3303
3304         PR middle-end/33794
3305         * reg-stack.c (move_for_stack_reg): Swap input argument of
3306         UNSPEC_TAN insn to the top of the stack.
3307
3308 2007-10-17  Uros Bizjak  <ubizjak@gmail.com>
3309
3310         PR target/32961
3311         * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
3312         IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
3313         IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
3314         IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
3315         immediate shift value.
3316         * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
3317         _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
3318         _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
3319         Remove macros for !__OPTIMIZE__ case.
3320
3321 2007-10-17  Daniel Berlin  <dberlin@dberlin.org>
3322
3323         * tree-ssa-structalias.c (rewrite_constraints): Don't test for
3324         directness anymore.
3325         (perform_var_substitution): Only DFS from real nodes. Don't test
3326         for directness.
3327         (unite_pointer_equivalences): Fix broken test.
3328
3329 2007-10-17  Alan Modra  <amodra@bigpond.net.au>
3330
3331         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
3332         altivec sp_offset.  Rearrange sp_offset assignments to
3333         correspond to stack adjustments.  Use frame_reg_rtx for
3334         SPE register restores.  Correct SPE stack adjustment.
3335
3336 2007-10-17  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3337
3338         * builtins.c (gimplify_va_arg_expr): Use inform for help message.
3339         * toplev.c (check_global_declaration_1): Use appropriate warning
3340         option instead of unnamed warning.
3341         * stor-layout.c (layout_decl): Likewise.
3342         * c-typeck.c (build_conditional_expr): Likewise.
3343         (build_compound_expr): Fix wrong comment.
3344         (build_binary_op): Use appropriate warning option instead of
3345         unnamed warning.
3346         * cfgexpand.c (tree_expand_cfg): Likewise.
3347         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3348         * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
3349         (execute_warn_function_return): Likewise.
3350         * stmt.c (warn_if_unused_value): Likewise.
3351
3352 2007-10-16  Eric B. Weddington  <eweddington@cso.atmel.com>
3353
3354         * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
3355         * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
3356         similar devices.
3357         (CRT_BINUTILS_SPECS): Likewsie.
3358         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3359
3360 2007-10-16  Amruth Laxman  <amruth.laxman@nsn.com>
3361
3362         PR target/33594
3363         * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
3364
3365 2007-10-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
3366
3367         * dce.c (init_dce): Only initialize the obstacks for the fast pass.
3368         (fini_dce): Only release them for the fast pass.
3369         (end_ud_dce): Delete.
3370         (rest_of_handle_ud_dce): Do not modify df_in_progress.
3371         Call fini_dce instead of end_ud_dce.
3372         (rest_of_handle_fast_dce): Do not modify df_in_progress.
3373         (run_fast_df_dce): Reset df_in_progress to false on exit.
3374
3375 2007-10-16  Paolo Bonzini  <bonzini@gnu.org>
3376             Maxim Kuvyrkov  <maxim@codesourcery.com>
3377
3378         * target.h (unspec_may_trap_p): New target hook.
3379         * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
3380         * targhooks.c (default_unspec_may_trap_p): Default implementation of
3381         the hook.
3382         * targhooks.h (default_unspec_may_trap_p): Declare it.
3383         * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
3384         * rtlanal.c (may_trap_p_1): Use new hook.  Make global.
3385         * rtl.h (may_trap_p_1): Declare.
3386         
3387         * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
3388         override default hook implementation.
3389         (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
3390         hook.
3391
3392 2007-10-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3393
3394         * doc/invoke.texi (Wextra): Move it just after Wall, list the
3395         options enabled by Wextra and mention Wuninitialized.
3396         
3397 2007-10-15  Nigel Stephens  <nigel@mips.com>
3398
3399         * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
3400
3401 2007-10-15  Jakub Jelinek  <jakub@redhat.com>
3402
3403         PR tree-optimization/33136
3404         * opts.c (decode_options): Don't enable flag_ipa_type_escape.
3405
3406 2007-10-15  Alexandre Oliva  <aoliva@redhat.com>
3407
3408         PR tree-optimization/33735
3409         PR tree-optimization/33572
3410         * tree-inline.c (update_ssa_across_abnormal_edges): Revert
3411         2007-10-09's change.
3412         * except.c (duplicate_eh_regions): Don't look for prev_try
3413         beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
3414
3415 2007-10-15  Alexandre Oliva  <aoliva@redhat.com>
3416
3417         PR middle-end/33706
3418         * tree-inline.c (copy_bb): Use bsi_replace to replace a
3419         __builtin_va_arg_pack-containing call stmt.
3420
3421 2007-10-15  Razya Ladelsky  <razya@il.ibm.com>
3422
3423         * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
3424         program flag.
3425
3426 2007-10-15  Jakub Jelinek  <jakub@redhat.com>
3427
3428         PR tree-optimization/33619
3429         * tree-ssa-ter.c (is_replaceable_p): Return false for all
3430         calls.
3431
3432 2007-10-15  David Edelsohn  <edelsohn@gnu.org>
3433
3434         * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
3435
3436 2007-10-15  Richard Guenther  <rguenther@suse.de>
3437
3438         * fold-const.c (extract_array_ref): Remove.
3439         (fold_comparison): Handle POINTER_PLUS_EXPR with the
3440         generic address expression comparison folding.  Remove
3441         the folding that used extract_array_ref.
3442
3443 2007-10-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3444
3445         PR target/33133
3446         * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
3447         speculation type of insn can be changed before trying to do that.
3448
3449 2007-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
3450
3451         * dse.c (struct insn_info): Add 'frame_read' field.
3452         (scan_insn): For the call to a const function, set frame_read if
3453         reload has been run.
3454         If the insn reads the frame, kill the frame related stores.
3455         (scan_reads_nospill): Likewise.
3456
3457 2007-10-14  Jason Merrill  <jason@redhat.com>
3458
3459         * tree-eh.c (optimize_double_finally): Don't assume that the
3460         cleanup we're duplicating is only one statement.
3461
3462 2007-10-14  Kazu Hirata  <kazu@codesourcery.com>
3463
3464         * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
3465         config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
3466         modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
3467         tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
3468         tree-vect-transform.c: Fix comment typos.
3469         * doc/extend.texi: Fix a typo.
3470
3471         * c-common.h: Remove the prototype for c_expand_body.
3472         * c-tree.h: Remove the prototype for c_disregard_inline_limits.
3473         * tree.h: Remove the prototype for fold_build_call_expr.
3474
3475         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
3476         Remove.
3477         * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
3478
3479 2007-10-13  David Edelsohn  <edelsohn@gnu.org>
3480
3481         * config/rs6000/aix53.h: New file.
3482         * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
3483         (TARGET_ALTIVEC_ABI): Same.
3484         * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
3485         (TARGET_ALTIVEC_ABI): Delete.
3486         * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2.  Add new
3487         stanza defaulting to aix5.3.
3488
3489 2007-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3490
3491         * config/i386/i386.md (SI_REG, DI_REG): New constants.
3492         (strmov): Use defined constants.
3493         (cmpstrnsi): Likewise.
3494         * config/i386/i386.c (decide_alg): Use defined constants.
3495         (ix86_expand_strlen): Likewise.
3496
3497 2007-10-12  Richard Sandiford  <rsandifo@nildram.co.uk>
3498
3499         * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
3500         * var-tracking.c (micro_operation_def): Update comment on u.loc.
3501         (mode_for_reg_attrs, var_lowpart): New functions.
3502         (add_uses): Consider recording a lowpart of LOC for MO_USE.
3503         (add_stores): Likewise MO_SET and MO_COPY.  If the source of a set
3504         or copy is known, set LOC to the SET that performs the set, instead
3505         of the destination.
3506         (find_src_status, find_src_set_src): Remove LOC parameter.
3507         Replace INSN with the source value.
3508         (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
3509         handling MO_SET and MO_COPY.  Update the calls to find_src_status
3510         and find_src_set_src.
3511
3512 2007-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3513
3514         PR 11001
3515         * config/i386/i386.md (strmov): Check for esi and edi usage.
3516         * config/i386/i386.c (decide_alg): Check whether we can use a
3517         rep prefix and adjust algorithm choice accordingly.
3518         (ix86_expand_strlen): Check for eax, ecx, and edi usage.
3519
3520 2007-10-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3521
3522         * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
3523
3524 2007-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
3525
3526         * global.c (build_insn_chain): Formatting fixes.
3527
3528 2007-10-12  Richard Guenther <rguenther@suse.de>
3529
3530         * tree-ssa-forwprop.c (forward_propagate_into_cond): For
3531         combining both operands require either both have single uses
3532         or combining to a constant.
3533
3534 2007-10-12  Richard Guenther  <rguenther@suse.de>
3535
3536         PR middle-end/26198
3537         * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
3538         a rhs with side-effects or which is a load.
3539         (forward_propagate_into_cond): Also try combining both operands.
3540
3541 2007-10-12  Uros Bizjak  <ubizjak@gmail.com>
3542
3543         PR tree-optimization/33742
3544         * tree-vect-transform.c (vectorizable_operation): Return false
3545         if get_vectype_for_scalar_type for scalar_dest can't be determined.
3546         (vectorizable_call): Same for rhs_type and lhs_type.
3547
3548 2007-10-12  Jakub Jelinek  <jakub@redhat.com>
3549
3550         PR tree-optimization/33645
3551         * tree-ssa-live.c (mark_all_vars_used): Add data argument,
3552         pass it to walk_tree.
3553         (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
3554         When calling set_is_used on a VAR_DECL, if data is not NULL and
3555         its DECL_UID is in the bitmap, call mark_all_vars_used on its
3556         DECL_INITIAL after clearing the bit in bitmap.
3557         (remove_unused_locals): Adjust mark_all_vars_used callers.
3558         Instead of removing unused global vars from unexpanded_var_list
3559         immediately record them in bitmap, call mark_all_vars_used on
3560         all used global vars from unexpanded_var_list and only purge
3561         global vars that weren't found used even during that step.
3562  
3563 2007-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3564
3565         * gthr-posix.h (__gthread_active_init): Create detached instead of
3566         joinable thread when testing whether threads are active on hppa-hpux.
3567         * gthr-posix95.h (__gthread_active_init): Likewise.
3568
3569 2007-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3570
3571         PR middle-end/33676
3572         * global.c (build_insn_chain): Include insn that occur between
3573         basic blocks.
3574         
3575 2007-10-11  Tom Tromey  <tromey@redhat.com>
3576
3577         * gengtype-yacc.y: Delete.
3578
3579 2007-10-11  Uros Bizjak  <ubizjak@gmail.com>
3580
3581         * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
3582         * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
3583         function_value_32, function_value_64, function_value_ms_64,
3584         setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
3585         legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
3586         Use new constants.
3587
3588 2007-10-11  Richard Guenther  <rguenther@suse.de>
3589
3590         * gcse.c (hash_scan_set): If the next nonnote insn is in
3591         a different basic block insert the set.
3592
3593 2007-10-11  Richard Guenther  <rguenther@suse.de>
3594
3595         PR middle-end/33724
3596         * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
3597         (verify_gimple_expr): Use it to verify pointer-to types for
3598         ADDR_EXPRs.
3599
3600 2007-10-11  Richard Guenther  <rguenther@suse.de>
3601
3602         PR c/33726
3603         * c-typeck.c (build_array_ref): Do not strip qualifiers from
3604         the array element type.
3605
3606 2007-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3607
3608         PR rtl-optimization/33638
3609         * dse.c (struct insn_info): Remove 'stack_read' field,
3610         add 'stack_pointer_based' field.
3611         (record_store): For a store with non-constant base, record
3612         whether it is stack pointer based.
3613         (scan_insn): For the call to a const function, remove stack
3614         pointer based stores from the list of local active stores.
3615         (scan_reads_nospill): Delete code dealing with const functions.
3616
3617 2007-10-10  Peter Bergner  <bergner@vnet.ibm.com>
3618
3619         * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
3620         to HOST_WIDE_INT.
3621         (conflict_p, set_conflict, set_conflicts): Likewise.
3622         * global.c (global_alloc): Likewise.
3623         * ra.h: Update prototypes.
3624
3625 2007-10-10  Wolfgang Gellerich  <gellerich@de.ibm.com>
3626
3627         * opth-gen.awk: Fixed generation of comment stating the origin
3628           of options.h
3629
3630 2007-10-10  Kazu Hirata  <kazu@codesourcery.com>
3631
3632         Revert:
3633         2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3634         * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3635         and '%}', respectively.
3636
3637         Revert:
3638         2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3639         * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3640         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3641         and '}'.
3642         * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3643         meant to be output.
3644
3645         Revert:
3646         2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
3647         * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3648         syntax for ASSEMBLER_DIALECT.
3649         * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3650
3651 2007-10-10  Revital Eres  <eres@il.ibm.com>
3652
3653         * modulo-sched.c (check_nodes_order): Dump the final order of
3654         the nodes.
3655         (get_sched_window): Add dump info.
3656         (calculate_order_params): Dump order params of the nodes.
3657
3658 2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>
3659
3660         PR middle-end/33669
3661         * ra-conflict.c (record_one_conflict_between_regnos, 
3662         set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
3663         (global_conflicts): Enhanced incorrect check.
3664         
3665 2007-10-09  Geoffrey Keating  <geoffk@apple.com>
3666
3667         * dwarf2out.c (output_call_frame_info): FDEs are always emitted
3668         if flag_exceptions is not set.
3669         * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
3670         assemble_name rather than incorrectly emulating it.
3671
3672         * doc/extend.texi (Deprecated Features): Mention that <? and >? and
3673         friends are removed from G++.
3674
3675 2007-10-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3676
3677         * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
3678         -Wwrite-strings and -Wmultichar are enabled by default, so Wall
3679         enabling them is redundant. Don't check two times for
3680         c_dialect_cxx.
3681         
3682 2007-10-09  H.J. Lu  <hongjiu.lu@intel.com>
3683
3684         * ra-conflict.c (record_one_conflict_between_regnos): Revert
3685         the last change.
3686         (set_conflicts_for_earlyclobber): Likewise.
3687         (global_conflicts): Likewise.
3688
3689 2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3690
3691         * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3692         and '%}', respectively.
3693
3694 2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
3695
3696         * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3697         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3698         and '}'.
3699         * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3700         meant to be output.
3701
3702 2007-10-09  Richard Guenther  <rguenther@suse.de>
3703
3704         PR middle-end/33692
3705         * gimplify.c (canonicalize_component_ref): Honor qualifiers
3706         of referenced structure and component.
3707
3708 2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>
3709
3710         PR middle-end/33669
3711         * ra-conflict.c (record_one_conflict_between_regnos,
3712         set_conflicts_for_earlyclobber, global_conflicts): Improved
3713         logging.
3714         (global_conflicts): Removed incorrect check.
3715
3716 2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>
3717
3718         PR tree-optimization/33615
3719         * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
3720         if the statement might throw.  Fix formatting.
3721
3722 2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>
3723
3724         PR tree-optimization/33615
3725         * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
3726         if the rhs might throw.
3727
3728 2007-10-09  Jan Hubicka  <jh@suse.cz>
3729
3730         * invoke.texi (align-threshold, align-loop-iterations): Document.
3731         * final.c: Include cfgloop.h, params.h
3732         (compute_alignments): Dump decisions and compare them with loop
3733         structure; honor given parameters.
3734         (pass_compute_alignments): New dump file.
3735         * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
3736         * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
3737
3738 2007-10-09  James E. Wilson  <wilson@specifix.com>
3739
3740         PR tree-optimization/33655
3741         PR middle-end/22156
3742         * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
3743         convert it to bitsizetype before size_binop call.
3744
3745 2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
3746
3747         PR tree-optimization/33572
3748         * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
3749         the absence of a corresponding edge from the exit block.
3750
3751 2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
3752
3753         PR middle-end/22156
3754         * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
3755         bit-field layout.
3756         (sra_build_assignment): Likewise.  Set up mask depending on
3757         precision, not type.
3758         (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN.  Don't overflow
3759         computing bit masks.
3760         (sra_build_elt_assignment): Don't view-convert from signed to
3761         unsigned.
3762         (sra_explode_bitfield_assignment): Use bit-field type if
3763         possible.  Use BYTES_BIG_ENDIAN.
3764
3765 2007-10-08  Alexandre Oliva  <aoliva@redhat.com>
3766
3767         PR middle-end/22156
3768         * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
3769         the original stmt can throw.
3770         (sra_build_bf_assignment): Fix type mismatch when applying negated
3771         mask.
3772
3773 2007-10-08  Geoffrey Keating  <geoffk@apple.com>
3774
3775         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
3776         '#pragma mark' to be executed at preprocessing time.
3777
3778 2007-10-08  Ollie Wild  <aaw@google.com>
3779
3780         * varasm.c (compare_constant): Removed call to
3781         lang_hooks.expand_constant.
3782         (copy_constants): Removed call to lang_hooks.expand_constant.
3783         (compute_reloc_for_constant): Removed call to
3784         lang_hooks.expand_constant.
3785         (output_addressed_constants): Removed call to
3786         lang_hooks.expand_constant.
3787         (constructor_static_from_elts_p): Removed call to
3788         lang_hooks.expand_constant.
3789         (output_constant): Removed calls to lang_hooks.expand_constant.
3790         * langhooks.h (struct lang_hooks): Removed field expand_constant.
3791         * langhooks-def.h (lhd_return_tree): Removed.
3792         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
3793         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
3794         * langhooks.c (lhd_return_tree): Removed.
3795
3796 2007-10-08  Mark Shinwell  <shinwell@codesourcery.com>
3797
3798         * combine.c (setup_incoming_promotions): Ensure that
3799         arguments that have not undergone mode promotions do not
3800         incorrectly get marked as being sign- or zero-extended.
3801
3802 2007-10-08  Richard Guenther  <rguenther@suse.de>
3803
3804         PR middle-end/33693
3805         PR middle-end/33695
3806         PR middle-end/33697
3807         * fold-const.c (fold_binary): Use correct types in folding
3808         of a * (1 << b) to (a << b).  Likewise for ~A & ~B to ~(A | B)
3809         and building of RROTATE_EXPR.
3810
3811 2007-10-08  Richard Guenther  <rguenther@suse.de>
3812
3813         PR middle-end/33691
3814         PR middle-end/33694
3815         PR middle-end/33696
3816         * fold-const.c (fold_binary): Use the correct types when
3817         folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
3818         (fold_binary): Use the correct types when folding
3819         (-A) - B to (-B) - A.
3820         (fold_unary): Use the correct types when folding ~(X).
3821
3822 2007-10-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3823
3824         * doc/invoke.texi (Wall): fix formatting issues.
3825         
3826 2007-10-07  Richard Sandiford  <rsandifo@nildram.co.uk>
3827
3828         * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
3829         truncated shift counts.
3830
3831 2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
3832
3833         * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3834         syntax for ASSEMBLER_DIALECT.
3835         * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3836
3837 2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3838             Nathan Froyd  <froydnj@codesourcery.com>
3839
3840         * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
3841         when determining whether to record INCOMING_RETURN_ADDR_RTX.
3842
3843 2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3844
3845         Revert:
3846         2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3847
3848         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
3849         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
3850         the function, temporarily point the debug interface to the null one.
3851
3852 2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
3853
3854         PR tree-optimization/33655
3855         PR middle-end/22156
3856         * tree-sra.c (bitfield_overlaps_p): Handle array and complex
3857         elements.
3858
3859 2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
3860
3861         PR tree-optimization/33572
3862         * tree-cfg.c (verify_stmts): Check for missing PHI defs.
3863         * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
3864         (update_ssa_across_abnormal_edges): ... this.  Set slots in the
3865         return PHI node.
3866         (copy_edges_for_bb): Handle nonlocal label edges.
3867         (make_nonlocal_label_edges): Deleted.
3868         (optimize_inline_calls): Don't call it.
3869
3870 2007-10-05  Hans-Peter Nilsson  <hp@axis.com>
3871
3872         * gthr-single.h: Revert last change.
3873
3874 2007-10-05  Michael Matz  <matz@suse.de>
3875
3876         PR middle-end/33667
3877         * lower-subreg.c (decompose_multiword_subregs): Use
3878         validate_unshare_change().
3879
3880 2007-10-05  Peter Bergner  <bergner@vnet.ibm.com>
3881
3882         * ra-conflict.c: Include "sparseset.h".
3883         (conflicts): Change to HOST_WIDEST_FAST_INT.
3884         (allocnos_live): Redefine variable as a sparseset.
3885         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
3886         Delete macros.
3887         (allocno_row_words): Removed global variable.
3888         (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
3889         (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
3890         (conflict_p, set_conflict_p, set_conflicts_p): New functions.
3891         (record_one_conflict_between_regnos): Cache allocno values and reuse.
3892         Use set_conflict_p.
3893         (record_one_conflict): Update uses of allocnos_live to use
3894         the sparseset routines.  Use set_conflicts_p.
3895         (mark_reg_store): Likewise.
3896         (set_reg_in_live): Likewise.
3897         (global_conflicts): Update uses of allocnos_live.
3898         Use the new adjacency list to visit an allocno's neighbors
3899         rather than iterating over all possible allocnos.
3900         Call set_conflicts_p to setup conflicts rather than adding
3901         them manually.
3902         * global.c: Comments updated.  
3903         (CONFLICTP): Delete define.
3904         (regno_compare): New function.  Add prototype.
3905         (global_alloc): Sort the allocno to regno mapping according to
3906         which basic blocks the regnos are referenced in.  Modify the
3907         conflict bit matrix to a compressed triangular bitmatrix.
3908         Only allocate the conflict bit matrix and adjacency lists if
3909         we are actually going to allocate something.
3910         (expand_preferences): Use conflict_p.  Update uses of allocnos_live.
3911         (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
3912         allocno's neighbors rather than iterating over all possible allocnos.
3913         (mirror_conflicts): Removed function.
3914         (dump_conflicts): Iterate over regnos rather than allocnos so
3915         that all dump output will be sorted by regno number.
3916         Use the FOR_EACH_CONFLICT macro.
3917         * ra.h: Comments updated.
3918         (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
3919         (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
3920         Add prototypes.
3921         (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
3922         (adjacency_list_d, adjacency_iterator_d): New types.
3923         (add_neighbor, adjacency_iter_init, adjacency_iter_done,
3924         adjacency_iter_next, regno_basic_block): New static inline functions.
3925         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
3926         (conflict_p): Add function prototype.
3927         * sparseset.h, sparseset.c: New files.
3928         * Makefile.in (OBJS-common): Add sparseset.o.
3929         (sparseset.o): New rule.
3930
3931 2007-10-05  Richard Guenther  <rguenther@suse.de>
3932
3933         PR middle-end/33666
3934         * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
3935         to (long long)ptr.
3936
3937 2007-10-05  Michael Matz  <matz@suse.de>
3938
3939         PR inline-asm/33600
3940         * function.c (match_asm_constraints_1): Check for input
3941         being used in the outputs.
3942
3943 2007-10-05  Richard Guenther  <rguenther@suse.de>
3944
3945         * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
3946
3947 2007-10-05  Richard Sandiford  <rsandifo@nildram.co.uk>
3948
3949         PR target/33635
3950         * config/mips/mips.c (mips_register_move_cost): Rewrite to use
3951         subset checks.  Make the cost of FPR -> FPR moves depend on
3952         mips_mode_ok_for_mov_fmt_p.
3953
3954 2007-10-04  Doug Kwan  <dougkwan@google.com>
3955
3956         * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
3957         __gthread_cond_wait_recursive): Add to extend interface for POSIX
3958         conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
3959         support of conditional variables.
3960         * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
3961         __gthread_cond_wait_recursive): Add to extend interface for POSIX
3962         conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
3963         support of conditional variables.
3964         * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
3965         __gthread_cond_wait_recursive): Add to extend interface for POSIX
3966         conditional variables.
3967         * gthr.h: Update comments to document new interface.
3968
3969 2007-10-04  Geoffrey Keating  <geoffk@apple.com>
3970
3971         * cgraphunit.c (cgraph_build_static_cdtor): Don't set
3972         DECL_IGNORED_P.
3973
3974 2007-10-04  Anatoly Sokolov <aesok@post.ru>
3975
3976         * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
3977
3978 2007-10-04  Richard Guenther  <rguenther@suse.de>
3979
3980         PR middle-end/33641
3981         * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
3982         does not need to be of INTEGER_TYPE.
3983         (verify_gimple_2): New function split out from ...
3984         (verify_gimple_1): ... here.  ICE if there was an error during
3985         verification.
3986
3987 2007-10-04  Michael Matz  <matz@suse.de>
3988
3989         PR rtl-optimization/33653
3990         * dce.c (deletable_insn_p_1): Use volatile_refs_p().
3991         * dse.c (scan_insn): Same.
3992
3993 2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
3994
3995         * config.gcc: Remove USE_GAS for m68k targets.
3996
3997 2007-10-04  Richard Guenther  <rguenther@suse.de>
3998
3999         PR tree-optimization/33627
4000         * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
4001         * tree-gimple.c (canonicalize_cond_expr_cond): New function,
4002         split out from ...
4003         * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
4004         * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
4005
4006 2007-10-04  Anatoly Sokolov <aesok@post.ru>
4007
4008         * config/avr/avr.c (commands_in_file, commands_in_prologues, 
4009         commands_in_epilogues): Remove variables.
4010         (avr_file_start): Remove unneded initializations of commands_in_file,
4011         commands_in_prologues and commands_in_epilogues variables.
4012         (avr_file_end): Remove dead code.
4013
4014 2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
4015
4016         * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
4017         MOTOROLA is to true.
4018
4019 2007-10-03  Richard Sandiford  <rsandifo@nildram.co.uk>
4020
4021         PR target/33635
4022         * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
4023         (mips_split_doubleword_move): ...this.
4024         * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
4025         use natural endianness for multi-format FPR values.
4026         (mips_split_64bit_move): Rename to...
4027         (mips_split_doubleword_move): ...this and extend to 64-bit words.
4028         Use move_doubleword_fpr* patterns for moves involving FPRs.
4029         (mips_save_reg): Update the call to mips_split_64bit_move.
4030         (mips_secondary_reload_class): Return NO_REGS for any reload of a
4031         nonzero constant into an FPR if the constant can be forced to memory.
4032         * config/mips/mips.md: Update the splitter calls to
4033         mips_split_64bit_move.
4034         (UNSPEC_LOAD_DF_LOW): Rename to...
4035         (UNSPEC_LOAD_LOW): ...this.
4036         (UNSPEC_LOAD_DF_HIGH): Rename to...
4037         (UNSPEC_LOAD_HIGH): ...this.
4038         (UNSPEC_STORE_DF_HIGH): Rename to...
4039         (UNSPEC_STORE_WORD): ...this.
4040         (SPLITF): New mode iterator.
4041         (HALFMODE): New mode attribute.
4042         (movtf): New expander.
4043         (*movtf_internal): New define_insn_and_split.
4044         (move_doubleword_fpr<mode>): New expander.
4045         (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
4046         with...
4047         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
4048         (mfhc1<mode>): ...these more general patterns.
4049
4050 2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
4051
4052         * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
4053
4054 2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
4055
4056         * gcse.c (hash_scan_set): Insert set in insn before note at
4057         the end of basic block.
4058
4059 2007-10-03  Sebastian Pop  <sebastian.pop@amd.com>
4060
4061         PR tree-optimization/33576
4062         * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
4063         * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
4064         * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
4065         (remove_iv): Declared.
4066         * lambda-code.c (remove_iv): Not static.
4067         (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
4068         Don't remove ivs there, save ivs in the buffer.
4069
4070 2007-10-03  Jason Merrill  <jason@redhat.com>
4071
4072         PR c++/15764
4073         * tree-eh.c (same_handler_p): New fn.
4074         (optimize_double_finally): New fn.
4075         (refactor_eh_r): New fn.
4076         (refactor_eh): New fn.
4077         (pass_refactor_eh): New pass.
4078         * tree-pass.h: Declare it.
4079         * passes.c (init_optimization_passes): Add it.
4080
4081 2007-10-03  Doug Kwan  <dougkwan@google.com>
4082         Richard Guenther  <rguenther@suse.de>
4083
4084         PR debug/31899
4085         * dwarf2out.c (reference_to_unused): Disable sanity checking,
4086         be conservative instead.
4087
4088 2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4089
4090         PR fortran/26682
4091         * doc/invoke.texi (-fwhole-program): Document that Fortran
4092         doesn't support this option.
4093
4094 2007-10-02  Richard Sandiford  <rsandifo@nildram.co.uk>
4095
4096         PR middle-end/33617
4097         * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
4098         expand_expr.
4099
4100 2007-10-02  David Daney  <ddaney@avtrex.com>
4101
4102         * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
4103         against constant zero.
4104         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP):  Handle constant zero
4105         operand.
4106
4107 2007-09-02  Kenneth Zadeck <zadeck@naturalbridge.com>
4108
4109         * ra-conflict.c: New file.
4110         * ra.h: New file.
4111         * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
4112         usage to DF_LIVE usage.
4113         (reload): Remove reference to df_get_live_top.
4114         * rtlanal.c (subreg_nregs_with_regno): New function.  
4115         * df-scan.c (df_def_record_1, df_uses_record): Add code to set
4116         DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
4117         (df_has_eh_preds): Removed.
4118         (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
4119         df_exit_block_uses_collect): Changed call from df_has_eh_preds to
4120         bb_has_eh_pred.
4121         * global.c (allocno, max_allocno, conflicts, allocno_row_words,
4122         reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
4123         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
4124         (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
4125         mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
4126         (global_alloc): Turn off rescanning insns after call to
4127         global_conflicts and added call to set_preferences.
4128         (global_conflicts): Moved to ra-alloc.c.
4129         (set_preferences_1, set_preferences): New function.
4130         (mirror_conflicts): Changed types for various variables.
4131         (mark_elimination): Change DF_RA_LIVE
4132         usage to DF_LIVE usage.
4133         (build_insn_chain): Rewritten from scratch and made local.
4134         (print_insn_chain, print_insn_chains): New functions.
4135         (dump_conflicts): Do not print conflicts for fixed_regs.
4136         (rest_of_handle_global_alloc): Turn off insn rescanning.
4137         * hard-reg-set.h: Fixed comment.
4138         * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
4139         usage to DF_LIVE usage and delete refs to TOP sets.
4140         (block_alloc): Mark regs as live if they are in the artificial
4141         defs at top of block.
4142         (find_stack_regs): New function.
4143         (rest_of_handle_local_alloc): Changed urec problem to live
4144         problem and do not turn off df rescanning.
4145         * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
4146         DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
4147         df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
4148         (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
4149         (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
4150         fields in df_ref_flags.  The rest have been renumbered.  
4151         * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
4152         at -O1.
4153         * rtl.h (subreg_nregs_with_regno): New function.
4154         * df-problems.c: (df_get_live_out, df_get_live_in,
4155         df_get_live_top): Removed reference to DF_RA_LIVE.
4156         (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
4157         df_live_alloc, df_live_reset, df_live_local_finalize,
4158         df_live_free): Make top set only if different from in set.
4159         (df_lr_top_dump, df_live_top_dump): Only print top set if
4160         different from in set.
4161         (df_lr_bb_local_compute): Removed unnecessary check.
4162         (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, 
4163         df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, 
4164         df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
4165         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
4166         df_urec_local_compute, df_urec_init, df_urec_local_finalize, 
4167         df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 
4168         df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
4169         df_urec_add_problem): Removed.
4170         (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
4171         bb_has_eh_pred. 
4172         * Makefile.in (ra-conflict.o, ra.h): New dependencies.
4173         * basic_block.h (bb_has_abnormal_pred): New function.
4174         * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
4175         usage to DF_LIVE usage.
4176         
4177 2007-10-02  Revital Eres  <eres@il.ibm.com>
4178
4179         * config/rs6000/predicates.md (easy_vector_constant): Return false
4180         for 750CL paired vectors.
4181         * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
4182         vector constant.
4183         (vec_initv2sf): Add new description.
4184         (vconcatsf): Likewise.
4185         * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
4186         * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
4187
4188 2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
4189
4190         * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
4191         sinking the last stmt in a BB.
4192
4193 2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
4194
4195         PR middle-end/22156
4196         * tree-sra.c (struct sra_elt): Add in_bitfld_block.
4197         (sra_hash_tree): Handle BIT_FIELD_REFs.
4198         (sra_elt_hash): Don't hash bitfld blocks.
4199         (sra_elt_eq): Skip them in parent compares as well.  Handle
4200         BIT_FIELD_REFs.
4201         (build_element_name_1): Handle BIT_FIELD_REFs.
4202         (instantiate_element): Propagate nowarn from parents.  Create
4203         BIT_FIELD_REF for variables that are widened by scalarization.
4204         Gimple-zero-initialize all bit-field variables that are not
4205         part of parameters that are going to be scalarized on entry.
4206         (instantiate_missing_elements_1): Return the sra_elt.
4207         (canon_type_for_field): New.
4208         (try_instantiate_multiple_fields): New.  Infer widest possible
4209         access mode from decl or member type, but clip it at word
4210         size, and only widen it if a field crosses an alignment
4211         boundary.
4212         (instantiate_missing_elements): Use them.
4213         (generate_one_element_ref): Handle BIT_FIELD_REFs.
4214         (scalar_bitfield_p): New.
4215         (sra_build_assignment): Optimize assignments from scalarizable
4216         BIT_FIELD_REFs.  Use BITS_BIG_ENDIAN to determine shift
4217         counts.
4218         (REPLDUP): New.
4219         (sra_build_bf_assignment): New.  Optimize assignments to
4220         scalarizable BIT_FIELD_REFs.
4221         (sra_build_elt_assignment): New.  Optimize BIT_FIELD_REF
4222         assignments to full variables.
4223         (generate_copy_inout): Use the new macros and functions.
4224         (generate_element_copy): Likewise.  Handle bitfld differences.
4225         (generate_element_zero): Don't recurse for blocks.  Use
4226         sra_build_elt_assignment.
4227         (generate_one_element_init): Take elt instead of var.  Use
4228         sra_build_elt_assignment.
4229         (generate_element_init_1): Adjust.
4230         (bitfield_overlap_info): New struct.
4231         (bitfield_overlaps_p): New.
4232         (sra_explode_bitfield_assignment): New.  Adjust widened
4233         variables to account for endianness.
4234         (sra_sync_for_bitfield_assignment): New.
4235         (scalarize_use): Re-expand assignment to/from scalarized
4236         BIT_FIELD_REFs.  Explode or sync needed members for
4237         BIT_FIELD_REFs accesses or assignments.  Use REPLDUP.
4238         (scalarize_copy): Use REPLDUP.
4239         (scalarize_ldst): Move assert before dereference.  Adjust EH
4240         handling.
4241         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
4242
4243 2007-10-01  Paolo Bonzini  <bonzini@gnu.org>
4244
4245         * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
4246         Rename CR_* constants to CMP_*.  Fix spacing.
4247
4248 2007-10-01  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4249
4250         PR other/33585
4251         * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
4252         to be processed with the special script doc/install.texi2html.
4253         
4254 2007-09-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4255
4256         * doc/invoke.texi (Wall): List the options enabled by Wall.
4257         (Wstrict-aliasing): Add missing @option.
4258         
4259 2007-09-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4260
4261         * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
4262         rather than gen_lowpart to change a register from DImode to DFmode.
4263         (mips_cannot_change_mode_class): Only allow FPRs to change mode if
4264         both FROM and TO are integer modes that are no bigger than 4 bytes.
4265         (mips_mode_ok_for_mov_fmt_p): New function.
4266         (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
4267         (mips_secondary_reload_class): Tweak formatting and comments.
4268         Use reg_class_subset_p instead of direct comparisons with
4269         classes.  Only allow direct FPR<->FPR moves for modes that
4270         satisfy mips_mode_ok_for_mov_fmt_p.  Only allow loads and stores
4271         for 4- and 8-byte types.  Handle reloads in which X is an FPR.
4272         * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
4273         (*movdi_64bit): Likewise.
4274         (*movsi_internal): Likewise.
4275         (*movhi_internal): Likewise.
4276         (*movqi_internal): Likewise.
4277
4278 2007-09-30  Diego Novillo  <dnovillo@google.com>
4279
4280         PR 33593
4281         * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
4282         throw an exception.
4283
4284 2007-09-30  Uros Bizjak  <ubizjak@gmail.com>
4285
4286         PR tree-optimization/33597
4287         * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
4288         for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
4289
4290 2007-09-28  Uros Bizjak  <ubizjak@gmail.com>
4291
4292         * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
4293         instead of variants of (!reload_in_progress && !reload_completed).
4294         (x86_expand_vector_move): Ditto.
4295
4296 2007-09-28  Ollie Wild  <aaw@google.com>
4297
4298         Revert
4299         2007-09-27  Ollie Wild  <aaw@google.com>
4300
4301         * varasm.c (compare_constant): Removed call to
4302         lang_hooks.expand_constant.
4303         (copy_constants): Removed call to lang_hooks.expand_constant.
4304         (compute_reloc_for_constant): Removed call to
4305         lang_hooks.expand_constant.
4306         (output_addressed_constants): Removed call to
4307         lang_hooks.expand_constant.
4308         (constructor_static_from_elts_p): Removed call to
4309         lang_hooks.expand_constant.
4310         (output_constant): Removed calls to lang_hooks.expand_constant.
4311         * langhooks.h (struct lang_hooks): Removed field expand_constant.
4312         * langhooks-def.h (lhd_return_tree): Removed.
4313         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
4314         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
4315         * langhooks.c (lhd_return_tree): Removed.
4316
4317 2007-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4318
4319         PR target/33347
4320         * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
4321         argument to gen_selb.
4322
4323 2007-09-28  Chao-ying Fu  <fu@mips.com>
4324
4325         * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
4326         * doc/libgcc.texi (Fixed-point fractional library routines):
4327         Fix typos for neg and cmp functions.
4328
4329 2007-09-28  Michael Matz  <matz@suse.de>
4330
4331         PR rtl-optimization/33552
4332         * function.c (match_asm_constraints_1): Check for overlap in
4333         inputs and replace all occurences.
4334
4335 2007-09-28  Richard Sandiford  <rsandifo@nildram.co.uk>
4336
4337         * config/mips/mips.c (override_options): Fix comment typo.
4338
4339 2007-09-28  Jie Zhang  <jie.zhang@analog.com>
4340
4341         * config.gcc (bfin*-linux-uclibc*): Set extra_parts
4342         to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
4343         * config/bfin/t-bfin-linux (crti.o): Don't build.
4344         (crtn.o): Likewise.
4345         (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
4346         * config/bfin/t-bfin-uclinux (crti.o): Don't build.
4347         (crtn.o): Likewise.
4348         (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
4349
4350 2007-09-27  Ollie Wild  <aaw@google.com>
4351
4352         * varasm.c (compare_constant): Removed call to
4353         lang_hooks.expand_constant.
4354         (copy_constants): Removed call to lang_hooks.expand_constant.
4355         (compute_reloc_for_constant): Removed call to
4356         lang_hooks.expand_constant.
4357         (output_addressed_constants): Removed call to
4358         lang_hooks.expand_constant.
4359         (constructor_static_from_elts_p): Removed call to
4360         lang_hooks.expand_constant.
4361         (output_constant): Removed calls to lang_hooks.expand_constant.
4362         * langhooks.h (struct lang_hooks): Removed field expand_constant.
4363         * langhooks-def.h (lhd_return_tree): Removed.
4364         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
4365         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
4366         * langhooks.c (lhd_return_tree): Removed.
4367
4368 2007-09-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4369
4370         PR middle-end/33436
4371         * expr.c (emit_group_load_1): Split constant double when destination
4372         length is half source length.
4373
4374 2007-09-27  Richard Sandiford  <rsandifo@nildram.co.uk>
4375
4376         * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
4377         (mips_cpu_info): Add tune_flags.
4378         (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
4379         * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
4380         Remove end marker.
4381         (override_options): Remove deprecation code.  Use branch-likely
4382         instructions for optimize_size or if the tuning flags do not
4383         suggest otherwise.  Tweak warning.
4384         (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
4385
4386 2007-09-27  Matthias Klose  <doko@ubuntu.com>
4387
4388         * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
4389         multilib osdirname if it exists.
4390         * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
4391
4392 2007-09-27  Ian Lance Taylor  <iant@google.com>
4393
4394         PR tree-optimization/33565
4395         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
4396         assignments of comparisons.
4397         * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
4398         parameter.  Change caller.  Defer overflow warnings around call to
4399         fold_binary.
4400         * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
4401         TREE_NO_WARNING is set on the statement.
4402         * tree-ssa-forwprop.c
4403         (tree_ssa_forward_propagate_single_use_vars): Don't test
4404         TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
4405         * tree-cfg.c (fold_cond_expr_cond): Likewise.
4406
4407 2007-09-27  Joseph Myers  <joseph@codesourcery.com>
4408
4409         * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
4410         reduce offset by units of 0x10000 for SPE vector modes or modes
4411         used with E500 double instructions.
4412
4413 2007-09-04  Paolo Bonzini  <bonzini@gnu.org>
4414
4415         * simplify-rtx.c (comparison_result): New.
4416         (simplify_const_relational_operation): Use it instead of the five
4417         "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
4418         Improve bounds-checking optimizations; remove subsumed POPCOUNT
4419         optimizations.  Extract nonzero_address_p optimizations into a
4420         separate "if" together with optimizations where op1 is const0_rtx.
4421         Optimize comparing an IOR with zero.  Simplify op0 RELOP op0 for
4422         floating-point arguments too when appropriate.  Hoist test for ABS
4423         outside the final switch statement.
4424         * cse.c (fold_rtx): Don't look for an IOR equivalent of
4425         folded_arg0 if we found a constant equivalent.  Remove
4426         transformations done in simplify-rtx.c for "op0 RELOP op0".
4427
4428 2007-09-27  Jakub Jelinek  <jakub@redhat.com>
4429
4430         * builtins.c (expand_builtin, expand_builtin_object_size,
4431         expand_builtin_memory_chk, maybe_emit_chk_warning,
4432         maybe_emit_sprintf_chk_warning): Use new %K format string specifier
4433         for diagnostics.
4434         * expr.c (expand_expr_real_1): Likewise.
4435         * langhooks-def.h (struct diagnostic_info): Add forward decl.
4436         (lhd_print_error_function): Add third argument.
4437         * langhooks.h (struct diagnostic_info): Add forward decl.
4438         (struct lang_hooks): Add third argument to print_error_function.
4439         * diagnostic.h (diagnostic_info): Add abstract_origin field.
4440         (diagnostic_last_function_changed, diagnostic_set_last_function): Add
4441         second argument.
4442         (diagnostic_report_current_function): Likewise.
4443         * toplev.c (announce_function): Pass NULL as second argument to
4444         diagnostic_set_last_function.
4445         * diagnostic.c (diagnostic_report_current_function): Add second
4446         argument, pass it as third argument to lang_hooks.print_error_function.
4447         (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
4448         to diagnostic_report_current_function.
4449         (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
4450         and message.abstract_origin.
4451         (verbatim): Initialize abstract_origin.
4452         * pretty-print.h (text_info): Add abstract_origin field.
4453         * pretty-print.c (pp_base_format): Handle %K.
4454         * langhooks.c (lhd_print_error_function): Add third argument.  If
4455         diagnostic->abstract_origin, print virtual backtrace.
4456         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
4457         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
4458         (init_dynamic_diag_info): Likewise.
4459
4460 2007-09-26  David Daney  <ddaney@avtrex.com>
4461
4462         PR target/33479
4463         * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
4464         sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
4465         sync_old_nand<mode>, sync_new_nand<mode>,
4466         sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
4467         Update length attributes.
4468         (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
4469         sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
4470         length attributes.
4471         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
4472         MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
4473         MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
4474         post-loop sync.
4475
4476 2007-09-26  Richard Guenther  <rguenther@suse.de>
4477
4478         PR tree-optimization/33563
4479         * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
4480         (get_kill_of_stmt_lhs): ... this.  Re-structure.  Handle
4481         aggregate stores.
4482         (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
4483         get_use_of_stmt_lhs.
4484
4485 2007-09-26  Joseph Myers  <joseph@codesourcery.com>
4486
4487         PR c/25309
4488         * c-common.c (complete_array_type): Diagnose too-large arrays and
4489         set type to error_mark_node.
4490
4491 2007-09-26  Richard Guenther  <rguenther@suse.de>
4492
4493         PR tree-optimization/30375
4494         PR tree-optimization/33560
4495         * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
4496         with calls.
4497
4498         Revert
4499         2006-05-22  Aldy Hernandez  <aldyh@redhat.com>
4500
4501         * tree-ssa-dse.c (aggregate_vardecl_d): New.
4502         (dse_global_data): Add aggregate_vardecl field.
4503         (dse_possible_dead_store_p): New.
4504         Add prev_defvar variable.
4505         Allow immediate uses and previous immediate uses to differ
4506         if they are setting different parts of the whole.
4507         (get_aggregate_vardecl): New.
4508         (dse_record_partial_aggregate_store): New.
4509         (dse_whole_aggregate_clobbered_p): New.
4510         (dse_partial_kill_p): New.
4511         Call dse_maybe_record_aggregate_store().
4512         When checking whether a STMT and its USE_STMT refer to the
4513         same memory address, check also for partial kills that clobber
4514         the whole.
4515         Move some variable definitions to the block where they are used.
4516         (aggregate_vardecl_hash): New.
4517         (aggregate_vardecl_eq): New.
4518         (aggregate_vardecl_free): New.
4519         (aggregate_whole_store_p): New.
4520         (tree_ssa_dse): Initialize and free aggregate_vardecl.
4521         Mark which aggregate stores we care about.
4522
4523 2007-09-25  DJ Delorie  <dj@redhat.com>
4524
4525         PR target/33551
4526         * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
4527         XINT.
4528
4529 2007-09-25  Michael Meissner  <michael.meissner@amd.com>
4530
4531         PR target/33524
4532         * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
4533         gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
4534         for vector int32 -> int64 conversions.  Don't write beyond the end
4535         of the allocated vector for int32 -> int64 conversions.
4536
4537 2007-09-25  Revital Eres  <eres@il.ibm.com>
4538
4539         * config/rs6000/paired.h (paired_sel): New.
4540         * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
4541         (rs6000_expand_ternop_builtin): Pass zero const_double operand
4542         when expanding selv2sf.
4543         * config/rs6000/rs6000.h (rs6000_builtins): Add
4544         PAIRED_BUILTIN_SELV2SF4.
4545
4546 2007-09-25  Joseph Myers  <joseph@codesourcery.com>
4547
4548         PR c/32295
4549         * c-typeck.c (default_conversion): Call require_complete_type
4550         before perform_integral_promotions.
4551         (build_unary_op): Call require_complete_type except for ADDR_EXPR.
4552         (build_c_cast): Call require_complete_type except for casts to
4553         void types.
4554         (convert_for_assignment): Call require_complete_type.
4555
4556 2007-09-25  Revital Eres  <eres@il.ibm.com>
4557
4558         * config/spu/spu.md: Fix doloop pattern.
4559
4560 2007-09-25  Bernd Schmidt  <bernd.schmidt@analog.com>
4561
4562         * config/bfin/bfin.c (expand_prologue_reg_save,
4563         expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs
4564         and ASTAT moved here...
4565         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
4566         ... from here.  New argument ALL; callers changed.
4567         (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
4568         (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
4569         have the "saveall" attribute.
4570
4571 2007-09-25  Hans-Peter Nilsson  <hp@bitrange.com>
4572
4573         * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
4574         bogus target macro.
4575         (INCOMING_REGNO, OUTGOING_REGNO): Define.
4576         * config/mmix/mmix.c (mmix_opposite_regno): New function.
4577         * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
4578
4579         * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
4580         with REG_P tests before REGNO access.
4581
4582 2007-09-24  DJ Delorie  <dj@redhat.com>
4583
4584         PR target/31482
4585         * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
4586         constraint.
4587         (movqicc_<code>_<mode>): Likewise.
4588         (movhicc_<code>_<mode>): Likewise.
4589
4590 2007-09-24  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4591
4592         PR target/33184
4593         * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
4594         register for reload.
4595
4596 2007-09-24  Danny Smith  <dannysmith@user.sourceforge.net>
4597
4598         PR c++/14688
4599         * config/i386/i386.c (ix86_comp_type_attributes): Check
4600         METHOD_TYPE too.
4601
4602 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
4603
4604         * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
4605         "move.l %a4,%a4" to produce nops.
4606         * config/m68k/m68k.c (override_options): Reset align options,
4607         if neccessary align macro isn't avaible.
4608
4609 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
4610
4611         config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
4612
4613 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
4614
4615         * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
4616         the basic block.
4617         * config/m68k/m68k.md (movsi_m68k): Allow certain constant when
4618         reload is completed.
4619         (peephole pattern): Convert most of them to RTL peephole pattern.
4620
4621 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
4622
4623         * config/m68k/m68k.c (notice_update_cc): Recognize fp compare
4624         (moved from fp compare patterns).
4625         * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
4626         Cleanup predicates to relieve reload.
4627         (conditional_trap): Reject conditional trap with fp condition.
4628         * config/m68k/predicates.md (fp_src_operand): New, reject
4629         certain constants early.
4630
4631 2007-09-24  Roman Zippel <zippel@linux-m68k.org>
4632
4633         * final.c (final_scan_insn): Remove accidentally duplicated code.
4634
4635 2007-09-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4636
4637         * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
4638         Allow --with-tune=cell and --with-cpu=cell.
4639
4640 2007-09-24  David Edelsohn  <edelsohn@gnu.org>
4641
4642         * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
4643         * config/rs6000/rs6000.opt (swdiv): Change option to ...
4644         (recip): this.
4645         * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
4646         function.
4647         (TARGET_BUILTIN_RECIPROCAL): Use it.
4648         (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
4649         (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
4650         (rs6000_emit_swrsqrtsf): New.
4651         * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
4652         rsqrtf. 
4653         * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
4654         (divsf3): Remove swdiv support.
4655         (recipsf3): New.
4656         (rsqrtsf2): New.
4657         (rsqrt_internal1): New.
4658         (divdf3): Remove swdiv support.
4659         (reciptdf3): New.
4660
4661 2007-09-24  Jakub Jelinek  <jakub@redhat.com>
4662
4663         PR c++/33506
4664         * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
4665         field.
4666         * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
4667         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
4668         * tree.c (type_hash_eq): For FUNCTION_TYPE use
4669         lang_hooks.type.type_hash_eq in addition to generic tests.
4670
4671 2007-09-24  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
4672         Ramana Radhakrishnan  <ramana@hercules.pun.celunite.com>
4673
4674         * tree-inline.h (eni_weights): Add field target_builtin_cost to
4675         reflect the cost per call to a target specific builtin.
4676         * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
4677         call to a target specific builtin, then use target_builtin_call_cost.
4678         (init_inline_once): Initialize target_builtin_call_cost field.
4679
4680 2007-09-24  Kai Tietz  <kai.tietz@onevision.com>
4681
4682         PR middle-end/33472
4683         * config/i386/i386.c (return_in_memory_ms_64): Handle return types for
4684         complex types.
4685
4686 2007-09-23  H.J. Lu  <hongjiu.lu@intel.com>
4687
4688         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
4689         * configure: Regenerated.
4690
4691 2007-09-23  Ollie Wild  <aaw@google.com>
4692
4693         * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
4694         operand.
4695         (get_pointer_modulus_and_residue): New function.
4696
4697 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
4698
4699         * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
4700         combine an SC return value into a single register.
4701
4702 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
4703
4704         * opth-gen.awk (target_flags_explicit): Declare.
4705         * toplev.h (target_flags_explicit): Delete declaration.
4706         * toplev.c (target_flags): Likewise.
4707         * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
4708         (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
4709         Never return true for TARGET_MIPS16.
4710         * config/mips/mips.c (mips_llsc): Delete.
4711         (mips_handle_option): Remove -mllsc handling.
4712         (mips_strip_unspec_address): Tweak comment.
4713         * config/mips/mips.opt (mllsc): Use a target mask.
4714
4715 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
4716
4717         * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
4718         word_mode as well as Pmode.
4719
4720 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
4721
4722         * function.c (assign_parm_setup_block): Explicitly convert BLKmode
4723         parameters from word_mode to the subword type if such a truncation
4724         is not a no-op.
4725
4726 2007-09-23  Jakub Jelinek  <jakub@redhat.com>
4727
4728         * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
4729         * configure: Regenerated.
4730
4731 2007-09-23  Jan Hubicka  <jh@suse.cz>
4732
4733         * params.def (INLINE_CALL_COST): Set to 12.
4734         * invoke.texi (inline-call-cost): Update default value.
4735
4736 2007-09-23  Eric Botcazou  <ebotcazou@adacore.com>
4737
4738         * config/alpha/alpha.md (movti): Use operand_subword for the split.
4739
4740 2007-09-23  Ayal Zaks  <zaks@il.ibm.com>
4741             Revital Eres  <eres@il.ibm.com>
4742
4743         * modulo-sched.c (doloop_register_get): Rewrite the loop which
4744         checks whether the count_reg is found outside the control part.
4745
4746 2007-09-23  Jakub Jelinek  <jakub@redhat.com>
4747
4748         * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
4749         instead of checking CALL_EXPR_FN directly to test for builtins.
4750         If error or warning attributes are present, print
4751         error resp. warning.
4752         * c-common.c (handle_error_attribute): New function.
4753         (c_common_attribute_table): Add error and warning
4754         attributes.
4755         * doc/extend.texi: Document error and warning attributes.
4756
4757         * tree.h (block_nonartificial_location): New prototype.
4758         * tree.c (block_nonartificial_location): New function.
4759         * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
4760         if artificial attribute is present on abstract inline decl.
4761         * c-common.c (handle_artificial_attribute): New function.
4762         (c_common_attribute_table): Add artificial attribute.
4763         * final.c (override_filename, override_linenum): New variables.
4764         (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
4765         and override_linenum if inside of a block inlined from
4766         __attribute__((__artificial__)) function.
4767         (notice_source_line): Honor override_filename and override_linenum.
4768         * doc/extend.texi: Document __attribute__((__artificial__)).
4769         * config/i386/emmintrin.h: Add __artificial__ attribute to
4770         all __always_inline__ functions.
4771         * config/i386/mmintrin.h: Likewise.
4772         * config/i386/tmmintrin.h: Likewise.
4773         * config/i386/mm3dnow.h: Likewise.
4774         * config/i386/pmmintrin.h: Likewise.
4775         * config/i386/ammintrin.h: Likewise.
4776         * config/i386/xmmintrin.h: Likewise.
4777         * config/i386/smmintrin.h: Likewise.
4778         * config/i386/bmmintrin.h: Likewise.
4779         * config/i386/mmintrin-common.h: Likewise.
4780
4781         PR middle-end/28755
4782         * expr.c (expand_constructor): New function.
4783         (expand_expr_real_1) <case CONSTRUCTOR>: Call it.
4784         (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
4785         CONSTRUCTOR.
4786
4787 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
4788
4789         * config/mips/mips.c (dump_constants_1): Generalize to include
4790         fractional and accumulator modes.
4791
4792 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
4793
4794         * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
4795         * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
4796         flags for MIPS16.
4797         (override_options): Check TARGET_HARD_FLOAT_ABI instead of
4798         TARGET_HARD_FLOAT when testing whether -mpaired-single is
4799         supported.
4800         (mips_conditional_register_usage): Check ISA_HAS_DSP instead of
4801         TARGET_DSP.
4802         * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
4803         TARGET_DSPR2.
4804         * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
4805         (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
4806         TARGET_HARD_FLOAT.
4807         (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
4808         ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
4809         * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
4810         throughout.
4811         * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
4812         TARGET_HAS_DSPR2.
4813         * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
4814         instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
4815         * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.
4816
4817 2007-09-22  Jason Merrill  <jason@redhat.com>
4818
4819         PR c++/19407
4820         * attribs.c (lookup_attribute_spec): Split out...
4821         (decl_attributes): From here.
4822         * tree.h: Declare it.
4823
4824 2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4825
4826         * doc/sourcebuild.texi: Document dg-add-options mips16_attribute.
4827
4828 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
4829
4830         * tree-inline.c (remap_type_1): Correctly chain variants.
4831
4832 2007-09-22  Richard Guenther  <rguenther@suse.de>
4833
4834         PR tree-optimization/33146
4835         * fold-const.c (fold_binary): Use the original tree
4836         for negating.
4837         * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
4838         also changes "sign".
4839
4840 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
4841
4842         PR target/32325
4843         * except.c (finish_eh_generation): Call commit_edge_insertions if
4844         there are insns queued on the entry edge.
4845         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
4846         the entry edge.
4847
4848 2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4849
4850         * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.
4851
4852 2007-09-19  Michael Meissner  <michael.meissner@amd.com>
4853
4854         * config/i386/i386.c: Delete trailing whitespace.
4855         * config/i386/i386.h: Ditto.
4856         * config/i386/bmmintrin.h: Ditto.
4857         * config/i386/sync.md: Ditto.
4858         * config/i386/ppro.md: Ditto.
4859         * config/i386/mmx.md: Ditto.
4860         * config/i386/constraints.md: Ditto.
4861         * config/i386/sse.md: Ditto.
4862         * config/i386/athlon.md: Ditto.
4863         * config/i386/i386.md: Ditto.
4864
4865 2007-09-21  Richard Guenther  <rguenther@suse.de>
4866
4867         PR tree-optimization/33508
4868         * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
4869         quadratic loop by keeping a bitmap of variables we have
4870         to clobber all subvariables for.
4871         (set_initial_properties): Likewise.
4872
4873 2007-09-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4874
4875         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.
4876
4877 2007-09-20  Nigel Stephens  <nigel@mips.com>
4878             Chao-ying Fu  <fu@mips.com>
4879
4880         * c-decl.c (finish_declspecs): When _Sat is used without
4881         _Fract or _Accum, set the default type to cts_fract.
4882         This avoids a warning of "type defaults to int".
4883
4884 2007-09-20  Joseph Myers  <joseph@codesourcery.com>
4885
4886         * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
4887         bit-fields wider than one bit.
4888
4889 2007-09-20  Jakub Jelinek  <jakub@redhat.com>
4890
4891         PR debug/33316
4892         * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL
4893         DECL_NAME.
4894         * dbxout.c (dbxout_type): Likewise.
4895
4896         PR c/33238
4897         PR c/27301
4898         * gimplify.c (gimplify_vla_decl): New function.
4899         (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl.
4900         Call it.
4901         (gimplify_target_expr): Handle variable length TARGET_EXPRs.
4902
4903 2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>
4904
4905         * doc/invoke.texi (-minterlink-mips16): Document.
4906         * config/mips/mips.opt (minterlink-mips16): New option.
4907         * config/mips/mips.c (mips_function_ok_for_sibcall): Handle
4908         -minterlink-mips16
4909
4910 2007-09-20  Joseph Myers  <joseph@codesourcery.com>
4911
4912         * doc/extend.texi (Attribute Syntax): Remove old speculative
4913         future direction.
4914
4915 2007-09-20  Mark Shinwell  <shinwell@codesourcery.com>
4916
4917         * combine.c: Include cgraph.h.
4918         (setup_incoming_promotions): Rework to allow more aggressive
4919         elimination of sign extensions when all call sites of the
4920         current function are known to lie within the current unit.
4921
4922 2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>
4923
4924         * dse.c (find_shift_sequence): No-op rework of control flow.
4925
4926 2007-09-19  Richard Sandiford  <rsandifo@nildram.co.uk>
4927
4928         * config/mips/mips.c (build_mips16_call_stub): Tidy.  Fix second
4929         GPR for DCmode on 64-bit targets.  Remove redundant fallback.
4930
4931 2007-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4932
4933         * cfgexpand.c (dump_stack_var_partition): Use the correct
4934         index for the offset.
4935
4936 2007-09-19  Joseph Myers  <joseph@codesourcery.com>
4937
4938         * config/mips/sde.h: Switch to GPLv3.
4939
4940 2007-09-19  Eric Botcazou  <ebotcazou@adacore.com>
4941
4942         * tree-sra.c (decide_block_copy): Decide if there are groups.
4943
4944 2007-09-19  Roman Zippel <zippel@linux-m68k.org>
4945
4946         * config/m68k/m68k.c (output_move_himode): Remove jump table
4947         recognition.
4948         config/m68k/m68k.md (lea): Likewise.
4949         * config/m68k/m68k.c (print_operand_address): Use simple pc
4950         relative addressing.
4951
4952 2007-09-19  Bernd Schmidt  <bernd.schmidt@analog.com>
4953
4954         * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument.
4955         * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument
4956         default definition.
4957         (asm_insn_count): Pass template as second argument to it.
4958         * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
4959         * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
4960         * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
4961         * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
4962         * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
4963         (sh_insn_length_adjustment): Pass template as second argument to it.
4964         * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro.
4965
4966         * config/bfin/bfin.md (define_asm_attributes): New.
4967
4968 2007-09-19  Jie Zhang  <jie.zhang@analog.com>
4969
4970         * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h
4971         to tm_file.
4972         * config/bfin/print-sysroot-suffix.sh: New.
4973         * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove.
4974         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
4975         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
4976         * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove.
4977         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
4978         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
4979         * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove.
4980         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
4981         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
4982         (linux-sysroot-suffix.h): New target.
4983         * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask.
4984         (mspecld-anomaly): Likewise.
4985         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from
4986         (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525,
4987         BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542,
4988         BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549.
4989         (bfin_si_revision): Declare.
4990         (bfin_workarounds): Declare.
4991         (WA_SPECULATIVE_LOADS): Define.
4992         (ENABLE_WA_SPECULATIVE_LOADS): Define.
4993         (WA_SPECULATIVE_SYNCS): Define.
4994         (ENABLE_WA_SPECULATIVE_SYNCS): Define.
4995         * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o.
4996         (LIB_SPEC): Add %s to the linker scripts.
4997         Use proper linker script for bf522, bf525, bf527,
4998         bf538, bf539, bf542, bf544, bf548, and bf549.
4999         * config/bfin/bfin.c (bfin_si_revision): Define.
5000         (bfin_workarounds): Define.
5001         (struct bfin_cpu): New.
5002         (bfin_cpus): New.
5003         (bfin_handle_option): Handle silicon revision part of -mcpu option.
5004         (override_options): Set bfin_workarounds.
5005         (length_for_loop): Replace TARGET_CSYNC_ANOMALY with
5006         ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with
5007         ENABLE_WA_SPECULATIVE_LOADS.
5008         (bfin_reorg): Likewise.
5009         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5010         macros for bf522, bf525, bf527, bf538, bf539,
5011         bf542, bf544, bf548, and bf549.
5012         Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed.
5013         Don't define __ID_SHARED_LIB__ when -msep-data.
5014         (TARGET_DEFAULT): Define as 0.
5015         (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option.
5016         * doc/invoke.texi (Blackfin Options): Document silicon
5017         revision part of -mcpu option and it now accepts bf522, bf525,
5018         bf527, bf538, bf539, bf542, bf544, bf548, and bf549.
5019
5020 2007-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5021
5022         * alias.c (memory_modified_1): Deconstify.
5023         (memory_modified_in_insn_p): Don't use const_note_stores.
5024         * rtl.h (const_note_stores): Delete.
5025         * rtlanal.c (const_note_stores): Likewise.
5026
5027 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
5028
5029         * dse.c (find_shift_sequence): Temporarily revert to forbidding
5030         word shifts.
5031
5032 2007-09-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
5033
5034         PR target/33388
5035         PR target/33397
5036         * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO().
5037         (addsi_small_int): Likewise.
5038         (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison.
5039         (one_cmplsi2): Likewise.
5040         (negsi2): Delete.
5041         (enter_func): Expand insn using hard_frame_pointer_rtx and
5042         stack_pointer_rtx.
5043         (*enter_func): New.
5044         * config/fr30/fr30.c (fr30_expand_prologue): Check for
5045         hard_frame_pointer_rtx instead of using REGNO() check.
5046         Properly sign extend GEN_INT() argument.
5047
5048 2007-09-18  Roman Zippel <zippel@linux-m68k.org>
5049
5050         * config/m68k/m68k.c (override_options): Remove USE_GAS,
5051         use %. syntax.
5052         (output_dbcc_and_branch, output_scc_di): Replace all jbcc
5053         alternatives with just jcc.
5054         * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di,
5055         bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev,
5056         bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si,
5057         dbge_hi, dbge_si): Likewise.
5058
5059 2007-09-18  Roman Zippel <zippel@linux-m68k.org>
5060
5061         * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered,
5062         bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev,
5063         bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev,
5064         bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev,
5065         bunlt_rev, bltgt_rev): Replace all fbcc with fjcc.
5066
5067 2007-09-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5068
5069         * config/m68k/m68k-devices.def (51qe): New device.
5070         * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit.  Add it
5071         to all uses of FL_FOR_isa_c for compatibility.
5072         (all_microarchs): Add cfv1 microarchitecture.
5073         (m68k_handle_option): Handle m51qe option.
5074         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE.
5075         (TUNE_CFV1): New macro.
5076         (enum uarch_type): Add ucfv1.
5077         * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture.
5078         
5079 2007-09-18  Richard Guenther  <rguenther@suse.de>
5080
5081         PR tree-optimization/31863
5082         * tree-ssa-structalias.c (create_variable_info_for): Always
5083         free the fieldstack.
5084
5085 2007-09-18  Dorit Nuzman  <dorit@il.ibm.com>
5086
5087         * opts.c (decode_options): Enable vectorization under -O3.
5088
5089 2007-09-18  Richard Guenther  <rguenther@suse.de>
5090
5091         PR tree-optimization/33340
5092         * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to
5093         SSA_NAMEs that occur in abnormal PHI nodes.
5094
5095 2007-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5096
5097         * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p):
5098         Don't use const_get_call_expr_in.
5099         * tree-gimple.c (const_get_call_expr_in): Delete.
5100         * tree-gimple.h (const_get_call_expr_in): Likewise.
5101
5102 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
5103
5104         * df-scan.c (df_notes_rescan): Do nothing if the instruction does
5105         not yet have a basic block.
5106         * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.
5107
5108 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
5109
5110         * config/mips/mips.c (mips_file_start): Add ".previous" directives
5111         to both ".section"s.
5112
5113 2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5114
5115         * config/mips/mips.c (mips_output_mi_thunk): Use
5116         mips_function_ok_for_sibcall and const_call_insn_operand
5117         to determine if a direct sibcall is allowed.  Use
5118         mips_classify_symbol to determine a global pointer is needed.
5119
5120 2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5121
5122         * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand.
5123
5124 2007-09-17  Chao-ying Fu  <fu@mips.com>
5125             Nigel Stephens  <nigel@mips.com>
5126
5127         * config/fixed-bit.h: New file.
5128         * config/fixed-bit.c: New file.
5129         * doc/libgcc.texi (Fixed-point fractional library routines): New node.
5130
5131 2007-09-18  Jakub Jelinek  <jakub@redhat.com>
5132
5133         * c-format.h (format_kind_info): Add alloc_char field.
5134         * c-format.c (scanf_flag_specs): Add 'm'.
5135         (scanf_flag_pairs): Add 'a', 'm' pair.
5136         (scan_char_table): Allow 'm' modifier for c, s, [, C and S.
5137         (format_types_orig): Add alloc_char fields.
5138         (check_format_info_main): Rename aflag to alloc_flag.
5139         Handle fki->alloc_char. modifier after width and before length
5140         modifiers.  Move FMT_FLAG_SCANF_A_KLUDGE handling before
5141         length modifiers as well.
5142         * config/sol2-c.c (solaris_format_types): Add alloc_char field.
5143
5144         PR middle-end/33423
5145         * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs
5146         returned by build_call_expr.
5147
5148 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5149
5150         * tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return
5151         NULL for variable-sized records too.
5152         (sra_walk_expr) <COMPONENT_REF>: Stop at variable-sized records too.
5153
5154 2007-09-17  Tom Tromey  <tromey@redhat.com>
5155
5156         * c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC.
5157         (c_builtin_function): Likewise.
5158         (grokdeclarator): Likewise.
5159
5160 2007-09-17  Zdenek Dvorak  <ook@ucw.cz>
5161
5162         PR rtl-optimization/26449
5163         * loop-invariant.c (move_invariant_reg): Do not use force_operand.
5164         (seq_insns_valid_p): Removed.
5165
5166 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5167
5168         * tree-nomudflap.c (gate_mudflap): New static function.
5169         (pass_mudflap_1): Use it as gate function.
5170         (pass_mudflap_2): Likewise.
5171
5172 2007-09-17  Jan Hubicka  <jh@suse.cz>
5173
5174         PR middle-end/33348
5175         PR target/33406
5176         * loop-invariant.c (move_invariant_reg): Unshare sequence.
5177
5178 2007-09-17  Victor Kaplansky  <victork@il.ibm.com>
5179
5180         PR tree-optimization/33319
5181         * tree-vect-analyze.c (vect_same_range_drs): New.
5182         (vect_vfa_range_equal): New.
5183         (vect_is_duplicate_ddr): Removed.
5184         (vect_mark_for_runtime_alias_test): Do not perform marking when
5185         optimizing for size or max_param for alias checking is zero.
5186         Move the function before vect_analyze_data_ref_dependence.
5187         (vect_analyze_data_ref_dependence): Add call to
5188         vect_mark_for_runtime_alias_test in two cases when dependence
5189         is not clear.
5190         (vect_analyze_data_ref_dependences): Do not call to
5191         vect_mark_for_runtime_alias_test.
5192         (vect_prune_runtime_alias_test_list): New.
5193         (vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list.
5194         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
5195         Update vec_outside_cost.
5196         (vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT.
5197         (vect_create_cond_for_alias_checks): Build the base address of data
5198         reference from DR_GROUP_FIRST_DR.
5199         (vect_loop_versioning): New.
5200         (vect_transform_loop): Add a call to vect_loop_versioning.
5201         Remove factored out code.
5202
5203 2007-09-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5204
5205         PR middle-end/33273
5206         * expr.c (store_expr): Call adjust_address to change mode of dest_mem
5207         to BLKmode.
5208
5209 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
5210
5211         * dse.c (find_shift_sequence): Allow word as well as subword shifts.
5212         Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set.
5213         Fix the call to insn_rtx_cost.  Skip access sizes that require a
5214         real truncation of the store register.  Use convert_move instead
5215         of gen_lowpart when narrowing the result.
5216         (replace_read): Use convert_move instead of gen_lowpart when
5217         narrowing the store rhs.
5218
5219 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
5220
5221         * config/mips/mips.md (SHORT): Fix long line.
5222         (SUBDI): New mode iterator.  Extend the shift-and-truncate insns
5223         to QImode and HImode.
5224
5225 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
5226
5227         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define.
5228
5229 2007-09-15  Zdenek Dvorak  <ook@ucw.cz>
5230
5231         * tree-parloops.c: New file.
5232         * tree-ssa-operands.h (free_stmt_operands): Declare.
5233         * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic
5234         block.
5235         * tree-pass.h (pass_parallelize_loops): Declare.
5236         * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for
5237         virtual operands.
5238         (build_omp_regions_1): Allow analysing just a single OMP region and
5239         its subregions.
5240         ( build_omp_regions_root, omp_expand_local): New functions.
5241         (build_omp_regions): Add argument to build_omp_regions_1 call.
5242         * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when
5243         autoparallelization is run.
5244         * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New.
5245         * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops,
5246         pass_parallelize_loops): New.
5247         * common.opt (ftree-parallelize-loops): New.
5248         * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail,
5249         parallelize_loops): Declare.
5250         (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed.
5251         * Makefile.in (tree-parloops.o): Added.
5252         * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail):
5253         New functions.
5254         (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge.
5255         (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for
5256         one extra edge as well.
5257         (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy.
5258         Use VEC_free to free doms vector.
5259         (move_block_to_fn): Update loop info. Remove phi nodes for virtual
5260         operands.  Recompute operand caches in the new function.
5261         (move_sese_region_to_fn): Update loop info.
5262         * passes.c (init_optimization_passes): Add pass_parallelize_loops.
5263         * tree-ssa-operands.c (free_stmt_operands): New function.
5264
5265         * doc/passes.texi: Document autoparallelization.
5266         * doc/invoke.texi (-ftree-parallelize-loops): New option.
5267
5268 2007-09-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5269
5270         PR target/33062
5271         * pa.c (function_value): Use GET_MODE_BITSIZE instead of
5272         TYPE_PRECISION.
5273
5274 2007-09-15  Dorit Nuzman  <dorit@il.ibm.com>
5275
5276         * tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if 
5277         the VEC is not NULL.
5278         (vectorizable_type_demotion, vectorizable_type_promotion): Check that 
5279         get_vectype_for_scalar_type succeeded.
5280         (vectorizable_conversion): Likewise.
5281
5282 2007-09-14  Jan Hubicka  <jh@suse.cz>
5283
5284         * config/i386/i386.md (*floatdi<mode>2_i387): Guard against
5285         TARGET_64BIT.
5286
5287 2007-09-14  Uros Bizjak  <ubizjak@gmail.com>
5288
5289         PR target/33438
5290         * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary
5291         register when operands[2] equals operands[1].
5292         (remainderxf3): Ditto.
5293
5294 2007-09-14  Sandra Loosemore  <sandra@codesourcery.com>
5295             Nigel Stephens  <nigel@mips.com>
5296
5297         * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
5298         * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
5299         (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to
5300         declaration.
5301         (_Unwind_ForcedUnwind): Likewise.
5302         (_Unwind_Resume): Likewise.
5303         (_Unwind_Resume_or_Rethrow): Likewise.
5304         (_Unwind_Backtrace): Likewise.
5305         (_Unwind_SjLj_RaiseException): Likewise.
5306         (_Unwind_SjLj_ForcedUnwind): Likewise.
5307         (_Unwind_SjLj_Resume): Likewise.
5308         (_Unwind_SjLj_Resume_or_Rethrow): Likewise.
5309         * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE
5310         to definition.
5311         (_Unwind_ForcedUnwind): Likewise.
5312         (_Unwind_Resume): Likewise.
5313         (_Unwind_Resume_or_Rethrow): Likewise.
5314         (_Unwind_Backtrace): Likewise.
5315         * unwind-compat.c (_Unwind_Backtrace): Likewise.
5316         (_Unwind_ForcedUnwind): Likewise.
5317         (_Unwind_RaiseException): Likewise.
5318         (_Unwind_Resume): Likewise.
5319         (_Unwind_Resume_or_Rethrow): Likewise.
5320
5321         * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force
5322         nomips16 mode when IN_LIBGCC2 with hard float.
5323
5324 2007-09-14  Richard Sandiford  <rsandifo@nildram.co.uk>
5325
5326         * config/mips/sdemtk.opt: Update to GPLv3.
5327         * config/mips/sdemtk.h: Likewise.
5328
5329 2007-09-14  Nigel Stephens  <nigel@mips.com>
5330
5331         * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set
5332         MIPS_ISA_DEFAULT appropriately.  Don't make soft-float the default
5333         for mipsisa32-*-linux*.
5334
5335 2007-09-14  Nigel Stephens  <nigel@mips.com>
5336             David Ung  <davidu@mips.com>
5337             Thiemo Seufer  <ths@mips.com>
5338             Richard Sandiford  <richard@codesourcery.com>
5339
5340         * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries.
5341         * configure.ac: Add a mipssde threading type.
5342         * configure: Regenerate.
5343         * config/mips/sdemtk.h: New file.
5344         * config/mips/t-sdemtk: Likewise.
5345         * config/mips/sdemtk.opt: Likewise.
5346         * gthr-mipssde.h: Likewise.
5347         * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h.
5348         * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro.
5349         (MIPS_ICACHE_SYNC): New macro, split from ...
5350         * config/mips/mips.md (clear_cache): ...here.
5351         * config/mips/mips.c (mips_save_reg_p): Check
5352         MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions.
5353         (build_mips16_function_stub): Use targetm.strip_name_encoding.
5354         (build_mips16_call_stub): Likewise.
5355
5356 2007-09-14  Richard Sandiford  <richard@codesourcery.com>
5357
5358         * Makefile.in (stmp-int-hdrs): Depend on fixinc_list.
5359
5360 2007-09-14  Jakub Jelinek  <jakub@redhat.com>
5361
5362         PR target/32337
5363         * config/ia64/ia64.c (find_gr_spill): Don't decrement
5364         current_frame_info.n_local_regs.  Don't return emitted local
5365         regs.
5366         (ia64_compute_frame_size): Improve unwind hack to put
5367         RP, PFS, FP in that order by allowing some of the registers
5368         been already emitted, as long as they are emitted to the
5369         desired register.
5370
5371 2007-09-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5372
5373         * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx,
5374         vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats,
5375         vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics.
5376
5377 2007-09-13  Eric Christopher  <echristo@apple.com>
5378             Kenneth Zadeck <zadeck@naturalbridge.com>
5379
5380         * dse.c (find_shift_sequence): New function.
5381         (replace_read): Add case to remove read if it requires shift.
5382         * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment.
5383         
5384 2007-09-13  Tom Tromey  <tromey@redhat.com>
5385
5386         * c-common.c (fname_as_string): Update.
5387         * c-parser.c (c_parser) <lex_untranslated_string>: New field.
5388         (c_lex_one_token): Update.  Add 'parser' argument.
5389         (c_parser_simple_asm_expr): Update.
5390         (c_parser_attributes): Update.
5391         (c_parser_asm_statement): Update.
5392         (c_parser_asm_operands): Update.
5393         (c_parser_peek_token): Update.
5394         (c_parser_peek_2nd_token): Update.
5395         * c-lex.c (c_lex_string_translate): Remove.
5396         (c_lex_return_raw_strings): Likewise.
5397         (c_lex_with_flags): Added 'lex_flags' argument.
5398         (lex_string): Added 'translate' argument.
5399         * c-pragma.h (c_lex_with_flags): Update.
5400         (c_lex_string_translate, c_lex_return_raw_strings): Remove.
5401         (C_LEX_STRING_NO_TRANSLATE): New define.
5402         (C_LEX_RAW_STRINGS): Likewise.
5403
5404 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
5405
5406         From Jie Zhang:
5407         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES,
5408         BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40,
5409         BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU.
5410         (bfin_init_builtins): Initialize __builtin_bfin_ones,
5411         __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16,
5412         __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32,
5413         __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub,
5414         __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40,
5415         __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16.
5416         (bdesc_1arg): Add __builtin_bfin_ones.
5417         (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40,
5418         __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40,
5419         and __builtin_bfin_csqu_fr16.
5420         * config/bfin/bfin.md (UNSPEC_ONES): New constant.
5421         (ones): New define_insn.
5422         (ssaddhi3_parts): New define_insn.
5423         (sssubhi3_parts): New define_insn.
5424         (flag_mulhi_parts): New define_insn.
5425
5426 2007-09-13  Seongbae Park <seongbae.park@gmail.com>
5427
5428         * common.opt (femit-class-debug-always): Turn off by default.
5429
5430 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
5431
5432         * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns.
5433         * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them.
5434
5435 2007-09-13  James E. Wilson  <wilson@specifix.com>
5436
5437         PR tree-optimization/33389
5438         * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true,
5439         then set build_loads before returning.
5440
5441 2007-09-13  Sandra Loosemore  <sandra@codesourcery.com>
5442             David Ung  <davidu@mips.com>
5443
5444         * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with
5445         {d}addiu and a negative immediate such that it works with MIPS16
5446         instructions.
5447         
5448 2007-09-13  H.J. Lu  <hongjiu.lu@intel.com>
5449
5450         PR bootstrap/33418
5451         * configure.ac (ld_vers): Support Linux linker.
5452         * configure: Regenerated.
5453
5454 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
5455             Sandra Loosemore <sandra@codesourcery.com>
5456
5457         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete.
5458         (SYMBOL_REF_MIPS16_FUNC_P): Delete.
5459         * config/mips/mips.c (mips_attribute_table): Turn mips16 and
5460         nomips16 into decl attributes.
5461         (TARGET_INSERT_ATTRIBUTES): Override.
5462         (TARGET_MERGE_DECL_ATTRIBUTES): Likewise.
5463         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true.
5464         (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of...
5465         (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions.
5466         (mips_comp_type_attributes): Remove mips16 and nomips16 handling.
5467         (mips_use_mips16_mode_p): Reimplement as a function that takes
5468         a decl and considers only decl attributes.  If the decl is nested
5469         function, use its parent attributes.
5470         (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p
5471         instead of SYMBOL_REF_MIPS16_FUNC_P.
5472         (mips_set_mips16_mode): Move call to sorry here from old
5473         mips_use_mips16_mode_p.
5474         (mflip_mips16_entry): New structure.
5475         (mflip_mips16_htab): New variable.
5476         (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions.
5477         (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise.
5478         (mips_merge_decl_attributes): New function.
5479         (mips_set_current_function): Reinstate call to mips_set_mips16_mode.
5480         Use mips_use_mips16_mode_p.
5481         (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of
5482         SYMBOL_REF_MIPS16_FUNC_P.
5483         (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC.
5484
5485 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
5486
5487         * c-parser.c (c_parser_struct_declaration): Check for a null return.
5488
5489 2007-09-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5490
5491         PR driver/33309
5492         * gcc.c (xputenv): Make argument const, and use CONST_CAST.
5493
5494 2007-09-12  Michael Meissner  <michael.meissner@amd.com>
5495             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5496             Tony Linthicum  <tony.linthicum@amd.com>
5497
5498         * tree.h (function_args_iterator): New type to iterate over
5499         function arguments.
5500         (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over
5501         function arguments providing a pointer to the argument.
5502         (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over
5503         function arguments providing the argument.
5504         (function_args_iter_init): Inline function to initialize
5505         function_args_iterator.
5506         (function_args_iter_cond_ptr): Inline function to return the next
5507         pointer to hold the argument.
5508         (function_args_iter_cond): Inline function to return the next
5509         argument.
5510         (function_args_iter_cond_next): Advance the function args
5511         iterator.
5512         (stdarg_p): New function, return true if variable argument
5513         function.
5514         (prototype_p): New function, return true if function is
5515         prototyped.
5516         (function_args_count): New function, count the number of arguments
5517         of a function.
5518
5519         * tree.c (stdarg_p): New function, return true if variable
5520         argument function.
5521         (prototype_p): New function, return true if function is
5522         prototyped.
5523
5524         * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
5525         (TARGET_ROUND): New macro for the round/ptest instructions which
5526         are shared between SSE4.1 and SSE5.
5527         (OPTION_MASK_ISA_ROUND): Ditto.
5528         (OPTION_ISA_ROUND): Ditto.
5529         (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
5530         (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
5531
5532         * config/i386/i386.opt (-msse5): New switch for SSE5 support.
5533         (-mfused-madd): New switch to give users control over whether the
5534         compiler optimizes to use the multiply/add SSE5 instructions.
5535
5536         * config/i386/i386.c (m_AMD_MULTIPLE): Rename from
5537         m_ATHLON_K8_AMDFAM10, and change all uses.
5538         (enum pta_flags): Add PTA_SSE5.
5539         (ix86_handle_option): Turn off 3dnow if -msse5.
5540         (override_options): Add SSE5 support.
5541         (print_operand): %Y prints comparison codes for SSE5 com/pcom
5542         instructions.
5543         (ix86_expand_sse_movcc): Add SSE5 support.
5544         (ix86_expand_sse5_unpack): New function to use pperm to unpack a
5545         vector type to the next largest size.
5546         (ix86_expand_sse5_pack): New function to use pperm to pack a
5547         vector type to the next smallest size.
5548         (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
5549         (IX86_BUILTIN_FMADDSD): Ditto.
5550         (IX86_BUILTIN_FMADDPS): Ditto.
5551         (IX86_BUILTIN_FMADDPD): Ditto.
5552         (IX86_BUILTIN_FMSUBSS): Ditto.
5553         (IX86_BUILTIN_FMSUBSD): Ditto.
5554         (IX86_BUILTIN_FMSUBPS): Ditto.
5555         (IX86_BUILTIN_FMSUBPD): Ditto.
5556         (IX86_BUILTIN_FNMADDSS): Ditto.
5557         (IX86_BUILTIN_FNMADDSD): Ditto.
5558         (IX86_BUILTIN_FNMADDPS): Ditto.
5559         (IX86_BUILTIN_FNMADDPD): Ditto.
5560         (IX86_BUILTIN_FNMSUBSS): Ditto.
5561         (IX86_BUILTIN_FNMSUBSD): Ditto.
5562         (IX86_BUILTIN_FNMSUBPS): Ditto.
5563         (IX86_BUILTIN_FNMSUBPD): Ditto.
5564         (IX86_BUILTIN_PCMOV_V2DI): Ditto.
5565         (IX86_BUILTIN_PCMOV_V4SI): Ditto.
5566         (IX86_BUILTIN_PCMOV_V8HI): Ditto.
5567         (IX86_BUILTIN_PCMOV_V16QI): Ditto.
5568         (IX86_BUILTIN_PCMOV_V4SF): Ditto.
5569         (IX86_BUILTIN_PCMOV_V2DF): Ditto.
5570         (IX86_BUILTIN_PPERM): Ditto.
5571         (IX86_BUILTIN_PERMPS): Ditto.
5572         (IX86_BUILTIN_PERMPD): Ditto.
5573         (IX86_BUILTIN_PMACSSWW): Ditto.
5574         (IX86_BUILTIN_PMACSWW): Ditto.
5575         (IX86_BUILTIN_PMACSSWD): Ditto.
5576         (IX86_BUILTIN_PMACSWD): Ditto.
5577         (IX86_BUILTIN_PMACSSDD): Ditto.
5578         (IX86_BUILTIN_PMACSDD): Ditto.
5579         (IX86_BUILTIN_PMACSSDQL): Ditto.
5580         (IX86_BUILTIN_PMACSSDQH): Ditto.
5581         (IX86_BUILTIN_PMACSDQL): Ditto.
5582         (IX86_BUILTIN_PMACSDQH): Ditto.
5583         (IX86_BUILTIN_PMADCSSWD): Ditto.
5584         (IX86_BUILTIN_PMADCSWD): Ditto.
5585         (IX86_BUILTIN_PHADDBW): Ditto.
5586         (IX86_BUILTIN_PHADDBD): Ditto.
5587         (IX86_BUILTIN_PHADDBQ): Ditto.
5588         (IX86_BUILTIN_PHADDWD): Ditto.
5589         (IX86_BUILTIN_PHADDWQ): Ditto.
5590         (IX86_BUILTIN_PHADDDQ): Ditto.
5591         (IX86_BUILTIN_PHADDUBW): Ditto.
5592         (IX86_BUILTIN_PHADDUBD): Ditto.
5593         (IX86_BUILTIN_PHADDUBQ): Ditto.
5594         (IX86_BUILTIN_PHADDUWD): Ditto.
5595         (IX86_BUILTIN_PHADDUWQ): Ditto.
5596         (IX86_BUILTIN_PHADDUDQ): Ditto.
5597         (IX86_BUILTIN_PHSUBBW): Ditto.
5598         (IX86_BUILTIN_PHSUBWD): Ditto.
5599         (IX86_BUILTIN_PHSUBDQ): Ditto.
5600         (IX86_BUILTIN_PROTB): Ditto.
5601         (IX86_BUILTIN_PROTW): Ditto.
5602         (IX86_BUILTIN_PROTD): Ditto.
5603         (IX86_BUILTIN_PROTQ): Ditto.
5604         (IX86_BUILTIN_PROTB_IMM): Ditto.
5605         (IX86_BUILTIN_PROTW_IMM): Ditto.
5606         (IX86_BUILTIN_PROTD_IMM): Ditto.
5607         (IX86_BUILTIN_PROTQ_IMM): Ditto.
5608         (IX86_BUILTIN_PSHLB): Ditto.
5609         (IX86_BUILTIN_PSHLW): Ditto.
5610         (IX86_BUILTIN_PSHLD): Ditto.
5611         (IX86_BUILTIN_PSHLQ): Ditto.
5612         (IX86_BUILTIN_PSHAB): Ditto.
5613         (IX86_BUILTIN_PSHAW): Ditto.
5614         (IX86_BUILTIN_PSHAD): Ditto.
5615         (IX86_BUILTIN_PSHAQ): Ditto.
5616         (IX86_BUILTIN_FRCZSS): Ditto.
5617         (IX86_BUILTIN_FRCZSD): Ditto.
5618         (IX86_BUILTIN_FRCZPS): Ditto.
5619         (IX86_BUILTIN_FRCZPD): Ditto.
5620         (IX86_BUILTIN_CVTPH2PS): Ditto.
5621         (IX86_BUILTIN_CVTPS2PH): Ditto.
5622         (IX86_BUILTIN_COMEQSS): Ditto.
5623         (IX86_BUILTIN_COMNESS): Ditto.
5624         (IX86_BUILTIN_COMLTSS): Ditto.
5625         (IX86_BUILTIN_COMLESS): Ditto.
5626         (IX86_BUILTIN_COMGTSS): Ditto.
5627         (IX86_BUILTIN_COMGESS): Ditto.
5628         (IX86_BUILTIN_COMUEQSS): Ditto.
5629         (IX86_BUILTIN_COMUNESS): Ditto.
5630         (IX86_BUILTIN_COMULTSS): Ditto.
5631         (IX86_BUILTIN_COMULESS): Ditto.
5632         (IX86_BUILTIN_COMUGTSS): Ditto.
5633         (IX86_BUILTIN_COMUGESS): Ditto.
5634         (IX86_BUILTIN_COMORDSS): Ditto.
5635         (IX86_BUILTIN_COMUNORDSS): Ditto.
5636         (IX86_BUILTIN_COMFALSESS): Ditto.
5637         (IX86_BUILTIN_COMTRUESS): Ditto.
5638         (IX86_BUILTIN_COMEQSD): Ditto.
5639         (IX86_BUILTIN_COMNESD): Ditto.
5640         (IX86_BUILTIN_COMLTSD): Ditto.
5641         (IX86_BUILTIN_COMLESD): Ditto.
5642         (IX86_BUILTIN_COMGTSD): Ditto.
5643         (IX86_BUILTIN_COMGESD): Ditto.
5644         (IX86_BUILTIN_COMUEQSD): Ditto.
5645         (IX86_BUILTIN_COMUNESD): Ditto.
5646         (IX86_BUILTIN_COMULTSD): Ditto.
5647         (IX86_BUILTIN_COMULESD): Ditto.
5648         (IX86_BUILTIN_COMUGTSD): Ditto.
5649         (IX86_BUILTIN_COMUGESD): Ditto.
5650         (IX86_BUILTIN_COMORDSD): Ditto.
5651         (IX86_BUILTIN_COMUNORDSD): Ditto.
5652         (IX86_BUILTIN_COMFALSESD): Ditto.
5653         (IX86_BUILTIN_COMTRUESD): Ditto.
5654         (IX86_BUILTIN_COMEQPS): Ditto.
5655         (IX86_BUILTIN_COMNEPS): Ditto.
5656         (IX86_BUILTIN_COMLTPS): Ditto.
5657         (IX86_BUILTIN_COMLEPS): Ditto.
5658         (IX86_BUILTIN_COMGTPS): Ditto.
5659         (IX86_BUILTIN_COMGEPS): Ditto.
5660         (IX86_BUILTIN_COMUEQPS): Ditto.
5661         (IX86_BUILTIN_COMUNEPS): Ditto.
5662         (IX86_BUILTIN_COMULTPS): Ditto.
5663         (IX86_BUILTIN_COMULEPS): Ditto.
5664         (IX86_BUILTIN_COMUGTPS): Ditto.
5665         (IX86_BUILTIN_COMUGEPS): Ditto.
5666         (IX86_BUILTIN_COMORDPS): Ditto.
5667         (IX86_BUILTIN_COMUNORDPS): Ditto.
5668         (IX86_BUILTIN_COMFALSEPS): Ditto.
5669         (IX86_BUILTIN_COMTRUEPS): Ditto.
5670         (IX86_BUILTIN_COMEQPD): Ditto.
5671         (IX86_BUILTIN_COMNEPD): Ditto.
5672         (IX86_BUILTIN_COMLTPD): Ditto.
5673         (IX86_BUILTIN_COMLEPD): Ditto.
5674         (IX86_BUILTIN_COMGTPD): Ditto.
5675         (IX86_BUILTIN_COMGEPD): Ditto.
5676         (IX86_BUILTIN_COMUEQPD): Ditto.
5677         (IX86_BUILTIN_COMUNEPD): Ditto.
5678         (IX86_BUILTIN_COMULTPD): Ditto.
5679         (IX86_BUILTIN_COMULEPD): Ditto.
5680         (IX86_BUILTIN_COMUGTPD): Ditto.
5681         (IX86_BUILTIN_COMUGEPD): Ditto.
5682         (IX86_BUILTIN_COMORDPD): Ditto.
5683         (IX86_BUILTIN_COMUNORDPD): Ditto.
5684         (IX86_BUILTIN_COMFALSEPD): Ditto.
5685         (IX86_BUILTIN_COMTRUEPD): Ditto.
5686         (IX86_BUILTIN_PCOMEQUB): Ditto.
5687         (IX86_BUILTIN_PCOMNEUB): Ditto.
5688         (IX86_BUILTIN_PCOMLTUB): Ditto.
5689         (IX86_BUILTIN_PCOMLEUB): Ditto.
5690         (IX86_BUILTIN_PCOMGTUB): Ditto.
5691         (IX86_BUILTIN_PCOMGEUB): Ditto.
5692         (IX86_BUILTIN_PCOMFALSEUB): Ditto.
5693         (IX86_BUILTIN_PCOMTRUEUB): Ditto.
5694         (IX86_BUILTIN_PCOMEQUW): Ditto.
5695         (IX86_BUILTIN_PCOMNEUW): Ditto.
5696         (IX86_BUILTIN_PCOMLTUW): Ditto.
5697         (IX86_BUILTIN_PCOMLEUW): Ditto.
5698         (IX86_BUILTIN_PCOMGTUW): Ditto.
5699         (IX86_BUILTIN_PCOMGEUW): Ditto.
5700         (IX86_BUILTIN_PCOMFALSEUW): Ditto.
5701         (IX86_BUILTIN_PCOMTRUEUW): Ditto.
5702         (IX86_BUILTIN_PCOMEQUD): Ditto.
5703         (IX86_BUILTIN_PCOMNEUD): Ditto.
5704         (IX86_BUILTIN_PCOMLTUD): Ditto.
5705         (IX86_BUILTIN_PCOMLEUD): Ditto.
5706         (IX86_BUILTIN_PCOMGTUD): Ditto.
5707         (IX86_BUILTIN_PCOMGEUD): Ditto.
5708         (IX86_BUILTIN_PCOMFALSEUD): Ditto.
5709         (IX86_BUILTIN_PCOMTRUEUD): Ditto.
5710         (IX86_BUILTIN_PCOMEQUQ): Ditto.
5711         (IX86_BUILTIN_PCOMNEUQ): Ditto.
5712         (IX86_BUILTIN_PCOMLTUQ): Ditto.
5713         (IX86_BUILTIN_PCOMLEUQ): Ditto.
5714         (IX86_BUILTIN_PCOMGTUQ): Ditto.
5715         (IX86_BUILTIN_PCOMGEUQ): Ditto.
5716         (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
5717         (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
5718         (IX86_BUILTIN_PCOMEQB): Ditto.
5719         (IX86_BUILTIN_PCOMNEB): Ditto.
5720         (IX86_BUILTIN_PCOMLTB): Ditto.
5721         (IX86_BUILTIN_PCOMLEB): Ditto.
5722         (IX86_BUILTIN_PCOMGTB): Ditto.
5723         (IX86_BUILTIN_PCOMGEB): Ditto.
5724         (IX86_BUILTIN_PCOMFALSEB): Ditto.
5725         (IX86_BUILTIN_PCOMTRUEB): Ditto.
5726         (IX86_BUILTIN_PCOMEQW): Ditto.
5727         (IX86_BUILTIN_PCOMNEW): Ditto.
5728         (IX86_BUILTIN_PCOMLTW): Ditto.
5729         (IX86_BUILTIN_PCOMLEW): Ditto.
5730         (IX86_BUILTIN_PCOMGTW): Ditto.
5731         (IX86_BUILTIN_PCOMGEW): Ditto.
5732         (IX86_BUILTIN_PCOMFALSEW): Ditto.
5733         (IX86_BUILTIN_PCOMTRUEW): Ditto.
5734         (IX86_BUILTIN_PCOMEQD): Ditto.
5735         (IX86_BUILTIN_PCOMNED): Ditto.
5736         (IX86_BUILTIN_PCOMLTD): Ditto.
5737         (IX86_BUILTIN_PCOMLED): Ditto.
5738         (IX86_BUILTIN_PCOMGTD): Ditto.
5739         (IX86_BUILTIN_PCOMGED): Ditto.
5740         (IX86_BUILTIN_PCOMFALSED): Ditto.
5741         (IX86_BUILTIN_PCOMTRUED): Ditto.
5742         (IX86_BUILTIN_PCOMEQQ): Ditto.
5743         (IX86_BUILTIN_PCOMNEQ): Ditto.
5744         (IX86_BUILTIN_PCOMLTQ): Ditto.
5745         (IX86_BUILTIN_PCOMLEQ): Ditto.
5746         (IX86_BUILTIN_PCOMGTQ): Ditto.
5747         (IX86_BUILTIN_PCOMGEQ): Ditto.
5748         (IX86_BUILTIN_PCOMFALSEQ): Ditto.
5749         (IX86_BUILTIN_PCOMTRUEQ): Ditto.
5750         (bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to
5751         OPTION_MASK_ISA_ROUND for instructions that are shared between
5752         SSE4.1 and SSE5.
5753         (bdesc_2arg): Ditto.
5754         (bdesc_sse_3arg): Ditto.
5755         (enum multi_arg_type): New enum for describing the various SSE5
5756         intrinsic argument types.
5757         (bdesc_multi_arg): New table for SSE5 intrinsics.
5758         (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
5759         (ix86_expand_multi_arg_builtin): New function for creating SSE5
5760         intrinsics.
5761         (ix86_expand_builtin): Add SSE5 intrinsic support.
5762         (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
5763         operand instructions.
5764         (ix86_expand_sse5_multiple_memory): New function to split the
5765         second memory reference from SSE5 instructions.
5766         (type_has_variadic_args_p): Delete in favor of stdarg_p.
5767         (ix86_return_pops_args): Use stdarg_p to determine if the function
5768         has variable arguments.
5769         (ix86_setup_incoming_varargs): Ditto.
5770         (x86_this_parameter): Ditto.
5771
5772         * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
5773         declaration.
5774         (ix86_expand_sse5_pack): Ditto.
5775         (ix86_sse5_valid_op_p): Ditto.
5776         (ix86_expand_sse5_multiple_memory): Ditto.
5777
5778         * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
5779         constant for SSE5 support.
5780         (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
5781         (UNSPEC_SSE5_TRUEFALSE): Ditto.
5782         (UNSPEC_SSE5_PERMUTE): Ditto.
5783         (UNSPEC_SSE5_ASHIFT): Ditto.
5784         (UNSPEC_SSE5_LSHIFT): Ditto.
5785         (UNSPEC_FRCZ): Ditto.
5786         (UNSPEC_CVTPH2PS): Ditto.
5787         (UNSPEC_CVTPS2PH): Ditto.
5788         (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
5789         (PCOM_TRUE): Ditto.
5790         (COM_FALSE_S): Ditto.
5791         (COM_FALSE_P): Ditto.
5792         (COM_TRUE_S): Ditto.
5793         (COM_TRUE_P): Ditto.
5794         (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
5795         (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
5796         types.
5797         (memory attribute): Ditto.
5798         (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
5799         Use SSE4_1_ROUND_* constants instead of hard coded numbers.
5800         (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
5801         (floor<mode>2): Ditto.
5802         (ceil<mode>2): Ditto.
5803         (btrunc<mode>2): Ditto.
5804         (nearbyintdf2): Ditto.
5805         (nearbyintsf2): Ditto.
5806         (sse_setccsf): Disable if SSE5.
5807         (sse_setccdf): Ditto.
5808         (sse5_setcc<mode>): New support for SSE5 conditional move.
5809         (sse5_pcmov_<mode>): Ditto.
5810
5811         * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
5812         (SSEMODEF4): Ditto.
5813         (SSEMODEF2P): Ditto.
5814         (ssemodesuffixf4): New mode attribute for SSE5.
5815         (ssemodesuffixf2s): Ditto.
5816         (ssemodesuffixf2c): Ditto.
5817         (sserotatemax): Ditto.
5818         (ssescalarmode): Ditto.
5819         (sse_maskcmpv4sf3): Disable if SSE5.
5820         (sse_maskcmpv2df3): Ditto.
5821         (sse_vmmaskcmpv4sf3): Ditto.
5822         (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add
5823         instructions.
5824         (sse5_vmfmadd<mode>4): Ditto.
5825         (sse5_fmsub<mode>4): Ditto.
5826         (sse5_vmfmsub<mode>4): Ditto.
5827         (sse5_fnmadd<mode>4): Ditto.
5828         (sse5_vmfnmadd<mode>4): Ditto.
5829         (sse5_fnmsub<mode>4): Ditto.
5830         (sse5_vmfnmsub<mode>4): Ditto.
5831         (sse5i_fmadd<mode>4): Ditto.
5832         (sse5i_fmsub<mode>4): Ditto.
5833         (sse5i_fnmadd<mode>4): Ditto.
5834         (sse5i_fnmsub<mode>4): Ditto.
5835         (sse5i_vmfmadd<mode>4): Ditto.
5836         (sse5i_vmfmsub<mode>4): Ditto.
5837         (sse5i_vmfnmadd<mode>4): Ditto.
5838         (sse5i_vmfnmsub<mode>4): Ditto.
5839         (mulv16qi3): Add SSE5 support.
5840         (mulv4si3): Ditto.
5841         (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
5842         (sse2_mulv4si3): Disable if SSE5.
5843         (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
5844         (sse4_1_roundps): Ditto.
5845         (sse4_1_roundsd): Ditto.
5846         (sse4_1_roundss): Ditto.
5847         (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
5848         be generated.
5849         (sse_maskcmpsf3): Ditto.
5850         (sse_vmmaskcmpv4sf3): Ditto.
5851         (sse2_maskcmpv2df3): Ditto.
5852         (sse2_maskcmpdf3): Ditto.
5853         (sse2_vmmaskcmpv2df3): Ditto.
5854         (sse2_eq<mode>3): Ditto.
5855         (sse2_gt<mode>3): Ditto.
5856         (sse5_pcmov_<mode>): Add SSE5 support.
5857         (vec_unpacku_hi_v16qi): Ditto.
5858         (vec_unpacks_hi_v16qi): Ditto.
5859         (vec_unpacku_lo_v16qi): Ditto.
5860         (vec_unpacks_lo_v16qi): Ditto.
5861         (vec_unpacku_hi_v8hi): Ditto.
5862         (vec_unpacks_hi_v8hi): Ditto.
5863         (vec_unpacku_lo_v8hi): Ditto.
5864         (vec_unpacks_lo_v8hi): Ditto.
5865         (vec_unpacku_hi_v4si): Ditto.
5866         (vec_unpacks_hi_v4si): Ditto.
5867         (vec_unpacku_lo_v4si): Ditto.
5868         (vec_unpacks_lo_v4si): Ditto.
5869         (sse5_pmacsww): New SSE5 intrinsic insn.
5870         (sse5_pmacssww): Ditto.
5871         (sse5_pmacsdd): Ditto.
5872         (sse5_pmacssdd): Ditto.
5873         (sse5_pmacssdql): Ditto.
5874         (sse5_pmacssdqh): Ditto.
5875         (sse5_pmacsdqh): Ditto.
5876         (sse5_pmacsswd): Ditto.
5877         (sse5_pmacswd): Ditto.
5878         (sse5_pmadcsswd): Ditto.
5879         (sse5_pmadcswd): Ditto.
5880         (sse5_pcmov_<move>): Conditional move support on SSE5.
5881         (sse5_phaddbw): New SSE5 intrinsic insn.
5882         (sse5_phaddbd): Ditto.
5883         (sse5_phaddbq): Ditto.
5884         (sse5_phaddwd): Ditto.
5885         (sse5_phaddwq): Ditto.
5886         (sse5_phadddq): Ditto.
5887         (sse5_phaddubw): Ditto.
5888         (sse5_phaddubd): Ditto.
5889         (sse5_phaddubq): Ditto.
5890         (sse5_phadduwd): Ditto.
5891         (sse5_phadduwq): Ditto.
5892         (sse5_phaddudq): Ditto.
5893         (sse5_phsubbw): Ditto.
5894         (sse5_phsubwd): Ditto.
5895         (sse5_phsubdq): Ditto.
5896         (sse5_pperm): Ditto.
5897         (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
5898         (sse5_pperm_zero_v16qi_v8hi): Ditto.
5899         (sse5_pperm_sign_v8hi_v4si): Ditto.
5900         (sse5_pperm_zero_v8hi_v4si): Ditto.
5901         (sse5_pperm_sign_v4si_v2di): Ditto.
5902         (sse5_pperm_sign_v4si_v2di): Ditto.
5903         (sse5_pperm_pack_v2di_v4si): Ditto.
5904         (sse5_pperm_pack_v4si_v8hi): Ditto.
5905         (sse5_pperm_pack_v8hi_v16qi): Ditto.
5906         (sse5_perm<mode>): New SSE5 intrinsic insn.
5907         (rotl<mode>3): Ditto.
5908         (sse5_rotl<mode>3): Ditto.
5909         (sse5_ashl<mode>3): Ditto.
5910         (sse5_lshl<mode>3): Ditto.
5911         (sse5_frcz<mode>2): Ditto.
5912         (sse5s_frcz<mode>2): Ditto.
5913         (sse5_cvtph2ps): Ditto.
5914         (sse5_cvtps2ph): Ditto.
5915         (sse5_vmmaskcmp<mode>3): Ditto.
5916         (sse5_com_tf<mode>3): Ditto.
5917         (sse5_maskcmp<mode>3): Ditto.
5918         (sse5_maskcmp_uns<mode>3): Ditto.
5919         (sse5_maskcmp_uns2<mode>3): Ditto.
5920         (sse5_pcom_tf<mode>3): Ditto.
5921         
5922         * config/i386/predicates.md (const_0_to_31_operand): New predicate
5923         to match 0..31.
5924         (sse5_comparison_float_operator): New predicate to match the
5925         comparison operators supported by the SSE5 com instruction.
5926         (ix86_comparison_int_operator): New predicate to match just the
5927         signed int comparisons.
5928         (ix86_comparison_uns_operator): New predicate to match just the
5929         unsigned int comparisons.
5930
5931         * doc/invoke.texi (-msse5): Add documentation.
5932         (-mfused-madd): Ditto.
5933
5934         * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
5935
5936         * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
5937         mmintrin-common.h.
5938         (x86_64-*-*): Ditto.
5939
5940         * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
5941
5942         * config/i386/bmmintrin.h: New file, provide common x86 compiler
5943         intrinisics for SSE5.
5944
5945         * config/i386/smmintrin.h: Move instructions shared with SSE5 to
5946         mmintrin-common.h.
5947
5948         * config/i386/mmintrin-common.h: New file, to contain common
5949         instructions between SSE4.1 and SSE5.
5950
5951         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
5952         FOREACH_FUNCTION_ARGS to iterate over the argument list.
5953         (gen_regparm_prefix): Ditto.
5954
5955         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
5956         FOREACH_FUNCTION_ARGS to iterate over the argument list.  Use
5957         prototype_p to determine if a function is prototyped.
5958
5959 2007-09-12  Janis Johnson  <janis187@us.ibm.com>
5960
5961         * config/dfp-bit.c (dfp_conversion_exception): New function.
5962         (DFP_TO_DFP) Add new variants to use direct conversions in decNumber.
5963         (DFP_TO_INT): Ditto.
5964         (INT_TO_DFP): Ditto.
5965         * config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New.
5966
5967 2007-09-12  Jakub Jelinek  <jakub@redhat.com>
5968
5969         PR target/32338
5970         * config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage
5971         before sp restoration even when total_size is 0, but
5972         frame_pointer_needed.
5973
5974 2007-09-12  Bob Wilson  <bob.wilson@acm.org>
5975
5976         * config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy.
5977         (xtensa_copy_incoming_a7): Use start_sequence instead of
5978         push_to_sequence.  Stash insns in vararg_a7_copy for builtin_saveregs.
5979         (xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start
5980         of the saveregs sequence.
5981
5982 2007-09-12  Richard Sandiford  <richard@codesourcery.com>
5983
5984         * c-tree.h (grokfield): Add a "tree *" argument.
5985         * c-decl.c (grokdeclarator): Take a pointer to the decl's attributes.
5986         Chain nested decl attributes to it.  Don't call decl_attributes here.
5987         (groktypename): Pass grokdeclarator a pointer to the attribute list.
5988         (start_decl, grokparm, push_parm_decl, start_function): Likewise.
5989         (grokfield): Take a pointer to the decl's attributes and pass
5990         it to grokdeclarator.
5991         * c-parser.c (c_parser_struct_declaration): Update the calls to
5992         grokfield.  Call decl_attributes for anonymous struct and union
5993         fields.
5994
5995 2007-09-12  Jan Hubicka  <jh@suse.cz>
5996
5997         * c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
5998
5999 2007-09-12  Ira Rosen  <irar@il.ibm.com>
6000
6001         PR tree-optimization/32377
6002         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish
6003         between positive and negative dependence distance using DDR_REVERSED_P.
6004
6005 2007-09-12  Dorit Nuzman  <dorit@il.ibm.com>
6006
6007         PR tree-optimization/33373
6008         * tree-vect-analyze (vect_determine_vectorization_factor): Call 
6009         TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT. 
6010
6011 2007-09-12  Jan Hubicka  <jh@suse.cz>
6012
6013         PR target/33393
6014         * i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): Disable
6015         for !SSE_MATH
6016
6017 2007-09-12  Christian Bruel  <christian.bruel@st.com>
6018
6019         * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs.
6020         * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. 
6021         
6022 2007-09-12  Ira Rosen  <irar@il.ibm.com>
6023
6024         * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector
6025         for oprnd1 if not required.
6026         (vectorizable_operation): Use scalar operand in SLP in case of 
6027         shift with scalar argument.
6028
6029 2007-09-12  Ira Rosen  <irar@il.ibm.com>
6030
6031         * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and minimum 
6032         to 1.
6033
6034 2007-09-11  James E. Wilson  <wilson@specifix.com>
6035
6036         * defaults.h (DWARF2_UNWIND_INFO): Don't define if
6037         TARGET_UNWIND_INFO is defined.
6038         * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef
6039         after definition.
6040
6041 2007-09-12  Kaz Kojima  <kkojima@gcc.gnu.org>
6042
6043         * config/sh/sh.c (calc_live_regs): Use
6044         current_function_saves_all_registers instead of
6045         current_function_has_nonlocal_label.
6046         (sh_allocate_initial_value): Likewise.
6047         (sh_get_pr_initial_val): Likewise.
6048         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise.
6049         * config/sh/sh.md (load_ra): Likewise.
6050
6051 2007-09-12  Hans-Peter Nilsson  <hp@axis.com>
6052
6053         * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc.
6054
6055         PR target/33360
6056         * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in
6057         GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation.
6058
6059 2007-09-12  Sa Liu  <saliu@de.ibm.com>
6060
6061         * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as
6062         operands to DFmode GE or LE compares.
6063
6064 2007-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
6065
6066         * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS,
6067         REG_CLASS_NAMES): Add P0REGS.
6068         (REGNO_REG_CLASS): Return it where appropriate.
6069         (REG_CLASS_FROM_CONSTRAINT): Add 'qA'.
6070         (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled.
6071         * doc/md.texi (Blackfin family): Document 'q' constraints.
6072
6073 2007-09-11  Steve Kenton  <skenton@ou.edu>
6074
6075         * pa/linux-unwind.h: Guard with inhibit_libc.
6076         * pa/hpux-unwind.h: Likewise.
6077
6078 2007-09-11  David Daney  <ddaney@avtrex.com>
6079
6080         * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
6081         * doc/install.texi: Document new --with-llsc and --without-llsc
6082         options.
6083         * config.gcc: Handle --with-llsc and --without-llsc configure options.
6084         * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction
6085         in %| and %- operand codes.  Depend on GENERATE_SYNC instead of
6086         ISA_HAS_SYNC.
6087         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
6088         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
6089         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
6090         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
6091         sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on
6092         GENERATE_LL_SC instead of ISA_HAS_LL_SC.
6093         * config/mips/mips.opt (mllsc): New option.
6094         * config/mips/mips.c (mips_llsc): Define variable.
6095         (mips_handle_option): Handle mllsc option.
6096         (override_options): Set mips_print_operand_punct for '|' and '-'.
6097         (print_operand): Add new %| and %- operand codes.
6098         * config/mips/mips.h (mips_llsc_setting): New enum type.
6099         (mips_llsc): Declare.
6100         (OPTION_DEFAULT_SPECS): Add llsc handling.
6101         (GENERATE_SYNC): New macro.
6102         (GENERATE_LL_SC): New macro.
6103         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
6104         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
6105         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions
6106         in %| and %- operand codes.
6107
6108 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
6109
6110         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
6111         TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
6112
6113 2007-09-11  Jason Merrill  <jason@redhat.com>
6114
6115         PR middle-end/27945
6116         * stor-layout.c (layout_decl): Do pack variable size fields.    
6117
6118 2007-09-11  Maxim Kuvyrkov  <maxim@codesourcery.com>
6119
6120         * config/m68k/predicates.md (movsi_const0_operand,
6121         non_symbolic_call_operand): New predicates.
6122
6123         * config/m68k/constraints.md (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
6124         New constraints.
6125         * doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
6126         Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
6127         CW, CZ, CS, Ap and Ac.
6128
6129         * config/m68k/m68k.md (UNSPEC_IB): New constant.
6130         (constraints.md): New include.
6131         (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
6132         opx_mem, opy_mem, op_mem, guess, split): New attributes.
6133         (movdf_internal): Name pattern.  Fix to use alternatives.  Add split.
6134         Specify attributes.
6135         (pushdi): Add split.
6136         (tstsi_internal): Name pattern.  Fix to use alternatives.  Specify
6137         attributes.  Split tstsi_internal_68020_cf from it.
6138         (tstsi_internal_68020_cf): New pattern.
6139         (tsthi_internal, tstqi_internal): Name pattern.  Specify attributes.
6140         (tst<mode>_cf): Specify attributea.
6141         (cmpsi_cf): Name pattern.  Specify attributes.
6142         (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
6143         (pushexthisi_const): Fix to use alternatives.  Specify
6144         attributes.
6145         (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
6146         from it.  Fix to use alternatives.  Specify attributes.
6147         (movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
6148         (movsi_cf, movstrictqi_cf): Fix to use alternatives.  Specify
6149         attributes.
6150         (movsf_cf_soft): Specify attributes.
6151         (movdf_cf_soft): Add split.
6152         (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
6153         cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
6154         68k_extendqisi2, truncdfsf2_cf): Specify attributes.
6155         (truncdfsf2_68881): Name pattern.  Specify attributes.
6156         (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
6157         floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
6158         fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
6159         Specify attributes.
6160         (addsi3_5200): Fix to use alternatives.  Specify attributes.
6161         Add splits.
6162         (add<mode>3_cf, subdi_dishl32): Specify attributes.
6163         (subsi3): Add alternative for subq.l.  Specify attributes.
6164         (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
6165         (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern.  Specify
6166         attributes.
6167         (umulhisi3): Specify attributes.
6168         (mulhisisi3_z): Name pattern.  Specify attributes.
6169         (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
6170         sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
6171         subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
6172         bsetmemqi): Specify attributes.
6173         (bsetmemqi_ext): Name pattern.  Specify attributes.
6174         (bclrmemqi): Specify attributes.
6175         (bclrmemqi_ext, scc, sls): Name pattern.  Specify attributes.
6176         (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
6177         attributes.
6178         (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
6179         pattern.  Specify attributes.
6180         (jump): Specify attributes.
6181         (tablejump_internal): Name pattern.  Specify attributes.
6182         (call_value): Split into non_symbolic_call_value,
6183         symbolic_call_value_jsr, symbolic_call_value_bsr.  Fix to use
6184         alternatives.  Specify attributes.
6185         (non_symbolic_call_value, symbolic_call_value_jsr,
6186         symbolic_call_value_bsr): New patterns.
6187         (nop, return, unlink, indirect_jump): Specify attributes.
6188         (trap): Fix condition.  Specify attributes.
6189         (ib): New pattern.
6190
6191         * config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
6192         (override_options): Initialize it.  Initialize m68k_sched_cpu.
6193         (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
6194         (const_method): Make global, rename to m68k_const_method.
6195         (const_int_cost, output_move_const_into_data_reg): Update.
6196         (output_move_double): Parametrize to emit rtl code, rename to
6197         handle_move_double.
6198         (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
6199         emit_movsi): New static functions.
6200         (output_move_double): New function with semantics of old
6201         output_move_double.
6202         (m68k_emit_move_double): New function.
6203         (m68k_sched_cpu): New variable.
6204         (attr_op_type): New enum.
6205         (sched_guess_p): New variable.
6206         (sched_address_type, sched_operand_type, sched_attr_op_type):
6207         New static functions.
6208         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
6209         m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
6210         (sched_branch_type): New static variable.
6211         (m68k_sched_branch_type): New function.
6212         * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
6213         (m68k_symbolic_call_var): Declare.
6214         (M68K_CONST_METHOD): Rename from CONST_METHOD.  Move here from m68k.c.
6215         (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
6216         m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
6217         m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
6218         Declare.
6219
6220 2007-09-11  Jakub Jelinek  <jakub@redhat.com>
6221
6222         * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
6223         * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
6224         error if __builtin_va_arg_pack_len () wasn't optimized out during
6225         inlining.
6226         * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
6227         with the number of inline's anonymous arguments.
6228         * doc/extend.texi: Document __builtin_va_arg_pack_len ().
6229
6230 2007-09-11  Zdenek Dvorak  <ook@ucw.cz>
6231
6232         * fold-const.c (extract_muldiv_1): Do not simplify
6233         var * c * c to var.
6234
6235 2007-09-11  Jan Hubicka <jh@suse.cz>
6236
6237         * i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS.
6238         (TARGET_INTER_UNIT_CONVERSIONS): New.
6239         * i386.md (floatsi expanders): Remove redundant check for SImode
6240         source; offload to memory when asked for.
6241         (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse
6242         floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
6243         Update conditions;
6244         (floatsisf2_mixed_memory, floatsisf2_sse_memory,
6245         floatsidf2_mixed_memory, floatsidf2_sse_memory
6246         floatdisf2_mixed_memory, floatsisf2_sse_memory,
6247         floatsidf2_mixed_memory, floatsidf2_sse_memory): New.
6248
6249 2007-09-11  Jan Hubicka <jh@suse.cz>
6250
6251         * toplev.c (process_options): all frontends now do unit-at-a-time.
6252         * cgraphunit.c: update comments.
6253         (cgraph_expand_function): call passmanager dirrectly; emit thunks.
6254         * c-decl.c (finish_function): use cgraph_add_new_function.
6255         * function.c (expand_function_end): We are always unit-at-a-time.
6256
6257 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
6258
6259         * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
6260         settings for MIPS16.
6261         (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.
6262
6263 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
6264
6265         * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
6266         SYMBOL_FORCE_TO_MEM constants.
6267         (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
6268         (mips16_rewrite_pool_refs_info): New structure.
6269         (mips16_rewrite_pool_constant): New function, split out from...
6270         (mips16_rewrite_pool_refs): ...here.  Take a pointer to a
6271         mips16_rewrite_pool_refs_info structure rather than a pointer
6272         to a constant pool.  Force force_to_mem_operands into memory.
6273         (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
6274         * config/mips/predicates.md (force_to_mem_operand): New predicate.
6275         * config/mips/constraints.md (kf): New constraint.
6276         * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
6277         (*movsi_mips16): Likewise.
6278
6279 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
6280             Nigel Stephens  <nigel@mips.com>
6281             David Ung  <davidu@mips.com>
6282
6283         * config/mips/mips.h (CONSTANT_POOL_COST): Move to...
6284         * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
6285         (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
6286         (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
6287         (mips_zero_extend_cost): New functions.
6288         (mips_rtx_costs): Treat COMPARE constants as having zero cost.
6289         Use the new functions.  Tweak many cost estimates, both here
6290         and in the new subroutines.  Return false when the cost of the
6291         operands has not been calculated.  Check for *clear_upper32.
6292         Check for floating-point multiply-add, reciprocal and rsqrt
6293         patterns.  Handle comparison and rotation codes.
6294
6295 2007-09-11  Danny Smith  <dannysmith@users.sourceforge.net>
6296
6297         * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't
6298         override default.
6299         * config/i386/i386.c (get_dllimport_decl): Don't strip
6300         FASTCALL_PREFIX.
6301
6302 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
6303
6304         PR c/30013
6305         * config/dfp-bit.c: Don't skip TFmode conversions; move strto*
6306         declarations to top.
6307         (DFP_TO_BFP): Use for either XFmode or TFmode.
6308         (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
6309         of BFP_VIA_TYPE.
6310         * config/dfp-bit.h: Include float.h.
6311         (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
6312         double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
6313         which doesn't mean the same thing.
6314         (BFP_KIND): Use 4 to mean TFmode.
6315         (BFP_FMT): Specify the number of decimal digits based on the
6316         number of mantissa digits.
6317         (BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
6318         (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
6319         (STR_TO_BFP): Use strtold for XFmode or TFmode.
6320         (TFtype): Define if TFmode is supported.
6321         * doc/libgcc.texi (Decimal float library routines): Document
6322         TF conversion functions.
6323
6324 2007-09-10  Chao-ying Fu  <fu@mips.com>
6325
6326         * config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
6327         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6328         (mips_emit_compare): Process fixed-point modes.
6329         (mips_pad_arg_upward): Support fixed-point types.
6330         (override_options): Allow fixed-point modes in accumulators.
6331         (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
6332         (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
6333         V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
6334         (mips_scalar_mode_supported_p): New function to accept fixed-point
6335         modes if the width is not greater than two BITS_PER_WORD.
6336         * config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
6337         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
6338         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
6339         LONG_LONG_ACCUM_TYPE_SIZE): Define.
6340         * config/mips/mips.md ("d"): Update mode attribute for fixed-point
6341         modes.
6342         ("IMODE"): New mode attribute.
6343         (mips-fixed.md): Include.
6344         * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
6345         ACCUM, UACCUM.
6346         * config/mips/mips-fixed.md: New file.
6347
6348 2007-09-11  Ben Elliston  <bje@au.ibm.com>
6349
6350         * config/spu/spu.md: Formatting fixes.
6351
6352 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
6353
6354         * config/dfp-bit.c (dfp_unary_func): Delete.
6355         (dfp_unary_op): Delete.
6356         (dfp_binary_op): Use decFloat functions instead of decNumber
6357         functions for binary operations.
6358         (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
6359         (dnn_binary_op): Call dfp_binary_op with decFloat rather than
6360         DFP_C_TYPE.
6361         (dfp_compare_op): Use decFloat functions insteadof decNumber
6362         functions for comparisons.
6363         (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
6364         (dnn_binary_op): Call dfp_compare_op with decFloat rather than
6365         DFP_C_TYPE.
6366         (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
6367         call to dxx_binary_op and decFloat function.
6368         (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
6369         calls to dxx_binary_op and decFloat function.
6370         * config/dfp-bit.h: Include decFloat header files.
6371         (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
6372         DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
6373         DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
6374         DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.
6375
6376 2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>
6377             Jan Sjodin <jan.sjodin@amd.com>
6378
6379         * tree-vect-analyze.c (vect_analyze_operations): Change
6380         comparison of loop iterations with threshold to less than
6381         or equal to instead of less than. Reduce
6382         min_scalar_loop_bound by one.
6383         * tree-vect-transform.c (vect_estimate_min_profitable_iters): 
6384         Change prologue and epilogue iterations estimate to vf/2,
6385         when unknown at compile-time. Change versioning guard
6386         cost to taken_branch_cost. If peeling for alignment is
6387         unknown at compile-time, change peel guard costs to one
6388         taken branch and one not-taken branch per peeled loop.
6389         If peeling for alignment is known but number of scalar loop
6390         iterations is unknown at compile-time, change peel guard
6391         costs to one taken branch per peeled loop. Change the cost
6392         model equation to consider vector iterations as the loop
6393         iterations less the prologue and epilogue iterations.
6394         Change outside vector cost check to less than or equal to
6395         zero instead of equal to zero.
6396         (vect_do_peeling_for_loop_bound): Reduce
6397         min_scalar_loop_bound by one.
6398         * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
6399         TARG_COND_NOT_TAKEN_BRANCH_COST.        
6400         * config/i386/i386.h (processor_costs): Add
6401         scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
6402         vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
6403         vec_align_load_cost, vect_unalign_load_cost,
6404         vec_store_cost, cond_taken_branch_cost,
6405         cond_not_taken_branch_cost.
6406         Define macros for x86 costs.
6407         * config/i386/i386.c:
6408         (size_cost): Set scalar_stmt_cost, scalar_load_cost,
6409         scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
6410         scalar_to_vec_cost, vec_align_load_cost, 
6411         vect_unalign_load_cost, vec_store_cost,
6412         cond_taken_branch_cost, cond_not_taken_branch_cost to one. 
6413         (i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
6414         geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, 
6415         core2_cost, generic64_cost, generic32_cost): Set to default
6416         untuned costs.
6417         (k8_cost, amdfam10_cost): Costs for vectorization tuned.
6418         (x86_builtin_vectorization_cost): New.
6419
6420 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
6421             Ben Elliston  <bje@au.ibm.com>
6422
6423         * dfp.c: Include decimal128Local.h; 
6424         (dfp_byte_swap): Remove.
6425         (encode_decimal32, decode_decimal32): Don't handle endianness.
6426         (encode_decimal64, decode_decimal64): Ditto.
6427         (encode_decimal128, decode_decimal128): Ditto.
6428         * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
6429         (__swap64): Remove.
6430         (host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
6431         (__swap128): Remove
6432         (host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
6433         * Makefile.in (DECNUM_H): Add decimal128Local.h.
6434
6435 2007-09-10  David Daney  <ddaney@avtrex.com>
6436
6437         * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
6438         define_constants.
6439         (memory_barrier): Rewrote as an insn that clobbers memory.
6440
6441 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
6442
6443         * config/mips/mips.c (mips_global_pointer): Check
6444         call_really_used_regs instead of call_used_regs.
6445         (mips_save_reg_p): Likewise.  Save all call-saved registers
6446         if current_function_saves_all_registers.  Fix indentation.
6447         No longer treat $18 as a special case.
6448         (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.
6449
6450 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
6451
6452         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
6453         * config/mips/mips.c (mips_cpu_info_table): Mention it in the
6454         the introductory comment.
6455         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
6456         (override_options): Don't test for it.
6457         * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
6458         (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
6459         * config/mips/vr.h: As for config/mips/sde.h.
6460
6461 2007-09-10  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6462             Revital Eres  <eres@il.ibm.com>
6463
6464         * target.h (struct gcc_target.sched): New field: sms_res_mii.
6465         (struct ddg): Define.
6466         * target-def.h (TARGET_SCHED_SMS_RES_MII): Define.
6467         (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII.
6468         * config/spu/spu.c: Include ddg.h.
6469         (TARGET_SCHED_SMS_RES_MII): Define.
6470         (spu_sms_res_mii): New function to calculate mii.
6471         * modulo-sched (res_MII): Use it.
6472         * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII.
6473
6474 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6475
6476         * config/s390/s390.c (s390_dump_pool): Create copy of constant
6477         pool entries since they might hold values that must not be shared.
6478
6479 2007-09-10  Uros Bizjak  <ubizjak@gmail.com>
6480
6481         PR target/33369
6482         * config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
6483         Use 'N' operand constraint for op2.
6484         (lshr<mode>3): Ditto.
6485         (ashl<mode>3): Ditto.
6486         (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
6487         (vec_shr_<mode>): Ditto.
6488         * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
6489         IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.
6490
6491 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6492
6493         * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"):
6494         Change mode macro in the last real_2expN parameter to uppercase.
6495
6496 2007-09-10  Michael Matz  <matz@suse.de>
6497
6498         * tree-pass.h (pass_cselim): Declare new pass.
6499         * passes.c (init_optimization_passes): Link in pass_cselim.
6500         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
6501         tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
6502         cond_store_replacement.
6503         (condstoretemp): New static variable.
6504         (cond_store_replacement): New function.
6505         (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
6506         tree_ssa_phiopt_worker.
6507         (struct name_to_bb): New.
6508         (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
6509         nt_init_block, nt_fini_block): New static functions.
6510         (seen_ssa_names, nontrap_set): New static variables.
6511         (gate_cselim, pass_cselim): Define new pass.
6512         * common.opt (ftree-cselim): New flag.
6513         * toplev.c (process_options): Set flag_tree_cselim if required.
6514
6515 2007-09-10  Hans-Peter Nilsson  <hp@axis.com>
6516
6517         * simplify-rtx.c (simplify_relational_operation_1): For recent
6518         canonicalization, don't recurse if op1 equals both PLUS arguments.
6519
6520 2007-09-09  David Daney  <ddaney@avtrex.com>
6521
6522         * optabs.c (expand_sync_operation):  Use plus insn if minus
6523         CONST_INT_P(val).
6524         (expand_sync_fetch_operation):  Ditto.
6525
6526 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
6527
6528         * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead
6529         of cvtpq2ps.
6530         (*floatsisf2_sse_vector): Likewise.
6531
6532 2007-09-09  Krister Walfridsson  <cato@df.lth.se>
6533
6534         * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
6535
6536 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
6537
6538         * config/i386/i386.h (ix86_tune_indices): Rename
6539         X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS.
6540         (TARGET_USE_VECTOR_CONVERTS): Updated.
6541         * config/i386/i386.c: Likewise.
6542
6543 2007-09-09  Sandra Loosemore  <sandra@codesourcery.com>
6544             Nigel Stephens <nigel@mips.com>
6545
6546         * doc/invoke.texi (Overall Options):  Add .sx file extension
6547         as a synonym for .S.
6548         * cppspec.c (known_suffixes): Likewise.
6549         * gcc.c (default_compilers): Likewise.
6550
6551 2007-09-09  Rask Ingemann Lambertsen  <rask@sygehus.dk>
6552
6553         PR target/30315
6554         * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete.
6555         * simplify-rtx.c (simplify_relational_operation_1): Add the
6556         canonicalization from i386.h.
6557         * doc/md.texi (Canonicalization of Instructions): Document it.
6558
6559 2007-09-09  Jan Hubicka  <jh@suse.cz>
6560             Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6561
6562         * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
6563         (TARGET_USE_VECTOR_CONVERTS): New.
6564         * i386.md: New post-reload splitters for converting SF to DF and DF to
6565         SF.
6566         (floatsi* expander): Special case vector conversions.
6567         (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
6568         floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
6569         floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
6570         (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
6571         Disable when doing vector converts.
6572         (floatsi<mode>2_i387): Disable when
6573         * sse.md (vec_dupv2df): Export.
6574         * i386.c (ix86_tune_features): Enable SSE conversions.
6575
6576 2007-09-09  Richard Guenther  <rguenther@suse.de>
6577
6578         * tree-ssa-operands.c (add_virtual_operand): Only mark
6579         stores as has_volatile_ops if alias information is not available.
6580
6581 2007-09-09  Revital Eres  <eres@il.ibm.com>
6582
6583         * doc/contrib.texi: Add myself.
6584
6585 2007-09-09  Ira Rosen  <irar@il.ibm.com>
6586
6587         * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
6588         stmt_vinfo_set_outside_of_loop_cost): New functions.
6589         * tree-vect-transform.c (vect_get_cost_fields): Remove.
6590         (vect_model_simple_cost): Call
6591         stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
6592         field instead of calling vect_get_cost_fields.
6593         (vect_model_store_cost, vect_model_load_cost): Likewise.
6594
6595 2007-09-09  Revital Eres  <eres@il.ibm.com>
6596
6597         * config/rs6000/rs6000.c (paired_init_builtins): Add const
6598         declaration to bdesc_paired_preds variable.
6599         (paired_expand_builtin): Likewise.
6600
6601 2007-09-09  Revital Eres  <eres@il.ibm.com>
6602
6603         * dbgcnt.def (sms_sched_loop): New counter.
6604         * modulo-sched.c: Use sms_sched_loop instead of
6605         MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
6606         perform swing modulo scheduling on.  Include dbgcnt.h.
6607         * Makefile.in: Add DBGCNT_H to modulo-sched.o.
6608         * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.
6609
6610 2007-09-09  Uros Bizjak  <ubizjak@gmail.com>
6611
6612         * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
6613         Substitute all uses with ...
6614         (MODEF): New mode iterator.
6615
6616         (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
6617         from pre-regalloc define_insn_and_split splitter pattern.
6618         (*fix_trunc<mode>_i387_1): Ditto.
6619         (*fistdi2_1): Ditto.
6620         (*fist<mode>2_1): Ditto.
6621         (frndintxf2_floor): Ditto.
6622         (*fist<mode>2_floor_1): Ditto.
6623         (frndintxf2_ceil): Ditto.
6624         (*fist<mode>2_ceil_1): Ditto.
6625         (frndintxf2_trunc): Ditto.
6626         (frndintxf2_mask_pm): Ditto.
6627
6628         (prologue): Use (const_int 0) as never generated filler insn.
6629         (epilogue): Ditto.
6630         (sibcall_epilogue): Ditto.
6631         (eh_return_si): Ditto.
6632         (eh_return_di): Ditto.
6633
6634         (add<mode>3): Rename from adddf3 and addsf3.  Macroize expander
6635         using MODEF mode iterator.
6636         (sub<mode>3): Rename from subdf3 and subsf3.  Macroize expander
6637         using MODEF mode iterator.
6638         (mul<mode>3): Rename from muldf3 and mulsf3.  Macroize expander
6639         using MODEF mode iterator.
6640         (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
6641         Macroize expander using MODEF mode iterator.
6642
6643         (zero_extendsidi2): Remove operand constraints from expander.
6644         (smuldi3_highpart): Ditto.
6645         (indirect_jump): Ditto.
6646         (tablejump): Ditto.
6647         (rsqrtsf2): Ditto.
6648         * config/i386/sse.md (storentv4sf): Ditto.
6649         (storentv2df): Ditto.
6650         (storentv2di): Ditto.
6651         (storentsi): Ditto.
6652         (sse2_cvtpd2ps): Ditto.
6653         (vec_interleave_highv16qi): Ditto.
6654         (vec_interleave_lowv16qi): Ditto.
6655         (vec_interleave_highv8hi): Ditto.
6656         (vec_interleave_lowv8hi): Ditto.
6657         (vec_interleave_highv4si): Ditto.
6658         (vec_interleave_lowv4si): Ditto.
6659         (vec_interleave_highv2di): Ditto.
6660         (vec_interleave_lowv2di): Ditto.
6661         (sse2_maskmovdqu): Ditto.
6662         * config/i386/mmx.md (mmx_maskmovq): Ditto.
6663
6664 2007-09-09  Ira Rosen  <irar@il.ibm.com>
6665
6666         * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
6667         (struct _slp_tree, struct _slp_instance): Define new data structures
6668         along macros for their access.
6669         (struct _loop_vec_info): Define new fields: strided_stores,
6670         slp_instances, and slp_unrolling_factor along macros for their access.
6671         (enum slp_vect_type): New.
6672         (struct _stmt_vec_info): Define new field, slp_type, and macros for
6673         its access.
6674         (STMT_VINFO_STRIDED_ACCESS): New macro.
6675         (vect_free_slp_tree): Declare.
6676         (vectorizable_load): Add an argument of type slp_tree.
6677         (vectorizable_store, vectorizable_operation, vectorizable_conversion,
6678         vectorizable_assignment): Likewise.
6679         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
6680         Declare (make extern).
6681         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
6682         (new_loop_vec_info): Likewise.
6683         (destroy_loop_vec_info): Free memory allocated for SLP structures.
6684         * tree-vect-analyze.c: Include recog.h.
6685         (vect_update_slp_costs_according_to_vf): New.
6686         (vect_analyze_operations): Add argument for calls to vectorizable_ ()
6687         functions. For not pure SLP stmts with strided access check that the
6688         group size is power of 2. Update the vectorization factor according to
6689         SLP. Call vect_update_slp_costs_according_to_vf.
6690         (vect_analyze_group_access): New.
6691         (vect_analyze_data_ref_access): Call vect_analyze_group_access.
6692         (vect_free_slp_tree): New functions.
6693         (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
6694         vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
6695         vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
6696         vect_detect_hybrid_slp): Likewise.
6697         (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
6698         and vect_detect_hybrid_slp.
6699         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
6700         SLP costs into account.
6701         (vect_get_cost_fields): New function.
6702         (vect_model_simple_cost): Make extern, add SLP parameter and handle
6703         SLP.
6704         (vect_model_store_cost, vect_model_load_cost): Likewise.
6705         (vect_get_constant_vectors): New function.
6706         (vect_get_slp_vect_defs, vect_get_slp_defs,
6707         vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
6708         vect_get_vec_defs): Likewise.
6709         (vectorizable_reduction): Don't handle SLP for now.
6710         (vectorizable_call): Don't handle SLP for now. Add argument to
6711         vect_model_simple_cost.
6712         (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
6713         get SLPed and vectorized defs). Fix indentation and spacing.
6714         (vectorizable_assignment): Handle SLP.
6715         (vectorizable_induction): Don't handle SLP for now.
6716         (vectorizable_operation): Likewise.
6717         (vectorizable_type_demotion): Add argument to
6718         vect_model_simple_cost.
6719         (vectorizable_type_promotion): Likewise.
6720         (vectorizable_store, vectorizable_load): Handle SLP.
6721         (vectorizable_condition): Don't handle SLP for now.
6722         (vect_transform_stmt): Add a new argument for SLP. Check that there is
6723         no SLP transformation required for unsupported cases. Add SLP
6724         argument for supported cases.
6725         (vect_remove_stores): New function.
6726         (vect_schedule_slp_instance, vect_schedule_slp): Likewise.
6727         (vect_transform_loop): Schedule SLP instances.
6728         * Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
6729
6730 2007-09-09  Andrew Haley  <aph@redhat.com>
6731
6732         * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake
6733         signed optab.
6734
6735 2007-09-09  Hans-Peter Nilsson  <hp@axis.com>
6736
6737         Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
6738         * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
6739         Similar for what label_refs can go in the JUMP_TARGET field.  Split
6740         REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
6741         * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
6742         REG_LABEL when replacing an operand with a LABEL_REF for a
6743         non-jump insn.
6744         (subst_reloads): When replacing a LABEL_REG with a register,
6745         instead of generating a REG_LABEL note, assert that there already
6746         is one or that the label is a known target for the insn.
6747         * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
6748         note, check the JUMP_LABEL field.  Remove "else" after return.
6749         * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
6750         cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
6751         (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
6752         REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
6753         insns.  Iterate over all notes; don't assume there's only one.
6754         * cse.c (recorded_label_ref): Adjust comment to refer to
6755         REG_LABEL_OPERAND.
6756         (cse_extended_basic_block): Do LABEL_REF check for all INSN_P
6757         insns, not just NONJUMP_INSN_P.
6758         (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
6759         isn't a jump target.
6760         * jump.c (rebuild_jump_labels): Adjust head comment.
6761         (init_label_info): Ditto.  Remove REG_LABEL_OPERAND notes only;
6762         don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
6763         (mark_all_labels): For JUMP_P insns without a target, check if the
6764         the target is noted on the previous nonjump insn.
6765         (mark_jump_label_1): New function, guts from mark_jump_label.
6766         <case IF_THEN_ELSE>: Handle first operand as a non-target when
6767         marking jump target labels.
6768         <case LABEL_REF>: Adjust for whether to generate a
6769         REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
6770         For 'E' format rtl, iterate in descending element order.
6771         (delete_related_insns): Handle both REG_LABEL_TARGET and
6772         REG_LABEL_OPERAND notes.  For JUMP_P insns with labels with zero
6773         reference count, delete and fallthrough.  Move finding-next-
6774         non-deleted insn last in the function.  Look at all INSN_P insns
6775         for REG_LABEL_OPERAND notes.
6776         (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
6777         JUMP.
6778         * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
6779         JUMP_LABEL, output the INSN_UID of it.
6780         * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
6781         and/or REG_LABEL_TARGET.
6782         (add_label_notes): Only add REG_LABEL_OPERAND notes.  Put in line
6783         with jump.c copy by only adding notes for labels actually
6784         referenced in the insn.
6785         * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
6786         usage count increment; handle all INSN_P trial insns.
6787         (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
6788         notes.
6789         * rtl.h (struct rtx_def) <volatil>: Adjust to mention
6790         REG_LABEL_TARGET and REG_LABEL_OPERAND.
6791         (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
6792         REG_LABEL_OPERAND.
6793         * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
6794         JUMP_P insns and REG_LABEL_OPERAND everywhere.
6795         * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
6796         on all INSN_P insns.
6797         * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
6798         * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
6799         REG_LABEL_OPERAND notes.
6800         * reload1.c (calculate_needs_all_insns): Adjust comments.
6801         (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
6802         * config/alpha/alpha.md (split for load of an address into a
6803         four-insn sequence on Unicos/Mk): Adjust to use
6804         REG_LABEL_OPERAND.
6805         * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
6806
6807 2007-09-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6808
6809         Revert:
6810         2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6811         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
6812         FOR_BB_INSNS_SAFE instead of for loop.
6813         * cse.c (cse_extended_basic_block): Likewise.
6814         * postreload.c (reload_cse_regs_1): New variable next. Make sure
6815         that the for loop does not invoke NEXT_INSN on a deleted insn.
6816         * function.c (instantiate_virtual_regs): Likewise.
6817         * lower-subreg.c (remove_retval_note): Likewise.
6818         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
6819         FOR_BB_INSNS.
6820         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
6821         a deleted insn.
6822         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
6823         insn, if it's a jump.
6824         (try_redirect_by_replacing_jump): New variable jump_p. Call
6825         tablejump_p before delete_insn_chain.
6826         * reload1.c (reload): New variable next. Make sure that the for
6827         loop does not invoke NEXT_INSN on a deleted insn.
6828         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
6829         (delete_output_reload): New variable prev. Make sure the the for
6830         loops do not invoke PREV_INSN on a deleted insn.
6831
6832 2007-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6833
6834         * pa/constraints.md: Remove 'X' from unused letters comment.
6835
6836 2007-09-08  Richard Guenther  <rguenther@suse.de>
6837
6838         * tree-tailcall.c (find_tail_calls): If we don't have aliases
6839         computed check stmt_ann->references_memory instead of counting
6840         virtual operands.
6841  
6842 2007-09-08  Segher Boessenkool  <segher@kernel.crashing.org>
6843
6844         * cse.c (fold_rtx): Use validate_unshare_change() instead of
6845         validate_change() in one more case.
6846
6847 2007-09-08  Zdenek Dvorak  <ook@ucw.cz>
6848
6849         PR tree-optimization/32283
6850         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
6851         estimated_loop_iterations.
6852         (determine_use_iv_cost_condition): Decrease cost of expressions
6853         used in iv elimination.
6854
6855 2007-09-08  Richard Guenther  <rguenther@suse.de>
6856
6857         * tree-cfg.c (verify_gimple_expr): Avoid building new
6858         pointer types, use TYPE_POINTER_TO if available instead.
6859
6860 2007-09-08  Uros Bizjak  <ubizjak@gmail.com>
6861
6862         PR target/33329
6863         PR rtl-optimization/26449
6864         * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
6865         (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
6866         split1 pass.
6867         (mulv16qi3): Implement as define_insn_and_split pattern instead of
6868         define_expand.  Split insn in split1 pass.
6869         (mulv2di3): Ditto.
6870
6871 2007-09-08  Dorit Nuzman  <dorit@il.ibm.com>
6872
6873         PR tree-optimization/33301
6874         * tree-vect-analyze (analyze_operations): Look at the type of the rhs
6875         when relevant.
6876
6877 2007-09-07  Zdenek Dvorak  <ook@ucw.cz>
6878
6879         PR tree-optimization/32183
6880         * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).
6881
6882         * tree-ssa-reassoc.c: Include cfgloop.h.
6883         (is_reassociable_op): Add a loop argument and return true only
6884         for inside loop.
6885         (linearize_expr): Updated.
6886         (should_break_up_subtract): Likewise.
6887         (linearize_expr_tree): Likewise.
6888         (init_reassoc): Call loop_optimizer_init with
6889         AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
6890         with CDI_DOMINATORS.
6891         (fini_reassoc): Call loop_optimizer_finalize.
6892
6893 2007-09-07  Sterling Augustine  <sterling@tensilica.com>
6894
6895         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
6896         if there is no i-cache.
6897
6898 2007-09-07  Richard Guenther  <rguenther@suse.de>
6899
6900         Reapply
6901         2007-09-06  Richard Guenther  <rguenther@suse.de>
6902
6903         PR tree-optimization/32586
6904         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
6905         folding if nothing changed.
6906         (simplify_unary_expression): New function.  Do tree combining
6907         on conversion like codes.
6908         (try_to_simplify): Call it.
6909
6910 2007-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6911
6912         PR target/33286
6913         * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
6914         (__gthread_active,__gthread_start, __gthread_active_init): New.
6915         * gthr-posix95.h: Likewise.
6916
6917 2007-09-07  Roman Zippel <zippel@linux-m68k.org>
6918
6919         * function.h (struct function): Rename calls_unwind_init
6920         to saves_all_registers.
6921         (current_function_saves_all_registers): Renamed from
6922         current_function_calls_unwind_init.
6923         * reload1.c (reload): Set current_function_saves_all_registers.
6924         * except.c (expand_builtin_unwind_init): Likewise.
6925         * config/m68k/m68k.c (m68k_save_reg): Use
6926         current_function_saves_all_registers to save pic register.
6927
6928 2007-09-07  Janis Johnson  <janis187@us.ibm.com>
6929
6930         config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
6931         config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
6932
6933         Reapply reverted changes:
6934
6935         2007-09-06  Jan Hubicka  <jh@suse.cz>
6936  
6937         * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call
6938         of real_2expN.
6939
6940         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
6941
6942         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
6943         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
6944
6945         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
6946
6947         * optabs.c (expand_float): Convert unsigned integer as signed only
6948         if it provides sufficient accuracy; add mode argument to real_2expN.
6949         (expand_fix): Fix comment typos; extend binary float into mode
6950         wider than destination for converion to unsigned integer; add mode
6951         argument to real_2expN.
6952         * real.c (real_2expN): Add mode argument to special-case decimal
6953         float values.
6954         * real.h (real_2expN): Ditto.
6955         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
6956         real_2expN.
6957         (fixed_from_string): Ditto.
6958         (fixed_to_decimal): Ditto.
6959         (fixed_convert_from_real): Ditto.
6960         (real_convert_from_fixed): Ditto.
6961         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
6962         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
6963         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
6964         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
6965
6966 2007-09-07  Diego Novillo  <dnovillo@google.com>
6967
6968         * tree-flow.h (const_block_stmt_iterator): Remove.
6969         Update all users to use block_stmt_iterator.
6970         * tree-iterator.h (const_tree_stmt_iterator): Remove.
6971         Update all users to use tree_stmt_iterator.
6972
6973 2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>
6974
6975         * config/mips/mips.c (mips_set_current_function): Temporarily
6976         make this a no-op to fix bootstrap errors, pending rewrite.
6977
6978 2007-09-07  Jan Hubicka  <jh@suse.cz>
6979
6980         * reorg.c (dbr_schedule): Move code removing placeholder USEs later
6981         in the pass.
6982
6983 2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>
6984
6985         PR tree-optimization/33299
6986         * tree-vect-transform.c (vect_create_epilog_for_reduction): Update
6987         uses for all relevant loop-exit phis, not just the first.
6988
6989 2007-09-07  Richard Guenther  <rguenther@suse.de>
6990
6991         PR middle-end/33330
6992         * tree-ssa-operands.c (access_can_touch_variable): An access
6993         of the form (*p)[0] can touch a variable of same size.
6994
6995 2007-09-07  Jan Hubicka  <jh@suse.cz>
6996
6997         * passes.c (init_optimization_passes): Add simple dce and addressable
6998         passes.
6999         * tree-ssa.c (execute_update_addresses_taken): New function.
7000         (pass_update_address_taken): New.
7001         * tree-ssa-dse.c (execute_simple_dse): New function.
7002         (pass_simple_dse): New.
7003         * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
7004
7005 2007-09-07  Tobias Burnus  <burnus@net-b.de>
7006
7007         PR middle-end/33321
7008         * doc/invoke.texi: Fix -Wstrict-overflow= table.
7009
7010 2007-09-07  Richard Guenther  <rguenther@suse.de>
7011
7012         Revert
7013         2007-09-06  Richard Guenther  <rguenther@suse.de>
7014
7015         PR tree-optimization/32586
7016         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
7017         folding if nothing changed.
7018         (simplify_unary_expression): New function.  Do tree combining
7019         on conversion like codes.
7020         (try_to_simplify): Call it.
7021
7022 2007-09-07  Richard Guenther  <rguenther@suse.de>
7023             Uros Bizjak  <ubizjak@gmail.com>
7024
7025         PR tree-optimization/32821
7026         * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
7027         NULL in the call to set_bb_stmt_list.
7028
7029 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
7030
7031         * config/mips/mips.c (build_mips16_call_stub): Emit all direct
7032         float calls here, rather than leaving some to the caller.
7033         Use call_internal_direct and call_value_internal_direct.
7034         * config/mips/mips.md (call_internal_direct): New pattern.
7035         (call_value_internal_direct): Likewise.
7036
7037 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
7038
7039         * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
7040         (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
7041         to 0 for MIPS16.
7042         (override_options): Set mips_base_move_loop_invariants.
7043
7044 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
7045
7046         * config/mips/mips.opt (mcode-readable=): Move to keep list
7047         alphabetical.
7048
7049 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
7050
7051         * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
7052         and -mgpopt options.  Adjust the -G documentation to match.
7053         * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
7054         * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
7055         function, split out from mips_classify_symbol.  Return false for
7056         !TARGET_LOCAL_SDATA.
7057         (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
7058         Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
7059         (override_options): Check whether the -mgpopt setting is consistent
7060         with the other flags.
7061         (symbolic_expression_p): Delete.
7062         (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
7063         and default_elf_select_rtx_section.
7064         (mips_in_small_data_p): Honor section attributes for MIPS16 too.
7065         Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
7066         external data and TARGET_EXTERN_SDATA.
7067
7068 2007-09-07  Tobias Burnus  <burnus@net-b.de>
7069
7070         PR fortran/33303
7071         * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
7072
7073 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7074
7075         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
7076         FOR_BB_INSNS_SAFE instead of for loop.
7077         * cse.c (cse_extended_basic_block): Likewise.
7078         * postreload.c (reload_cse_regs_1): New variable next. Make sure
7079         that the for loop does not invoke NEXT_INSN on a deleted insn.
7080         * function.c (instantiate_virtual_regs): Likewise.
7081         * lower-subreg.c (remove_retval_note): Likewise.
7082         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
7083         FOR_BB_INSNS.
7084         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
7085         a deleted insn.
7086         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
7087         insn, if it's a jump.
7088         (try_redirect_by_replacing_jump): New variable jump_p. Call
7089         tablejump_p before delete_insn_chain.
7090         * reload1.c (reload): New variable next. Make sure that the for
7091         loop does not invoke NEXT_INSN on a deleted insn.
7092         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
7093         (delete_output_reload): New variable prev. Make sure the the for
7094         loops do not invoke PREV_INSN on a deleted insn.
7095
7096 2007-09-06  Zdenek Dvorak  <ook@ucw.cz>
7097
7098         * cgraphbuild.c (rebuild_cgraph_edges): Export.
7099         * cgraph.h (rebuild_cgraph_edges): Declare.
7100         * tree-pass.h (pass_expand_omp_ssa): New.
7101         * omp-low.c (find_omp_clause): Export.
7102         (copy_var_decl): Split from omp_copy_decl_2.
7103         (build_omp_barrier): Return the call to emit instead of emitting
7104         it directly.
7105         (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
7106         build_omp_barrier.
7107         (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
7108         expand_omp_for_generic, expand_omp_for_static_nochunk,
7109         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
7110         Adapted to work on SSA form.
7111         (execute_expand_omp): Do not invalidate dominance information.
7112         (gate_expand_omp): Do not run with -fopenmp-ssa flag.
7113         (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
7114         * gimplify.c (gimplify_omp_for): Ensure that the control variable is
7115         a gimple_reg.
7116         (force_gimple_operand): Allow gimplifying code expressions without
7117         value.
7118         * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
7119         * common.opt (fopenmp-ssa): New.
7120         * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
7121         * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
7122         * tree-cfg.c: Include tree-inline.h.
7123         (struct move_stmt_d): Replace vars_to_remove by vars_map field.
7124         (replace_by_duplicate_decl, replace_ssa_name,
7125         mark_virtual_ops_in_region): New functions.
7126         (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
7127         to work on SSA form.
7128         * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
7129         * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
7130         constructs.
7131
7132 2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7133
7134         * tree-loop-linear.c: Include obstack.h.
7135         (linear_transform_loops): New obstack lambda_obstack.
7136         Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
7137         lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
7138         and free afterwards.
7139         * lambda.h (struct obstack): New forward declaration.
7140         (lambda_linear_expression_new): New parameter of type struct
7141         obstack *.
7142         (lambda_loopnest_new): Likewise.
7143         (lambda_loopnest_transform): Likewise.
7144         (lambda_body_vector_new): Likewise.
7145         (lambda_body_vector_compute_new): Likewise.
7146         (gcc_loopnest_to_lambda_loopnest): Likewise.
7147         (lambda_loopnest_to_gcc_loopnest): Likewise.
7148         * lambda-code.c: Include obstack.h.
7149         (lambda_lattice_new): New parameter lambda_obstack.  Use it for
7150         allocation of ret.
7151         (lambda_body_vector_new): Likewise.
7152         (lambda_linear_expression_new): Likewise.
7153         (lambda_lattice_new): Likewise.
7154         (lambda_loopnest_new): Likewise.  Additionally use obstack to
7155         allocate LN_LOOPS(ret).
7156         (lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
7157         it to lambda_lattice_new.
7158         (lambda_body_vector_compute_new): New parameter lambda_obstack.
7159         Pass it to lambda_body_vector_new.
7160         (lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
7161         it to lambda_lattice_new.
7162         (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
7163         Pass it to lambda_loopnest_new, lambda_linear_expression_new.
7164         (lambda_compute_target_space): Likewise.
7165         (lambda_compute_auxillary_space): New parameter lambda_obstack.
7166         Pass it to lambda_lattice_compute_base and
7167         compute_nest_using_fourieer_motzkin.
7168         (lambda_loopnest_transform): New parameter lambda_obstack.  Pass
7169         it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
7170         and lambda_lattice_compute_target_space.
7171         (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
7172         Pass it to lambda_linear_expression_new.
7173         (gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
7174         to gcc_tree_to_linear_expression.
7175         (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
7176         Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
7177         (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
7178         Pass it to lambda_body_vector_new and
7179         lambda_body_vector_compute_new.
7180         * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
7181         (lambda-code.o): Likewise.
7182
7183 2007-09-06  Chao-ying Fu  <fu@mips.com>
7184
7185         * ginclude/stdfix.h: New file.
7186         * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
7187         (convert.o): Add dependence on fixed-value.h.
7188         * c-convert.c (convert): Support FIXED_POINT_TYPE.
7189         * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
7190         to define fixed-point constants.
7191         (c_cpp_builtins): Define fixed-point constants.
7192         * convert.c (fixed-value.h): New include.
7193         (convert_to_real): Update comment to include fixed-point.
7194         Support FIXED_POINT_TYPE.
7195         (convert_to_integer): Update comment to include fixed-point.
7196         Support FIXED_POINT_TYPE.
7197         (convert_to_complex): Support FIXED_POINT_TYPE.
7198         (convert_to_fixed): New function.
7199         * convert.h (convert_to_fixed): Declare.
7200         * genopinit.c: Add comment about $Q for only fixed-point modes.
7201         (optabs): Add fract_optab, fractuns_optab, satfract_optab,
7202         satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
7203         sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
7204         ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
7205         usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
7206         usneg_optab for fixed-point modes.
7207         (gen_insn): Add force_fixed to track the $Q format for all fixed-point
7208         modes.
7209         * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
7210         PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
7211         unsigned saturation optabs, when type is saturating.
7212         (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
7213         (expand_fixed_convert): New function.
7214         (gen_fixed_libfunc, gen_signed_fixed_libfunc,
7215         gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
7216         gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
7217         gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
7218         gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
7219         gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
7220         functions.
7221         (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
7222         ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
7223         usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
7224         ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
7225         usneg_optab, fract_optab, fractuns_optab, satfract_optab,
7226         satfractuns_optab.
7227         Initialize fixed-point libraries, including add, ssadd, usadd, sub,
7228         sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
7229         ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
7230         fractuns, satfractuns.
7231         * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
7232         OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
7233         OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
7234         OTI_ssmsub_widen,  OTI_usmsub_widen.
7235         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
7236         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
7237         ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
7238         umsub_widen_optab, usmsub_widen_optab): Define.
7239         (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
7240         COI_satfractuns.
7241         (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
7242         Define.
7243         (expand_fixed_convert): Declare.
7244         * expr.c (convert_move): Support the move of fixed-point modes.
7245         (emit_move_insn_1): Handle fixed-point mode to move via integer.
7246         (categorize_ctor_elements_1): Handle FIXED_CST.
7247         (count_type_elements): Handle FIXED_POINT_TYPE.
7248         (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
7249         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
7250         Support FIXED_CST.
7251         For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
7252         multiply and add/subtract for fixed-point types.
7253         For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
7254         mode, we jump to binop directly.
7255         Support FIXED_CONVERT_EXPR.
7256         (do_store_flag): Check FIXED_CST to put a constant second.
7257         (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
7258         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
7259         (const_vector_from_tree): Support FIXED_CST.
7260         * doc/extend.texi (Fixed-Point): New node.
7261         * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
7262         ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
7263         satfract, fractuns, satfractuns): Document them.
7264
7265 2007-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
7266
7267         * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
7268         addresses into I registers.
7269
7270 2007-09-06  Jan Hubicka  <jh@suse.cz>
7271             Andreas Tobler  <a.tobler@schweiz.org>
7272
7273         * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
7274         sharing.
7275         (machopic_legitimize_pic_address): Likewise.
7276
7277 2007-09-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7278             Jan Hubicka  <jh@suse.cz>
7279
7280         * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
7281         instead of ufloat_optab->handlers directly.
7282         (floatdidf2): Likewise.
7283
7284 2007-09-06  Sandra Loosemore  <sandra@codesourcery.com>
7285
7286         * config/mips/mips.c:  Include diagnostic.h.
7287         (mips_set_current_function): Check errorcount and sorrycount 
7288         before generating RTL.
7289
7290 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
7291
7292         PR target/33256
7293         * config/mips/mips.c (mips_classify_symbolic_expression): New function.
7294         (mips_classify_address): Use it instead of mips_symbolic_constant_p.
7295         (print_operand_reloc): Likewise.
7296
7297 2007-09-06  Janis Johnson  <janis187@us.ibm.com>
7298
7299         Revert:
7300
7301         2007-09-06  Jan Hubicka  <jh@suse.cz>
7302  
7303         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
7304         real_2expN.
7305
7306         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
7307
7308         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
7309         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
7310
7311         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
7312
7313         * optabs.c (expand_float): Convert unsigned integer as signed only
7314         if it provides sufficient accuracy; add mode argument to real_2expN.
7315         (expand_fix): Fix comment typos; extend binary float into mode
7316         wider than destination for converion to unsigned integer; add mode
7317         argument to real_2expN.
7318         * real.c (real_2expN): Add mode argument to special-case decimal
7319         float values.
7320         * real.h (real_2expN): Ditto.
7321         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
7322         real_2expN.
7323         (fixed_from_string): Ditto.
7324         (fixed_to_decimal): Ditto.
7325         (fixed_convert_from_real): Ditto.
7326         (real_convert_from_fixed): Ditto.
7327         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
7328         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
7329         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
7330         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
7331
7332 2007-09-06  Tom Tromey  <tromey@redhat.com>
7333
7334         * tree-cfg.c (remove_bb): Only warn if line is non-zero.
7335         * c-pch.c (c_common_read_pch): Restore current location after
7336         reading PCH file.
7337         * tree.c (expand_location): Update.
7338         (expr_filename): Changed return type.  Unified the two cases.
7339         (expr_lineno): Likewise.
7340         (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
7341         as lvalues.
7342         * toplev.c (line_table): Changed type.
7343         (general_init): Update.
7344         (realloc_for_line_map): New function.
7345         (general_init): Allocate line_table using GC.
7346         * fix-header.c (line_table): Changed type.
7347         (read_scan_file): Update.
7348         (read_scan_file): Update.
7349         * c-ppoutput.c (maybe_print_line): Update.
7350         (print_line): Update.
7351         (cb_line_change): Update.
7352         (cb_define): Update.
7353         (pp_file_change): Update.
7354         * c-opts.c (c_common_init_options): Update.
7355         (finish_options): Update.
7356         (push_command_line_include): Update.
7357         * c-lex.c (cb_line_change): Update.
7358         (cb_def_pragma): Update.
7359         (cb_define): Update.
7360         (cb_undef): Update.
7361         (c_lex_with_flags): Use cpp_get_token_with_location.
7362         * input.h (line_table): Changed type.
7363         (location_from_locus): New macro.
7364         * tree.h (EXPR_FILENAME): No longer an lvalue.
7365         (EXPR_LINENO): Likewise.
7366         (expr_locus, set_expr_locus): Declare separately for
7367         USE_MAPPED_LOCATION.
7368         (expr_filename, expr_lineno): Changed return type.
7369         * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
7370         * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
7371         (expand_gimple_basic_block): Likewise.
7372         * final.c (final_scan_insn): Use expanded_location.
7373
7374 2007-09-06  Richard Guenther  <rguenther@suse.de>
7375
7376         PR tree-optimization/32586
7377         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
7378         folding if nothing changed.
7379         (simplify_unary_expression): New function.  Do tree combining
7380         on conversion like codes.
7381         (try_to_simplify): Call it.
7382         * builtins.c (fold_builtin_cexp): Fold the built expressions.
7383         * fold-const.c (fold_unary): Test result of get_callee_fndecl().
7384
7385 2007-09-06  Jan Hubicka  <jh@suse.cz>
7386
7387         PR target/33318
7388         * cse.c (fold_rtx): Avoid invalid sharing.
7389
7390 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
7391
7392         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
7393         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
7394
7395 2007-09-06  Revital Eres  <eres@il.ibm.com>
7396
7397         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
7398         Fix offsettable memory reference for 750CL.
7399
7400 2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>
7401
7402         * reload.c (find_reloads_address_1): Try to preserve original
7403         base/index regclass of operands.
7404         * regrename.c (scan_rtx_address): Likewise.
7405         (replace_oldest_value_addr): Likewise.
7406
7407 2007-09-06  Richard Guenther  <rguenther@suse.de>
7408
7409         PR tree-optimization/33302
7410         * domwalk.c (walk_dominator_tree): The exit block is
7411         interesting even if it is not reachable.
7412
7413 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
7414
7415         PR middle-end/33306
7416         * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
7417
7418 2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>
7419
7420         * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
7421         robustness.
7422
7423 2007-09-05  Ian Lance Taylor  <iant@google.com>
7424
7425         * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
7426         when printing.
7427         (dump_generic_node): Likewise.
7428         * print-rtl.c (print_decl_name): Likewise.
7429         * print-tree.c (print_node_brief): Likewise.
7430         (print_node): Likewise.
7431         * Makefile.in (RTL_BASE_H): Add alias.h.
7432         (TREE_H): Likewise.
7433
7434 2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>
7435
7436         * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
7437         Defined.
7438         * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
7439         * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
7440
7441 2007-09-06  Jie Zhang  <jie.zhang@analog.com>
7442
7443         * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
7444         (tm_defines): Define UCLIBC_DEFAULT to 1.
7445         (extra_options): Add linux.opt.
7446         * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
7447         (CRT_CALL_STATIC_FUNCTION): Likewise.
7448         (NO_IMPLICIT_EXTERN_C): Likewise.
7449         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
7450         * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
7451         * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
7452         (ENDFILE_SPEC): Don't define.
7453         (LIB_SPEC): Likewise.
7454         (CRT_CALL_STATIC_FUNCTION): Likewise.
7455         (NO_IMPLICIT_EXTERN_C): Likewise.
7456         (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
7457         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
7458
7459 2007-09-06  Jan Hubicka  <jh@suse.cz>
7460
7461         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
7462         real_2expN.
7463
7464 2007-09-06  Jan Hubicka  <jh@suse.cz>
7465
7466         * opts.c (common_handle_option): Enable inlining functions for
7467         -fprofile-generate.
7468
7469 2007-09-06  Jakub Jelinek  <jakub@redhat.com>
7470
7471         * builtin-attrs.def (ATTR_NONNULL_3): New.
7472         (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
7473         ATTR_NOTHROW_NONNULL_##FA.
7474         (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
7475         (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
7476         ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
7477         ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
7478         ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
7479         ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
7480         ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
7481         New.
7482         (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
7483         ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
7484         ATTR_FORMAT_NOTHROW_3_4): Remove.
7485         * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
7486         vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
7487         __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
7488         instead of ATTR_FORMAT_*_*.
7489
7490 2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
7491
7492         * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
7493         parts re-used for REG_FRAME_RELATED_EXPR.
7494
7495 2007-09-05  Janis Johnson  <janis187@us.ibm.com>
7496
7497         * optabs.c (expand_float): Convert unsigned integer as signed only
7498         if it provides sufficient accuracy; add mode argument to real_2expN.
7499         (expand_fix): Fix comment typos; extend binary float into mode
7500         wider than destination for converion to unsigned integer; add mode
7501         argument to real_2expN.
7502         * real.c (real_2expN): Add mode argument to special-case decimal
7503         float values.
7504         * real.h (real_2expN): Ditto.
7505         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
7506         real_2expN.
7507         (fixed_from_string): Ditto.
7508         (fixed_to_decimal): Ditto.
7509         (fixed_convert_from_real): Ditto.
7510         (real_convert_from_fixed): Ditto.
7511         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
7512         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
7513         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
7514         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
7515
7516 2007-09-05  Ian Lance Taylor  <iant@google.com>
7517
7518         * init-regs.c (initialize_uninitialized_regs): Call
7519         emit_insn_before rather than add_insn_before.
7520
7521 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
7522
7523         * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
7524         * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
7525         * tree-inline.h (copy_body_data): Add call_expr field.
7526         * tree-inline.c (expand_call_inline): Initialize call_expr.
7527         (copy_bb): Append anonymous inline fn arguments to arguments
7528         when inlining a CALL_EXPR_VA_ARG_PACK call.
7529         * builtins.c (expand_builtin): Issue an error if
7530         BUILT_IN_VA_ARG_PACK is seen during expand.
7531         (fold_call_expr, fold_builtin_call_array): Don't fold
7532         CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
7533         __builtin_va_arg_pack () call as last argument.
7534         * gimplify.c (gimplify_call_expr): If last argument to a vararg
7535         function is __builtin_va_arg_pack (), decrease number of call
7536         arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
7537         * expr.c (expand_expr_real_1): Issue an error if
7538         CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
7539         * tree-pretty-print.c (dump_generic_node): Handle printing
7540         CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
7541         * doc/extend.texi (__builtin_va_arg_pack): Document.
7542
7543 2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>
7544
7545         PR tree-optimization/21513
7546         * builtins.c (build_builtin_expect_predicate): New function.
7547         (fold_builtin_expect): Add argument for expected value.
7548         Distribute __builtin_expect over short-circuiting operations.
7549         Fold nested builtin_expects.
7550         (fold_builtin_2): Adjust call to fold_builtin_expect.
7551
7552 2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>
7553
7554         PR web/32965
7555         PR tree-optimization/13756
7556         * doc/invoke.texi (Options That Control Optimization): Document
7557         -ftree-dse.
7558
7559 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
7560
7561         * config/i386/cpuid.h: New file.
7562         * config/i386/driver-i386.c: Include cpuid.h.
7563         (describe_cache): Shrink size and line strings to 100 bytes.
7564         (detect_caches_amd): Return "" for unsupported max_ext_level.
7565         Use __cpuid function.
7566         (detect_caches_intel): Return "" for unsupported max_level.
7567         Use __cpuid function.
7568         (host_detect_local_cpu): Change feature flag variables to
7569         unsigned int.  Initialize only extended feature flag variables.
7570         Use __get_cpuid_max to determine max supported cpuid level.
7571         Use __cpuid function to determine supported features.  Fix
7572         calculation of family id.  Remove is_amd and check signature
7573         directly.  Check for Geode signature.  Handle family 4 id.
7574         [PROCESSOR_GENERIC32]: New default for unknown family id.  Move
7575         cpu discovery code to lower part of the function.
7576         [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
7577         for sub-architecture.
7578         [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
7579         [PROCESSOR_K8]: Add k8-sse3 architecture.
7580         [PROCESSOR_NOCONA]: Remove.
7581         [PROCESSOR_GENERIC64]: Ditto.
7582         * config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
7583         * config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
7584         to check for SSE and FXSAVE support.
7585         * config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
7586         Add -minline-all-stringops.
7587         * config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
7588         (x86_64-*-*): Ditto.
7589
7590 2007-09-05  Jie Zhang  <jie.zhang@analog.com>
7591
7592         * config/bfin/linux-unwind.h: New file.
7593         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
7594         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
7595
7596 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7597
7598         * Makefile.in (stmt.o): Add alloc-pool.h dependency.
7599         * stmt.c: Include alloc-pool.h.
7600         (struct case_node): Remove GTY marker.
7601         (add_case_node): New parameter case_node_pool.  Use it for
7602         allocation of r.
7603         (expand_case): New allocation pool case_node_pool.  Initialize it,
7604         pass to add_case_node and free it.
7605
7606 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
7607             David Ung  <davidu@mips.com>
7608             Nigel Stephens <nigel@mips.com>
7609
7610         Add mips16/nomips16 function attributes and -mflip-mips16 option
7611         for testing mixed-mode compilation.
7612
7613         * config/mips/mips.opt (mflip-mips16): New.
7614
7615         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
7616         (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
7617
7618         * config/mips/mips.c (mips_base_target_flags): New.
7619         (mips_base_mips16): New.
7620         (mips_base_schedule_insns): New.
7621         (mips_base_reorder_blocks_and_partition): New.
7622         (mips_base_align_loops): New.
7623         (mips_base_align_jumps): New.
7624         (mips_base_align_functions): New.
7625         (mips16_flipper): New.
7626         (mips_attribute_table): Add "mips16" and "nomips16" entries.
7627         (TARGET_SET_CURRENT_FUNCTION): Define.
7628         (mips_mips16_type_p, mips_nomips16_type_p): New.
7629         (mips_comp_type_attributes): Check mips16/nomips16 attributes.
7630         (mips_function_ok_for_sibcall): Make it deal with functions with
7631         mips16 attributes.
7632         (mips_init_split_addresses): New, split out from override_options.
7633         (mips_init_relocs): New, split out from override_options.
7634         (was_mips16_p): New.
7635         (mips_set_mips16_mode): New, split out from override_options.
7636         (mips_set_current_function): New.
7637         (override_options): Add sorry for unsupported mips16/pic
7638         combination.  Remove error for mips16/dsp combination.  Save
7639         base option settings.  
7640         (mips_file_start): Move mips16 mode setting output from here....
7641         (mips_output_function_prologue): ....to here.
7642         (mips_output_mi_thunk): Check for mips16 function.
7643         (build_mips16_function_stub): Don't set .mips16 here.
7644         (build_mips16_call_stub): Likewise.
7645         (mips_expand_builtin): Error in mips16 mode.
7646         (mips_use_mips16_mode_p): New.
7647         (mips_encode_section_info): Check for mips16 function, and set
7648         SYMBOL_REF_FLAGS accordingly.
7649
7650         * doc/extend.texi (Function Attributes): Document new
7651         mips16/nomips16 attributes.
7652         * doc/invoke.texi (Option Summary): Add -mflip-mips16.
7653         (MIPS Options): Document -mflip-mips16.
7654
7655 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
7656
7657         * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
7658         if we encounter TLS address in MIPS16 mode.
7659         (mips_legitimize_const_move): Check cannot_force_const_mem for
7660         the (const (plus symbol offset)) case; this forces invalid TLS
7661         address in MIPS16 mode to be caught by the above call to sorry.
7662         (override_options): Don't reset targetm.have_tls in MIPS16 mode,
7663         because that now enables emutls, which is not ABI compatible
7664         with native TLS in non-MIPS16 mode.
7665
7666 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
7667
7668         Add target hook invoked when cfun changes.
7669
7670         * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
7671         * target.h (struct gcc_target): Add set_current_function.
7672         * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
7673         (TARGET_INITIALIZER): Add initializer for set_current_function.
7674         * tree.h (push_struct_function): New.
7675         * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
7676         * function.h: Here.
7677         (set_cfun): Declare.
7678         * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
7679         * function.c: Here.
7680         (push_function_context_to): Use allocate_struct_function
7681         to create null context, not init_dummy_function_start.  Use set_cfun.
7682         (pop_function_context_from): Use set_cfun.
7683         (in_dummy_function): New.
7684         (invoke_set_current_function_hook): New.
7685         (set_cfun): New.
7686         (push_cfun, pop_cfun): Use set_cfun.
7687         (push_struct_function): New.
7688         (allocate_struct_function): Call invoke_set_current_function_hook
7689         before returning.
7690         (prepare_function_start): Don't set cfun here.  Remove unused
7691         argument; fix all callers.
7692         (init_dummy_function_start): Fiddle with in_dummy_function.  Call
7693         push_struct_function.
7694         (init_function_start): Set cfun here.
7695         (expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
7696         * omp-low.c (create_omp_child_function): Use push_struct_function
7697         and pop_cfun to save/restore state.
7698         (expand_omp_parallel): Remove unused saved_cfun variable.
7699         * cgraphunit.c (ipa_passes): Use set_cfun.
7700         * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
7701         * dwarf2out.c (dwarf2out_abstract_function): Likewise.
7702         * matrix-reorg.c (transform_allocation_sites): Likewise.
7703         (matrix_reorg): Use set_cfun.
7704         * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
7705         * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
7706         assignment to cfun; use set_cfun for the other.
7707         * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
7708         (dump_function_to_file): Use push_cfun/pop_cfun here.
7709         * c-decl.c (finish_function): Use set_cfun.
7710
7711 2007-09-05  Kenneth Zadeck <zadeck@naturalbridge.com>
7712
7713         * regrename.c (rerename_optimize): Use deferred rescanning and
7714         insert explicit calls to rescan insns when changed.
7715         
7716 2007-09-05  Jan Hubicka  <jh@suse.cz>
7717
7718         * optabs.c (libfunc_entry): Change optab to integer.
7719         (hash_libfunc, convert_optab_libfunc, optab_libfunc,
7720         set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
7721         of pointers for hashing.
7722
7723 2007-09-05  Jan Hubicka  <jh@suse.cz>
7724
7725         * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
7726         verifier.
7727         * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
7728         * see.c (pass_see): Likewise.
7729         * tracer.c (pass_tracer): Likewise.
7730         * postreload-gcse.c (pass_gcse2): Likewise.
7731         * postreload.c (pass_postreload_cse): Likewise.
7732         * mode-switching.c (pass_mode_switching): Likewise.
7733         * modulo-sched.c (pass_sms): Likewise.
7734         * cse.c (cse_insn): Likewise.
7735         * web.c (pass_web): Likweise.
7736         * combine-stack-adj.c (pass_stack_adjustments): Likewise.
7737         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
7738         * loop-init.c (pass_rtl_loop_init): Likewise.
7739         (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
7740         pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
7741         * global.c (pass_global_alloc): Likewise.
7742         * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
7743         pass_if_after_reload): Likewise.
7744         * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
7745         * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
7746         * regmove.c (pass_regmove): Likewise.
7747         * function.c (pass_thread_prologugues_epilogues): Likewise.
7748         * gcse.c (pass_gcse): Likewise.
7749         * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
7750         * lower-subreg.c (pass_lower_subreg2): Likewise.
7751         * bt-load.c (pass_branch_target_load): Likewise.
7752         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7753         * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
7754         * combine.c (pass_combine): Likewise.
7755         * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
7756         (pass_partition_blocks): Likewise.
7757         * var-tracking.c (pass_variable_track): Likewise.
7758         * reg-stack.c (pass_stack_regs_run): Likewise.
7759         * sched-rgn.c (pass_sched, pass_sched2): Likewise.
7760         * passes.c (pass_postreload): Likewise.
7761         (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
7762         * tree-pass.h (TODO_verify_rtl_sharing): New.
7763         (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
7764         TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
7765         TODO_set_props, TODO_df_finish, TODO_df_verify,
7766         TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
7767
7768 2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7769
7770         * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
7771         fold_real_zero_addition_p, reorder_operands_p,
7772         div_if_zero_remainder, fold_undefer_overflow_warnings,
7773         int_binop_types_match_p, fold_convert_const_int_from_int,
7774         fold_convert_const_int_from_real,
7775         fold_convert_const_int_from_fixed,
7776         fold_convert_const_real_from_real,
7777         fold_convert_const_real_from_fixed,
7778         fold_convert_const_fixed_from_fixed,
7779         fold_convert_const_fixed_from_int,
7780         fold_convert_const_fixed_from_real, maybe_lvalue_p,
7781         fold_checksum_tree, fold_check_failed, print_fold_checksum,
7782         debug_fold_checksum, multiple_of_p): Constify.
7783         * tree-flow-inline.h (get_lineno): Likewise.
7784         * tree-flow.h (get_lineno): Likewise.
7785         * tree-object-size.c (compute_object_offset, addr_object_size,
7786         alloc_object_size, pass_through_call): Likewise.
7787         * tree-pretty-print.c (op_symbol, print_call_name,
7788         print_struct_decl, do_niy): Likewise.
7789         * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
7790         debug_fold_checksum): Likewise.
7791
7792 2007-09-04  Steven Bosscher  <steven@gcc.gnu.org>
7793
7794         PR middle-end/33029
7795         * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
7796         note, remove the associated REG_RETVAL note.
7797
7798 2007-09-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7799
7800         * config.gcc (powerpc*-*-*): Install
7801         spu2vmx.h, vec_types.h, and si2vmx.h headers.
7802         * config/rs6000/spu2vmx.h: New header.
7803         * config/rs6000/si2vmx.h: New header.
7804         * config/rs6000/vec_types.h: New header.
7805
7806 2007-09-05  Ben Elliston  <bje@au.ibm.com>
7807
7808         * varasm.c (initializer_constant_valid_p): Fix comment typo.
7809
7810 2007-09-05  Ben Elliston  <bje@au.ibm.com>
7811
7812         * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
7813         not `m' for *ptrp.
7814         (__stdcx): Make asm volatile.
7815         (__stwcx, __stdcx): Return only 0 or 1.
7816
7817 2007-09-05  Jan Hubicka  <jh@suse.cz>
7818
7819         Revert:
7820
7821         2007-09-04  Jan Hubicka  <jh@suse.cz>
7822         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
7823
7824         2007-09-04  Richard Guenther  <rguenther@suse.de>
7825         * tree-ssa-operands.c (add_virtual_operand): Only mark
7826         stores as has_volatile_ops if alias information is not available.
7827
7828 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
7829
7830         * config/rs6000/tramp.asm: Include config.h.
7831         Check __PIC__ or __pic__ macro instead of SHARED.
7832
7833         PR rtl-optimization/32300
7834         * see.c (see_copy_insn): New function.
7835         (see_def_extension_not_merged, see_merge_one_use_extension,
7836         see_merge_one_def_extension): Use it.  Avoid changing
7837         PREV_INSN/NEXT_INSN chains directly, insted emit insns
7838         into sequences.  Call df_insn_delete on temporary insns
7839         that won't be emitted into the insn stream.
7840         (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
7841         and run df_process_deferred_rescans () before run_fast_dce.
7842
7843         PR tree-optimization/33017
7844         * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
7845         recurse for pure or const function calls.
7846
7847 2007-09-04  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7848
7849         * c-format.c: Include alloc-pool.h.
7850         (check_format_info_main): New argument fwt_alloc.  Use allocation
7851         pool instead of GC.  Remove GC deallocation code.
7852         (check_format_arg): Create allocation pool, pass it to
7853         check_format_info_main and free it afterwards.
7854         * Makefile.in (c-format.o): Add alloc-pool.h dependency.
7855
7856 2007-09-05  Ben Elliston  <bje@au.ibm.com>
7857
7858         * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
7859         Rename count macro arugment for clarity.
7860         (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
7861         (__protected_stream_set): Likewise, pass 0.
7862
7863 2007-09-04  Jan Hubicka  <jh@suse.cz>
7864
7865         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
7866
7867 2007-09-04  Jan Hubicka  <jh@suse.cz>
7868
7869         * invoke.texi (-finline-small-functions): Document.
7870         * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
7871         when deciding what is inlinable.
7872         (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
7873         (cgraph_decide_inlining_of_small_function): Handle new flags.
7874         (cgraph_decide_inlining_incrementally): Likewise.
7875         * opts.c (decode_options): Enable flag_inline_small_functions at -O2
7876         * common.opt (finline-small-functions): New.
7877         * Makefile.in (build/gengtype.o-warn): Work around PR29478
7878
7879 2007-09-04  Richard Guenther  <rguenther@suse.de>
7880
7881         * tree-ssa-operands.c (add_virtual_operand): Only mark
7882         stores as has_volatile_ops if alias information is not available.
7883
7884 2007-09-04  Andrew Haley  <aph@redhat.com>
7885
7886         * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
7887
7888 2007-09-04  Andrew Haley  <aph@redhat.com>
7889
7890         * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
7891         * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
7892         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
7893
7894 2007-09-04  Emmanuel Thome  <Emmanuel.Thome@inria.fr>
7895
7896         PR c++/14178
7897         * common.opt: Mention ABI version 2 in comment.
7898
7899 2007-09-04  Jan Hubicka  <jh@suse.cz>
7900
7901         * optabs.c (debug_optab_libfunc): Update; make available to gdb.
7902         (libfunc_entry): New structure.
7903         (libfunc_hash): New hashtable.
7904         (hash_libfunc): New function.
7905         (eq_libfunc): New function.
7906         (convert_optab_libfunc): New function.
7907         (optab_libfunc): New function.
7908         (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
7909         expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
7910         expand_float, expand_fix, new_optab, new_convert_optab):
7911          Update for new libfunc API.
7912         (init_libfunc, init_integral_libfuncs,
7913         init_floating_libfuncs, init_interclass_conv_libfuncs
7914         init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
7915         (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
7916         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
7917         gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
7918         gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
7919         gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
7920         gen_extend_conv_libfunc): New.
7921         (init_one_libfunc): Revamp for hashtables.
7922         (set_conv_libfunc): Likewise.
7923         (init_optabs): Initialize hashtable; use lazy initialization where
7924         possible.
7925         * optabs.h (optab_handlers): Move out of GGC.
7926         (optab, convert_optab): Move out of GGC; add lazy gen info.
7927         (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
7928         (optab_libfunc, convert_optab_libfunc): New.
7929         * builtins.c (expand_builtin_powi): Update for new API.
7930         * expr.c (convert_move): Likewise.
7931         * expmed.c (expand_divmod): Likewise.
7932
7933 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
7934
7935         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
7936         GOT pointer only if there is a constant pool.  Use the allocated space
7937         for SPE also.
7938
7939 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
7940
7941         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
7942         typo for AltiVec.
7943
7944 2007-09-04  Revital Eres  <eres@il.ibm.com>
7945             Richard Guenther  <rguenther@suse.de>
7946             R. Clint Whaley  <whaley@cs.utsa.edu>
7947
7948         * doc/invoke.texi (-fassociative-math, -freciprocal-math):
7949         Document new flags.
7950         * tree-tailcall.c (process_assignment): Use -fassociative-math
7951         when reodering operands of floating-point type.
7952         * fold-const.c (fold_comparison, fold_binary): Use
7953         -fassociative-math and -freciprocal-math instead of
7954         -funsafe-math-optimization flag.
7955         * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
7956         * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
7957         -freciprocal-math instead of -funsafe-math-optimizations.
7958         * opts.c (set_fast_math_flags): Set -freciprocal-math and
7959         -fassociative-math when -ffast-math is set.
7960         (set_unsafe_math_optimizations_flags): New Function
7961         to set -freciprocal-math and -fassociative-math when
7962         -funsafe-math-optimizations is set.
7963         (common_handle_option): Call it.
7964         * tree-vectorizer.c (vect_is_simple_reduction): Use
7965         -fassociative-math when doing reduction on floats.
7966         * loop-unroll.c (analyze_insn_to_expand_var): Use
7967         -fassociative-math when expanding an accumulator of type float.
7968         * simplify-rtx.c (simplify_binary_operation_1): Use
7969         -fassociative-math and -freciprocal-math when reordeing operands
7970         of floating-point type.
7971         * combine.c (combine_simplify_rtx): Likewise.
7972         * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
7973         Likewise.
7974         * common.opt (-fassociative-math, -freciprocal-math): New flags.
7975
7976 2007-09-04  Paolo Carlini  <pcarlini@suse.de>
7977
7978         PR c++/18608
7979         * doc/install.texi (--enable-__cxa_atexit): Fix typo.
7980
7981 2007-09-04  Jan Hubicka  <jh@suse.cz>
7982
7983         * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
7984
7985 2007-09-04  Jan Hubicka  <jh@suse.cz>
7986
7987         * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
7988         and corresponding MATCH_DUP.
7989
7990 2007-09-04  Uros Bizjak  <ubizjak@gmail.com>
7991
7992         PR middle-end/33187
7993         * combine.c (subst): Do not try to simplify X if it represents load
7994         of FP constant from the constant pool via float extension.
7995
7996 2007-09-04  Ben Elliston  <bje@au.ibm.com>
7997
7998         * c-opts.c: Include "tm_p.h".
7999         * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
8000
8001 2007-09-04  Richard Guenther  <rguenther@suse.de>
8002
8003         PR tree-optimization/33291
8004         * tree-pretty-print.c (dump_generic_node): Dump all
8005         qualifiers for pointer types, not only first.  Dump
8006         qualifiers for aggregate types as well.
8007         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
8008         use the canonical type for building ARRAY_REFs.
8009         * gimplify.c (canonicalize_addr_expr): Clean up.  The
8010         correct validness check is compatibility of the pointer
8011         types.  Always use the canonical type for building
8012         ARRAY_REFs and ADDR_EXPRs.
8013         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
8014         change that disabled propagation of ADDR_EXPRs into statements
8015         with volatile ops.
8016
8017 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
8018
8019         * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
8020         (umulsi3_highpart): Make into expanders; existing insns are
8021         now named *[insn]_nov6.  Add stars to existing [insn]_v6
8022         counterparts' names.
8023
8024 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
8025
8026         * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
8027         (unprotoize.o): Remove SHLIB_MULTILIB.
8028
8029 2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>
8030
8031         * doc/extend.texi: Document progmem attribute for AVR.
8032
8033 2007-09-03  Anatoly Sokolov <aesok@post.ru>
8034
8035         PR target/28902
8036         * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
8037
8038 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
8039
8040         * optabs.c (expand_ffs): Initialize val and defined_at_zero
8041         to avoid warnings.
8042
8043         * optabs.c: Remove unnecessary forward declarations.
8044         (expand_unop_direct): New, broken out of expand_unop.
8045         (expand_doubleword_clz): New.
8046         (expand_ctz): Move above expand_ffs.  Use
8047         start_sequence, end_sequence, add_equal_note, and
8048         expand_unop_direct.  Add more commentary.
8049         (expand_ffs): Try both ctz optab and expand_ctz.
8050         Generate a test and branch if the hardware doesn't give us
8051         a useful value for input zero.  Style improvements similar to
8052         expand_ctz.
8053
8054         * config/arm/arm.md (ffssi2, ctzsi2): Delete.
8055
8056 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
8057
8058         * config.gcc: Delete stanza for arm-semi-aof and
8059         armel-semi-aof targets.
8060         * config/arm/arm-protos.h
8061         * config/arm/arm.c
8062         * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
8063         make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
8064         delete aof_pic_label and remove mention of AOF in comments.
8065         * config/arm/arm.md: Delete patterns used only for AOF assembly.
8066         * config/arm/aof.h
8067         * config/arm/semiaof.h
8068         * config/arm/t-semi: Delete file.
8069
8070 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8071
8072         * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
8073         CONST_CAST_BB): New macros for type-specific casts.
8074         (CONST_CAST): Add a TYPE parameter and define it in terms of
8075         CONST_CAST2.
8076
8077         * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
8078         * c-lex.c (cb_ident, lex_string): Likewise,
8079         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
8080         * config/i386/i386.c (ix86_function_regparm,
8081         ix86_function_sseregparm): Use CONST_CAST_TREE.
8082         * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
8083         CONST_CAST.
8084         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
8085         give_switch, set_multilib_dir): Likewise,
8086         * gengtype-parse.c (string_seq, typedef_name): Likewise,
8087         * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
8088         * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
8089         * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
8090         * prefix.c (update_path): Likewise,
8091         * pretty-print.c (pp_base_destroy_prefix): Likewise,
8092         * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
8093         * tree-cfg.c (tree_can_merge_blocks_p,
8094         tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
8095         * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
8096         * tree.c (build_string): Supply a TYPE for CONST_CAST.
8097         (attribute_list_contained): Use CONST_CAST_TREE.
8098
8099 2007-09-03  Krister Walfridsson  <cato@df.lth.se>
8100
8101         * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
8102
8103 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
8104
8105         PR middle-end/33290
8106         * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
8107         before forcing them into a register.
8108
8109 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
8110
8111         * config/mips/mips.md (fetchop_bit): Use define_code_iterator
8112         rather than define_code_macro.
8113
8114 2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8115
8116         * gcc.c (xputenv): New function.
8117         (putenv_from_prefixes): Use xputenv instead of putenv.
8118         (process_command): Use xputenv instead of putenv.
8119         (set_collect_gcc_options): Use xputenv instead of putenv.
8120         (main): Use xputenv instead of putenv.
8121
8122 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
8123
8124         * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
8125         availability of swap instruction.
8126         * config/cris/cris.md (bswapsi2): Implement using swap instruction.
8127
8128 2007-09-03  Revital Eres  <eres@il.ibm.com>
8129
8130         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
8131         Documentation.
8132
8133 2007-09-03  Vladimir Yanovsky  <yanov@il.ibm.com>
8134             Ayal Zaks  <zaks@il.ibm.com>
8135             Revital Eres  <eres@il.ibm.com>
8136
8137         * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
8138         compute_split_row): New functions.
8139         (ps_unschedule_node): Remove.
8140         (normalize_sched_times): Iterate over the already scheduled
8141         insns instead of the number of nodes.
8142         (MAX_SPLIT_NUM): New definition.
8143         (sms_schedule_by_order): Change the scheduling heuristic to
8144         avoid useless increases of initiation interval ii.
8145         (get_sched_window): Add dump printouts.
8146
8147 2007-09-02  David Daney  <ddaney@avtrex.com>
8148
8149         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
8150         UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
8151         (optab, insn): Add more attributes.
8152         (fetchop_bit): New code macro.
8153         (immediate_insn): New code macro attribute.
8154         (sync): Change condition to ISA_HAS_SYNC.
8155         (rdhwr): Change predicate for operand 0 to register_operand.
8156         (memory_barrier): New expand.
8157         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
8158         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
8159         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
8160         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
8161         sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
8162         * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
8163         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
8164         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
8165         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
8166         
8167 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
8168             Hans-Peter Nilsson  <hp@axis.com>
8169
8170         * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
8171         Defined to describe availability and behavior of CLZ.
8172         * config/cris/cris.md (clzsi2): Implement using lz instruction.
8173         * config/cris/cris.opt: Tweak comment for "-metrax4".
8174         * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
8175         * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
8176         (count_leading_zeros): Define.
8177
8178 2007-09-01  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8179
8180         * ggc-page.c (ggc_pch_read): Call validate_free_objects.
8181
8182 2007-09-02  Joseph Myers  <joseph@codesourcery.com>
8183
8184         PR c/29237
8185         PR middle-end/33272
8186         * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
8187         decayed from array.
8188
8189 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
8190
8191         * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
8192         config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
8193         ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
8194         sched-deps.c, sched-int.h, system.h, target.h,
8195         tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
8196         tree.def: Fix comment typos.
8197
8198 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
8199
8200         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
8201         (override_options): Turn on -mstrict-align on non-ColdFire
8202         targets.
8203         * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
8204
8205 2007-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8206
8207         * c-common.c (const_strip_array_types): Delete.
8208         * c-common.h (const_strip_array_types): Likewise.
8209         * emit-rtl.c (const_next_insn, const_previous_insn,
8210         const_next_nonnote_insn, const_prev_nonnote_insn,
8211         const_next_real_insn, const_prev_real_insn,
8212         const_next_active_insn, const_prev_active_insn, const_next_label,
8213         const_prev_label): Delete.
8214         * gimple-low.c (block_may_fallthru): Use expr_last.
8215         * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
8216         * rtl.h (const_previous_insn, const_next_insn,
8217         const_prev_nonnote_insn, const_next_nonnote_insn,
8218         const_prev_real_insn, const_next_real_insn,
8219         const_prev_active_insn, const_next_active_insn, const_prev_label,
8220         const_next_label): Delete.
8221         * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
8222         * system.h (CONST_CAST): Update comment.
8223         * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
8224         (const_first_stmt, const_last_stmt): Delete.
8225         (tree_block_ends_with_condjump_p): Use last_stmt.
8226         * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
8227         * tree-iterator.c (const_expr_first, const_expr_last,
8228         const_expr_only): Delete.
8229         * tree.c (const_lookup_attribute): Likewise.
8230         (attribute_list_contained): Use lookup_attribute.
8231         * tree.h (const_lookup_attribute, const_expr_first,
8232         const_expr_last, const_expr_only): Delete.
8233
8234 2007-09-01  Richard Guenther  <rguenther@suse.de>
8235
8236         * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
8237         instead of TREE_THIS_VOLATILE.
8238         * tree-ssa-operands.c (add_virtual_operand): Do not set
8239         has_volatile_ops.  Do not check s_ann for NULL.
8240         (get_indirect_ref_operands): Likewise.
8241         (get_expr_operands): Likewise.  For all reference trees
8242         set has_volatile_ops based on TREE_THIS_VOLATILE.  Also
8243         check base of reference for TREE_THIS_VOLATILE.
8244
8245 2007-09-01  Richard Guenther  <rguenther@suse.de>
8246
8247         * tree-cfg.c (verify_gimple_expr): Fix check for conversions
8248         between integral types.  Also allow conversions between
8249         pointer types.
8250
8251 2007-08-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8252
8253         * optabs.c (prepare_float_lib_cmp): Use
8254         libgcc_cmp_return_mode instead of word_mode.
8255         * config/dfp-bit.h: Likewise.
8256         * config/fp-bit.h: Likewise.
8257         * config/spu/spu.c (spu_libgcc_cmp_return_mode):
8258         New function.
8259         (spu_libgcc_shift_count_mode): New function.
8260         (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
8261         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
8262
8263 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
8264
8265         * tree-pretty-print.c: Include output.h.
8266         (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
8267         HOST_WIDE_INT_PRINT_DEC.
8268         * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
8269
8270 2007-08-31  Zdenek Dvorak  <ook@ucw.cz>
8271
8272         PR rtl-optimization/33224
8273         * loop-iv.c (latch_dominating_def): Check that the definition belongs
8274         to the analysed region.
8275
8276 2007-08-31  Richard Guenther  <rguenther@suse.de>
8277
8278         * function.c (allocate_struct_function): Do not set
8279         current_function_returns_pointer.
8280         * function.h (struct var_refs_queue): Remove.
8281         (struct simple_obstack_stack): Likewise.
8282         (struct function): Remove fixup_var_refs_queue member.
8283         Remove returns_pointer flag.
8284         (current_function_returns_pointer): Remove define.
8285
8286 2007-08-31  Nick Clifton  <nickc@redhat.com>
8287
8288         * tree-ssa-coalesce.c (compare_pairs): Use the elements as
8289         secondary keys in order to obtain a stable sort.
8290
8291 2007-08-31  Nick Clifton  <nickc@redhat.com>
8292
8293         PR target/33132
8294         * config/m32r/constraints.md: Add W constraint for integer zero.
8295         * config/m32r/m32r.md (get_pc): Use W and i constraints.
8296         Fix length calculation by using alternatives.
8297
8298 2007-08-31  Richard Sandiford  <richard@codesourcery.com>
8299
8300         * optabs.c (shift_optab_p, commutative_optab_p): New functions,
8301         split out from expand_binop.
8302         (avoid_expensive_constant): New function.
8303         (expand_binop_directly): Remove commutative_op argument and
8304         (expand_binop_directly): Remove commutative_op argument and
8305         call cummutative_optab_p instead.  Do not change op0 or op1
8306         when swapping xop0 and xop1.  Apply avoid_expensive_constant
8307         to each argument after potential swapping.  Enforce the
8308         canonical order of commutative operands.
8309         (expand_binop): Use shift_optab_p and commutative_optab_p.
8310         Update the calls to expand_binop_directly.  Only force constants
8311         into registers when widening an operation.  Only swap operands
8312         once a direct expansion has been rejected.
8313         (expand_twoval_binop): Only force constants into registers when
8314         using a direct expansion.
8315
8316 2007-08-31  Maxim Kuvyrkov  <maxim@codesourcery.com>
8317
8318         * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
8319         (sched_analyze_insn): Don't postprocess speculative dependencies when
8320         target has no scheduling.
8321         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
8322         'uninitialized' warning.
8323
8324 2007-08-31  Richard Guenther  <rguenther@suse.de>
8325
8326         * tree.c (build_complex_type): Always set TYPE_NAME for
8327         comples types.
8328
8329 2007-08-31  Olivier Hainque  <hainque@adacore.com>
8330
8331         * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
8332         internal macro. Default alignment factor for csect directives, chosen
8333         to match what BIGGEST_ALIGNMENT allows.
8334         (DATA_SECTION_ASM_OP): Use it.
8335         * config/rs6000/rs6000.c
8336         (rs6000_xcoff_output_readonly_section_asm_op):
8337         Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
8338         (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
8339         
8340 2007-08-31  Olivier Hainque  <hainque@adacore.com>
8341
8342         * dbxout.c (dbxout_block): Move declaration within the first
8343         #if defined (DBX_DEBUGGING_INFO) block.  Rearrange another such
8344         block to include the definition, together with the associated
8345         helpers.
8346
8347 2007-08-31  David Edelsohn  <edelsohn@gnu.org>
8348             Revital Eres  <eres@il.ibm.com>
8349
8350         * doc/invoke.texi (-mpaired): Document flag.
8351         * config.gcc: Include paired.h in powerpc extra_headers and
8352         750cl.h in powerpc-*-linux*paired*.
8353         * config/rs6000/rs6000.opt (-mpaired): New flag.
8354         * config/rs6000/rs6000.c (paired_init_builtins,
8355         paired_expand_builtin, paired_expand_lv_builtin,
8356         paired_expand_stv_builtin, paired_expand_predicate_builtin):
8357         New functions to support the paired single builtin functions.
8358         (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
8359         (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
8360         single builtins.
8361         (bdesc_paired_preds): New structure for paired predicate
8362         instructions.
8363         (rs6000_expand_builtin): Expand paired single builtins.
8364         (rs6000_init_builtins): Init paired single builtins.
8365         (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
8366         Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
8367         and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf.  Add new types
8368         v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
8369         (rs6000_vector_mode_supported_p): Support paired vector mode.
8370         * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
8371         PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
8372         New.
8373         (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
8374         (DATA_ALIGNMENT): Likewise.
8375         (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
8376         (rs6000_builtins): Add PAIRED builtins.
8377         * config/rs6000/rs6000.md: Include paired.md.
8378         * config/rs6000/paired.h: New.
8379         * config/rs6000/paired.md: New.
8380         * config/rs6000/750cl.h: New.
8381         * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
8382
8383 2007-08-30  Ollie Wild  <aaw@google.com>
8384
8385         * c-opts.c (c_common_handle_option): Support -fno-directives-only.
8386         * gcc.c (default_compilers): Add -fno-directives-only to
8387         @assembler-with-cpp.
8388
8389 2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>
8390
8391         PR middle-end/33211
8392
8393         * regclass.c (initial_fixed_regs): Revert previous change and make
8394         it const again.
8395         (initial_call_used_regs): Likewise.
8396         (initial_call_really_used_regs): Delete, reverting previous addition.
8397         (initial_reg_names): Likewise.
8398         (init_reg_sets): Revert previous change.
8399         (saved_fixed_regs): New.
8400         (saved_call_used_regs): New.
8401         (saved_call_really_used_regs): New.
8402         (saved_reg_names): New.
8403         (save_register_info): New.
8404         (restore_register_info): New.
8405         (init_reg_sets_1): Replace reset of register info with call to
8406         restore_register_info.
8407         * rtl.h (save_register_info): Declare.
8408         * toplev.c (backend_init): Call save_register_info.
8409
8410 2007-08-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8411
8412         * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
8413         from the original statement.
8414
8415 2007-08-30  Chao-ying Fu  <fu@mips.com>
8416
8417         * c-lex.c (interpret_fixed): Declare.
8418         (interpret_float): Process _Fract and _Accum.
8419         (interpret_fixed): New function.
8420         * final.c (output_addr_const): Process CONST_FIXED.
8421         * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
8422         (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
8423         SS_DIV, US_DIV.
8424         (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
8425         US_DIV, US_ASHIFT.
8426         (simplify_immed_subreg): Support CONST_FIXED.
8427         Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
8428         (simplify_subreg): Support CONST_FIXED.
8429
8430 2007-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8431
8432         * config/rs6000/ppu_intrinsics.h: New file.
8433         * config.gcc (powerpc*-*-* <extra_headers>): Install
8434         ppu_intrinsics.h.
8435
8436 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
8437
8438         * cfg.c (dump_flow_info): Change to also print entry and exit
8439         block info.
8440         * print-rtl.c (print_rtl_single): Allow to print rtl with
8441         -fdump-unnumbered.
8442         
8443 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
8444
8445         * df-core.h (df_dump_region): New function.
8446         * df.h (df_dump_region): New function.
8447         * loop-invariant.c (find_defs): Add call to df_dump_region.
8448         * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
8449         df_dump_region.
8450         
8451 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
8452
8453         PR target/33168
8454         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
8455         true if any of the compare_section_name calls returned true,
8456         rather than if any returned false.
8457
8458 2007-08-30  Richard Guenther  <rguenther@suse.de>
8459
8460         PR tree-optimization/33199
8461         * tree-ssa-structalias.c (handle_lhs_call): New function.
8462         (find_func_aliases): In non-IPA mode make sure that for
8463         calls that return a pointer we add a constraint for the
8464         result to point to anything.
8465
8466 2007-08-30  Richard Guenther  <rguenther@suse.de>
8467
8468         * doc/invoke.texi (-mveclibabi): Document new target option.
8469         * config/i386/i386.opt (-mveclibabi): New target option.
8470         * config/i386/i386.c (ix86_veclib_handler): Handler for
8471         vectorization library support.
8472         (override_options): Handle the -mveclibabi option, initialize
8473         the vectorization library handler.
8474         (ix86_builtin_vectorized_function): As fallback call the
8475         vectorization library handler, if set.
8476         (ix86_veclibabi_acml): New static function for ACML ABI style
8477         vectorization support.
8478
8479 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
8480
8481         * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
8482         used_m, even if it is 32-bit aligned, adjust used_m MEM to have
8483         SImode and update m.  Don't run gen_lowpart_common on arbitrary
8484         memory address, force it to register first.
8485
8486         PR middle-end/32758
8487         * dce.c (dce_process_block): Don't delete setters of
8488         artificially used registers.
8489
8490 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8491
8492         * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
8493         "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
8494         "*add<mode>3_alc_carry2_cconly"): New insn definitions.
8495
8496 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8497
8498         * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
8499         pattern.
8500         * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
8501         "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
8502
8503 2007-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8504
8505         * system.h: Activate -Wcast-qual as warning-only.
8506
8507 2007-08-29  Paolo Bonzini  <bonzini@gnu.org>
8508
8509         PR target/33168
8510         * config/rs6000/rs6000.c (compare_section_name): New function.
8511         (rs6000_elf_in_small_data_p): Compare section prefixes instead
8512         of full name.
8513
8514 2007-08-29  Olivier Hainque  <hainque@adacore.com>
8515
8516         * xcoffout.c: #include debug.h.
8517         * Makefile.in (xcoffout.o): Add debug.h dependency.
8518
8519 2007-08-29  Uros Bizjak  <ubizjak@gmail.com>
8520
8521         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
8522         Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
8523
8524 2007-08-29  Richard Guenther  <rguenther@suse.de>
8525
8526         * tree-pretty-print.c (dump_generic_node): Print
8527         label DECL_UID as D.%u.
8528         * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
8529
8530 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8531
8532         * builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
8533         * builtins.def (BUILT_IN_REALLOC): New builtin.
8534
8535 2007-08-29  Douglas Gregor  <doug.gregor@gmail.com>
8536
8537         PR c++/33194
8538         * tree.c (build_type_attribute_qual_variant): Set canonical types
8539         on the final, unqualified attribute variant before building the
8540         qualified version.
8541
8542 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
8543
8544         * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
8545         order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
8546
8547 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
8548
8549         Revert
8550         2007-08-29  Jie Zhang  <jie.zhang@analog.com>
8551         * config/bfin/bfin.md (composev2hi): Put operands into vector
8552         with correct order.
8553
8554 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
8555
8556         * config/bfin/bfin.md (composev2hi): Put operands into vector
8557         with correct order.
8558
8559 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
8560
8561         * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
8562         attribute when appropriate.
8563         (bfin_handle_l1_text_attribute): New.
8564         (bfin_handle_l1_data_attribute): New.
8565         (bfin_attribute_table): Add attributes: l1_text, l1_data,
8566         l1_data_A and l1_data_B.
8567         * doc/extend.texi (node Function Attributes): Document l1_text
8568         function attribute.
8569         (Variable Attributes): Add Blackfin subsection. Document l1_data,
8570         l1_data_A and l1_data_B variable attributes.
8571
8572 2007-08-28  Jie Zhang  <jie.zhang@analog.com>
8573
8574         * config/bfin/bfin.opt (minline-plt): Add.
8575         * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
8576         call to global functions.
8577         * doc/invoke.texi (Option Summary): Mention -minline-plt.
8578         (Blackfin Options): Document -minline-plt.
8579
8580 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
8581
8582         * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
8583         given a non-function.
8584         (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
8585
8586 2007-08-28  DJ Delorie  <dj@redhat.com>
8587
8588         * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
8589
8590 2007-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8591
8592         * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
8593
8594 2007-08-28  Richard Guenther  <rguenther@suse.de>
8595
8596         * tree.h (struct tree_function_decl): Increase size of
8597         function_code bitfield.
8598
8599 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
8600             Kazu Hirata  <kazu@codesourcery.com>
8601
8602         * config/m68k/linux.h
8603         (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
8604         * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
8605         (m68k_return_in_memory): New.
8606         * config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
8607         New.
8608
8609 2007-08-28  Uros Bizjak  <ubizjak@gmail.com>
8610
8611         PR target/32661
8612         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
8613         Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
8614         operand) when top VEC_SELECT extracts scalar element.
8615         * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
8616         (*vec_extract_v4sf_mem): Ditto.
8617
8618 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
8619
8620         PR middle-end/32370
8621         * passes.c (init_optimization_passes): Move pass_df_finish
8622         after pass_postreload sublist.
8623
8624         PR rtl-optimization/33148
8625         * simplify-rtx.c (simplify_unary_operation_1): Only optimize
8626         (neg (lt X 0)) if X has scalar int mode.
8627
8628         PR debug/32914
8629         * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
8630         initializer, use build_vector_from_ctor if possible to create
8631         VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
8632         even after this, return NULL.
8633
8634 2007-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8635
8636         * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
8637
8638 2007-08-28  Richard Guenther  <rguenther@suse.de>
8639
8640         * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
8641         (struct tree_function_decl): Make function_code a bitfield.
8642         Add disregard_inline_limits flag.
8643         * cgraphunit.c (cgraph_process_new_functions): Check
8644         DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
8645         (cgraph_preserve_function_body_p): Likewise.
8646         * ipa-inline.c (compute_inline_parameters): Likewise.
8647         * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
8648         for GNU C extern inline functions.
8649         (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
8650         * tree-inline.c (disregard_inline_limits_p): Remove.
8651         * tree-inline.h (disregard_inline_limits_p): Likewise.
8652         * c-common.c (handle_always_inline_attribute): Set
8653         DECL_DISREGARD_INLINE_LIMITS.
8654         * langhooks.c (add_builtin_function): Verify the function code
8655         fits in the bitfield.
8656
8657 2007-08-28  Mircea Namolaru  <namolaru@il.ibm.com>
8658             Vladimir Yanovsky  <yanov@il.ibm.com>
8659             Revital Eres  <eres@il.ibm.com>
8660             Andrey Belevantsev  <abel@ispras.ru>
8661
8662         * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
8663         is set.
8664         * modulo-sched.c: Add documentation regarding do-loop.
8665         (doloop_register_get): Change number of arguments to support
8666         the new do-loop pattern and check whether COUNT_REG has no other
8667         occurences in the loop besides in the control part.
8668         (duplicate_insns_of_cycles): Do not duplicate the insn which
8669         changes count_reg as it is already adjusted.
8670         (generate_prolog_epilog): New argument to support the new
8671         do-loop pattern.  Change the subtract instruction to use
8672         expand_simple_binop.  Call duplicate_insns_of_cycles with new
8673         argument.
8674         (sms_schedule): Call doloop_register_get and
8675         generate_prolog_epilog with new argument.  Do not handle loops
8676         with single sets insns with subreg in their lhs.
8677         * loop-doloop.c (doloop_optimize): Support for another do-loop
8678         pattern.
8679         (doloop_condition_get): Gets an instruction instead of a pattern
8680         and change the return condition when the do-loop pattern is
8681         not parallel.
8682         * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
8683         deps when considering to not create edges.
8684
8685 2007-08-27  Alexandre Oliva  <aoliva@redhat.com>
8686
8687         * doc/extend.texi (gnu_inline funtion attribute): Document C++
8688         behavior.
8689
8690 2007-08-27  Jason Merrill  <jason@redhat.com>
8691
8692         PR c++/31337
8693         * gimplify.c (gimplify_modify_expr): Discard the assignment of 
8694         zero-sized types after calling gimplify_modify_expr_rhs.
8695
8696 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
8697
8698         * regclass.c (init_reg_autoinc): Fix typo.
8699
8700 2007-08-27  Daniel Berlin  <dberlin@dberlin.org>
8701         
8702         Fix PR tree-optimization/33173
8703         * tree-ssa-alias.c (find_used_portions): Fix reversed test.
8704
8705 2007-08-27  H.J. Lu  <hongjiu.lu@intel.com>
8706
8707         PR target/31385
8708         * config/i386/i386.h (VALID_DFP_MODE_P): New.
8709         * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
8710         GPR.
8711
8712 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
8713             David Ung  <davidu@mips.com>
8714             Nigel Stephens <nigel@mips.com>
8715
8716         Separate target-specific initialization from general
8717         back-end initialization.
8718
8719         * toplev.c (init_alignments): New, split out from...
8720         (process_options): ...here.
8721         (backend_init_target): New, split out from...
8722         (backend_init): ...here.
8723         (lang_dependent_init_target): New, split out from...
8724         (lang_dependent_init): ...here.
8725         (target_reinit): New.
8726         * toplev.h (target_reinit): Declare.
8727         * expr.c (init_expr_target): Renamed from init_expr_once, since it
8728         now can be called more than once.  Update comments.
8729         * expr.h (init_expr_target): Likewise.
8730         * alias.c (init_alias_target): Renamed from init_alias_once, since it
8731         now can be called more than once.  Explicitly zero
8732         static_reg_base_value.
8733         * emit-rtl.c (init_emit_regs): New, split out from...
8734         (init_emit_once): Here.
8735         * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
8736         non-const, so that changes from command-line arguments can overwrite
8737         values provided by the static initializers.
8738         (initial_call_really_used_regs): New, used similarly to the above.
8739         (initial_reg_names): Likewise.
8740         (last_mode_for_init_move_cost): Promoted function-local static to
8741         file-scope static to make it accessible outside init_move_cost.
8742         (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
8743         Do not initialize inv_reg_alloc_order yet, either.  Do initialize
8744         reg_names since it is needed for parsing command-line options.
8745         (init_move_cost): Use last_mode_for_init_move_cost instead of
8746         function-local static.
8747         (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
8748         call_really_used_regs now.  Reinitialize reg_names.  Also
8749         initialize inv_reg_alloc_order.  Zero reg_class_subunion and
8750         reg_class_superunion.  Clear losing_caller_save_reg_set.
8751         Preserve global registers if called more than once.  Reset
8752         move cost, may_move_in_cost, may_move_out_cost, and
8753         last_mode_for_init_move_cost.
8754         (init_reg_modes_target): Renamed from init_reg_modes_once, since it
8755         can now be invoked more than once.  Update comments.
8756         (init_regs): Update comments.
8757         (fix_register): Update initial_fixed_regs, initial_call_used_regs,
8758         and initial_call_really_used_regs, instead of the non-initial 
8759         variables.  This allows us to save the command-line register settings
8760         after target reinitialization.
8761         (init_reg_autoinc): Zero forbidden_inc_dec_classes.
8762         * rtl.h (init_emit_regs): Declare.
8763         (init_reg_modes_target, init_alias_target): Renamed as described
8764         above.
8765         * reload1.c (init_reload): Update comments.
8766         * optabs.c (init_optabs): Likewise.
8767         * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
8768         
8769 2007-08-26  Chao-ying Fu  <fu@mips.com>
8770
8771         * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
8772         __typeof().
8773
8774 2007-08-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8775
8776         * alias.c (memory_modified_1, memory_modified_in_insn_p):
8777         Constify.
8778         * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
8779         Likewise.
8780         * bb-reorder.c (copy_bb_p): Likewise.
8781         * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
8782         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
8783         block_ends_with_condjump_p): Likewise.
8784         * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
8785         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
8786         block_ends_with_condjump_p): Likewise.
8787         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
8788         * cfgrtl.c (can_delete_note_p, can_delete_label_p,
8789         rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
8790         rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
8791         need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
8792         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
8793         debug_true_const_tree instad of debug_true_tree.
8794         * debug.c (do_nothing_debug_hooks): Likewise.
8795         * debug.h (ignore_block, debug_true_const_tree): Constify.
8796         * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
8797         dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
8798         decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
8799         same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
8800         dbx_reg_number, is_based_loc, field_type,
8801         simple_type_align_in_bits, simple_decl_align_in_bits,
8802         simple_type_size_in_bits, field_byte_offset, insert_float,
8803         type_tag, member_declared_type, is_redundant_typedef,
8804         secname_for_decl, is_inlined_entry_point): Likewise.
8805         * emit-rtl.c (const_next_insn, const_previous_insn,
8806         const_next_nonnote_insn, const_prev_nonnote_insn,
8807         const_next_real_insn, const_prev_real_insn,
8808         const_next_active_insn, const_prev_active_insn, const_next_label,
8809         const_prev_label): Likewise.
8810         * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
8811         Likewise.
8812         * haifa-sched.c (may_trap_exp, haifa_classify_insn,
8813         find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
8814         sched_insn_is_legitimate_for_speculation_p): Likewise.
8815         * jump.c (reversed_comparison_code_parts,
8816         reversed_comparison_code, reversed_comparison, condjump_label):
8817         Likewise.
8818         * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
8819         * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
8820         Likewise.
8821         * rtl.h (const_previous_insn, const_next_insn,
8822         const_prev_nonnote_insn, const_next_nonnote_insn,
8823         const_prev_real_insn, const_next_real_insn,
8824         const_prev_active_insn, const_next_active_insn, const_prev_label,
8825         const_next_label, modified_between_p, modified_in_p,
8826         const_note_storeskeep_with_call_p, condjump_label,
8827         reversed_comparison, reversed_comparison_code,
8828         reversed_comparison_code_parts, memory_modified_in_insn_p,
8829         stack_regs_mentioned): Likewise.
8830         * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
8831         keep_with_call_p): Likewise.
8832         * sched-deps.c (deps_may_trap_p, sched_get_condition,
8833         conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
8834         sd_lists_size, sd_lists_empty_p): Likewise.
8835         * sched-int.h (sched_insns_conditions_mutex_p,
8836         haifa_classify_insn, no_real_insns_p,
8837         sched_insn_is_legitimate_for_speculation_p, sd_next_list,
8838         sd_lists_size, sd_lists_empty_p): Likewise.
8839         * sdbout.c (sdb_debug_hooks): Likewise.
8840         * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
8841         stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
8842         -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
8843         Likewise.
8844         * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
8845         tree_can_throw_internal): Likewise.
8846         * tree-flow-inline.h (phi_nodes): Likewise.
8847         * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
8848         tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
8849         * tree-gimple.c (const_get_call_expr_in): Likewise.
8850         * tree-gimple.h (const_get_call_expr_in): Likewise.
8851         * tree.c (const_lookup_attribute, attribute_list_equal,
8852         attribute_list_contained): Likewise.
8853         * tree.h (attribute_list_equal, attribute_list_contained,
8854         const_lookup_attribute): Likewise.
8855         * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
8856
8857 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
8858
8859         * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
8860         tree-ssa-pre.c: Remove unnecessary trailing whitespace.
8861
8862 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
8863
8864         PR target/32991
8865         * config/alpha/constraints.md: Delete "svn:mime-type" property
8866         with svn propdel "svn:mime-type".
8867
8868 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
8869
8870         PR middle-end/33181
8871         * ifcvt.c (noce_get_alt_condition): Make sure that the previous
8872         non NOTE insn doesn't cross basic block.
8873         (noce_try_abs): Likewise.
8874         (noce_process_if_block): Likewise.
8875
8876 2007-08-26  David Edelsohn  <edelsohn@gnu.org>
8877
8878         PR target/33151
8879         * config/rs6000/predicates.md (offsettable_mem_operand): Memory
8880         operand without auto-inc-dec.
8881         * config/rs6000/rs6000.md (floatsidf2_internal): Use
8882         offsettable_mem_operand.
8883         (floatunssidf2_internal): Same.
8884         (fix_truncdfsi2_internal): Same.
8885         (floatsidf_ppc64): Same.
8886         (floatunssidf_ppc64): Same.
8887         (fix_trunctfsi2_internal): Same.
8888
8889 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
8890
8891         PR bootstrap/30620
8892         * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
8893         pass defines needed for version.c.
8894
8895 2007-08-25  Joseph Myers  <joseph@codesourcery.com>
8896
8897         * configure.ac (--debug-prefix-map check): Change assembler
8898         version presumed to have feature to 2.18.
8899         * configure: Regenerate.
8900
8901 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8902
8903         * c-common.c (vector_types_convertible_p,
8904         decl_with_nonnull_addr_p, c_promoting_integer_type_p,
8905         self_promoting_args_p): Constify.
8906         * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
8907         c_promoting_integer_type_p, self_promoting_args_p,
8908         anon_aggr_type_p, vector_types_convertible_p): Likewise.
8909         * c-decl.c (anon_aggr_type_p): Likewise.
8910         * * c-dump.c (dump_stmt): Likewise.
8911         * c-objc-common.c (has_c_linkage): Likewise.
8912         * c-tree.h (same_translation_unit_p): Likewise.
8913         * c-typeck.c (null_pointer_constant_p,
8914         tagged_types_tu_compatible_p, function_types_compatible_p,
8915         type_lists_compatible_p, lvalue_or_else, lvalue_p,
8916         comptypes_internal, struct tagged_tu_seen_cache,
8917         same_translation_unit_p, alloc_tagged_tu_seen_cache,
8918         c_size_in_bytes): Likewise.
8919         * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
8920         hash_ptr, eq_ptr): Likewise.
8921         * langhooks-def.h (lhd_decl_ok_for_sibcall,
8922         LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
8923         * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
8924         * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
8925         Likewise.
8926         * optabs.c (optab_for_tree_code): Likewise.
8927         * optabs.h (optab_for_tree_code): Likewise.
8928         * rtl.h (simplify_rtx): Likewise.
8929         * simplify-rtx.c (simplify_rtx): Likewise.
8930         * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
8931         dump_flag, dump_node): Likewise.
8932         * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
8933         queue_and_dump_type, dump_flag): Likewise.
8934         * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
8935         * tree-pass.h (dump_node): Likewise.
8936         * tree-vectorizer.c (vect_can_force_dr_alignment_p,
8937         supportable_narrowing_operation): Likewise.
8938         * tree-vectorizer.h (vect_can_force_dr_alignment_p,
8939         supportable_narrowing_operation): Likewise.
8940         * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
8941         is_negative_overflow_infinity, is_positive_overflow_infinity,
8942         is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
8943         nonnull_arg_p, get_value_range, vrp_operand_equal_p,
8944         update_value_range, add_equivalence, ssa_name_nonnegative_p,
8945         ssa_name_nonzero_p, fp_predicate): Likewise.
8946         * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
8947         * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
8948         ssa_name_nonnegative_p): Likewise.
8949
8950 2007-08-25  Hans Kester  <hans.kester@ellips.nl>
8951
8952         * config.gcc : Add x86_64-elf target.
8953
8954 2007-08-25  Jakub Jelinek  <jakub@redhat.com>
8955
8956         * expr.c (store_expr): Fix order of store_by_pieces arguments.
8957
8958 2007-08-24  Sandra Loosemore  <sandra@codesourcery.com>
8959             Nigel Stephens <nigel@mips.com>
8960
8961         PR target/11787
8962
8963         * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
8964         (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
8965         * expr.c (SET_BY_PIECES_P): Define.
8966         (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
8967         it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
8968         (store_expr): Pass MEMSETP argument to can_store_by_pieces and
8969         store_by_pieces.
8970         * expr.h (SET_RATIO): Define.
8971         (can_store_by_pieces, store_by_pieces): Update prototypes.
8972         * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
8973         can_store_by_pieces/store_by_pieces.
8974         (expand_builtin_memcpy_args): Likewise.
8975         (expand_builtin_strncpy): Likewise.
8976         (expand_builtin_memset_args): Likewise.  Also remove special case
8977         for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
8978         decide what to do instead.
8979         * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
8980         to can_store_by_pieces.
8981
8982         * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
8983         * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
8984
8985         * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
8986         * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
8987         * config/mips/mips.h (MIPS_CALL_RATIO): Define.
8988         (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
8989         (STORE_BY_PIECES_P): Define.
8990
8991 2007-08-24  Tom Tromey  <tromey@redhat.com>
8992
8993         * varpool.c (varpool_last_needed_node): Fix comment typo.
8994         * c-decl.c (duplicate_decls): Fix comment typo.
8995         (clone_underlying_type): Update comment.
8996
8997 2007-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8998
8999         * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
9000         alpha_in_small_data_p, alpha_split_complex_arg,
9001         alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
9002         Constify.
9003         * config/arm/arm-protos.h (arm_mangle_type): Likewise.
9004         * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
9005         Likewise.
9006         * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
9007         TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
9008         * config/darwin-protos.h (darwin_binds_local_p): Likewise.
9009         * config/darwin.c (darwin_binds_local_p): Likewise.
9010         * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
9011         Likewise.
9012         * config/i386/i386-protos.h (i386_pe_binds_local_p,
9013         i386_pe_valid_dllimport_attribute_p): Likewise.
9014         * config/i386/i386.c (ix86_function_regparm,
9015         ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
9016         x86_can_output_mi_thunk, ix86_mangle_type,
9017         TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
9018         * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
9019         i386_pe_binds_local_p): Likewise.
9020         * config/ia64/ia64.c
9021         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
9022         ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
9023         ia64_invalid_conversion, ia64_invalid_unary_op,
9024         ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
9025         Likewise.
9026         * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
9027         * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
9028         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
9029         * config/mips/mips.c (mips_use_blocks_for_constant_p,
9030         mips_in_small_data_p, mips_use_anchors_for_symbol_p,
9031         mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
9032         mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
9033         mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
9034         * config/pa/pa.c (pa_commutative_p): Likewise.
9035         * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
9036         Likewise.
9037         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
9038         rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
9039         rs6000_use_blocks_for_constant_p,
9040         rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
9041         invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
9042         TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
9043         * config/s390/s390.c (s390_mangle_type,
9044         TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
9045         Likewise.
9046         * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
9047         th_in_small_data_p): Likewise.
9048         * config/sh/sh.c (sh_ms_bitfield_layout_p,
9049         sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
9050         Likewise.
9051         * config/sparc/sparc.c (sparc_can_output_mi_thunk,
9052         sparc_mangle_type): Likewise.
9053         * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
9054         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
9055         * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
9056         Likewise.
9057         * hooks.c (hook_bool_mode_const_rtx_false,
9058         hook_bool_mode_const_rtx_true,
9059         hook_bool_const_tree_hwi_hwi_const_tree_false,
9060         hook_bool_const_tree_hwi_hwi_const_tree_true,
9061         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
9062         hook_constcharptr_const_tree_null,
9063         hook_constcharptr_const_rtx_null,
9064         hook_constcharptr_const_tree_const_tree_null,
9065         hook_constcharptr_int_const_tree_null,
9066         hook_constcharptr_int_const_tree_const_tree_null): New.
9067         (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
9068         hook_bool_tree_hwi_hwi_tree_false,
9069         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
9070         hook_int_tree_tree_1, hook_constcharptr_tree_null,
9071         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
9072         hook_constcharptr_int_tree_null,
9073         hook_constcharptr_int_tree_tree_null): Delete.
9074         (default_can_output_mi_thunk_no_vcall): Constify.
9075         * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
9076         hook_bool_tree_hwi_hwi_tree_false,
9077         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
9078         hook_int_tree_tree_1, hook_constcharptr_tree_null,
9079         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
9080         hook_constcharptr_int_tree_null,
9081         hook_constcharptr_int_tree_tree_null): Delete.
9082         (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
9083         hook_bool_const_tree_hwi_hwi_const_tree_false,
9084         hook_bool_const_tree_hwi_hwi_const_tree_true,
9085         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
9086         hook_constcharptr_const_tree_null,
9087         hook_constcharptr_const_rtx_null,
9088         hook_constcharptr_const_tree_const_tree_null,
9089         hook_constcharptr_int_const_tree_null,
9090         hook_constcharptr_int_const_tree_const_tree_null): New.
9091         (default_can_output_mi_thunk_no_vcall): Constify.
9092         * integrate.c (function_attribute_inlinable_p): Likewise.
9093         * integrate.h (function_attribute_inlinable_p): Likewise.
9094         * jump.c (rtx_renumbered_equal_p): Likewise.
9095         * output.h (decl_readonly_section, categorize_decl_for_section,
9096         default_use_anchors_for_symbol_p, default_binds_local_p,
9097         default_binds_local_p_1): Likewise.
9098         * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
9099         Likewise.
9100         * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
9101         TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
9102         TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
9103         TARGET_COMP_TYPE_ATTRIBUTES,
9104         TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
9105         TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
9106         TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
9107         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
9108         TARGET_DWARF_CALLING_CONVENTION): Likewise.
9109         * target.h (can_output_mi_thunk, needs_block_p,
9110         first_cycle_multipass_dfa_lookahead_guard_spec,
9111         vector_alignment_reachable, comp_type_attributes,
9112         function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
9113         commutative_p, use_blocks_for_constant_p,
9114         use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
9115         vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
9116         invalid_within_doloop, valid_dllimport_attribute_p,
9117         split_complex_arg, invalid_arg_for_unprototyped_fn,
9118         invalid_conversion, invalid_unary_op, invalid_binary_op):
9119         Likewise.
9120         * targhooks.c (default_invalid_within_doloop,
9121         hook_invalid_arg_for_unprototyped_fn,
9122         default_builtin_vector_alignment_reachable): Likewise.
9123         (hook_bool_rtx_commutative_p): Delete.
9124         (hook_bool_const_rtx_commutative_p): New.
9125         * targhooks.h (default_invalid_within_doloop,
9126         default_builtin_vector_alignment_reachable,
9127         hook_invalid_arg_for_unprototyped_fn): Constify.
9128         (hook_bool_rtx_commutative_p): Delete.
9129         (hook_bool_const_rtx_commutative_p): New.
9130         * varasm.c (bss_initializer_p, decl_default_tls_model,
9131         categorize_decl_for_section, decl_readonly_section,
9132         default_use_anchors_for_symbol_p, default_binds_local_p,
9133         default_binds_local_p_1): Constify.
9134
9135 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
9136
9137         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9138         __NO_BUILTIN if -fno-builtin.
9139
9140 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
9141
9142         * config/bfin/bfin.c (print_operand): Report error instead of
9143         ICE for wrong operand.
9144
9145 2007-08-24  Michael Matz  <matz@suse.de>
9146
9147         * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
9148
9149 2007-08-24  Richard Guenther  <rguenther@suse.de>
9150
9151         PR middle-end/33166
9152         * tree-ssa.c (useless_type_conversion_p): Split into a
9153         recursive and a non-recursive part.
9154         (useless_type_conversion_p_1): New function.
9155         * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
9156         from maybe_fold_offset_to_reference is trivially convertible
9157         to the desired type before doing the simplification.
9158
9159 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
9160
9161         * expr.c (store_expr): Optimize initialization of an array
9162         with STRING_CST.
9163         * expr.h (builtin_strncpy_read_str): New prototype.
9164         * builtins.c (builtin_strncpy_read_str): Remove prototype.
9165         No longer static.
9166
9167 2007-08-24  Uros Bizjak  <ubizjak@gmail.com>
9168
9169         PR middle-end/33157
9170         * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
9171         field when initializing if_info structure.
9172
9173 2007-08-24  Richard Guenther  <rguenther@suse.de>
9174
9175         * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
9176         dependencies.
9177         * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
9178         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
9179         * tree-inline.c (inlinable_function_p): Fold in common parts of
9180         the cannot_inline_tree_fn langhook.
9181         * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
9182         (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
9183         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
9184         cannot_inline_tree_fn langhook.
9185         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
9186         cannot_inline_tree_fn member.
9187
9188 2007-08-24  Richard Guenther  <rguenther@suse.de>
9189
9190         * expr.c (get_inner_reference): Do computation of bitoffset
9191         from offset in a way we can detect overflow reliably.
9192
9193 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
9194
9195         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
9196
9197 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
9198
9199         * config/bfin/bfin.opt (mfast-fp): Add.
9200         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
9201         libbffastfp override libgcc if -mfast-fp.
9202         * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
9203         * doc/invoke.texi (Option Summary): Mention -mfast-fp.
9204         (Blackfin Options): Document -mfast-fp.
9205
9206 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
9207
9208         PR tree-optimization/32573
9209         PR middle-end/32946
9210         * tree-data-ref.c (initialize_data_dependence_relation): Clear
9211         DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
9212         (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
9213         (build_classic_dist_vector): Return false rather than true if
9214         DDR_ARE_DEPENDENT is non-NULL at the beginning.  Return false
9215         if either subscript_dependence_tester_1 or build_classic_dist_vector_1
9216         returned false.  Don't call save_dist_v before calling
9217         build_classic_dist_vector_1.
9218         (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
9219         with NULL DDR_ARE_DEPENDENT.  Also free DDR_DIST_VECTS and/or
9220         DDR_DIR_VECTS vectors.
9221
9222 2007-08-23  Brian Sidebotham  <brian.sidebotham@gmail.com>
9223
9224         * configure.ac (leb128): Modify sed statement to work with any
9225         binutils version string.
9226         * configure: Regenerate
9227
9228 2007-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9229
9230         * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
9231         Wrap in RTX_CODE macro guard.
9232         * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
9233         arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
9234         arm_mark_dllimport, arm_pe_encode_section_info,
9235         arm_pe_unique_section): Use ISO-C function declarations.
9236         * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
9237         c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
9238         c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
9239         Likewise.
9240         * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
9241         * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
9242         defining.
9243         * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
9244         warnings.
9245         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
9246         * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
9247         (register_move_cost): Use ISO-C function declarations.
9248         * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
9249         * config/score/score-protos.h (score_declare_object): Add
9250         ATTRIBUTE_PRINTF_4.
9251         * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
9252         warnings.
9253         * final.c (profile_function): Avoid empty if-bodies.
9254         
9255         
9256         * calls.c (must_pass_in_stack_var_size,
9257         must_pass_in_stack_var_size_or_pad): Constify.
9258         * config/alpha/alpha-protos.h (function_value): Likewise.
9259         * config/alpha/alpha.c (alpha_return_in_memory,
9260         alpha_pass_by_reference, function_value,
9261         unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
9262         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
9263         Likewise.
9264         * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
9265         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
9266         TARGET_PROMOTE_PROTOTYPES): Likewise.
9267         * config/arm/arm-protos.h (arm_return_in_memory,
9268         arm_pad_arg_upward, arm_function_value): Likewise.
9269         * config/arm/arm.c (arm_pass_by_reference,
9270         arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
9271         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
9272         arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
9273         Likewise.
9274         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9275         * config/avr/avr-protos.h (avr_function_value): Likewise.
9276         * config/avr/avr.c (avr_return_in_memory,
9277         gas_output_limited_string, gas_output_ascii, avr_function_value,
9278         avr_return_in_memory): Likewise.
9279         * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
9280         * config/bfin/bfin.c (bfin_pass_by_reference,
9281         bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
9282         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
9283         Likewise.
9284         * config/cris/cris.c (cris_pass_by_reference,
9285         TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9286         * config/crx/crx.c (crx_return_in_memory): Likewise.
9287         * config/darwin.c (function_base, machopic_function_base_name):
9288         Likewise.
9289         * config/fr30/fr30.c (fr30_must_pass_in_stack,
9290         TARGET_PROMOTE_PROTOTYPES): Likewise.
9291         * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
9292         * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
9293         * config/i386/i386-protos.h (ix86_return_in_memory,
9294         ix86_sol10_return_in_memory): Likewise.
9295         * config/i386/i386.c (ix86_function_value,
9296         ix86_function_sseregparm, ix86_must_pass_in_stack,
9297         type_natural_mode, classify_argument, examine_argument,
9298         construct_container, ix86_pass_by_reference, function_value_32,
9299         function_value_64, ix86_function_value_1, return_in_memory_32,
9300         return_in_memory_64, return_in_memory_ms_64,
9301         ix86_return_in_memory, ix86_sol10_return_in_memory,
9302         TARGET_PROMOTE_PROTOTYPES): Likewise.
9303         * config/ia64/ia64-protos.h (ia64_function_value,
9304         ia64_hpux_function_arg_padding): Likewise.
9305         * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
9306         ia64_function_value, bundle_state_hash, bundle_state_eq_p,
9307         ia64_hpux_function_arg_padding): Likewise.
9308         * config/iq2000/iq2000-protos.h (function_arg,
9309         iq2000_function_value): Likewise.
9310         * config/iq2000/iq2000.c (iq2000_return_in_memory,
9311         iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
9312         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
9313         function_arg, iq2000_function_value): Likewise.
9314         * config/m32c/m32c-protos.h (m32c_function_value,
9315         m32c_promote_function_return): Likewise.
9316         * config/m32c/m32c.c (m32c_pass_by_reference,
9317         m32c_promote_prototypes, m32c_promote_function_return,
9318         m32c_function_value): Likewise.
9319         * config/m32r/m32r.c (m32r_return_in_memory,
9320         m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
9321         m32r_in_small_data_p): Likewise.
9322         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
9323         Likewise.
9324         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
9325         m68hc11_function_arg_padding): Likewise.
9326         * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
9327         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
9328         m68k_function_value): Likewise.
9329         * config/mcore/mcore-protos.h (mcore_num_arg_regs,
9330         mcore_function_value): Likewise.
9331         * config/mcore/mcore.c (handle_structs_in_regs,
9332         mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
9333         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
9334         mcore_num_arg_regs, mcore_function_value): Likewise.
9335         * config/mips/mips-protos.h (mips_pad_arg_upward,
9336         mips_function_value): Likewise.
9337         * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
9338         mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
9339         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
9340         TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
9341         mips_function_value): Likewise.
9342         * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
9343         Likewise.
9344         * config/mmix/mmix.c (mmix_pass_by_reference,
9345         TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
9346         mmix_encode_section_info): Likewise.
9347         * config/mn10300/mn10300-protos.h (mn10300_function_value):
9348         Likewise.
9349         * config/mn10300/mn10300.c (mn10300_return_in_memory,
9350         mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
9351         mn10300_function_value): Likewise.
9352         * config/mt/mt-protos.h (mt_function_value): Likewise.
9353         * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
9354         mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
9355         * config/pa/pa-protos.h (function_arg_padding, function_value,
9356         pa_return_in_memory): Likewise.
9357         * config/pa/pa.c (pa_pass_by_reference,
9358         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
9359         function_arg_padding, function_value, pa_return_in_memory):
9360         Likewise.
9361         * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
9362         * config/rs6000/rs6000-protos.h (rs6000_function_value,
9363         function_arg_padding): Likewise.
9364         * config/rs6000/rs6000.c (rs6000_return_in_memory,
9365         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
9366         rs6000_pass_by_reference, rs6000_must_pass_in_stack,
9367         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
9368         function_arg_padding, altivec_expand_dst_builtin,
9369         altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
9370         altivec_init_builtins, rs6000_common_init_builtins,
9371         rs6000_function_value): Likewise.
9372         * s390/s390-protos.h (s390_function_value): Likewise.
9373         * config/s390/s390.c (s390_function_arg_size,
9374         s390_pass_by_reference, s390_return_in_memory,
9375         s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
9376         TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9377         * config/score/score-protos.h (score_function_value): Likewise.
9378         * config/score/score.c (score_arg_partial_bytes,
9379         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
9380         TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
9381         score_pass_by_reference, score_add_offset, score_function_value):
9382         Likewise.
9383         * config/sh/sh-protos.h (sh_attr_renesas_p,
9384         sh_promote_prototypes): Likewise.
9385         * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
9386         sh_callee_copies, sh_promote_prototypes, shcompact_byref,
9387         sh_attr_renesas_p): Likewise.
9388         * config/sparc/sparc-protos.h (function_value,
9389         function_arg_padding): Likewise.
9390         * config/sparc/sparc.c (sparc_promote_prototypes,
9391         sparc_return_in_memory, sparc_pass_by_reference,
9392         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
9393         function_arg_record_value_2, function_arg_record_value_1,
9394         function_arg_record_value, function_arg_record_value,
9395         function_arg_padding, function_value): Likewise.
9396         * config/spu/spu-protos.h (spu_function_value): Likewise.
9397         * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
9398         spu_function_value): Likewise.
9399         * config/stormy16/stormy16-protos.h (xstormy16_function_value):
9400         Likewise.
9401         * config/stormy16/stormy16.c (xstormy16_return_in_memory,
9402         xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
9403         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
9404         Likewise.
9405         * config/v850/v850.c (v850_return_in_memory,
9406         v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
9407         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
9408         * config/xtensa/xtensa.c (xtensa_return_in_msb,
9409         xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
9410         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
9411         Likewise.
9412         * explow.c (promote_mode, hard_function_value): Likewise.
9413         * expr.h (hard_function_value, promote_mode): Likewise.
9414         * function.c (aggregate_value_p): Likewise.
9415         * hooks.c (hook_bool_const_tree_true): New.
9416         * hooks.h (hook_bool_const_tree_true): New.
9417         * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
9418         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
9419         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
9420         TARGET_RETURN_IN_MSB): Likewise.
9421         * target.h (promote_function_args, promote_function_return,
9422         promote_prototypes, return_in_memory, return_in_msb,
9423         pass_by_reference, must_pass_in_stack, callee_copies,
9424         function_value): Likewise.
9425         * targhooks.c (default_return_in_memory,
9426         hook_pass_by_reference_must_pass_in_stack,
9427         hook_callee_copies_named,
9428         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
9429         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
9430         default_function_value): Likewise. 
9431         * targhooks.h (default_return_in_memory,
9432         hook_pass_by_reference_must_pass_in_stack,
9433         hook_callee_copies_named,
9434         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
9435         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
9436         default_function_value): Likewise.
9437         * tree-ssa-structalias.c (const_equiv_class_label_t): New.
9438         (equiv_class_label_hash, equiv_class_label_eq): Constify.
9439         * tree-vectorizer.c (bb_in_loop_p): Likewise.
9440         * tree.c (needs_to_live_in_memory): Likewise.
9441         * tree.h (struct tree_type, needs_to_live_in_memory,
9442         aggregate_value_p, must_pass_in_stack_var_size,
9443         must_pass_in_stack_var_size_or_pad): Likewise.
9444         * vmsdbgout.c (write_debug_addr, write_debug_delta4,
9445         write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
9446         lookup_filename): Likewise.
9447
9448 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
9449
9450         PR target/17390
9451         * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
9452         fake fcomi i387 instruction for !TARGET_CMOVE.
9453         (ix86_expand_branch): Expand natural sequence with one jump for
9454         all targets, not only TARGET_CMOVE.
9455         * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
9456         pattern to implement fake fcomi sequence.  Split instruction after
9457         reload to correct compare sequences.
9458         (*cmpfp_xf_cc): Ditto.
9459         (*cmpfp_<mode>_cc): Ditto.
9460         (*cmpfp_u_cc): Ditto.
9461         (*cmpfp_<mode>_cc): Ditto.
9462
9463 2007-08-23  Richard Guenther  <rguenther@suse.de>
9464
9465         * tree-pretty-print.c (dump_generic_node): Annotate
9466         GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
9467
9468 2007-08-23  Richard Guenther  <rguenther@suse.de>
9469
9470         * builtins.c (expand_builtin_mathfn): Wrap argument in
9471         save_expr directly instead of re-building the call.
9472         (expand_builtin_mathfn_2): Likewise.
9473         (expand_builtin_mathfn_3): Likewise.
9474         (expand_builtin_interclass_mathfn): Likewise.
9475         (expand_builtin_int_roundingfn): Set arg.
9476         (expand_builtin_int_roundingfn_2): Likewise.
9477
9478 2007-08-23  Paolo Bonzini  <bonzini@gnu.org>
9479
9480         * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
9481         *sse_nand<mode>3, *sse_xor<mode>3): New.
9482
9483 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
9484
9485         * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
9486         * config/i386/i386.c (print_operand): Handle ';' code.  Output
9487         semicolon for TARGET_MACHO.
9488         * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
9489         emit semicolon after 'lock' prefix.
9490         (sync_double_compare_and_swap<mode>): Ditto.
9491         (*sync_double_compare_and_swapdi_pic): Ditto.
9492         (*sync_compare_and_swap_cc<mode>): Ditto.
9493         (sync_double_compare_and_swap_cc<mode>): Ditto.
9494         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
9495         (sync_old_add<mode>): Ditto.
9496         (sync_add<mode>): Ditto.
9497         (sync_sub<mode>): Ditto.
9498         (sync_ior<mode>): Ditto.
9499         (sync_and<mode>): Ditto.
9500         (sync_xor<mode>): Ditto.
9501
9502 2007-08-22  Chao-ying Fu  <fu@mips.com>
9503
9504         * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
9505         in DEF_RTL_EXPR.
9506         (copy_rtx): Handle CONST_FIXED.
9507         (rtx_equal_p): Likewise.
9508         * rtl.h (fixed_value.h): New include.
9509         (rtx_def): Add a new field of fixed_value to u.
9510         (XCNMPFV): Define for accessing fixed_value.
9511         (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
9512         Define.
9513         * rtl.def (CONST_FIXED): New constant.
9514         (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
9515         UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
9516         US_ASHIFT): New codes.
9517         * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
9518         us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
9519         unsigned_fract_convert, unsigned_sat_fract): Document them.
9520         * varasm.c (assemble_integer): Extend to support fixed-point constants
9521         by using different machine classes.
9522         (decode_addr_const): Handle FIXED_CST.
9523         (const_hash_1): Likewise.
9524         (compare_constant): Likewise.
9525         (copy_constant): Likewise.
9526         (const_rtx_hash_1): Handle CONST_FIXED.
9527         (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
9528         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
9529         MODE_VECTOR_UACCUM.
9530         (initializer_constant_valid_p): Handle FIXED_CST.
9531         (output_constant): Support FIXED_POINT_TYPE.
9532         * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
9533         * cse.c (hash_rtx): Support CONST_FIXED.
9534         (exp_equiv_p): Likewise.
9535         (cannon_reg): Likewise.
9536         (fold_rtx): Likewise.
9537         (equiv_constant): Likewise.
9538         (cse_process_notes_1): Likewise.
9539         (count_reg_usage): Likewise.
9540         * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
9541         (rtx_equal_for_cselib_p): Handle CONST_FIXED.
9542         (wrap_constant): Check CONST_FIXED.
9543         (cselib_hash_rtx): Support CONST_FIXED.
9544         (cselib_subst_to_values): Likewise.
9545         * df-scan.c (df_uses_record): Likewise.
9546         * gcse.c (want_to_gcse_p): Likewise.
9547         (oprs_unchanged_p): Likewise.
9548         (oprs_not_set_p): Likewise.
9549         (compute_transp): Likewise.
9550         (extract_mentioned_regs_helper): Likewise.
9551         * genemit.c (gen_exp): Likewise.
9552         * local-alloc.c (equiv_init_varies_p): Likewise.
9553         (contains_replace_regs): Likewise.
9554         (memref_referenced_p): Likewise.
9555         * loop-invariant.c (check_maybe_invariant): Likewise.
9556         (hash_invariant_expr_1): Likewise.
9557         (invariant_expr_equal_p): Likewise.
9558         * postreload-gcse.c (oprs_unchanged_p): Likewise.
9559         * regclass.c (reg_scan_mark_refs): Likewise.
9560         * regrename.c (scan_rtx): Likewise.
9561         * resource.c (mark_referenced_resources): Likewise.
9562         (mark_set_resources): Likewise.
9563         * rtlanal.c (rtx_unstable_p): Likewise.
9564         (rtx_varies_p): Likewise.
9565         (count_occurrences): Likewise.
9566         (reg_mentioned_p): Likewise.
9567         (modified_between_p): Likewise.
9568         (modified_in_p): Likewise.
9569         (volatile_insn_p): Likewise.
9570         (volatile_refs_p): Likewise.
9571         (side_effects_p): Likewise.
9572         (may_trap_p_1): Likewise.
9573         (inequality_comparisons_p): Likewise.
9574         (computed_jump_p_1): Likewise.
9575         (commutative_operand_precedence): Likewise.
9576         * sched-deps.c (sched_analyze_2): Likewise.
9577         * sched-vis.c (print_value): Likewise.
9578         * reload.c (operands_match_p): Likewise.
9579         (subst_reg_equivs): Likewise.
9580         * reload1.c (eliminate_regs_1): Likewise.
9581         (elimination_effects): Likewise.
9582         (scan_paradoxical_subregs): Likewise.
9583         * alias.c (rtx_equal_for_memref_p): Likewise.
9584         * Makefile.in (RTL_BASE_H): Add fixed-value.h.
9585         * emit-rtl.c (const_fixed_htab): New hash table.
9586         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
9587         Declare.
9588         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
9589         const_fixed_from_fixed_value): New functions.
9590         (verify_rtx_sharing): Handle CONST_FIXED.
9591         (copy_rtx_if_shared_1): Likewise.
9592         (reset_used_flags): Likewise.
9593         (set_used_flags): Likewise.
9594         (copy_insn_1): Likewise.
9595         (init_emit_once): Create const_fixed_htab.
9596         Store fixed-point scalar and vector zero and one to const_tiny_rtx.
9597
9598 2007-08-22  Zdenek Dvorak  <ook@ucw.cz>
9599
9600         PR tree-optimization/32949
9601         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
9602         before failing for ivs with non-constant step.
9603
9604 2007-08-22  Hans-Peter Nilsson  <hp@axis.com>
9605
9606         * doc/md.texi (Iterators): Renamed from Macros.  All contents
9607         changed to reflect rename of respectively define_code_macro and
9608         define_mode_macro to define_code_iterator and define_mode_iterator.
9609         (Mode Iterators, Code Iterators): Similar.
9610         * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
9611         (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
9612         (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
9613         (initialize_iterators, find_iterator, check_code_iterator)
9614         (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
9615         (read_mapping, read_rtx_1): Similar.
9616         * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
9617         config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
9618         config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
9619         config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
9620         config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
9621         config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
9622         config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
9623         config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
9624         config/rs6000/sync.md, config/rs6000/rs6000.md,
9625         config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
9626         config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
9627         config/vax/vax.md, config/bfin/bfin.md: Similar.
9628
9629 2007-08-22  David Daney  <ddaney@avtrex.com>
9630
9631         * doc/install.texi (Testing): Mention testing on a simulator.
9632
9633 2007-08-22  Janis Johnson  <janis187@us.ibm.com>
9634
9635         * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
9636
9637         * doc/libgcc.texi (Decimal float library routines): Fix formatting
9638         and rearrange floating point conversion functions into different
9639         categories.
9640
9641 2007-08-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9642
9643         * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
9644         dfa_post_advance_cycle): New scheduler hooks.
9645         * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
9646         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
9647         new hooks.
9648         (TARGET_SCHED): Use them.
9649         * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
9650         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
9651         * haifa-sched.c (advance_one_cycle): Invoke new hooks.
9652
9653         * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
9654         function to facilitate debugging.
9655         (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
9656         (output_insn_has_dfa_reservation_p): New static function to output
9657         insn_has_dfa_reservation_p ().
9658         (write_automata): Use it.
9659         * genattr.c (main): Output declaration for
9660         insn_has_dfa_reservation_p ().
9661
9662 2007-08-22  Christian Bruel  <christian.bruel@st.com>   
9663             Richard Guenther <rguenther@suse.de>
9664         
9665         * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
9666         * simplify_rtx (simplify_binary_operation_1): Likewise.
9667                 
9668 2007-08-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
9669
9670         PR rtl-optimization/32557
9671         * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
9672         of REGNO (mws->mw_reg).
9673
9674 2007-08-22  Richard Guenther  <rguenther@suse.de>
9675
9676         PR middle-end/33007
9677         * builtins.c (expand_builtin_int_roundingfn): Replace call
9678         argument wrapped with SAVE_EXPR directly.
9679         (expand_builtin_int_roundingfn_2): Likewise.
9680
9681 2007-08-22  Richard Guenther  <rguenther@suse.de>
9682
9683         * tree-inline.c (inlinable_function_p): Restore disregarding
9684         inline limits for GNU extern inline functions.
9685
9686 2007-08-22  Richard Guenther  <rguenther@suse.de>
9687
9688         PR middle-end/32563
9689         * tree.c (host_integerp): Treat sizetype as signed as it is
9690         sign-extended.
9691
9692 2007-08-21  Ian Lance Taylor  <iant@google.com>
9693
9694         PR tree-optimization/33134
9695         * tree-vrp.c (adjust_range_with_scev): Call
9696         set_value_range_to_value.
9697
9698 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
9699
9700         * value-prof.h (gimple_remove_histogram_value): Remove duplicate
9701         prototype.
9702         
9703 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
9704
9705         * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
9706         whitespace.
9707
9708 2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>
9709
9710         * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
9711         cases to set eight bytes at a time.
9712         (expand_block_move): Likewise.
9713         
9714 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
9715
9716         PR debug/32610
9717         * dwarf2out.c (gen_decl_die): Don't call
9718         gen_tagged_type_instantiation_die if decl doesn't have tagged type.
9719
9720 2007-08-21  Paul Brook  <paul@codesourcery.com>
9721             Nathan Sidwell  <nathan@codesourcery.com>
9722             Mark Mitchell  <mark@codesourcery.com>
9723             Joseph Myers  <joseph@codesourcery.com>
9724
9725         * configure.ac: Add --with-pkgversion and --with-bugurl.
9726         * configure: Regenerate.
9727         * doc/install.texi: Document them.
9728         * version.c (version_string): Remove VERSUFFIX.
9729         (VERSUFFIX): Remove.
9730         (pkgversion_string): New.
9731         (bug_report_url): Do not hard-code initializer.
9732         * version.h (pkgversion_string): Declare.
9733         * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
9734         Define.
9735         (version.o): Define PKGVERSION and BUGURL.
9736         (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
9737         (%.pod): Define BUGURL.
9738         * gcc.c (process_command, main): Use pkgversion_string.
9739         * toplev.c (compile_file, print_version): Likewise.
9740         * protoize.c (main): Likewise.
9741         * gcov.c (print_version): Likewise.  Update copyright date.
9742         * gcov-dump.c (print_version): Likewise.  Update copyright date.
9743         * mips-tdump.c (main): Likewise.  Update copyright date.
9744         * mips-tfile.c (main): Likewise.  Update copyright date.
9745         * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
9746         * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
9747         shorten description.
9748         * doc/gcc.texi: Include VERSION_PACKAGE in version description.
9749         * doc/gccint.texi: Likewise.
9750         * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
9751         Update copyright date.
9752
9753 2007-08-21  Uros Bizjak  <ubizjak@gmail.com>
9754
9755         * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
9756         (ix86_expand_strlensi_unroll_1): Ditto.
9757         (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
9758         (ix86_expand_carry_flag_compare): Update comment.
9759
9760 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
9761
9762         PR middle-end/32912
9763         * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
9764         (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
9765
9766 2007-08-21  Richard Guenther  <rguenther@suse.de>
9767
9768         * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
9769
9770 2007-08-21  Richard Guenther  <rguenther@suse.de>
9771
9772         PR middle-end/33122
9773         * fold-const.c (fold_binary): Remove index +p PTR folding.
9774         Fix types of POINTER_PLUS_EXPR generated by folding of
9775         (PTR +p B) +p A.
9776
9777 2007-08-20  Chao-ying Fu  <fu@mips.com>
9778
9779         * c-common.h (enum rid): Add new enumeration values of RID_SAT,
9780         RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
9781         RID_ONEWAY, so that it can be checked in declspecs_add_type.
9782         (c_common_fixed_point_type_for_size): Declare.
9783         * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
9784         (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
9785         (c_token_starts_declspecs): Likewise.
9786         (c_parser_declspecs): Likewise.
9787         (c_parser_attributes): Likewise.
9788         * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
9789         (c_declspecs): Add saturating_p.
9790         * c-decl.c (build_null_declspecs): Initialize saturating_p.
9791         (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
9792         _Sat.  Handle RID_SAT.
9793         Avoid using void, bool, char, int, float, double, _Decimal32,
9794         _Decimal64, _Decimal128, and complex with _Sat.
9795         Handle RID_FRACT and RID_ACCUM.
9796         Make sure _Sat is used with _Fract or _Accum.
9797         (finish_declspecs): Handle cts_fract and cts_accum.
9798         * c-common.c (fixed-value.h): New include.
9799         (constant_expression_warning): Handle FIXED_CST.
9800         (overflow_warning): Likewise.
9801         (warnings_for_convert_and_check): Likewise.
9802         (c_common_fixed_point_type_for_size): New.
9803         (c_common_type_for_mode): Handle fixed-point modes to
9804         return various saturating/non-saturating, signed/unsigned types.
9805         (c_common_signed_or_unsigned_type): Support fixed-point types.
9806         (shorten_compare): Check fixed-point zero.
9807         Handle FIXED_POINT_TYPE.
9808         (c_common_truthvalue_conversion): Handle FIXED_CST.
9809         Handle FIXED_POINT_TYPE.
9810         (c_common_nodes_and_builtins): Record builtin types for fixed-point
9811         types.
9812         (handle_mode_attribute): Handle fixed-point modes.  Need to check
9813         if the signness of base type and fixed-point modes are consistent.
9814         (handle_vector_size_attribute): Handle fixed-point modes.
9815         (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
9816         (warn_for_div_by_zero): Check fixed-point zero.
9817         * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE.  Build
9818         a common fixed-point type based on fbit, ibit, sign, and saturation.
9819         (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
9820         NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
9821         PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
9822         (convert_for_assignment): Support FIXED_POINT_TYPE.
9823         (digest_init): Handle FIXED_POINT_TYPE.
9824         (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
9825         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
9826         TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
9827         GE_EXPR, LT_EXPR, GT_EXPR.
9828         * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
9829         (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
9830         * target.h (gcc_target): Add fixed_point_supported_p.
9831         * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
9832         MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
9833         (default_fixed_point_supported_p): Define.
9834         * targhooks.h (default_fixed_point_supported_p): Declare.
9835         * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
9836         * doc/install.texi (Configuration): Add --enable-fixed-point.
9837         * configure.ac (--enable-fixed-point): New to enable fixed-point
9838         arithmetic extension to C.  For mips targets, we enable it by default.
9839         * configure, config.in: Regenerate.
9840
9841 2007-08-20  Pawel Sikora  <pluto@pld-linux.org>
9842
9843         * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
9844
9845 2007-08-20  David Edelsohn  <edelsohn@gnu.org>
9846
9847         * dwarf2out.c (text_section_used): Move declaration outside ifdef
9848         DWARF2_DEBUGGING_INFO.
9849         (cold_text_section_used): Same.
9850         (cold_text_section): Same.
9851
9852 2007-08-20  Richard Guenther  <rguenther@suse.de>
9853
9854         * c-typeck.c (convert_for_assignment): Use the type of
9855         the member for the initialization.
9856
9857 2007-08-20  Richard Guenther  <rguenther@suse.de>
9858
9859         * c-objc-common.c (c_disregard_inline_limits): Remove.
9860         * c-objc-common.h (c_disregard_inline_limits): Likewise.
9861         * cgraphunit.c (cgraph_process_new_functions): Call
9862         disregard_inline_limits_p.
9863         (cgraph_preserve_function_body_p): Likewise.
9864         * ipa-inline.c (compute_inline_parameters): Likewise.
9865         * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
9866         Remove.
9867         (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
9868         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
9869         disregard_inline_limits langhook.
9870         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
9871         Remove.
9872         * langhooks.h (lang_hooks_for_tree_inlining): Remove
9873         disregard_inline_limits langhook.
9874         * tree-inline.c (disregard_inline_limits_p): New function.
9875         * tree-inline.h (disregard_inline_limits_p): Declare.
9876
9877 2007-08-20  Richard Guenther  <rguenther@suse.de>
9878
9879         * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
9880         (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
9881         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
9882         auto_var_in_fn_p langhook.
9883         * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
9884         move ...
9885         * tree.c (auto_var_in_fn_p): ... here.
9886         (find_var_from_fn): Call auto_var_in_fn_p directly.
9887         * langhooks.h (lang_hooks_for_tree_inlining): Remove
9888         auto_var_in_fn_p langhook.
9889         * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
9890         (copy_body_r): Likewise.
9891         (self_inlining_addr_expr): Likewise.
9892         * tree.h (auto_var_in_fn_p): Declare.
9893
9894 2007-08-20  Richard Guenther  <rguenther@suse.de>
9895
9896         * tree.c (WALK_SUBTREE): Call walk_tree_1.
9897         (walk_type_fields): Take lh parameter.
9898         (walk_tree): Rename to ...
9899         (walk_tree_1): ... this.  Do not call the walk_subtrees
9900         langhook but the now passed callback.  Pass lh on recursion.
9901         (walk_tree_without_duplicates): Rename to ...
9902         (walk_tree_without_duplicates_1): ... this.  Take lh parameter
9903         and call walk_tree_1.
9904         * tree.h (walk_tree_lh): New typedef.
9905         (walk_tree_1): Declare.
9906         (walk_tree_without_duplicates_1): Likewise.
9907         (walk_tree): New define to walk_tree_1 with NULL lh parameter.
9908         (walk_tree_without_duplicates): New define to
9909         walk_tree_without_duplicates_1 with NULL lh parameter.
9910         * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
9911         * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
9912         langhook.
9913         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
9914         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
9915         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
9916         initializer.
9917
9918 2007-08-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9919
9920         PR middle-end/30564
9921         * tree-inline.c (optimize_inline_calls): Move the cgraph checking
9922         code in front of the compacting of basic blocks.
9923         Move the folding of statements inbetween the cgraph checking
9924         and compacting of basic blocks.
9925
9926 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9927            Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9928
9929         PR target/32522
9930         * config/alpha/alpha.c (va_list_skip_additions): Check for
9931         POINTER_PLUS_EXPR in addition to PLUS_EXPR.
9932         (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
9933         PLUS_EXPR when checking ap.__base.
9934         (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
9935         when doing addition on pointer types.  Use size_int instead of
9936         build_int_cst.
9937         (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
9938         ptr_type in the second operand.
9939
9940 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
9941
9942         PR target/33115
9943         * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
9944
9945 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9946
9947         PR middle-end/32940
9948         * cfgexpand.c  (expand_one_register_var): Mark pointer
9949         DECL_ARTIFICIAL as REG_POINTER also.
9950         * stmt.c (expand_decl): Likewise.
9951
9952 2007-08-19  Daniel Berlin  <dberlin@dberlin.org>
9953
9954         Fix PR 32772
9955         Fix PR 32716
9956         Fix PR 32328
9957         Fix PR 32303
9958
9959         * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
9960         * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
9961         on_worklist argument and avoid adding things to worklist multiple
9962         times.
9963         (add_to_worklist): Ditto.
9964         (mark_aliases_call_clobbered): Mark entire structure clobbered if
9965         single SFT is clobbered.
9966         (set_initial_properties): Ditto.
9967         (compute_call_clobbered): Update for changes to function
9968         arguments.
9969         (create_overlap_variables_for): Always create SFT for offset 0.
9970         (create_structure_vars): Handle PHI's, since we are in SSA form at
9971         this point.
9972         * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
9973         * tree-ssa-operands.c (access_can_touch_variable): Don't handle
9974         TARGET_MEM_REF.
9975         (add_vars_for_offset): Figure out aliases from access + points-to.
9976         (add_virtual_operand): Use add_vars-for_offset.
9977         (get_tmr_operands): Update for NMT changes, rewrite to be correct.
9978         (add_call_clobber_ops): Remove makes_clobbering_call set.
9979         (get_expr_operands): Always pass through the INDIRECT_REF
9980         reference.
9981         * tree-ssa-structalias.c (struct constraint_graph): Remove
9982         variables member.
9983         Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
9984         address_taken, pt_used, number_incoming.
9985         (FIRST_ADDR_NODE): Removed.
9986         (merge_graph_nodes): Remove broken code for the moment.
9987         (init_graph): New function.
9988         (build_pred_graph): Remove code to init_graph.
9989         Add location equivalence support.
9990         (struct scc_info): Rename roots to deleted.
9991         (scc_visit): Ditto.
9992         (init_scc_info): Ditto
9993         (init_topo_info): Use graph->size.
9994         (compute_topo_order): Ditto.
9995         (do_da_constraint): Removed.
9996         (do_sd_constraint): Remove calls to find().
9997         set_union_with_increment should always get 0 as last arg here.
9998         (do_complex_constraint): Replace do_da_constraint with assert.
9999         Stop calling find.
10000         (struct equiv_class_label): New.
10001         (pointer_equiv_class_table): Ditto.
10002         (location_equiv_class_table): Ditto.
10003         (equiv_class_label_hash): Ditto.
10004         (equiv_class_label_eq): Ditto
10005         (equiv_class_lookup): Ditto.
10006         (equiv_class_ladd): Ditto.
10007         (pointer_equiv_class): Ditto.
10008         (location_equiv_class): Ditto.
10009         (condense_visit): Rename and rewrite from label_visit to do only
10010         SCC related stuff for HU.
10011         (label_visit): Do HU work for HU.
10012         (perform_var_substitution): Update to do HU and location
10013         equivalence.
10014         (free_var_substitution_info): Update to free HU and location
10015         equivalence structures.  */
10016         (find_equivalent_node): Update for pointer but not location
10017         equivalence.
10018         (unite_pointer_equivalences): New function.
10019         (move_complex_constraints): Rewrite to only do moving.
10020         (rewrite_constraints): Split out of move_complex_constraints.
10021         (solve_graph): Use graph->size.
10022         (process_constraint_1): Add from_call argument, use it.
10023         Split *a = &b into two constraints.
10024         (process_constraint): Use new process_constraint_1.
10025         (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
10026         (get_constraint_for): Handle non-pointer integers properly.
10027         Remove code that used to handle structures.
10028         (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
10029         with unknown addends.
10030         (handle_rhs_call): New function.
10031         (find_func_aliases): Use handle_rhs_call.
10032         (set_uids_in_ptset): Add an assert.
10033         (set_used_smts): Fix bug in not considering unified vars.
10034         (compute_tbaa_pruning): Stop initing useless iteration_obstack.
10035         (compute_points_to_sets): Update for other function changes.
10036         (delete_points_to_sets): Ditto.
10037         (ipa_pta_execute): Ditto.
10038         (pass_ipa_pta): We need to update SSA after ipa_pta.
10039         
10040 2007-08-19  Jan Hubicka  <jh@suse.cz>
10041
10042         * i386.md: Replace "rim" and "mri" constraints by "g".
10043
10044 2007-08-19  Joseph Myers  <joseph@codesourcery.com>
10045
10046         * dwarf2out.c (text_section_used, cold_text_section_used,
10047         cold_text_section, dwarf2out_note_section_used): New.
10048         (dwarf2out_init): Initialize cold_text_section.
10049         (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
10050         dwarf2out_note_section_used.
10051         (size_of_aranges): Only count entry for text section if it was
10052         used.  Count entry for cold text section if it was used.
10053         (output_aranges): Only output entries for text section and cold
10054         text section if they were used.
10055
10056 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
10057
10058         * tree-pretty-print.c (debug_generic_expr): Add a comment about
10059         the function.
10060         (debug_generic_stmt): Likewise.
10061         (debug_tree_chain): Likewise.
10062
10063 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
10064
10065         * tree-data-refs.c (split_constant_offset): Expose.
10066         * tree-data-refs.h (split_constant_offset): Add declaration.
10067
10068         * tree-vectorizer.h (dr_alignment_support): Renamed
10069         dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
10070         Added a new value dr_explicit_realign.
10071         (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
10072         dr_offset, dr_step, and dr_aligned_to, along with new access
10073         functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
10074         STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
10075         STMT_VINFO_DR_ALIGNED_TO.
10076
10077         * tree-vectorizer.c (vect_supportable_dr_alignment): Add
10078         documentation.
10079         In case of outer-loop vectorization with non-fixed misalignment - use
10080         the dr_explicit_realign scheme instead of the optimized realignment
10081         scheme.
10082         (new_stmt_vec_info): Initialize new fields.
10083
10084         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
10085         'nested_in_vect_loop' case. Change verbosity level.
10086         (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
10087         Don't fail on zero step in the outer-loop for loads.
10088         (vect_analyze_data_refs): Call split_constant_offset to calculate
10089         base, offset and init relative to the outer-loop.
10090
10091         * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
10092         BSI function argument with a new function argument - at_loop.
10093         Simplify the condition that determines STEP. Takes additional argument
10094         INV_P. Support outer-loop vectorization (handle the
10095         nested_in_vect_loop case), including zero step in the outer-loop. Call
10096         vect_create_addr_base_for_vector_ref with additional argument.
10097         (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
10098         Updated function documentation. Handle the 'nested_in_vect_loop' case.
10099         Fixed and simplified calculation of step.
10100         (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
10101         of bsi, and with additional argument. Call bump_vector_ptr with
10102         additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
10103         (vect_setup_realignment): Takes additional arguments INIT_ADDR and
10104         DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
10105         when the realignment setup needs to take place inside the loop.
10106         Support the dr_explicit_realign scheme. Allow generating the optimized
10107         realignment scheme for outer-loop vectorization. Added documentation.
10108         (vectorizable_load): Support the dr_explicit_realign scheme. Handle
10109         the 'nested_in_vect_loop' case, including loads that are invariant in
10110         the outer-loop and the realignment schemes. Handle the case when the
10111         realignment setup needs to take place inside the loop. Call
10112         vect_setup_realignment with additional arguments.  Call
10113         vect_create_data_ref_ptr with additional argument and with loop instead
10114         of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
10115         (vect_gen_niters_for_prolog_loop): Call
10116         vect_create_addr_base_for_vector_ref with additional arguments.
10117         (vect_create_cond_for_align_checks): Likewise.
10118         (bump_vector_ptr): Updated to support the new dr_explicit_realign
10119         scheme: takes additional argument bump; argument ptr_incr is now
10120         optional; updated documentation.
10121         (vect_init_vector): Takes additional argument (bsi). Use it, if
10122         available, to insert the vector initialization.
10123         (get_initial_def_for_induction): Pass additional argument in call to
10124         vect_init_vector.
10125         (vect_get_vec_def_for_operand): Likewise.
10126         (vect_setup_realignment): Likewise.
10127         (vectorizable_load): Likewise.
10128
10129 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
10130
10131         * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
10132         as argument instead of struct loop.
10133         (nested_in_vect_loop_p): New function.
10134         (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
10135         vect_used_in_outer.
10136         (is_loop_header_bb_p): New. Used to differentiate loop-header phis
10137         from other phis in the loop.
10138         (destroy_loop_vec_info): Add additional argument to declaration.
10139
10140         * tree-vectorizer.c (supportable_widening_operation): Also check if
10141         nested_in_vect_loop_p (don't allow changing the order in this case).
10142         (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
10143         of struct loop. Call nested_in_vect_loop_p and don't require
10144         flag_unsafe_math_optimizations if it returns true.
10145         (new_stmt_vec_info): When setting def_type for phis differentiate 
10146         loop-header phis from other phis.
10147         (bb_in_loop_p): New function.
10148         (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
10149         just update their loop_vinfo.  Order of BB traversal now matters -
10150         call dfs_enumerate_from with bb_in_loop_p.
10151         (destroy_loop_vec_info): Takes additional argument to control whether
10152         stmt_vinfo of the loop stmts should be destroyed as well.
10153         (vect_is_simple_reduction): Allow the "non-reduction" use of a
10154         reduction stmt to be defines by a non loop-header phi.
10155         (vectorize_loops): Call destroy_loop_vec_info with additional argument.
10156
10157         * tree-vect-transform.c (vectorizable_reduction): Call
10158         nested_in_vect_loop_p. Check for multitypes in the inner-loop.
10159         (vectorizable_call): Likewise.
10160         (vectorizable_conversion): Likewise.
10161         (vectorizable_operation): Likewise.
10162         (vectorizable_type_promotion): Likewise.
10163         (vectorizable_type_demotion): Likewise.
10164         (vectorizable_store): Likewise.
10165         (vectorizable_live_operation): Likewise.
10166         (vectorizable_reduction): Likewise. Also pass loop_info to
10167         vect_is_simple_reduction instead of loop.
10168         (vect_init_vector): Call nested_in_vect_loop_p.
10169         (get_initial_def_for_reduction): Likewise.
10170         (vect_create_epilog_for_reduction): Likewise.
10171         (vect_init_vector): Check which loop to work with, in case there's an
10172         inner-loop.
10173         (get_initial_def_for_inducion): Extend to handle outer-loop
10174         vectorization. Fix indentation.
10175         (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
10176         In the case vect_induction_def get the vector def from the induction
10177         phi node, instead of calling get_initial_def_for_inducion.
10178         (get_initial_def_for_reduction): Extend to handle outer-loop 
10179         vectorization.
10180         (vect_create_epilog_for_reduction): Extend to handle outer-loop
10181         vectorization.
10182         (vect_transform_loop): Change assert to just skip this case.  Add a
10183         dump printout.
10184         (vect_finish_stmt_generation): Add a couple asserts.
10185
10186         (vect_estimate_min_profitable_iters): Multiply
10187         cost of inner-loop stmts (in outer-loop vectorization) by estimated
10188         inner-loop bound.
10189         (vect_model_reduction_cost): Don't add reduction epilogue cost in case
10190         this is an inner-loop reduction in outer-loop vectorization.
10191
10192         * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
10193         Same code as what used to be vect_analyze_scalar_cycles, only with
10194         additional argument loop, and loop_info passed to
10195         vect_is_simple_reduction instead of loop.
10196         (vect_analyze_scalar_cycles): Code factored out into
10197         vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
10198         Updated documentation.
10199         (analyze_operations): Check for inner-loop loop-closed exit-phis during
10200         outer-loop vectorization that are live or not used in the outerloop,
10201         cause this requires special handling.
10202         (vect_enhance_data_refs_alignment): Don't consider versioning for
10203         nested-loops.
10204         (vect_analyze_data_refs): Check that there are no datarefs in the
10205         inner-loop.
10206         (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
10207         and vect_used_in_outer_by_reduction cases.
10208         (process_use): Also consider the case of outer-loop stmt defining an
10209         inner-loop stmt and vice versa.
10210         (vect_analyze_loop_1): New function.
10211         (vect_analyze_loop_form): Extend, to allow a restricted form of nested
10212         loops.  Call vect_analyze_loop_1.
10213         (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
10214         been vectorized.  Call destroy_loop_vec_info with additional argument.
10215
10216         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
10217         in the inner-loop when doing outer-loop vectorization. Add
10218         documentation and printout.
10219         (vect_recog_dot_prod_pattern): Likewise. Also add check for
10220         GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
10221
10222 2007-08-18  Andrew Pinski  <pinskia@gmail.com>
10223
10224         * tree-affine.h (print_aff): New prototype.
10225         (debug_aff): Likewise.
10226         * tree-affine.c (print_aff): New function.
10227         (debug_aff): Likewise.
10228
10229 2007-08-18  Paul Brook  <paul@codesourcery.com>
10230             Joseph Myers  <joseph@codesourcery.com>
10231
10232         * common.opt (-fdebug-prefix-map=): New option.
10233         * opts.c: Include debug.h.
10234         (common_handle_option): Handle -fdebug-prefix-map.
10235         * final.c: Include ggc.h.
10236         (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
10237         remap_debug_filename): New.
10238         * Makefile.in (final.o, opts.o): Update dependencies.
10239         * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
10240         * configure.ac: Check for assembler --debug-prefix-map support.
10241         * configure, config.in: Regenerate.
10242         * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
10243         (ASM_DEBUG_SPEC): Include ASM_MAP.
10244         * doc/install.texi (--with-debug-prefix-map): Document.
10245         * doc/invoke.texi (-fdebug-prefix-map): Document.
10246         * dbxout.c (dbxout_init, dbxout_start_source_file,
10247         dbxout_source_file): Call remap_debug_filename.
10248         * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
10249         dwarf2out_start_source_file, dwarf2out_finish): Call
10250         remap_debug_filename.
10251         (file_table_relative_p): Do not check d->emitted_number.
10252         * toplev.c (output_file_directive): Call remap_debug_filename.
10253         * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
10254         * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
10255
10256 2007-08-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10257
10258         * loop-invariant.c (find_invariants_to_move): Add missing macro
10259         argument.
10260
10261 2007-08-17  Tom Tromey  <tromey@redhat.com>
10262
10263         * tree.h (struct tree_label_decl): Removed old "java" fields.
10264
10265 2007-08-17  Richard Sandiford  <richard@codesourcery.com>
10266             Nigel Stephens  <nigel@mips.com>
10267
10268         * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
10269         Treat -mno-data-in-code and -mcode-xonly as aliases for
10270         -mcode-readable=no and -mcode-readable=pcrel respectively.
10271         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
10272         (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
10273         (MULTILIB_DIRNAMES): Update accordingly.
10274
10275 2007-08-17  H.J. Lu  <hongjiu.lu@intel.com>
10276
10277         * Makefile.in (version.o): Depend on $(REVISION) only if
10278         REVISION_s is defined.
10279
10280 2007-08-17  Sa Liu  <saliu@de.ibm.com>
10281             Ulrich Weigand  <uweigand@de.ibm.com>
10282
10283         PR middle-end/32970
10284         * tree.c (reconstruct_complex_type): For a pointer to a vector,
10285         use build_qualified_type to retain qualifiers of the base type.
10286
10287 2007-08-17  Chen Liqin  <liqin@sunnorth.com.cn>
10288
10289         * config/score/score.md : Update pattern tablejump.
10290         * config/score/score.c : Update score_initialize_trampoline 
10291         function.
10292         * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
10293         (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
10294         * doc/contrib.texi: Add my entry.
10295
10296 2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>
10297
10298         * Makefile.in (REVISION): New.
10299         (REVISION_c): New.
10300         (REVISION_s): New.
10301         (version.o): Also depend on $(REVISION). Add
10302         -DREVISION=$(REVISION_s).
10303
10304         * version.c (version_string): Add REVISION.
10305
10306 2007-08-16  Seongbae Park <seongbae.park@gmail.com>
10307
10308         * tree-eh.c (lower_try_finally_onedest): Reset the locus
10309         of GOTO that's relocated to a different block.
10310
10311 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10312
10313         * c-common.c (const_strip_array_types): New.
10314         * c-common.h (lang_missing_noreturn_ok_p): Delete.
10315         (const_strip_array_types): New.
10316         * c-objc-common.c (c_disregard_inline_limits,
10317         c_warn_unused_global_decl): Constify.
10318         * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
10319         c_vla_type_p, c_incomplete_type_error): Likewise.
10320         * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
10321         * hooks.c (hook_bool_const_tree_false): New.
10322         * hooks.h (hook_bool_const_tree_false): Likewise.
10323         * langhooks-def.h (lhd_warn_unused_global_decl,
10324         lhd_incomplete_type_error, lhd_expr_size,
10325         lhd_tree_inlining_disregard_inline_limits,
10326         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
10327         LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
10328         * langhooks.c (lhd_warn_unused_global_decl,
10329         lhd_incomplete_type_error,
10330         lhd_tree_inlining_disregard_inline_limits,
10331         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
10332         lhd_expr_size): Likewise.
10333         * langhooks.h (lang_hooks_for_tree_inlining,
10334         lang_hooks_for_tree_dump, lang_hooks_for_types,
10335         lang_hooks_for_decls, lang_hooks): Likewise.
10336         * pointer-set.c (pointer_set_t, pointer_set_create,
10337         pointer_set_contains, insert_aux, pointer_set_insert,
10338         pointer_set_traverse, pointer_map_t, pointer_map_create,
10339         pointer_map_contains, pointer_map_insert, pointer_map_traverse):
10340         Likewise.
10341         * pointer-set.h (pointer_set_contains, pointer_set_insert,
10342         pointer_set_traverse, pointer_map_contains, pointer_map_insert,
10343         pointer_map_traverse): Likewise.
10344         * predict.c (assert_is_empty): Likewise.
10345         * tree-affine.c (free_name_expansion): Likewise.
10346         * tree-cfg.c (edge_to_cases_cleanup): Likewise.
10347         * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
10348         * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
10349
10350 2007-08-16  Victor Kaplansky <victork@il.ibm.com>
10351
10352         * tree-vectorizer.c (new_loop_vec_info): Initialize new 
10353         field.
10354         (destroy_loop_vec_info): Add call to VEC_free.
10355         * tree-vectorizer.h (may_alias_ddrs): Define.
10356         (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
10357         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
10358         Change reporting to dump.
10359         (vect_is_duplicate_ddr): New.
10360         (vect_mark_for_runtime_alias_test): New.
10361         (vect_analyze_data_ref_dependences) Add call to
10362         vect_mark_for_runtime_alias_test.
10363         (vect_enhance_data_refs_alignment): Define local variable
10364         vect_versioning_for_alias_required, don't perform
10365         peeling for alignment if versioning for alias is
10366         required.
10367         (vect_enhance_data_refs_alignment): Use
10368         PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
10369         PARAM_VECT_MAX_VERSION_CHECKS.
10370         * tree-vect-transform.c
10371         (vect_create_cond_for_alias_checks): New.
10372         (vect_transform_loop): Add call to
10373         vect_create_cond_for_alias_checks.
10374         (vect_vfa_segment_size): New.
10375         * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
10376         Rename.
10377         (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
10378         * doc/invoke.texi
10379         (vect-max-version-for-alignment-checks): Document.
10380         (vect-max-version-for-alias-checks): Document.
10381         (vect-max-version-checks): Remove.
10382
10383 2007-08-16  Uros Bizjak  <ubizjak@gmail.com>
10384
10385         * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
10386         the same line as the instruction for all asm dialects.
10387         (*rep_movsi): Ditto.
10388         (*rep_movsi_rex64): Ditto.
10389         (*rep_movqi): Ditto.
10390         (*rep_movqi_rex64): Ditto.
10391         (*rep_stosdi_rex64): Ditto.
10392         (*rep_stossi): Ditto.
10393         (*rep_stossi_rex64): Ditto.
10394         (*rep_stosqi): Ditto.
10395         (*rep_stosqi_rex64): Ditto.
10396         (*cmpstrnqi_nz_1): Ditto.
10397         (*cmpstrnqi_nz_rex_1): Ditto.
10398         (*cmpstrnqi_1): Ditto.
10399         (*cmpstrnqi_rex_1): Ditto.
10400         (*strlenqi_1): Ditto.
10401         (*strlenqi_rex_1): Ditto.
10402         * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
10403         prefix on the same line as the instruction for all asm dialects.
10404         (sync_double_compare_and_swap<mode>): Ditto.
10405         (*sync_double_compare_and_swapdi_pic): Ditto.
10406         (*sync_compare_and_swap_cc<mode>): Ditto.
10407         (sync_double_compare_and_swap_cc<mode>): Ditto.
10408         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
10409         (sync_old_add<mode>): Ditto.
10410         (sync_add<mode>): Ditto.
10411         (sync_sub<mode>): Ditto.
10412         (sync_ior<mode>): Ditto.
10413         (sync_and<mode>): Ditto.
10414         (sync_xor<mode>): Ditto.
10415
10416 2007-08-16  Richard Sandiford  <richard@codesourcery.com>
10417
10418         PR middle-end/32897
10419         * reload.c (find_reloads): Check that the memory returned by
10420         find_reloads_toplev was not the result of forcing a constant
10421         to memory.
10422         (find_reloads_toplev): Always use simplify_gen_subreg to get
10423         the subreg of a constant.  If the result is also a constant,
10424         but not a legitimate one, force it into the constant pool
10425         and reload its address.
10426
10427 2007-08-15  David Edelsohn  <edelsohn@gnu.org>
10428
10429         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
10430         POPCOUNT.
10431
10432 2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
10433
10434         * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
10435         directive for the current vector ABI.
10436
10437 2007-08-15  Steve Ellcey  <sje@cup.hp.com>
10438
10439         PR target/32963
10440         * caller-save.c (reg_save_code): Set invalide status on restore code.
10441         
10442 2007-08-15  Diego Novillo  <dnovillo@google.com>
10443
10444         * tree-ssa-alias.c (compute_memory_partitions): Use
10445         alias_bitmap_obstack to allocate bitmaps.
10446         (reset_alias_info): Factor out of init_alias_info.
10447         Mark all name tags not associated to an SSA name for renaming.
10448         (init_alias_info): Call it.
10449         (create_name_tags): Tidy.  Add comments.
10450         (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
10451
10452 2007-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
10453
10454         * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
10455         scheduler dependencies.
10456
10457 2007-08-15  Rask Ingemann Lambertsen  <rask@sygehus.dk>
10458
10459         * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
10460         "register_operand".
10461         (*iorsi_1_zext): Likewise.
10462         (*iorsi_1_zext_imm): Likewise.
10463         * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
10464         with "rm"/"xm" constraint.
10465         (sse2_vmsqrtv2df2): Likewise.
10466
10467 2007-08-15  Jakub Jelinek  <jakub@redhat.com>
10468
10469         PR middle-end/33074
10470         * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
10471         REG_LIBCALL note.
10472
10473 2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
10474
10475         * tree-pass.h (PROP_pta): Removed.
10476         (TODO_rebuild_alias): New.
10477         (pass_may_alias): Removed.
10478         * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
10479         aliasing if we changed something.
10480         * tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
10481         SSA internally.
10482         (pass_may_alias): Removed.
10483         (create_structure_vars): Return TODO_rebuild_alias.
10484         * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
10485         * tree-sra.c (tree_sra): Only rebuild aliasing if something
10486         changed.
10487         (tree_sra_early): We never affect aliasing right now.
10488         * tree-flow.h (compute_may_aliases): New prototype.
10489         * passes.c: Remove pass_may_alias from the passes.
10490         (execute_function_todo): Support TODO_rebuild_alias.    
10491
10492 2007-08-14  Kai Tietz  <kai.tietz@onevision.com>
10493
10494         * i386.c: (legitimize_address): Move dllimported variable check
10495         infront of legitimizing pic address of CONST symbols.
10496
10497 2007-08-14  Steve Ellcey  <sje@cup.hp.com>
10498
10499         PR tree-optimization/32941
10500         * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
10501         (goto_queue_cmp): Remove.
10502         (find_goto_replacement): Change search method.
10503         (maybe_record_in_goto_queue): Add assert.
10504         (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
10505         * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
10506
10507 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10508
10509         * alias.c (component_uses_parent_alias_set): Constify.
10510         * alias.h (component_uses_parent_alias_set): Likewise.
10511         * cfgrtl.c (print_rtl_with_bb): Likewise.
10512         * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
10513         mpz_get_double_int): Likewise.
10514         * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
10515         mpz_get_double_int): Likewise.
10516         * expr.c (is_aligning_offset, undefined_operand_subword_p,
10517         mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
10518         Likewise.
10519         * expr.h (safe_from_p): Likewise.
10520         * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
10521         Likewise.
10522         * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
10523         zero_sized_type, goa_lhs_expr_p): Likewise.
10524         * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
10525         * rtl.h (print_rtl_with_bb): Likewise.
10526         * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
10527         * tree-cfg.c (const_first_stmt, const_last_stmt): New.
10528         * tree-flow-inline.h (bb_stmt_list): Constify.
10529         (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
10530         cbsi_stmt): New.
10531         * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
10532         const_first_stmt, const_last_stmt): New.
10533         (block_may_fallthru, empty_block_p): Constify.
10534         * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
10535         EXPR_ONLY_BODY): New.
10536         (expr_first, expr_last, expr_only): Use macro for body.
10537         (const_expr_first, const_expr_last, const_expr_only): New.
10538         * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
10539         ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
10540         ctsi_prev, ctsi_stmt): New.
10541         * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
10542         * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
10543         * tree-ssa-loop-niter.c (loop_only_exit_p,
10544         derive_constant_upper_bound): Likewise.
10545         * tree-ssa-phiopt.c (empty_block_p): Likewise.
10546         * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
10547         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
10548         * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
10549         * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
10550         * tree.c (get_type_static_bounds): Likewise.
10551         * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
10552         (get_type_static_bounds): Constify.
10553
10554 2007-08-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
10555
10556         PR target/30315
10557         * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
10558         * config/i386/i386.md (plusminus)(addsub)(SWI): New.
10559         (*<addsub><mode>3_cc_overflow): New.
10560         (*add<mode>3_cconly_overflow): New.
10561         (*sub<mode>3_cconly_overflow): New.
10562         (*<addsub>si3_zext_cc_overflow): New.
10563         * config/i386/predicates.md (fcmov_comparison_operator): Accept
10564         CCCmode for LTU, GTU, LEU and GEU.
10565         (ix86_comparison_operator): Likewise.
10566         (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
10567         * config/i386/i386.c (put_condition_code): Support CCCmode.
10568         (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
10569         or MINUS expressions.
10570
10571 2007-08-14  Andrew Pinski  <pinskia@gmail.com>
10572
10573         PR c/30428
10574         * c-typeck.c (build_binary_op): Disallow vector float types with
10575         BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
10576
10577 2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
10578
10579         * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
10580         (DEP_KIND): Rename to DEP_TYPE.  Update all uses.
10581         (dep_def): New typedef.
10582         (init_dep_1, sd_debug_dep): Declare functions.
10583         (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
10584         (debug_dep_links): Remove.
10585         (struct _deps_list): New field 'n_links'.
10586         (DEPS_LIST_N_LINKS): New macro.
10587         (FOR_EACH_DEP_LINK): Remove.
10588         (create_deps_list, free_deps_list, delete_deps_list): Remove
10589         declaration.
10590         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
10591         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
10592         (copy_deps_list_change_con, move_dep_link): Ditto.
10593         (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
10594         and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
10595         'dep_count'.
10596         (INSN_BACK_DEPS): Remove.
10597         (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
10598         New macros.
10599         (INSN_DEP_COUNT): Remove.
10600         (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
10601         (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
10602         Declare global variables.
10603         (deps_pools_are_empty_p, sched_free_deps): Declare functions.
10604         (add_forw_dep, compute_forward_dependences): Remove declarations.
10605         (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
10606         (add_back_forw_dep, delete_back_forw_dep): Ditto.
10607         (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
10608         functions.
10609         (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
10610         New constants.
10611         (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
10612         (sd_list_types_def): New typedef.
10613         (sd_next_list): Declare function.
10614         (struct _sd_iterator): New type.
10615         (sd_iterator_def): New typedef.
10616         (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
10617         functions.
10618         (FOR_EACH_DEP): New cycle wrapper.
10619         (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
10620         Declare functions.
10621         (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
10622         (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
10623         Ditto.
10624
10625         * sched-deps.c (init_dep_1): Make global.
10626         (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
10627         constants.
10628         (dump_dep): New static function.
10629         (dump_dep_flags): New static variable.
10630         (sd_debug_dep): New function.
10631         (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
10632         the list.
10633         (move_dep_link): Use remove_from_deps_list (), instead of
10634         detach_dep_link ().
10635         (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
10636         (dep_link_is_detached_p): New static function.
10637         (deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
10638         instead.
10639         (dn_pool, dl_pool): New alloc_pools.
10640         (dn_pool_diff, dl_pool_diff): New static variables.
10641         (create_dep_node, delete_dep_node): New static function.
10642         (create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
10643         (deps_list_empty_p): Make it static.  Use 'n_links' field.
10644         (deps_pools_are_empty_p): New static function.
10645         (alloc_deps_list, delete_deps_list): Remove.
10646         (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
10647         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
10648         (copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
10649         (forward_dependency_cache): Remove.
10650         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
10651         'back' from the names.  Change signature to use dep_t instead of
10652         equivalent quad.
10653         (add_back_dep): Ditto.  Make global.
10654         (check_dep_status): Rename to check_dep ().
10655         (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
10656         New functions.
10657         (sd_finish_insn): Ditto.
10658         (sd_find_dep_between_no_cache): New static function.
10659         (sd_find_dep_between): New function.
10660         (ask_dependency_caches, set_dependency_caches): New static functions.
10661         (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
10662         (add_or_update_dep_1): Separate pieces of functionality into
10663         ask_dependency_caches (), update_dependency_caches (),
10664         change_spec_dep_to_hard (), update_dep ().
10665         (get_back_and_forw_lists): New static function.
10666         (sd_add_dep): Separate setting of dependency caches into
10667         set_dependency_caches ().
10668         (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
10669         New functions.
10670         (sd_delete_dep): Ditto.
10671         (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
10672         (dump_lists): New static function.
10673         (sd_debug_lists): New debug function.
10674         (delete_all_dependences, fixup_sched_groups): Update to use
10675         sd_* infrastructure.
10676         (sched_analyze_2): Create data-speculative dependency only if
10677         data-speculation is enabled.
10678         (sched_analyze_insn): If insn cannot be speculative, make all its
10679         dependencies non-speculative.
10680         (sched_analyze): Use sd_init_insn ().
10681         (add_forw_dep, compute_forward_dependencies): Remove.
10682         (delete_dep_nodes_in_back_deps): New static function.
10683         (sched_free_deps): New function.
10684         (init_dependency_caches): Init alloc_pools.
10685         (extend_depedency_caches): Update after removing of
10686         forward_dependency_cache.
10687         (free_dependency_caches): Ditto.  Free alloc_pools.
10688         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
10689         (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
10690         Ditto.
10691         (add_back_forw_dep, delete_back_forw_dep): Ditto.
10692         (add_dependence): Use init_dep ().
10693         (get_dep_weak_1): New static function.
10694         (get_dep_weak): Move logic to get_dep_weak_1 ().
10695         (dump_ds): New static function moved from haifa-sched.c:
10696         debug_spec_status ().
10697         (debug_ds): New debug function.
10698         (check_dep_status): Rename to check_dep ().  Update to check whole
10699         dependencies.
10700
10701         * haifa-sched.c (spec_info): Make global.
10702         (added_recovery_block_p): Rename to
10703         'haifa_recovery_block_was_added_during_current_schedule_block_p'.
10704         (haifa_recovery_block_was_added_during_scheduling_p): New variable.
10705         (dep_cost, priority, rank_for_schedule, schedule_insn): Update
10706         to use new interfaces.
10707         (ok_for_early_queue_removal): Ditto.
10708         (schedule_block): Initialize logical uids of insns emitted by the
10709         target.
10710         (sched_init): Initialize new variable.
10711         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
10712         interfaces.
10713         (extend_global): Initialize insn data.
10714         (init_h_i_d): Remove code that is now handled in sd_init_insn ().
10715         (process_insn_forw_deps_be_in_spec): Change signature.  Update to use
10716         new interfaces.
10717         (add_to_speculative_block): Update to use new interfaces.
10718         (create_recovery_block): Set new variables.
10719         (create_check_block_twin, fix_recovery_deps): Update to use new
10720         interfaces.
10721         (sched_insn_is_legitimate_for_speculation_p): New function.
10722         (speculate_insn): Move checking logic to
10723         sched_insn_is_legitimate_for_speculation_p ().
10724         (sched_remove_insn): Finalize sched-deps information of instruction.
10725         (clear_priorities, add_jump_dependencies): Update to use new
10726         interfaces.
10727         (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
10728         
10729         * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
10730         to use new interfaces.
10731         (is_conditionally_protected, is_pfree, is_prisky) Ditto.
10732         (new_ready): Try to use control speculation only if it is available.
10733         (add_branch_dependences): Update to use new interfaces.
10734         (compute_block_backward_dependences): Rename to
10735         compute_block_dependences ().  Call
10736         targetm.sched.dependencies_evaluation_hook ().
10737         (free_block_dependencies): New static function.
10738         (debug_dependencies): Update to use new interfaces.
10739         (schedule_region): Remove separate computation of forward dependencies.
10740         Move call of targetm.sched.dependencies_evaluation_hook () to
10741         compute_block_dependences ().  Free dependencies at the end of
10742         scheduling the region.
10743
10744         * sched-ebb.c (earliest_block_with_similiar_load): Update to use
10745         new interfaces.
10746         (add_deps_for_risky_insns): Ditto.
10747         (schedule_ebb): Remove separate computation of forward dependencies.
10748         Free dependencies at the end of scheduling the ebb.
10749
10750         * ddg.c (create_ddg_dependence): Update to use new interfaces.
10751         (build_intra_loop_deps): Ditto.  Remove separate computation of
10752         forward dependencies.  Free sched-deps dependencies.
10753
10754         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
10755         to use new interfaces.
10756         (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
10757
10758         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
10759         new interfaces.
10760         (is_costly_group): Ditto.
10761
10762 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10763
10764         * alias.c (rtx_equal_for_memref_p): Constify.
10765         * basic-block.h (const_edge, const_basic_block): New.
10766         (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
10767         single_pred_p, single_succ_edge, single_pred_edge, single_succ,
10768         single_pred, maybe_hot_bb_p, probably_cold_bb_p,
10769         probably_never_executed_bb_p, edge_probability_reliable_p,
10770         br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
10771         inside_basic_block_p, control_flow_insn_p, dominated_by_p):
10772         Likewise.
10773         * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
10774         * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
10775         Likewise.
10776         * cfganal.c (flow_active_insn_p, forwarder_block_p,
10777         flow_nodes_print, dfs_enumerate_from): Likewise.
10778         * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
10779         control_flow_insn_p, count_basic_blocks): Likewise.
10780         * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
10781         get_loop_body_with_size, loop_exit_edge_p): Likewise.
10782         * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
10783         average_num_loop_insns, loop_exit_edge_p,
10784         just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
10785         * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
10786         average_num_loop_insns, seq_cost): Likewise.
10787         * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
10788         * dominance.c (dominated_by_p): Likewise.
10789         * emit-rtl.c (validate_subreg): Likewise.
10790         * except.c (can_throw_internal, can_throw_external): Likewise.
10791         * except.h (can_throw_internal, can_throw_external): Likewise.
10792         * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
10793         oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
10794         compute_transp, load_killed_in_block_p, reg_killed_on_edge,
10795         simple_mem, store_ops_ok, load_kills_store, find_loads,
10796         store_killed_in_insn, store_killed_after, store_killed_before,
10797         gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
10798         Likewise.
10799         * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
10800         noce_mem_write_may_trap_or_fault_p): Likewise.
10801         * pointer-set.c (pointer_set_contains, pointer_map_contains):
10802         Likewise.
10803         * pointer-set.h (pointer_set_contains, pointer_map_contains):
10804         Likewise.
10805         * predict.c (can_predict_insn_p, maybe_hot_bb_p,
10806         probably_cold_bb_p, probably_never_executed_bb_p,
10807         edge_probability_reliable_p, br_prob_note_reliable_p,
10808         can_predict_insn_p): Likewise.
10809         * regclass.c (reg_set_to_hard_reg_set): Likewise.
10810         * resource.c (return_insn_p): Likewise.
10811         * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
10812         Likewise.
10813         * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
10814         * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
10815         * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
10816         verify_gimple_modify_stmt): Likewise.
10817         * tree-chrec.c (is_not_constant_evolution,
10818         is_multivariate_chrec_rec, is_multivariate_chrec,
10819         chrec_contains_symbols, chrec_contains_undetermined,
10820         tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
10821         evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
10822         eq_evolutions_p, scev_direction): Likewise.
10823         * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
10824         eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
10825         chrec_contains_symbols_defined_in_loop,
10826         chrec_contains_undetermined, tree_contains_chrecs,
10827         evolution_function_is_affine_multivariate_p,
10828         evolution_function_is_univariate_p, chrec_zerop,
10829         evolution_function_is_constant_p, evolution_function_is_affine_p,
10830         evolution_function_is_affine_or_constant_p,
10831         tree_does_not_contain_chrecs, chrec_type): Likewise.
10832         * tree-data-ref.c (tree_fold_divides_p,
10833         object_address_invariant_in_loop_p, dr_may_alias_p,
10834         ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
10835         same_access_functions, constant_access_functions,
10836         access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
10837         Likewise.
10838         * tree-flow.h (scev_direction): Likewise.
10839         * tree-gimple.c (is_gimple_stmt): Likewise.
10840         * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
10841         Likewise.
10842         * tree-pretty-print.c (op_prio): Likewise.
10843         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
10844         analyzable_condition, backedge_phi_arg_p): Likewise.
10845         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
10846         * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
10847         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
10848         Likewise.
10849
10850 2007-08-13  Dan Hipschman  <dsh@google.com>
10851
10852         PR c/32953
10853         * c-format.c (check_format_arg): Move check for zero-length
10854         format strings below the check for unterminated strings.
10855
10856 2007-08-13  Andrew Pinski  <pinskia@gmail.com>
10857
10858         PR C/30427
10859         * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
10860         types.
10861
10862 2007-08-13  Nick Clifton  <nickc@redhat.com>
10863
10864         * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
10865
10866 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10867
10868         PR fortran/32860
10869         * c-format.c (gcc_gfc_length_specs): New array.
10870         (gcc_gfc_char_table): Add unsigned specifier, and references to
10871         the l length modifier.
10872         (format_types_orig): Use the new gcc_gfc_length_specs.
10873
10874 2007-08-12  Sa Liu  <saliu@de.ibm.com>
10875
10876         * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
10877         and with REG_RETVAL note after split.
10878
10879 2007-08-11  David Daney  <ddaney@avtrex.com>
10880
10881         * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
10882         as ATTRIBUTE_UNUSED.
10883
10884 2007-08-11  David Edelsohn  <edelsohn@gnu.org>
10885             Segher Boessenkool  <segher@kernel.crashing.org>
10886
10887         * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
10888         HAVE_LOCAL_CPU_DETECT not defined.
10889
10890 2007-08-11  Jan Hubicka  <jh@suse.cz>
10891
10892         * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
10893         (cgraph_process_new_functions): Honor previous value of
10894         disregard_inline_limits.
10895         * ipa-inline.c (compute_inline_parameters): Likewise.
10896
10897 2007-08-11  Ian Lance Taylor  <iant@google.com>
10898
10899         * alias.h (alias_set_type): Define new type.
10900         (ALIAS_SET_MEMORY_BARRIER): Use it.
10901         * rtl.h: Include alias.h.
10902         (struct mem_attrs): Use alias_set_type.
10903         * tree.h: Include alias.h
10904         (struct tree_type): Use alias_set_type.
10905         (struct tree_struct_field_tag): Likewise.
10906         (struct tree_decl_common): Likewise.
10907         * alias.c (struct alias_set_entry): Use alias_set_type.
10908         (get_alias_set_entry, alias_set_subset_of): Likewise.
10909         (alias_sets_conflict_p): Likewise.
10910         (alias_sets_must_conflict_p): Likewise.
10911         (objects_must_conflict_p): Likewise.
10912         (get_alias_set, new_alias_set): Likewise.
10913         (record_alias_subset, record_component_aliases): Likewise.
10914         (varargs_set, frame_set): Change to alias_set_type.
10915         (get_varargs_alias_set): Use alias_set_type.
10916         (get_frame_alias_set): Likewise.
10917         * builtins.c (setjmp_alias_set): Change to alias_set_type.
10918         * dse.c (struct store_info): Use alias_set_type.
10919         (struct read_info, struct clear_alias_mode_holder): Likewise.
10920         (clear_alias_set_lookup, canon_address): Likewise.
10921         (record_store, check_mem_read_rtx): Likewise.
10922         (dse_record_singleton_alias_set): Likewise.
10923         (dse_invalidate_singleton_alias_set): Likewise.
10924         * emit-rtl.c (get_mem_attrs): Likewise.
10925         (set_mem_attributes_minus_bitpos): Likewise.
10926         (set_mem_alias_set): Likewise.
10927         * expr.c (store_constructor_field, store_field): Likewise.
10928         * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
10929         * langhooks.c (lhd_get_alias_set): Likewise.
10930         * langhooks-def.h (lhd_get_alias_set): Likewise.
10931         * reload1.c (alter_reg): Likewise.
10932         * tree-flow.h (struct fieldoff): Likewise.
10933         * tree-ssa-alias.c (struct alias_map_d): Likewise.
10934         (may_alias_p, get_smt_for, create_sft): Likewise.
10935         * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
10936         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
10937         (merge_smts_into): Likewise.
10938         * varasm.c (const_alias_set): Likewise.
10939         * c-common.c (strict_aliasing_warning): Likewise.
10940         (c_common_get_alias_set): Likewise.
10941         * dse.h (dse_record_singleton_alias_set): Update declaration.
10942         (dse_invalidate_singleton_alias_set): Likewise.
10943         * emit-rtl.h (set_mem_alias_set): Likewise.
10944         * c-common.h (c_common_get_alias_set): Likewise.
10945         * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
10946         * print-tree.c (print_node): Likewise.
10947         * config/alpha/alpha.c (alpha_sr_alias_set): Change to
10948         alias_set_type.
10949         (alpha_setup_incoming_varargs): Use alias_set_type.
10950         * config/i386/i386.c (setup_incoming_varargs_64): Use
10951         alias_set_type.
10952         (setup_incoming_varargs_ms_64): Likewise.
10953         (ix86_GOT_alias_set): Likewise.
10954         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10955         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
10956         (set): Change to alias_set_type.
10957         (get_TOC_alias_set): Use alias_set_type.
10958         * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
10959         declaration.
10960         * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
10961         * config/sparc/sparc.c (sparc_sr_alias_set): Change to
10962         alias_set_type.
10963         (struct_value_alias_set): Likewise.
10964         * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
10965
10966 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
10967
10968         * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
10969         * config/vxworks.h (TARGET_VXWORKS): Override.
10970         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
10971         "mips" if TARGET_VXWORKS.
10972
10973 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
10974
10975         * calls.c (avoid_likely_spilled_reg): New function.
10976         (expand_call): Use it.
10977
10978 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10979
10980         * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
10981
10982 2007-08-10  Adam Nemet  <anemet@caviumnetworks.com>
10983
10984         * config/mips/predicates.md (const_call_insn_operand): Invoke
10985         SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
10986
10987 2007-08-10  David Edelsohn  <edelsohn@gnu.org>
10988
10989         PR target/33042
10990         * config/rs6000/driver-rs6000.c: Include link.h.
10991         Use ElfW instead of wordsize-specif typedef.
10992
10993 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10994
10995         * system.h (CONST_CAST): New.
10996         * c-decl.c (c_make_fname_decl): Use it.
10997         * c-lex.c (cb_ident, lex_string): Likewise.
10998         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
10999         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
11000         give_switch, set_multilib_dir): Likewise.
11001         * gengtype-parse.c (string_seq, typedef_name): Likewise.
11002         * passes.c (execute_one_pass): Likewise.
11003         * prefix.c (update_path): Likewise.
11004         * pretty-print.c (pp_base_destroy_prefix): Likewise.
11005         * tree.c (build_string): Likewise.
11006
11007 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
11008
11009         * tree-flow-inline.h (is_exec_stmt): Remove.
11010         (is_label_stmt): Remove.
11011         * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
11012         is_label_stmt.
11013
11014 2007-08-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11015
11016         * lower-subreg.c (resolve_shift_zext): Don't adjust
11017         src_reg_num for wordmode operands.
11018
11019 2007-08-10  Sandra Loosemore  <sandra@codesourcery.com>
11020             David Ung  <davidu@mips.com>
11021
11022         * config/mips/mips.c (TARGET_SCHED_INIT): Define.
11023         (TARGET_SCHED_REORDER2): Define.
11024         (mips_maybe_swap_ready): New.
11025         (mips_last_74k_agen_insn): New.
11026         (mips_74k_agen_init): New.
11027         (mips_74k_agen_reorder): New function to group loads and stores
11028         in the ready queue.
11029         (mips_sched_init): New.  
11030         (mips_sched_reorder): Don't do initialization here.  Call
11031         mips_74k_agen_reorder.
11032         (mips_variable_issue): Call mips_74k_agen_init.
11033
11034 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
11035
11036         * tree-flow-inline.h (get_filename): Remove.
11037
11038 2007-08-10  Richard Sandiford  <richard@codesourcery.com>
11039
11040         * config/mips/mips-protos.h (mips_address_insns): Add a boolean
11041         argument.
11042         (mips_fetch_insns): Delete in favor of...
11043         (mips_load_store_insns): ...this new function.
11044         * config/mips/mips.c (mips_address_insns): Add a boolean argument
11045         to say whether multiword moves _might_ be split.
11046         (mips_fetch_insns): Delete in favor of...
11047         (mips_load_store_insns): ...this new function.
11048         (mips_rtx_costs): Update the call to mips_address_insns.
11049         (mips_address_cost): Likewise.
11050         * config/mips/mips.md (length): Use mips_load_store_insns instead
11051         of mips_fetch_insns.
11052         * config/mips/constraints.md (R): Use mips_address_insns rather
11053         than mips_fetch_insns.  Assume that the move never needs to be split.
11054
11055 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
11056
11057         * config/mips/mips.opt (mhard-float, msoft-float): Make these
11058         control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
11059         than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
11060         * config/mips/mips.h (mips16_hard_float): Delete.
11061         (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
11062         definitions, and replace with....
11063         (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
11064         * config/mips/mips.c (mips16_hard_float): Delete.  Replace
11065         all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
11066         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
11067         (override_options): Replace MASK_SOFT_FLOAT references with
11068         MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
11069         and mips16_hard_float when TARGET_MIPS16.
11070         
11071 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11072
11073         PR c/32796
11074         * c-typeck.c (build_binary_op): Check for non pointer types before
11075         calling int_fits_type_p.
11076
11077 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11078
11079         PR middle-end/32813
11080         * fold-const.c (omit_one_operand): Return only the ommitted expression
11081         if the result is an empty statement.
11082         (pedantic_omit_one_operand): Likewise.
11083
11084 2007-08-09  Daniel Berlin  <dberlin@dberlin.org>
11085
11086         * c-typeck.c (readonly_error): Improve error for assignment.
11087         
11088         * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
11089         expression. 
11090         (pp_c_expression): Ditto.
11091
11092 2007-08-09  Simon Baldwin  <simonb@google.com>
11093
11094         * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
11095         break that was preventing simplify_associative_operation() for xor.
11096
11097 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
11098             Nigel Stephens  <nigel@mips.com>
11099
11100         * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
11101         Document change in interpretation of value from boolean to
11102         tri-state integer.
11103         * optabs.c (expand_ffs, expand_ctz): New functions to compute
11104         ffs and ctz using clz.
11105         (expand_unop): Call them.
11106         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
11107         result value.
11108         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
11109         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
11110         enable the new ffs expansion on this target.
11111
11112 2007-08-09  Jan Hubicka  <jh@suse.cz>
11113
11114         * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
11115         (expand_ternary_op): Likewise.
11116         (expand_vec_shift_expr): Likewise.
11117         (expand_binop_directly): Likewise.
11118         (expand_binop): Likewise.
11119         (sign_expand_binop): Likewise.
11120         (expand_twoval_unop): Likewise.
11121         (expand_twoval_binop): Likewise.
11122         (expand_twoval_binop_libfunc): Likewise.
11123         (widen_clz): Likewise.
11124         (widen_bswap): Likewise.
11125         (expand_parity): Likewise.
11126         (expand_unop): Likewise.
11127         (expand_abs_nojump): Likewise.
11128         (expand_copysign): Likewise.
11129         (emit_no_conflict_block): Likewise.
11130         (emit_libcall_block): Likewise.
11131         (can_compare_p): Likewise.
11132         (prepare_cmp_insn): Likewise.
11133         (emit_cmp_and_jump_insn_1): Likewise.
11134         (prepare_float_lib_cmp): Likewise.
11135         (emit_conditional_add): Likewise.
11136         (gen_add2_insn): Likewise.
11137         (have_add2_insn): Likewise.
11138         (gen_sub2_insn): Likewise.
11139         (have_sub2_insn): Likewise.
11140         (can_extend_p): Likewise.
11141         (can_fix_p): Likewise.
11142         (can_float_p): Likewise.
11143         (expand_float): Likewise.
11144         (expand_fix): Likewise.
11145         (expand_sfix_optab): Likewise.
11146         (new_optab): Likewise.
11147         (new_convert_optab): Likewise.
11148         (init_libfuncs): Likewise.
11149         (init_interclass_conv_libfuncs): Likewise.
11150         (init_intraclass_conv_libfuncs): Likewise.
11151         (set_conv_libfunc): Likewise.
11152         (init_optabs): Likewise.
11153         (debug_optab_libfuncs): Likewise.
11154         (gen_cond_trap): Likewise.
11155         * optabs.h (optab_handler, convert_optab_hanlder): New.
11156         * genopinit.c: Update optabs generation table.
11157         * reload.c (find_reloads_address_1): Use optabs accestors.
11158         * builtins.c (expand_builtin_mathfn): Likewise.
11159         (expand_builtin_mathfn_2): Likewise.
11160         (expand_builtin_mathfn_3): Likewise.
11161         (expand_builtin_interclass_mathfn): Likewise.
11162         (expand_builtin_sincos): Likewise.
11163         (expand_builtin_cexpi): Likewise.
11164         (expand_builtin_powi): Likewise.
11165         (expand_builtin_strlen): Likewise.
11166         * dojump.c (do_jump): Likewise.
11167         * expr.c (convert_move): Likewise.
11168         (move_by_pieces): Likewise.
11169         (move_by_pieces_ninsns): Likewise.
11170         (can_store_by_pieces): Likewise.
11171         (store_by_pieces_1): Likewise.
11172         (emit_move_via_integer): Likewise.
11173         (emit_move_complex): Likewise.
11174         (emit_move_ccmode): Likewise.
11175         (emit_move_insn_1): Likewise.
11176         (emit_single_push_insn): Likewise.
11177         (store_constructor): Likewise.
11178         (expand_expr_real_1): Likewise.
11179         (do_store_flag): Likewise.
11180         * ada/misc.c (gnat_compute_largest_alignment): Likewise.
11181         (enumerate_modes): Likewise.
11182         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
11183         (supportable_widening_operation): Likewise.
11184         (supportable_narrowing_operation): Likewise.
11185         * expmed.c (store_bit_field_1): Likewise.
11186         (extract_bit_field_1): Likewise.
11187         (expand_mult_highpart_optab): Likewise.
11188         (expand_smod_pow2): Likewise.
11189         (expand_divmod): Likewise.
11190         (emit_store_flag): Likewise.
11191         * tree-vect-patterns.c
11192         (vect_pattern_recog_1): Likewise.
11193         * tree-ssa-loop-prefetch.c
11194         (nontemporal_store_p): Likewise.
11195         * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
11196         (vect_create_epilog_for_reduction): Likewise.
11197         (vectorizable_reduction): Likewise.
11198         (vectorizable_operation): Likewise.
11199         (vect_strided_store_supported): Likewise.
11200         (vectorizable_store): Likewise.
11201         (vect_strided_load_supported): Likewise.
11202         (vectorizable_load): Likewise.
11203         * combine.c (simplify_comparison): Likewise.
11204         * tree-vect-generic.c
11205         (type_for_widest_vector_mode): Likewise.
11206         (expand_vector_operations_1): Likewise.
11207         * config/spu/spu.c (spu_expand_mov): Likewise.
11208         (spu_emit_vector_compare): Likewise.
11209         * config/rs6000/rs6000.c
11210         (rs6000_emit_vector_compare): Likewise.
11211         * stmt.c (add_case_node): Likewise.
11212         * reload1.c (gen_reload):
11213
11214 2007-08-09  Michael Matz  <matz@suse.de>
11215
11216         * tree.h (fixed_zerop): Declare as taking a const_tree.
11217         * tree.c (fixed_zerop): Take a const_tree.
11218
11219 2007-08-09  Ira Rosen  <irar@il.ibm.com>
11220
11221         * tree-vect-transform.c (vectorizable_store): Remove call to
11222         copy_virtual_operands() and call mark_symbols_for_renaming() for
11223         the created vector store.
11224         (vect_setup_realignment): Don't call copy_virtual_operands() and
11225         update_vuses_to_preheader(). 
11226         (vectorizable_load): Don't call copy_virtual_operands(). 
11227         (update_vuses_to_preheader): Remove.
11228
11229 2007-08-08  Chao-ying Fu  <fu@mips.com>
11230
11231         * tree.def (FIXED_POINT_TYPE): New type.
11232         (FIXED_CST): New constant.
11233         (FIXED_CONVERT_EXPR): New expr.
11234         * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
11235         (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
11236         * tree.h (struct tree_base): Add saturating_flag.
11237         Remove one bit of spare for saturating_flag.
11238         (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
11239         (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
11240         FIXED_POINT_TYPE_P): Define.
11241         (TYPE_SATURATING): Define.
11242         (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
11243         (struct tree_fixed_cst): New.
11244         (TYPE_IBIT, TYPE_FBIT): Define.
11245         (tree_node): Add fixed_cst.
11246         (enum tree_index): Add new enumeration values of
11247         TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
11248         TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
11249         TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
11250         TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
11251         TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
11252         TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
11253         TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
11254         TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
11255         TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
11256         TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
11257         TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
11258         TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
11259         TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
11260         TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
11261         TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
11262         TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
11263         TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
11264         TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
11265         (sat_short_fract_type_node, sat_fract_type_node,
11266         sat_long_fract_type_node, sat_long_long_fract_type_node,
11267         sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
11268         sat_unsigned_long_fract_type_node,
11269         sat_unsigned_long_long_fract_type_node, short_fract_type_node,
11270         fract_type_node, long_fract_type_node, long_long_fract_type_node,
11271         unsigned_short_fract_type_node, unsigned_fract_type_node,
11272         unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
11273         sat_short_accum_type_node, sat_accum_type_node,
11274         sat_long_accum_type_node, sat_long_long_accum_type_node,
11275         sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
11276         sat_unsigned_long_accum_type_node,
11277         sat_unsigned_long_long_accum_type_node, short_accum_type_node,
11278         accum_type_node, long_accum_type_node, long_long_accum_type_node,
11279         unsigned_short_accum_type_node, unsigned_accum_type_node,
11280         unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
11281         qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
11282         uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
11283         utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
11284         sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
11285         sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
11286         sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
11287         ta_type_node, uha_type_node, usa_type_node, uda_type_node,
11288         uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
11289         sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
11290         sat_uda_type_node, sat_uta_type_node): New macro.
11291         (make_fract_type, make_accum_type): Declare.
11292         (make_signed_fract_type, make_unsigned_fract_type,
11293         make_sat_signed_fract_type, make_sat_unsigned_fract_type,
11294         make_signed_accum_type, make_unsigned_accum_type,
11295         make_sat_signed_accum_type, make_sat_unsigned_accum_type,
11296         make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
11297         make_or_reuse_sat_signed_fract_type,
11298         make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
11299         make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
11300         make_or_reuse_sat_unsigned_accum_type): New macro.
11301         (fixed_zerop): Declare.
11302         * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
11303         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
11304         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
11305         LONG_LONG_ACCUM_TYPE_SIZE): Define.
11306         * treestruct.def: Add TS_FIXED_CST.
11307         * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
11308         (tree.o): Likewise.
11309         (tree-dump.o): Likewise.
11310         (print-tree.o): Likewise.
11311         (tree-pretty-print.o): Likewise.
11312         (fold-const.o): Likewise.
11313         * tree-complex.c (some_nonzerop): Handle FIXED_CST.
11314         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
11315         (is_gimple_min_invariant): Handle FIXED_CST.
11316         * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
11317         MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
11318         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
11319         (layout_type): Handle FIXED_POINT_TYPE.
11320         (make_fract_type, make_accum_type): New functions.
11321         * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
11322         * tree-dump.c (fixed-value.h): New include.
11323         (dump_fixed): New function.
11324         (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
11325         * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
11326         (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
11327         * tree-pretty-print.c (fixed-value.h): New include.
11328         (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
11329         FIXED_CONVERT_EXPR.
11330         * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
11331         * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
11332         * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
11333         * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
11334         for non-saturating fixed-point types.
11335         (reassociate_bb): Likewise.
11336         * emit-rtl.c (fixed-value.h): New include.
11337         (fconst0, fconst1): New array.
11338         (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
11339         * tree-vect-generic.c expand_vector_operation): Support
11340         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
11341         MODE_VECTOR_UACCUM.
11342         (type_for_widest_vector_mode): Add one parameter for the 
11343         saturating flag.
11344         Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
11345         vector mode.
11346         Pass the satp parameter to type_for_mode for fixed-point types.
11347         (expand_vector_operations_1): Pass the saturating flag to
11348         type_for_widest_vector_mode.
11349         Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
11350         and MODE_VECTOR_UACCUM.
11351         * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
11352         (vectorizable_condition): Likewise.
11353         * tree.c (fixed-value.h): New include.
11354         (tree_code_size): Support FIXED_CST.
11355         (build_fixed): New function.
11356         (build_one_cst): Support FIXED_POINT_TYPE for accum types.
11357         (fixed_zerop): New function.
11358         (tree_node_structure): Support FIXED_CST.
11359         (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
11360         (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
11361         (type_hash_eq): Handle FIXED_POINT_TYPE.
11362         (simple_cst_equal): Support FIXED_CST.
11363         (iterative_hash_expr): Handle FIXED_CST.
11364         (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
11365         (get_narrower): Likewise.
11366         (variably_modified_type_p): Handle FIXED_POINT_TYPE.
11367         (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
11368         (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
11369         MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
11370         nodes.
11371         (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
11372         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
11373         (initializer_zerop): Support FIXED_CST.
11374         (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
11375         * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
11376         DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
11377         (is_base_type): Handle FIXED_POINT_TYPE.
11378         (add_type_attribute): Handle FIXED_POINT_TYPE.
11379         (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
11380         * print-tree.c (fixed-value.h): New include.
11381         (print_node_brief): Support FIXED_CST.
11382         (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
11383         * c-pretty-print.c (fixed-value.h): New include.
11384         (pp_c_type_specifier): Handle FIXED_POINT_TYPE.  Need to pass
11385         TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
11386         (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
11387         Support fixed-point types for inner items in VECTOR_TYPE.
11388         (pp_c_direct_declarator): Likewise.
11389         (pp_c_declarator): Likewise.
11390         (pp_c_fixed_constant): New function.
11391         (pp_c_constant): Handle FIXED_CST.
11392         (pp_c_primary_expression): Likewise.
11393         (pp_c_expression): Likewise.
11394         * fold-const.c (fixed-value.h): New include.
11395         (negate_expr_p): Return true for FIXED_CST.
11396         (fold_negate_expr): Support FIXED_CST.
11397         (split_tree): Support FIXED_CST.
11398         (const_binop): Support FIXED_CST.
11399         (fold_convert_const_int_from_fixed): New function to convert from
11400         fixed to int.
11401         (fold_convert_const_real_from_fixed): New function to convert from
11402         fixed to real.
11403         (fold_convert_const_fixed_from_fixed): New function to convert from
11404         fixed to another fixed.
11405         (fold_convert_const_fixed_from_int): New function to convert from
11406         int to fixed.
11407         (fold_convert_const_fixed_from_real): New function to convert from
11408         real to fixed.
11409         (fold_convert_const): Support conversions from fixed to int, from
11410         fixed to real, from fixed to fixed, from int to fixed, and from real
11411         to fixed.
11412         (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
11413         (operand_equal_p): Support FIXED_CST.
11414         (make_range): For fixed-point modes, we need to pass the
11415         saturating flag as the 2nd parameter.
11416         (tree_swap_operands_p): Handle FIXED_CST.
11417         (fold_plusminus_mult_expr): For fract modes, we cannot generate
11418         constant 1.
11419         (fold_unary): Support FIXED_CONVERT_EXPR.
11420         (fold_binary): Handle FIXED_CST.
11421         Make sure the type is not saturating, before associating operations.
11422         Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
11423         (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
11424         (fold_negate_const): Support FIXED_CST.
11425         (fold_relational_const): Support FIXED_CST.
11426         * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
11427         (gimplify_expr): Handle FIXED_CST.
11428         (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
11429         * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
11430         * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
11431         * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
11432         FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
11433         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
11434         LONG_LONG_ACCUM_TYPE_SIZE.
11435         * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
11436         * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
11437         * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
11438         * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
11439         MODE_ACCUM, and MODE_UACCUM.
11440         * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
11441         fixed-point types to disable reduction.
11442         * explow.c (promote_mode): Support FIXED_POINT_TYPE.
11443
11444 2007-08-08  David Edelsohn  <edelsohn@gnu.org>
11445
11446         * config/rs6000/x-rs6000: New file.
11447         * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
11448         * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
11449         (EXTRA_SPEC_FUNCTIONS): Define.
11450         (HAVE_LOCAL_CPU_DETECT): Define.
11451         (CC1_CPU_SPEC): Define.
11452         * config/rs6000/driver-rs6000.c: New file.
11453         * config/rs6000/aix.h (CC1_SPEC): Define.
11454         * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
11455         * config.host: Add x-rs6000 to host_xmake_file if host and target
11456         are rs6000 or powerpc.
11457
11458 2007-08-08  Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
11459
11460         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
11461
11462 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
11463             Sandra Loosemore  <sandra@codesourcery.com>
11464             Chao-ying Fu  <fu@mips.com>
11465             Nigel Stephens  <nigel@mips.com>
11466             David Ung  <davidu@mips.com>
11467
11468         * doc/invoke.texi (-mcode-readable): Document.
11469         * config/mips/mips.opt (mcode-readable): New option.
11470         * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
11471         * config/mips/mips.h (mips_code_readable_setting): New enum.
11472         (mips_code_readable): Declare.
11473         (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
11474         (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
11475         (JUMP_TABLES_IN_TEXT_SECTION): Use it.
11476         (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise.  Remove
11477         boiler-plate comments.
11478         (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
11479         * config/mips/mips.c (mips_code_readable): New variable.
11480         (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
11481         MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES.  Use both the
11482         context and -mcode-readable setting to restrict the use of
11483         SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
11484         Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
11485         (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
11486         (mips_blocks_for_constant_p): Only return false for
11487         TARGET_MIPS16_PCREL_LOADS.
11488         (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
11489         for MIPS16.  Handle SYMBOL_32_HIGH.
11490         (mips_const_insns): Allow HIGHs for MIPS16 too.
11491         (mips_unspec_address_offset): New function, split out from...
11492         (mips_unspec_address): ...here.
11493         (mips_output_move): Handle MIPS16 HIGH moves.  Use "li" to load
11494         16-bit symbolic constants.  Assert approropiate conditions for
11495         using the "la" and "dla" macros.
11496         (mips_handle_option): Handle -mcode-readable=.
11497         (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
11498         Set up mips_lo_relocs[SYMBOL_32_HIGH].
11499         (mips_strip_unspec_address): New function, split out from...
11500         (print_operand_reloc): ...here.
11501         (print_operand): Pass constants through mips_strip_unspec_address.
11502         (print_operand_address): Likewise.
11503         (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
11504         (mips_select_rtx_section): Remove MIPS16 handling.
11505         (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
11506         (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
11507         (mips16_lay_out_constants): Do nothing unless
11508         TARGET_MIPS16_PCREL_LOADS.
11509         (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
11510         * config/mips/mips.md: Split HIGHs for MIPS16.
11511         (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
11512
11513 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
11514
11515         * config/mips/mips-protos.h (mips_emit_move): Declare.
11516         * config/mips/mips.c (mips_emit_move): New function.
11517         (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
11518         (mips_legitimize_const_move): Likewise.
11519         (mips_legitimize_move): Likewise.
11520         (mips_split_64bit_move): Likewise.
11521         (mips_restore_gp): Likewise.
11522         (mips_load_call_address): Likewise.
11523         (mips_emit_fcc_reload): Likewise.
11524         (mips_set_return_address): Likewise.
11525         (mips_block_move_straight): Likewise.
11526         (mips_block_move_loop): Likewise.
11527         (mips_setup_incoming_varargs): Likewise.
11528         (mips_save_reg): Likewise.
11529         (mips_expand_prologue): Likewise.
11530         (mips_restore_reg): Likewise.
11531         (mips_expand_epilogue): Likewise.
11532         (mips_output_mi_thunk): Likewise.
11533         (build_mips16_call_stub): Likewise.
11534         (mips_builtin_branch_and_move): Likewise.
11535         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
11536         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
11537         (fixuns_truncdfdi2): Likewise.
11538         (fixuns_truncsfsi2): Likewise.
11539         (fixuns_truncsfdi2): Likewise.
11540         (loadgp_absolute): Likewise.
11541         (builtin_setjmp_setup): Likewise.
11542         (builtin_longjmp): Likewise.
11543         (untyped_call): Likewise.
11544
11545 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
11546
11547         * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
11548         an "rtx *" argument.  Return a bool.
11549         * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
11550         values and return true if they can be split.  Take the same kind of
11551         mode argument as mips_symbol_insns.  Add a "lo_sum_out" parameter
11552         and store the lo_sum there if nonnull.  Use the symbol type to
11553         determine whether a $gp or HIGH is needed.
11554         (mips_legitimize_address): Update call to mips_split_symbol and
11555         simplify accordingly.
11556         (mips_legitimize_const_move): Likewise.
11557         * config/mips/mips.md: In the combine define_split,
11558         check mips_split_symbol instead of splittable_symbolic_operand.
11559         Update use of mips_split_symbol in the generator code.
11560         * config/mips/predicates.md (splittable_symbolic_operand): Delete.
11561
11562 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
11563
11564         * config/mips/mips.c (mips_symbolic_address_p): Delete.
11565         (mips_symbol_insns_1): New function, split out from...
11566         (mips_symbol_insns): ...here.  Take a mode argument.  Treat loads
11567         and stores separately from load addresses.
11568         (mips_classify_address): Replace uses of mips_symbolic_address_p
11569         with uses of mips_symbol_insns.
11570         (mips_address_insns): Update calls to mips_symbol_insns.
11571         (mips_const_insns): Likewise.
11572         (mips_legitimize_address): Likewise.
11573
11574 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
11575
11576         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
11577         * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
11578         block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
11579         Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
11580         non-call contexts if TARGET_MIPS16.
11581         (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
11582         (mips_symbolic_address_p): Likewise.  Remove special TARGET_MIPS16
11583         code for SYMBOL_ABSOLUTE.
11584         (mips_symbol_insns): Likewise.
11585
11586 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
11587
11588         * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
11589         * config/mips/mips.c (mips_classify_symbol): Take a context argument.
11590         (mips_symbolic_constant_p): Likewise.  Update the call to
11591         mips_classify_symbol.
11592         (mips_classify_address): Update the calls to mips_symbolic_constant_p.
11593         (mips_const_insns): Likewise.  Update the call to mips_classify_symbol.
11594         (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
11595         (print_operand_reloc): Add a context argument.  Update the call to
11596         mips_symbolic_constant_p.
11597         (print_operand): Update the calls to print_operand_reloc.
11598         (print_operand_address): Use print_operand_reloc rather than
11599         print_operand.
11600         (mips_rewrite_small_data_p): Add a context argument.  Update the call
11601         to mips_symbolic_constant_p.
11602         (mips_small_data_pattern_1): Make DATA the containing mem.
11603         Update the call to mips_rewrite_small_data_p.
11604         (mips_rewrite_small_data_1): Likewise.
11605         (mips_use_anchors_for_symbol_p): Update the call to
11606         mips_symbolic_constant_p.
11607         * config/mips/predicates.md (const_call_insn_operand): Likewise.
11608         (splittable_symbolic_operand): Likewise.
11609         (move_operand): Likewise.
11610         (absolute_symbolic_operand): Likewise.
11611         (got_disp_operand): Likewise.
11612         (got_page_ofst_operand): Likewise.
11613
11614 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
11615
11616         * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
11617         (SYMBOL_ABSOLUTE): ...this.
11618         (SYMBOL_SMALL_DATA): Rename to...
11619         (SYMBOL_GP_RELATIVE): ...this.
11620         (SYMBOL_CONSTANT_POOL): Rename to...
11621         (SYMBOL_PC_RELATIVE): ...this.
11622         * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
11623         (mips_symbolic_address_p, mips_symbol_insns, override_options)
11624         (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
11625         after above changes.
11626         * config/mips/predicates.md (const_call_insn_operand): Likewise.
11627         (general_symbolic_operand): Rename to...
11628         (absolute_symbolic_operand): ...this.
11629         * config/mips/mips.md: Update after above changes.
11630
11631 2007-08-08  Vladimir Yanovsky  <yanov@il.ibm.com>
11632             Revital Eres  <eres@il.ibm.com>
11633
11634         * ddg.c (print_ddg): Add dump information.
11635         * modulo-sched.c (print_node_sched_params): Add parameter and
11636         verbosity.
11637         (calculate_maxii): Remove function.
11638         (undo_generate_reg_moves): Likewise.
11639         (undo_permute_partial_schedule): Likewise.
11640         (kernel_number_of_cycles): Likewise.
11641         (MAXII_FACTOR): New definition to calculate the upper bound of II.
11642         (sms_schedule): Use it.  Remove profitability checks.
11643         (sms_schedule_by_order): Fix order of nodes within the cycle.
11644
11645 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
11646
11647         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
11648         -profile option, add pie support.
11649         (ENDFILE_SPEC): New spec.
11650         * config/gnu.h (LIB_SPEC): Add -profile option.
11651
11652 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
11653
11654         * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
11655         * config/gnu.h (LIB_SPEC): Likewise.
11656
11657 2007-08-07  Yaz Saito  <saito@google.com>
11658             Ian Lance Taylor  <iant@google.com>
11659
11660         * common.opt (finstrument-functions-exclude-function-list): New
11661         option.
11662         (finstrument-functions-exclude-file-list): New option.
11663         * opts.c (char_p): Define and DEF_VEC.
11664         (flag_instrument_functions_exclude_functions): New static
11665         variable.
11666         (flag_instrument_functions_exclude_files): New static variable.
11667         (add_instrument_functions_exclude_list): New static function.
11668         (flag_instrument_functions_exclude_p): New function.
11669         (common_handle_option): Handle new options.
11670         * flags.h (flag_instrument_functions_exclude_p): Declare.
11671         * gimplify.c (gimplify_function_tree): Call
11672         flag_instrument_functions_exclude_p.
11673         * doc/invoke.texi (Option Summary): Mention new options.
11674         (Code Gen Options): Document new options.
11675
11676 2007-08-07  Ian Lance Taylor  <iant@google.com>
11677
11678         PR rtl-optimization/32776
11679         * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
11680         (resolve_use): Likewise.
11681         (decompose_multiword_subregs): Remove "changed" local variable.
11682
11683 2007-08-07  Carlos O'Donell  <carlos@codesourcery.com>
11684
11685         * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
11686         * configure: Regenerate.
11687         * config.in: Regenerate.
11688         * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
11689         spec string.
11690
11691 2007-08-07  Ian Lance Taylor  <iant@google.com>
11692
11693         * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
11694         note, just delete the insn.
11695
11696 2007-08-07  Andreas Schwab  <schwab@suse.de>
11697
11698         PR bootstrap/32973
11699         * gengtype-lex.l: Ignore backslash/newline pair while scanning a
11700         struct definition.
11701
11702 2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11703
11704         * lower-subreg.c (resolve_subreg_use): Remove assertion.
11705         (find_decomposable_shift_zext, resolve_shift_zext): New functions.
11706         (decompose_multiword_subregs): Use the functions above to decompose
11707         multiword shifts and zero-extends.
11708
11709 2007-08-07  Rask Ingemann Lambertsen  <rask@sygehus.dk>
11710
11711         * doc/sourcebuild.texi (Test Directives): Fix "compile" and
11712         "assemble" descriptions which were swapped.
11713
11714 2007-08-06  Chao-ying Fu  <fu@mips.com>
11715
11716         * fixed-value.h: New file.
11717         * fixed-value.c: New file.
11718         * Makefile.in (OBJS-common): Add fixed-value.o.
11719         (fixed-value.o): New rule.
11720         (GTFILES): Add fixed-value.h.
11721         * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
11722         to compare a.low and b.low.
11723         * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
11724
11725 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11726             Daniel Jacobowitz  <dan@codesourcery.com>
11727
11728         PR target/31868
11729         * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
11730         tmake_file.
11731         (x86_64-*-netbsd*): Likewise.
11732         (x86_64-*-linux*): Likewise.
11733         (x86_64-*-kfreebsd*-gnu): Likewise.
11734         (x86_64-*-knetbsd*-gnu): Likewise.
11735         (i[34567]86-*-solaris2.1[0-9]*): Likewise.
11736
11737         * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
11738
11739         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
11740         Add -fno-asynchronous-unwind-tables.
11741
11742         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
11743         * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
11744         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
11745         * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
11746         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
11747
11748 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
11749
11750         * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
11751         (TARGET_C_MODE_FOR_SUFFIX): New.
11752
11753 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
11754
11755         * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
11756
11757 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
11758
11759         * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
11760
11761 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11762
11763         * config/i386/i386.md: Check TARGET_ macros and optimize_size
11764         before checking function returns in conditional expressions.
11765
11766 2007-08-06  Alfred Minarik  <a.minarik@aon.at>
11767
11768         PR pch/13676
11769         * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
11770
11771 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11772
11773         PR middle-end/32988
11774         * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
11775         for INTEGRAL_TYPE_P.
11776
11777 2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
11778
11779         * configure.ac: Remove --enable-checking=df from default settings.
11780         * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
11781         * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
11782         if the parameter is true.
11783         (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
11784         DF_VERIFY_SCHEDULED flag is true.
11785         * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
11786         (df_finish_pass): Adjust prototype.
11787         * passes.c (execute_todo): Schedule verification if TODO_df_verify is
11788         true.
11789
11790         * see.c (pass_see): Add TODO_df_verify.
11791         * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
11792         * global.c (rest_of_handle_global_alloc): Schedule verification
11793         after the pass.
11794         * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
11795         before the pass.
11796         * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
11797         * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
11798         * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
11799
11800         * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
11801         * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
11802         * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
11803
11804 2007-08-05  Vladimir Yanovsky  <yanov@il.ibm.com>
11805             Revital Eres <eres@il.ibm.com>
11806
11807         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
11808         flag.
11809         * ddg.c (create_ddg_dependence): Rename to...
11810         (create_ddg_dep_from_intra_loop_link): This.  Do not check
11811         for interloop edges.  Do not create anti dependence edge when
11812         a true dependence edge exists in the opposite direction and
11813         -fmodulo-sched-allow-regmoves is set.
11814         (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
11815         (add_cross_iteration_register_deps): Create anti dependence edge
11816         when -fno-modulo-sched-allow-regmoves is set.
11817         * common.opt (-fmodulo-sched-allow-regmoves): New flag.
11818
11819 2007-08-04  Richard Sandiford  <richard@codesourcery.com>
11820
11821         * config/arm/arm.md (movsi): Add braces.
11822
11823 2007-08-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11824
11825         PR middle-end/32780
11826         * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
11827         operands for the folding of "A - (A & B)" into "~B & A"; cast them
11828         to type.
11829
11830 2007-08-03  Zdenek Dvorak  <ook@ucw.cz>
11831
11832         * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
11833         state accessor functions.
11834         * cfgloopmanip.c (remove_path, create_preheaders,
11835         force_single_succ_latches, fix_loop_structure): Ditto.
11836         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
11837         tree_duplicate_loop_to_header_edge): Ditto.
11838         * cfgloopanal.c (mark_irreducible_loops): Ditto.
11839         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
11840         Ditto.
11841         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
11842         cleanup_tree_cfg): Ditto.
11843         * tree-cfg.c (tree_merge_blocks): Ditto.
11844         * cfgloop.c (rescan_loop_exit, record_loop_exits,
11845         release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
11846         loop_preheader_edge, single_exit): Ditto.
11847         (flow_loops_find): Do not clear loops->state.
11848         * cfgloop.h (loops_state_satisfies_p, loops_state_set,
11849         loops_state_clear): New functions.
11850
11851 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11852
11853         PR middle-end/32399
11854         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
11855         when adding to the base and convert ELT to sizetype instead of type.
11856
11857 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11858
11859         PR middle-end/32304
11860         * ipa-reference.c (has_proper_scope_for_analysis): Return false when
11861         the decl's type has TYPE_NEEDS_CONSTRUCTING set.
11862
11863 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11864
11865         PR middle-end/32935
11866         * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
11867          correct type the negate expression.
11868
11869 2007-08-03  Jan Hubicka  <jh@suse.cz>
11870
11871         * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
11872         stack boundary.
11873
11874 2007-08-03  David Edelsohn  <edelsohn@gnu.org>
11875
11876         * config/rs6000/rs6000.c (struct processor_cost): Change
11877         l1_cache_lines to l1_cache_size.  Add l2_cache_size.
11878         (*_cost): Convert l1 cache information to kilobytes.  Add l2 cache
11879         information.
11880         (rios1_costs, rios2_cost): Correct cache line size.
11881         (rs6000_override_options): Set l2-cache-size parameter.
11882
11883 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11884             Diego Novillo  <dnovillo@google.com>
11885
11886         PR 31521
11887         * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
11888         if the range includes 0.
11889
11890 2007-08-03  Ben Elliston  <bje@au.ibm.com>
11891
11892         * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
11893         mode to unspec expressions to silence a warning from the generator
11894         programs.
11895         
11896 2007-08-02  Steve Ellcey  <sje@cup.hp.com>
11897
11898         * config/ia64/constraints.md ("U"): Make constraint vector only.
11899
11900 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
11901
11902         PR middle-end/25446
11903         * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
11904         always_inline attribute on the function decl.
11905
11906 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
11907
11908         PR middle-end/25445
11909         * varasm.c (default_binds_local_p_1): Consult flag_whole_program
11910         if we are compiling with -fPIC.
11911
11912 2007-08-02  Sandra Loosemore  <sandra@codesourcery.com>
11913             Nigel Stephens  <nigel@mips.com>
11914
11915         * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
11916         Define for MIPS32 and MIPS64.
11917
11918 2007-08-02  Nick Clifton  <nickc@redhat.com>
11919
11920         * config/host-hpux.c: Change copyright header to refer to version
11921         3 of the GNU General Public License and to point readers at the
11922         COPYING3 file and the FSF's license web page.
11923         * config/alpha/predicates.md, config/alpha/vms-ld.c,
11924         config/alpha/linux.h, config/alpha/alpha.opt,
11925         config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
11926         config/alpha/vms-unwind.h, config/alpha/ev4.md,
11927         config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
11928         config/alpha/alpha.h, config/alpha/sync.md,
11929         config/alpha/openbsd.h, config/alpha/alpha.md,
11930         config/alpha/alpha-modes.def, config/alpha/ev5.md,
11931         config/alpha/alpha-protos.h, config/alpha/freebsd.h,
11932         config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
11933         config/alpha/constraints.md, config/alpha/osf.h,
11934         config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
11935         config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
11936         config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
11937         config/frv/frv-asm.h, config/frv/frv-protos.h,
11938         config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
11939         config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
11940         config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
11941         config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
11942         config/s390/s390.opt, config/s390/s390-modes.def,
11943         config/s390/fixdfdi.h, config/s390/constraints.md,
11944         config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
11945         config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
11946         config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
11947         config/m32c/m32c-pragma.c, config/m32c/m32c.h,
11948         config/m32c/prologue.md, config/m32c/m32c.abi,
11949         config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
11950         config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
11951         config/m32c/t-m32c, config/m32c/m32c-modes.def,
11952         config/m32c/jump.md, config/m32c/shift.md,
11953         config/m32c/m32c-protos.h, config/libgloss.h,
11954         config/spu/spu-protos.h, config/spu/predicates.md,
11955         config/spu/spu-builtins.h, config/spu/spu.c,
11956         config/spu/spu-builtins.def, config/spu/spu-builtins.md,
11957         config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
11958         config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
11959         config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
11960         config/sparc/hypersparc.md, config/sparc/predicates.md,
11961         config/sparc/linux.h, config/sparc/sp64-elf.h,
11962         config/sparc/supersparc.md, config/sparc/cypress.md,
11963         config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
11964         config/sparc/niagara.md, config/sparc/sparc.md,
11965         config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
11966         config/sparc/sparc.opt, config/sparc/sync.md,
11967         config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
11968         config/sparc/ultra1_2.md, config/sparc/biarch64.h,
11969         config/sparc/sparc.c, config/sparc/little-endian.opt,
11970         config/sparc/sysv4-only.h, config/sparc/sparc.h,
11971         config/sparc/linux64.h, config/sparc/freebsd.h,
11972         config/sparc/sol2.h, config/sparc/rtemself.h,
11973         config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
11974         config/sparc/sparc-modes.def, config/sparc/sparclet.md,
11975         config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
11976         config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
11977         config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
11978         config/m32r/linux.h, config/m32r/constraints.md,
11979         config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
11980         config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
11981         config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
11982         config/i386/i386.md, config/i386/netware-crt0.c,
11983         config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
11984         config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
11985         config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
11986         config/i386/sol2.h, config/i386/constraints.md,
11987         config/i386/netware-libgcc.c, config/i386/sysv5.h,
11988         config/i386/predicates.md, config/i386/geode.md,
11989         config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
11990         config/i386/freebsd64.h, config/i386/vxworksae.h,
11991         config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
11992         config/i386/rtemself.h, config/i386/netbsd-elf.h,
11993         config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
11994         config/i386/netware.h, config/i386/i386-modes.def,
11995         config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
11996         config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
11997         config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
11998         config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
11999         config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
12000         config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
12001         config/i386/xm-mingw32.h, config/i386/linux64.h,
12002         config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
12003         config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
12004         config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
12005         config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
12006         config/i386/cygwin2.c, config/i386/i386-protos.h,
12007         config/i386/sync.md, config/i386/openbsd.h,
12008         config/i386/host-mingw32.c, config/i386/i386-aout.h,
12009         config/i386/nto.h, config/i386/biarch64.h,
12010         config/i386/i386-coff.h, config/i386/freebsd.h,
12011         config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
12012         config/i386/host-i386-darwin.c, config/i386/vxworks.h,
12013         config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
12014         config/darwin-protos.h, config/linux.opt, config/sol2.c,
12015         config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
12016         config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
12017         config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
12018         config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
12019         config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
12020         config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
12021         config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
12022         config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
12023         config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
12024         config/sh/superh64.h, config/sh/rtemself.h,
12025         config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
12026         config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
12027         config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
12028         config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
12029         config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
12030         config/avr/predicates.md, config/avr/constraints.md,
12031         config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
12032         config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
12033         config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
12034         config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
12035         config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
12036         config/c4x/c4x-modes.def, config/c4x/rtems.h,
12037         config/c4x/predicates.md, config/c4x/c4x.h,
12038         config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
12039         config/xtensa/predicates.md, config/xtensa/xtensa.c,
12040         config/xtensa/linux.h, config/xtensa/xtensa.h,
12041         config/xtensa/elf.h, config/xtensa/xtensa.md,
12042         config/xtensa/xtensa.opt, config/xtensa/constraints.md,
12043         config/xtensa/xtensa-protos.h, config/dbx.h,
12044         config/stormy16/predicates.md, config/stormy16/stormy16.md,
12045         config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
12046         config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
12047         config/host-solaris.c, config/fr30/fr30.h,
12048         config/fr30/predicates.md, config/fr30/fr30-protos.h,
12049         config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
12050         config/vxworksae.h, config/sol2-c.c, config/lynx.h,
12051         config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
12052         config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
12053         config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
12054         config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
12055         config/host-linux.c, config/interix3.h, config/cris/cris.c,
12056         config/cris/predicates.md, config/cris/linux.h,
12057         config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
12058         config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
12059         config/cris/aout.opt, config/cris/cris-protos.h,
12060         config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
12061         config/iq2000/iq2000.h, config/iq2000/predicates.md,
12062         config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
12063         config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
12064         config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
12065         config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
12066         config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
12067         config/chorus.h, config/mn10300/mn10300.c,
12068         config/mn10300/mn10300.opt, config/mn10300/predicates.md,
12069         config/mn10300/mn10300.h, config/mn10300/linux.h,
12070         config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
12071         config/mn10300/mn10300.md, config/ia64/predicates.md,
12072         config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
12073         config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
12074         config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
12075         config/ia64/freebsd.h, config/ia64/ia64.md,
12076         config/ia64/ia64-modes.def, config/ia64/constraints.md,
12077         config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
12078         config/gofast.h, config/rtems.h, config/sol2-10.h,
12079         config/m68k/predicates.md, config/m68k/m68k.md,
12080         config/m68k/linux.h, config/m68k/m68k-modes.def,
12081         config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
12082         config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
12083         config/m68k/openbsd.h, config/m68k/m68k-aout.h,
12084         config/m68k/m68k.opt, config/m68k/m68020-elf.h,
12085         config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
12086         config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
12087         config/m68k/constraints.md, config/m68k/rtemself.h,
12088         config/m68k/netbsd-elf.h, config/m68k/m68k.h,
12089         config/m68k/uclinux.h, config/rs6000/power4.md,
12090         config/rs6000/host-darwin.c, config/rs6000/6xx.md,
12091         config/rs6000/linux.h, config/rs6000/eabi.h,
12092         config/rs6000/aix41.opt, config/rs6000/xcoff.h,
12093         config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
12094         config/rs6000/eabialtivec.h, config/rs6000/8540.md,
12095         config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
12096         config/rs6000/windiss.h, config/rs6000/603.md,
12097         config/rs6000/aix41.h, config/rs6000/cell.md,
12098         config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
12099         config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
12100         config/rs6000/darwin.md, config/rs6000/darwin64.h,
12101         config/rs6000/default64.h, config/rs6000/7xx.md,
12102         config/rs6000/darwin.opt, config/rs6000/spe.md,
12103         config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
12104         config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
12105         config/rs6000/7450.md, config/rs6000/linux64.h,
12106         config/rs6000/constraints.md, config/rs6000/440.md,
12107         config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
12108         config/rs6000/rs6000.c, config/rs6000/aix52.h,
12109         config/rs6000/rs6000.h, config/rs6000/power6.md,
12110         config/rs6000/predicates.md, config/rs6000/altivec.md,
12111         config/rs6000/aix64.opt, config/rs6000/rios1.md,
12112         config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
12113         config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
12114         config/rs6000/darwin7.h, config/rs6000/dfp.md,
12115         config/rs6000/linux64.opt, config/rs6000/sync.md,
12116         config/rs6000/vxworksae.h, config/rs6000/power5.md,
12117         config/rs6000/lynx.h, config/rs6000/biarch64.h,
12118         config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
12119         config/rs6000/eabispe.h, config/rs6000/e500.h,
12120         config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
12121         config/rs6000/netbsd.h, config/rs6000/e500-double.h,
12122         config/rs6000/aix.h, config/rs6000/vxworks.h,
12123         config/rs6000/40x.md, config/rs6000/aix51.h,
12124         config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
12125         config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
12126         config/arc/arc.h, config/mcore/mcore-elf.h,
12127         config/mcore/mcore-protos.h, config/mcore/predicates.md,
12128         config/mcore/mcore.md, config/mcore/mcore.c,
12129         config/mcore/mcore.opt, config/mcore/mcore.h,
12130         config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
12131         config/score/predicates.md, config/score/score-version.h,
12132         config/score/score-protos.h, config/score/misc.md,
12133         config/score/elf.h, config/score/score.c, config/score/mac.md,
12134         config/score/score7.md, config/score/score.h,
12135         config/score/score-conv.h, config/score/score-mdaux.c,
12136         config/score/score.md, config/score/score.opt,
12137         config/score/score-modes.def, config/score/score-mdaux.h,
12138         config/score/mul-div.S, config/arm/uclinux-elf.h,
12139         config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
12140         config/arm/symbian.h, config/arm/linux-elf.h,
12141         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
12142         config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
12143         config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
12144         config/arm/strongarm-pe.h, config/arm/arm.h,
12145         config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
12146         config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
12147         config/arm/arm-modes.def, config/arm/linux-eabi.h,
12148         config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
12149         config/arm/arm-cores.def, config/arm/arm-protos.h,
12150         config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
12151         config/arm/wince-pe.h, config/arm/neon.md,
12152         config/arm/constraints.md, config/arm/neon.ml,
12153         config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
12154         config/arm/arm.opt, config/arm/arm926ejs.md,
12155         config/arm/predicates.md, config/arm/iwmmxt.md,
12156         config/arm/arm_neon.h, config/arm/unknown-elf.h,
12157         config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
12158         config/arm/neon-testgen.ml, config/arm/arm.md,
12159         config/arm/xscale-coff.h, config/arm/pe.c,
12160         config/arm/arm-generic.md, config/arm/pe.h,
12161         config/arm/kaos-strongarm.h, config/arm/freebsd.h,
12162         config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
12163         config/arm/strongarm-elf.h, config/arm/cirrus.md,
12164         config/arm/netbsd-elf.h, config/arm/vxworks.h,
12165         config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
12166         config/pa/predicates.md, config/pa/pa64-hpux.h,
12167         config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
12168         config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
12169         config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
12170         config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
12171         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
12172         config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
12173         config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
12174         config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
12175         config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
12176         config/pa/pa64-regs.h, config/pa/pa-modes.def,
12177         config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
12178         config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
12179         config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
12180         config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
12181         config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
12182         config/mips/linux64.h, config/mips/elforion.h,
12183         config/mips/constraints.md, config/mips/generic.md,
12184         config/mips/predicates.md, config/mips/4300.md,
12185         config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
12186         config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
12187         config/mips/5k.md, config/mips/vr4120-div.S,
12188         config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
12189         config/mips/mips-protos.h, config/mips/6000.md,
12190         config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
12191         config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
12192         config/mips/mips-modes.def, config/mips/vr.h,
12193         config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
12194         config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
12195         config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
12196         config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
12197         config/vax/openbsd1.h, config/vax/netbsd.h,
12198         config/vax/vax-protos.h, config/vax/netbsd-elf.h,
12199         config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
12200         config/h8300/rtems.h, config/h8300/predicates.md,
12201         config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
12202         config/h8300/h8300.md, config/h8300/h8300.opt,
12203         config/h8300/coff.h, config/h8300/h8300-protos.h,
12204         config/v850/v850.md, config/v850/predicates.md,
12205         config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
12206         config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
12207         config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
12208         config/mmix/mmix.h, config/mmix/predicates.md,
12209         config/mmix/mmix-protos.h, config/mmix/mmix.md,
12210         config/mmix/mmix.c, config/mmix/mmix.opt,
12211         config/mmix/mmix-modes.def, config/bfin/bfin.opt,
12212         config/bfin/rtems.h, config/bfin/bfin-modes.def,
12213         config/bfin/predicates.md, config/bfin/bfin-protos.h,
12214         config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
12215         Likewise.
12216
12217 2007-08-02  Richard Sandiford  <richard@codesourcery.com>
12218
12219         * emit-rtl.c (reset_used_decls): Rename to...
12220         (set_used_decls): ...this.  Set the used flag rather than clearing it.
12221         (unshare_all_rtl_again): Update accordingly.  Set flags on argument
12222         DECL_RTLs rather than resetting them.
12223
12224 2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>
12225
12226         * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
12227
12228 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
12229
12230         * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
12231         argument to find_reloads_address.
12232
12233 2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
12234
12235         PR tree-optimization/32919
12236         * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
12237         * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
12238         (coalesce_ssa_name): Call it.
12239
12240 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
12241             David Ung  <davidu@mips.com>
12242
12243         * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
12244         (__mips16_unorddf2, __mips16_floatunsidf): New.
12245         * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
12246         above functions.
12247         * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
12248
12249 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
12250
12251         * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
12252         Display new operands of OMP_SECTIONS and OMP_CONTINUE.
12253         * tree.h (OMP_SECTIONS_CONTROL): New macro.
12254         (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
12255         * omp-low.c (get_ws_args_for, determine_parallel_type,
12256         expand_omp_for_generic, expand_omp_for_static_nochunk,
12257         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
12258         Work with more precise CFG.
12259         (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
12260         (lower_omp_sections): Emit OMP_SECTIONS_SWITCH.  Add arguments to
12261         OMP_CONTINUE.
12262         * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
12263         * gimple-low.c (lower_stmt): Ditto.
12264         * tree-inline.c (estimate_num_insns_1): Ditto.
12265         * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
12266         (OMP_SECTIONS_SWITCH): New.
12267         * tree-cfgcleanup.c (cleanup_omp_return): New.
12268         (cleanup_tree_cfg_bb): Call cleanup_omp_return.
12269         * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
12270         and exit edge for OMP_FOR.  Handle OMP_SECTIONS_SWITCH.
12271         (tree_redirect_edge_and_branch): Handle omp constructs.
12272
12273         * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
12274         with three arguments.
12275
12276 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
12277
12278         * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
12279         in loop closed ssa.
12280
12281 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
12282
12283         * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
12284         the loop structures may need fixing.
12285         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
12286         New functions.
12287         (cleanup_tree_cfg_loop): Removed.
12288         (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
12289         * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
12290         instead of running cleanup_tree_cfg_loop.
12291         * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
12292         * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
12293         (tree_predictive_commoning): Declaration changed.
12294         * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
12295
12296 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
12297
12298         * doc/invoke.texi (l1-cache-size): Update documentation.
12299         (l2-cache-size): Document.
12300         * params.h (L2_CACHE_SIZE): New macro.
12301         * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
12302         that L1_CACHE_SIZE is in kB now.
12303         (L2_CACHE_SIZE_BYTES): New macro.
12304         (tree_ssa_prefetch_arrays): Show size in kB.
12305         * config/i386/i386.h (struct processor_costs): Add l1_cache_size
12306         and l2_cache_size fields.
12307         * config/i386/driver-i386.c (describe_cache): Detect cache size
12308         in kB.
12309         * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
12310         pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
12311         amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
12312         generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
12313         (override_options): Set l1-cache-size and l2-cache-size to default
12314         values if not specified otherwise.
12315         * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
12316         (PARAM_L2_CACHE_SIZE): New.
12317
12318 2007-08-01  Nigel Stephens  <nigel@mips.com>
12319             David Ung  <davidu@mips.com>
12320             Thiemo Seufer  <ths@mips.com>
12321             Chris Dearman  <chris@mips.com>
12322             Richard Sandiford  <richard@codesourcery.com>
12323
12324         * config.gcc (mips*-sde-elf*): New stanza.
12325         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
12326         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
12327         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
12328         (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
12329         (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
12330         (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
12331         to tmake_file.
12332         * config/mips/sde.h: New file.
12333         * config/mips/t-libgcc-mips16: Likewise.
12334         * config/mips/t-sde: Likewise.
12335         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
12336         of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
12337         _MIPS_FPSET and _MIPS_SZINT.
12338         * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
12339         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
12340         insertion of a default -mips option.  Use MIPS_32BIT_OPTION_SPEC.
12341         * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
12342         * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
12343         * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
12344         * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
12345         _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
12346         _MIPS_SZPTR and _MIPS_FPSET.
12347         (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
12348         architecture is specified.
12349         (MIPS_32BIT_OPTION_SPEC): New macro.
12350
12351 2007-07-31  Dan Hipschman  <dsh@google.com>
12352
12353         * gcc.c (end_going_arg): New function.
12354         (do_spec_2): Use it.
12355         (do_spec_1): Use it.
12356
12357 2007-07-31  H.J. Lu  <hongjiu.lu@intel.com>
12358
12359         * ddg.c (add_cross_iteration_register_deps): Declare bb_info
12360         only if ENABLE_CHECKING is defined.
12361
12362 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
12363
12364         * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
12365         df_ru_add_problem, df_ru_get_bb_info): Removed.
12366         (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
12367         * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
12368         df_ru_free_bb_info, df_ru_alloc,
12369         df_ru_bb_local_compute_process_def,
12370         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
12371         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
12372         df_ru_transfer_function, df_ru_free, df_ru_start_dump,
12373         df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
12374         df_ru_add_problem): Removed.
12375
12376 2007-07-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12377
12378         PR target/32847
12379         * pa.md (casesi32): Use match_scratch.  Revise insn condition.
12380         (casesi32p, casesi64p): Likewise.
12381         (casesi): Adjust for above.
12382
12383 2007-07-31  Richard Sandiford  <richard@codesourcery.com>
12384
12385         * mode-switching.c (create_pre_exit): Don't search past calls.
12386
12387 2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>
12388
12389         * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
12390
12391 2007-07-31  Revital Eres  <eres@il.ibm.com>
12392
12393         * ddg.c (add_deps_for_def): Rename to...
12394         (add_cross_iteration_register_deps): This.  Change implementation
12395         to use only reaching def and def-use chains to construct the
12396         inter loop dependencies.
12397         (add_deps_for_use): Remove function.
12398         (build_inter_loop_deps): Call add_cross_iteration_register_deps
12399         function to build the inter loop dependencies.
12400         * modulo-sched.c (sms_schedule): Build only
12401         reaching def and def-use chains for the propose of the ddg
12402         construction.
12403
12404 2007-07-31  Julian Brown  <julian@codesourcery.com>
12405
12406         * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
12407         New define_insns. Use correct RTL.
12408         (vec_set<mode>): Write as expander.
12409
12410 2007-07-31  Razya Ladelsky  <razya@il.ibm.com>
12411
12412         * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
12413         to an unallocated space.
12414
12415 2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>
12416
12417         * tree-data-ref.c
12418         (split_constant_offset): Enable split_constant_offset to extract
12419         constants from other statements.
12420         * tree-vect-transform.c
12421         (vect_create_addr_base_for_vector_ref): Generate data_ref_base
12422         to a temp var. Force base_offset to be simple.
12423
12424 2007-07-30  Seongbae Park <seongbae.park@gmail.com>
12425
12426         * df-scan.c (df_scan_verify): Remove artificial limit on
12427         the number of blocks for verification.
12428         * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
12429         df_simulate_defs): Avoid unnecessary insn checking for defs.
12430
12431 2007-07-29  Mark Mitchell  <mark@codesourcery.com>
12432
12433         * config/m68k/lb1sf68.asm (FUNC): New macro.
12434         (__mulsi3): Use it.
12435         (__udivsi3): Likewise.
12436         (__divsi3): Likewise.
12437         (__umodsi3): Likewise.
12438         (__modsi3): Likewise.
12439         (__subdf3): Likewise.
12440         (__adddf3): Likewise.
12441         (__muldf3): Likewise.
12442         (__divdf3): Likewise.
12443         (__negdf2): Likewise.
12444         (__cmpdf2): Likewise.
12445         (__subsf3): Likewise.
12446         (__addsf3): Likewise.
12447         (__mulsf3): Likewise.
12448         (__divsf3): Likewise.
12449         (__negsf2): Likewise.
12450         (__cmpsf2): Likewise.
12451         (__eqdf2): Likewise.
12452         (__nedf2): Likewise.
12453         (__gtdf2): Likewise.
12454         (__gedf2): Likewise.
12455         (__ltdf2): Likewise.
12456         (__ledf2): Likewise.
12457         (__eqsf2): Likewise.
12458         (__nesf2): Likewise.
12459         (__gtsf2): Likewise.
12460         (__gesf2): Likewise.
12461         (__ltsf2): Likewise.
12462         (__lesf2): Likewise.
12463
12464 2007-07-30  Ollie Wild  <aaw@google.com>
12465
12466         * c-ppoutput.c (print_lines_directives_only): New function.
12467         (scan_translation_unit_directives_only): New function.
12468         (preprocess_file): Add call to scan_translation_unit_directives_only.
12469         * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
12470         (sanitize_cpp_opts): Add default flag_dump_macros setting for
12471         -fdirectives-only.  Add errors for -fdirectives-only conflict with
12472         -Wunused-macros and -traditional.
12473         (finish_options): Add builtin macro initialization for
12474         -fdirectives-only + -fpreprocessed.
12475         * c.opt (fdirectives-only): New.
12476         * doc/cppopts.texi (fdirectives-only): New.
12477
12478 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12479
12480         * alias.c (record_set, memory_modified_1): Constify.
12481         * bt-load.c (note_btr_set): Likewise.
12482         * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
12483         * combine.c (set_nonzero_bits_and_sign_copies,
12484         expand_field_assignment, record_dead_and_set_regs_1,
12485         use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
12486         likely_spilled_retval_1): Likewise.
12487         * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
12488         frv_io_handle_set): Likewise.
12489         * config/mips/mips.c (mips_sim_record_set,
12490         vr4130_true_reg_dependence_p_1): Likewise.
12491         * config/mt/mt.c (insn_dependent_p_1): Likewise.
12492         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
12493         * config/sh/sh.c (flow_dependent_p_1): Likewise.
12494         * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
12495         * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
12496         * ddg.c (mark_mem_store): Likewise.
12497         * df-problems.c (df_urec_mark_reg_change): Likewise.
12498         * function.c (update_epilogue_consts): Likewise.
12499         * gcse.c (record_set_info, record_last_set_info,
12500         mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
12501         reg_clear_last_set): Likewise.
12502         * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
12503         Likewise.
12504         * jump.c (reversed_comparison_code_parts): Likewise.
12505         * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
12506         reg_is_set): Likewise.
12507         * loop-iv.c (mark_altered): Likewise.
12508         * mode-switching.c (reg_becomes_live): Likewise.
12509         * optabs.c (no_conflict_move_test): Likewise.
12510         * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
12511         Likewise.
12512         * postreload.c (reload_combine_note_store, move2add_note_store):
12513         Likewise.
12514         * regmove.c (flags_set_1): Likewise.
12515         * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
12516         Likewise.
12517         * reload1.c (mark_not_eliminable, forget_old_reloads_1):
12518         Likewise. 
12519         * resource.c (update_live_status): Likewise.
12520         * rtl.h (set_of, note_stores): Likewise.
12521         * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
12522         note_stores, parms_set): Likewise.
12523         * sched-rgn.c (sets_likely_spilled_1): Likewise.
12524         * stack-ptr-mod.c (notice_stack_pointer_modification_1):
12525         Likewise. 
12526         * var-tracking.c (count_stores, add_stores): Likewise.
12527
12528 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12529
12530         * alias.c (mems_in_disjoint_alias_sets_p,
12531         fixed_scalar_and_varying_struct_p, aliases_everything_p,
12532         nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
12533         write_dependence_p, mems_in_disjoint_alias_sets_p,
12534         read_dependence, true_dependence, canon_true_dependence,
12535         anti_dependence, output_dependence): Constify.
12536         * combine.c (extended_count): Likewise.
12537         * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
12538         * cselib.c (get_value_hash, references_value_p,
12539         cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
12540         * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
12541         * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
12542         * function.c (contains, prologue_epilogue_contains,
12543         sibcall_epilogue_contains): Likewise. 
12544         * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
12545         pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
12546         only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
12547         reg_or_subregno): Likewise.
12548         * recog.c (asm_noperands): Likewise.
12549         * reload1.c (function_invariant_p): Likewise.
12550         * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
12551         rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
12552         condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
12553         simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
12554         true_regnum, reg_or_subregno, condjump_in_parallel_p,
12555         extended_count, prologue_epilogue_contains,
12556         sibcall_epilogue_contains, function_invariant_p, true_dependence,
12557         canon_true_dependence, read_dependence, anti_dependence,
12558         output_dependence): Likewise.
12559         * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
12560
12561 2007-07-30  Julian Brown  <julian@codesourcery.com>
12562
12563         * config/arm/neon.md (V_ext): New mode attribute.
12564         (neon_vget_lane<mode>): Replace with define_expand.
12565         (neon_vget_lane<mode>_sext_internal)
12566         (neon_vget_lane<mode>_zext_internal): New define_insns for double
12567         and quad precision vectors.
12568         (neon_vget_lanedi): Add bounds check. Remove dead comment.
12569         * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
12570         have typeless 32-bit result.
12571
12572 2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12573
12574         PR tree-opt/32527
12575         * tree-affine.h (aff_tree): The type of rest is sizetype for types
12576         of pointers.
12577         * tree-affine.c (aff_combination_scale): If type is a pointer type,
12578         use sizetype for rest.
12579         (aff_combination_add_elt): Likewise. Don't specialize pointer types.
12580         (aff_combination_convert): Don't convert rest for pointer types.
12581
12582 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
12583
12584         * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
12585
12586         * tree-ssa-alias.c: Add alloc-pool.h.
12587         (init_alias_info): Free alias_bitmap_obstack.
12588         (delete_alias_info): Call delete_mem_ref_stats.
12589         (get_mem_sym_stats_for): Use alloc_pool.
12590         (init_mem_ref_stats): Do not delete mem_ref_stats here.
12591         (delete_mem_sym_stats): Removed.
12592         
12593 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
12594
12595         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
12596         functions cannot be represented as classical distance vectors.
12597
12598 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12599
12600         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
12601         * builtins.c (validate_arg, builtin_mathfn_code,
12602         validate_arglist): Likewise.
12603         * calls.c (call_expr_flags): Likewise.
12604         * combine.c (reg_nonzero_bits_for_combine,
12605         reg_num_sign_bit_copies_for_combine, get_last_value,
12606         reg_truncated_to_mode): Likewise.
12607         * emit-rtl.c (subreg_lowpart_p): Likewise.
12608         * expr.c (highest_pow2_factor_for_target,
12609         categorize_ctor_elements_1, categorize_ctor_elements,
12610         count_type_elements, contains_packed_reference,
12611         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
12612         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
12613         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
12614         native_encode_int, native_encode_real, native_encode_complex,
12615         native_encode_vector, native_encode_expr, native_interpret_int,
12616         native_interpret_real, native_interpret_complex,
12617         native_interpret_vector, native_interpret_expr): Likewise.
12618         * function.c (use_register_for_decl): Likewise.
12619         * gimplify.c (get_name): Likewise.
12620         * langhooks-def.h (lhd_return_null_const_tree): New.
12621         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
12622         * langhooks.c (lhd_return_null_const_tree): New.
12623         * langhooks.h (lang_get_callee_fndecl): Constify.
12624         * output.h (constructor_static_from_elts_p): Likewise.
12625         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
12626         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
12627         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
12628         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
12629         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
12630         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
12631         * rtlhooks-def.h (reg_nonzero_bits_general,
12632         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
12633         Likewise. 
12634         * rtlhooks.c (reg_num_sign_bit_copies_general,
12635         reg_nonzero_bits_general, reg_truncated_to_mode_general):
12636         Likewise. 
12637         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
12638         * stor-layout.c (mode_for_size_tree): Likewise.
12639         * tree-ssa-loop-im.c (memref_eq): Likewise.
12640         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
12641         * tree.c (contains_placeholder_p, type_list_equal,
12642         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
12643         Likewise. 
12644         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
12645         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
12646         contains_placeholder_p, contains_packed_reference,
12647         get_callee_fndecl, operand_equal_for_phi_arg_p,
12648         warn_if_unused_value, is_body_block, native_encode_expr,
12649         native_interpret_expr, fold_convertible_p, operand_equal_p,
12650         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
12651         validate_arglist, simple_cst_equal, type_list_equal,
12652         use_register_for_decl, call_expr_flags, get_name,
12653         highest_pow2_factor): Likewise.
12654         (const_call_expr_arg_iterator_d,
12655         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
12656         first_const_call_expr_arg, more_const_call_expr_args_p,
12657         FOR_EACH_CONST_CALL_EXPR_ARG): New.
12658         * varasm.c (constructor_static_from_elts_p): Constify.
12659
12660 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
12661
12662         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
12663         config/arm/neon-schedgen.ml, config/arm/neon.ml,
12664         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
12665         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
12666         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
12667         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
12668         spelling conventions.
12669         * doc/invoke.texi: Follow spelling conventions.
12670
12671 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
12672             Revital Eres  <eres@il.ibm.com>
12673
12674         * modulo-sched.c (sms_schedule): Avoid loops which includes
12675         auto-increment instructions.
12676
12677 2007-07-28  Richard Guenther  <rguenther@suse.de>
12678
12679         PR middle-end/32920
12680         * fold-const.c (fold_cond_expr_with_comparison): Convert
12681         operand zero of MIN/MAX_EXPR to correct type.
12682
12683 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12684
12685         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
12686         flags_from_decl_or_type): Constify.
12687         * gcc.c (do_spec_1): Likewise.
12688         * print-tree.c (dump_addr, print_node_brief): Likewise.
12689         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
12690         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
12691         tree_purge_all_dead_eh_edges): Likewise.
12692         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
12693         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
12694         Likewise. 
12695         * tree.c (expr_location, expr_has_location, expr_locus,
12696         expr_filename, expr_lineno, get_inner_array_type,
12697         fields_compatible_p): Likewise.
12698         * tree.h (get_inner_array_type, fields_compatible_p,
12699         expr_location, expr_has_location, expr_locus, expr_filename,
12700         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
12701         setjmp_call_p, alloca_call_p): Likewise.
12702
12703 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
12704
12705         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
12706         TV_FLOW_INSENSITIVE.
12707
12708         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
12709         TV_CALL_CLOBBER.
12710         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
12711         (compute_flow_insensitive_aliasing): Ditto for
12712         TV_FLOW_INSENSITIVE.    
12713
12714 2007-07-27  Jan Hubicka  <jh@suse.cz>
12715
12716         * config/i386/i386.c (register_move_cost): Remove accidentally
12717         comitted #if 0 block.
12718
12719         * attribs.c: Include hashtab.h
12720         (attribute_hash): New.
12721         (substring): New structure.
12722         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
12723         New function.
12724         (init_attributes): Initialize attribute hash.
12725         (decl_attributes): Use attribute hash.
12726         * Makefile.in (attribs.c): Depend on hashtab.h.
12727
12728 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
12729
12730         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
12731
12732 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
12733
12734         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
12735         __mips_dspr2 and __mips_dsp_rev macros.
12736         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
12737
12738 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
12739         
12740         * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
12741
12742 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
12743
12744         PR middle-end/32749
12745         
12746         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
12747         and the updating of the live and do_not_gen sets.
12748         (df_note_bb_compute): Added updating of live and do_not_gen sets
12749         for regular defs so that the case of clobber inside conditional
12750         call is processed correctly.
12751         
12752 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
12753
12754         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
12755         operands with compatible type.
12756
12757 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
12758
12759         * expr.h (store_bit_field): Don't return a value.
12760         * expmed.c (check_predicate_volatile_ok): New function.
12761         (store_bit_field_1): New function, extracted from store_bit_field.
12762         Take a fallback_p argument and return true if the operation succeeded.
12763         Only use store_fixed_bit_field if fallback_p.  Don't recompute
12764         mode_for_extraction; use op_mode instead.  Try forcing memories
12765         into registers if the insv expander fails.
12766         (store_bit_field): Use store_bit_field_1 with fallback_p true.
12767         Don't return a value.
12768         (convert_extracted_bit_field): New function, extracted from
12769         store_bit_field.
12770         (extract_bit_field_1): Likewise.  Take a fallback_p argument
12771         and return NULL if the operation succeeded.  Only use
12772         extract_fixed_bit_field if fallback_p.  Only calculate one
12773         extraction mode.  Combine code for extv and extzv.  Try forcing
12774         memories into registers if the ext(z)v expander fails.
12775         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
12776
12777 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
12778
12779         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
12780         into bitfields.
12781         (df_ref): Likewise.  Put regno with other integer fields.
12782
12783 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
12784
12785         * df.h (df_mw_hardreg): Remove "loc" field.
12786         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
12787         local variable.
12788         * df-problems.c (df_whole_mw_reg_unused_p): New function,
12789         split out from df_set_unused_notes_for_mw.  Return false for
12790         partial references.  Assert that mw_reg is a REG when returning true.
12791         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
12792         (df_whole_mw_reg_dead_p): New function, split out from
12793         df_set_dead_notes_for_mw.  Return false for partial references.
12794         Assert that mw_reg is a REG when returning true.
12795         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
12796         Remove redundant bitmap check.
12797
12798 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
12799
12800         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
12801         ($(T)crtend.o): Likwise.
12802         ($(T)crtbeginS.o): Likwise.
12803         ($(T)crtendS.o): Likwise.
12804         ($(T)crtfastmath.o): Likwise.
12805
12806 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
12807
12808         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
12809         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
12810         * basic-block.h (struct control_flow_graph): Added x_dom_computed
12811         and x_n_bbs_in_dom_tree fields.
12812
12813 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
12814
12815         PR tree-optimization/32087
12816         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
12817         Do not call scale_bbs_frequencies_int with prob of zero.
12818
12819 2007-07-26  Julian Brown  <julian@codesourcery.com>
12820
12821         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
12822         (neon_element_bits): Add prototypes.
12823         * config/arm/arm.c (bounds_check, neon_lane_bounds)
12824         (neon_const_bounds, neon_element_bits): New functions.
12825         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
12826         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
12827         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
12828         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
12829         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
12830         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
12831         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
12832         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
12833         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
12834         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
12835         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
12836         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
12837         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
12838
12839 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
12840
12841         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
12842         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
12843
12844 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
12845             Julian Brown  <julian@codesourcery.com>
12846
12847         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
12848         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
12849         * config/arm/cortex-a8.md: New.
12850         * config/arm/cortex-a8-neon.md: New.
12851         * config/arm/neon-schedgen.ml: New.
12852         * config/arm/neon.md (vqh_mnem): New.
12853         (neon_type): New.
12854         (Is_float_mode): New.
12855         (Scalar_mul_8_16): New.
12856         (Is_d_reg): New.
12857         (V_mode_nunits): New.
12858         (All instruction patterns): Annotate with neon_type attribute
12859         values.
12860         * config/arm/arm.md: Include cortex-a8.md.
12861         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
12862         values.
12863         Annotate instruction patterns accordingly.
12864         (generic_sched): Do not use generic scheduling for Cortex-A8.
12865         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
12866
12867 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
12868
12869         * fold-const.c (fold_read_from_constant_string): Use
12870         build_int_cst_type.
12871         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12872
12873 2007-07-26  Nick Clifton  <nickc@redhat.com>
12874
12875         * tree-ssa-operands.h: Change copyright header to refer to version
12876         3 of the GNU General Public License and to point readers at the
12877         COPYING3 file and the FSF's license web page.
12878         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
12879         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
12880         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
12881         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
12882         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
12883         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
12884         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
12885         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
12886         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
12887         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
12888         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
12889         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
12890         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
12891         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
12892         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
12893         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
12894         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
12895         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
12896         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
12897         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
12898         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
12899         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
12900         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
12901         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
12902         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
12903         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
12904         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
12905         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
12906         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
12907         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
12908         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
12909         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
12910         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
12911         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
12912         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
12913         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
12914         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
12915         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
12916         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
12917         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
12918         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
12919         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
12920         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
12921         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
12922         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
12923         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
12924         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
12925         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
12926         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
12927         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
12928         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
12929         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
12930         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
12931         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
12932         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
12933         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
12934         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
12935         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
12936         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
12937         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
12938         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
12939         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
12940         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
12941         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
12942         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
12943         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
12944         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
12945         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
12946         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
12947         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
12948         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
12949         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
12950         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
12951         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
12952         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
12953         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
12954         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
12955         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
12956         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
12957         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
12958         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
12959         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
12960         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
12961         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
12962         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
12963         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
12964         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
12965         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
12966         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
12967         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
12968         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
12969         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
12970         vecprim.h, basic-block.h, tree-ssa-structalias.c,
12971         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
12972         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
12973         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
12974         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
12975         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
12976         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
12977         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
12978         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
12979         convert.c, convert.h, langhooks-def.h, reload1.c,
12980         tree-ssa-operands.c: Likewise.
12981
12982 2007-07-26  Jan Hubicka  <jh@suse.cz>
12983
12984         * tree-ssa-live.c: Include debug.h and flags.h.
12985         (mark_scope_block_unused): New function.
12986         (remove_unused_scope_block_p): New function.
12987         (remove_unused_locals): Remove unused blocks too.
12988
12989 2007-07-25  Ian Lance Taylor  <iant@google.com>
12990
12991         * combine.c (combine_max_regno): Remove.  Remove all uses.
12992         (struct reg_stat_struct): Rename from struct reg_stat.
12993         (reg_stat_type): Define, and declare VECs.
12994         (reg_stat): Change from pointer to VEC.  Change all uses.
12995         (combine_split_insns): New static function.
12996         (try_combine, find_split_point): Call it instead of split_insns.
12997
12998 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
12999
13000         * cfghooks.c (split_block): Fix the information about loop latch.
13001
13002 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
13003
13004         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
13005
13006 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
13007
13008         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
13009         Scan the new edge for loop exit info.
13010
13011 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
13012
13013         * config/darwin.c: Include debug.h.
13014
13015 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
13016
13017         PR target/32218
13018         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
13019
13020 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
13021
13022         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
13023         (HARD_REGNO_MODE_OK): Ditto.
13024         (MODES_TIEABLE_P): Ditto.
13025         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13026         (CLASS_MAX_NREGS): Ditto.
13027         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
13028         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
13029         (divdf3_internal_thr): Removed.
13030         * config/ia64/div.md: New file.
13031         * config/ia64/constraints.md: Add H constraint.
13032
13033 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13034
13035         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
13036         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
13037         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
13038         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
13039         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
13040         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
13041         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
13042         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
13043         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
13044         dump_sbitmap_file, debug_sbitmap, popcount_table,
13045         sbitmap_popcount): Constify.
13046         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
13047         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
13048         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
13049         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
13050         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
13051         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
13052         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
13053         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
13054         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
13055         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
13056         sbitmap_popcount, sbitmap_verify_popcount): Constify.
13057
13058 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13059
13060         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
13061         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
13062         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
13063         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
13064         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
13065         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
13066         bitmap_intersect_p, bitmap_intersect_compl_p,
13067         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
13068         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
13069         Constify.
13070         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
13071         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
13072         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
13073         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
13074         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
13075         debug_bitmap, debug_bitmap_file, bitmap_print,
13076         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
13077         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
13078
13079 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
13080
13081         * config/darwin.c (darwin_override_options): Additional fix for
13082         debug info formats that don't support var tracking.
13083
13084 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13085
13086         * cselib.c (entry_and_rtx_equal_p): Constify.
13087         * gengtype.c (output_mangled_typename, write_types, write_local):
13088         Likewise.
13089         * gengtype.h (const_type_p): New.
13090         * see.c (eq_descriptor_extension, hash_descriptor_extension):
13091         Constify.
13092         * tlink.c (scan_linker_output): De-constify.
13093         * tree-ssa-loop-im.c (memref_eq): Constify.
13094         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
13095         (shared_bitmap_hash, shared_bitmap_eq): Constify.
13096
13097 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13098
13099         * c-common.c (fname_as_string, c_type_hash): Constify.
13100         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
13101         * cgraph.c (edge_hash, edge_eq): Likewise.
13102         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
13103         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
13104         reg_attrs_htab_eq): Likewise.
13105         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
13106         Likewise.
13107         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
13108         const_decl_t, const_state_t, const_automata_list_el_t): New.
13109         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
13110         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
13111         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
13112         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
13113         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
13114         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
13115         compare_max_occ_cycle_nums, out_state_arcs_num,
13116         compare_transition_els_num, units_cmp, state_reservs_cmp):
13117         Constify.
13118         * genmodes.c (cmp_modes): Likewise.
13119         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
13120         * gimplify.c (compare_case_labels): Likewise.
13121         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
13122         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
13123         * matrix-reorg.c (mtt_info_hash): Likewise.
13124         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
13125         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
13126         (htab_hash_bucket, htab_hash_elem): Constify.
13127         * tree-browser.c (TB_parent_eq): Likewise.
13128         * tree-scalar-evolution.c (hash_scev_info): Likewise.
13129         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
13130         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
13131         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
13132         Constify.
13133         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
13134         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
13135         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
13136         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
13137         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
13138         New.
13139         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
13140         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
13141         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
13142         * tree-ssa-threadupdate.c (redirection_data_hash,
13143         redirection_data_eq): Likewise. 
13144         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
13145         * tree-ssa.c (var_ann_eq): Likewise.
13146         * tree-vrp.c (compare_case_labels): Likewise.
13147         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
13148         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
13149         tree_not_check_failed, tree_class_check_failed,
13150         tree_range_check_failed, tree_not_class_check_failed,
13151         omp_clause_check_failed, omp_clause_range_check_failed,
13152         tree_contains_struct_check_failed, tree_operand_check_failed):
13153         Likewise. 
13154         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
13155         tree_not_check_failed, tree_class_check_failed,
13156         tree_range_check_failed, tree_not_class_check_failed,
13157         tree_operand_check_failed, omp_clause_operand_check_failed,
13158         tree_operand_length): Likewise. 
13159         * var-tracking.c (const_variable): New.
13160         (variable_htab_hash, variable_htab_eq): Constify.
13161         * varasm.c (const_desc_hash): Likewise.
13162
13163 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13164
13165         * expr.c (handled_component_p): Constify.
13166         * fold-const.c (fit_double_type): Likewise.
13167         * real.h (real_value_from_int_cst): Likewise.
13168         * tree-flow-inline.h (gimple_in_ssa_p,
13169         gimple_aliases_computed_p, gimple_addressable_vars,
13170         gimple_call_clobbered_vars, gimple_referenced_vars,
13171         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
13172         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
13173         may_aliases, end_readonly_imm_use_p, has_zero_uses,
13174         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
13175         is_label_stmt, is_global_var, phi_ssa_name_p,
13176         factoring_name_p, is_call_clobbered, tree_common_ann,
13177         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
13178         unmodifiable_var_p, array_ref_contains_indirect_ref,
13179         ref_contains_array_ref, lookup_subvars_for_var,
13180         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
13181         gimple_mem_ref_stats): Likewise.
13182         * tree-flow.h (tree_common_ann, var_ann, function_ann,
13183         may_aliases, is_exec_stmt, is_label_stmt,
13184         ref_contains_array_ref, array_ref_contains_indirect_ref,
13185         var_can_have_subvars, overlap_subvar, is_call_clobbered,
13186         unmodifiable_var_p): Likewise.
13187         * tree-gimple.c (is_gimple_min_invariant): Likewise.
13188         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
13189         * tree.c (type_hash_list, attribute_hash_list, tree_size,
13190         cst_and_fits_in_hwi, real_value_from_int_cst,
13191         build_real_from_int_cst, integer_zerop, integer_onep,
13192         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
13193         tree_floor_log2, real_zerop, real_onep, real_twop,
13194         real_minus_onep, really_constant_p, purpose_member, chain_member,
13195         list_length, fields_length, int_size_in_bytes, bit_position,
13196         int_bit_position, byte_position, int_byte_position, expr_align,
13197         array_type_nelts, tree_node_structure,
13198         type_contains_placeholder_1, iterative_hash_pointer,
13199         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
13200         tree_map_base_eq, type_hash_list, type_hash_eq,
13201         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
13202         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
13203         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
13204         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
13205         int_fits_type_p, get_containing_scope, decl_function_context,
13206         decl_type_context, omp_clause_operand_check_failed,
13207         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
13208         * tree.h (omp_clause_operand_check_failed, tree_size,
13209         build_real_from_int_cst, array_type_nelts, purpose_member,
13210         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
13211         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
13212         is_attribute_p, check_qualified_type, expr_align,
13213         int_size_in_bytes, bit_position, int_bit_position, byte_position,
13214         int_byte_position, list_length, fields_length, initializer_zerop,
13215         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
13216         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
13217         tree_node_structure, handled_component_p, get_containing_scope,
13218         decl_function_context, decl_type_context, real_zerop,
13219         type_num_arguments, fit_double_type, really_constant_p,
13220         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
13221         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
13222         real_twop, real_minus_onep, int_cst_value): Likewise.
13223
13224 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13225
13226         * cfglayout.c (insn_scope, insn_line): Constify.
13227         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
13228         const_double_htab_hash, const_double_htab_eq,
13229         mem_attrs_htab_hash): Likewise.
13230         * loop-iv.c (biv_eq): Likewise.
13231         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
13232         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
13233         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
13234         Likewise. 
13235         * rtl-error.c (location_for_asm, diagnostic_for_asm,
13236         error_for_asm, warning_for_asm, _fatal_insn,
13237         _fatal_insn_not_found): Likewise. 
13238         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
13239         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
13240         rtl_check_failed_type2, rtl_check_failed_code1,
13241         rtl_check_failed_code2, rtl_check_failed_code_mode,
13242         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
13243         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
13244         rtl_check_failed_type2, rtl_check_failed_code1,
13245         rtl_check_failed_code2, rtl_check_failed_code_mode,
13246         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
13247         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
13248         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
13249         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
13250         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
13251         rtx_unstable_p, get_integer_term, get_related_value,
13252         offset_within_block_p, reg_mentioned_p, count_occurrences,
13253         reg_referenced_p, reg_used_between_p, no_labels_between_p,
13254         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
13255         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
13256         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
13257         find_constant_src, find_reg_fusage, find_regno_fusage,
13258         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
13259         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
13260         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
13261         computed_jump_p, auto_inc_p, in_expr_list_p,
13262         remove_node_from_expr_list, loc_mentioned_in_p,
13263         label_is_jump_target_p, reversed_comparison_code_parts,
13264         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
13265         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
13266         print_inline_rtx): Likewise.
13267         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
13268         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
13269         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
13270         get_integer_term, get_related_value, offset_within_block_p,
13271         count_occurrences, reg_mentioned_p, no_labels_between_p,
13272         reg_used_between_p, reg_referenced_p, single_set_2,
13273         multiple_sets, set_noop_p, refers_to_regno_p,
13274         reg_overlap_mentioned_p, dead_or_set_p,
13275         covers_regno_no_parallel_p, covers_regno_p,
13276         dead_or_set_regno_p, find_reg_note, find_regno_note,
13277         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
13278         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
13279         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
13280         side_effects_p, may_trap_p_1, may_trap_p,
13281         may_trap_after_code_motion_p, may_trap_or_fault_p,
13282         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
13283         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
13284         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
13285         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
13286         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
13287         Likewise. 
13288         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
13289         warning_for_asm): Likewise.
13290         * tree.h (print_rtl): Likewise.
13291         * varasm.c (get_pool_mode): Likewise.
13292
13293 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13294
13295         * c-lex.c (c_lex_with_flags, lex_string): Constify.
13296         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
13297         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
13298         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
13299         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
13300         * ddg.c (compare_sccs): Likewise.
13301         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
13302         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
13303         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
13304         decimal_do_fix_trunc, decimal_real_to_integer,
13305         decimal_real_to_integer2, decimal_real_maxval): Likewise.
13306         * dse.c (const_group_info_t): New.
13307         (invariant_group_base_eq, invariant_group_base_hash): Constify.
13308         * dwarf2out.c (const_dw_die_ref): New.
13309         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
13310         * tree-browser.c (TB_parent_eq): Likewise.
13311         * unwind-dw2-fde.c (__register_frame_info_bases,
13312         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
13313         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
13314         Likewise.
13315         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
13316         * unwind-dw2.c (uw_frame_state_for): Likewise.
13317         * value-prof.c (histogram_hash, histogram_eq): Likewise.
13318         * value-prof.h (const_histogram_value): New.
13319
13320 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
13321
13322         * config/mips/mips.c (machine_function): Add
13323         initialized_mips16_gp_pseudo_p.
13324         (mips16_gp_pseudo_reg): Do not emit the initialization of
13325         mips16_gp_pseudo_rtx when being called from the gimple cost-
13326         calculation routines; emit it on the first use outside those
13327         routines.
13328
13329 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13330
13331         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
13332         New.
13333         
13334         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
13335         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
13336         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
13337         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
13338         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
13339         Preserve const-ness of parameters through use of __typeof(),
13340         also constify and tidy.
13341         
13342         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
13343         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
13344         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
13345         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
13346         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
13347         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
13348         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
13349         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
13350         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
13351
13352 2007-07-25  Julian Brown  <julian@codesourcery.com>
13353             Mark Shinwell  <shinwell@codesourcery.com>
13354
13355         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
13356         (alpha_mangle_type): This.
13357         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
13358         (TARGET_MANGLE_TYPE): Define this instead.
13359         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
13360         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
13361         (arm_init_neon_builtins): Fix comment.
13362         (arm_mangle_map_entry): New.
13363         (arm_mangle_map): New.
13364         (arm_mangle_type): New.
13365         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
13366         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
13367         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
13368         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
13369         (TARGET_MANGLE_TYPE): Define this instead.
13370         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
13371         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
13372         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
13373         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
13374         (TARGET_MANGLE_TYPE): Define this instead.
13375         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
13376         to...
13377         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
13378         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
13379         (TARGET_MANGLE_TYPE): Define this instead.
13380         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
13381         (s390_mangle_type): This.
13382         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
13383         (TARGET_MANGLE_TYPE): Define this instead.
13384         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
13385         (sparc_mangle_type): This.
13386         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
13387         (TARGET_MANGLE_TYPE): Define this instead.
13388         * cp/mangle.c (write_type): Call mangle_type target hook on all
13389         types before mangling.  Use original type, not main variant, as
13390         argument.
13391         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
13392         (TARGET_MANGLE_TYPE): This.
13393         * target.h (gcc_target): Rename mangle_fundamental_type to
13394         mangle_type.
13395         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
13396         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
13397
13398 2007-07-25  Julian Brown  <julian@codesourcery.com>
13399             Paul Brook  <paul@codesourcery.com>
13400             Joseph Myers  <joseph@codesourcery.com>
13401             Mark Shinwell  <shinwell@codesourcery.com>
13402
13403         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
13404         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
13405         (with_fpu): Allow --with-fpu=neon.
13406         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
13407         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
13408         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
13409         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
13410         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
13411         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
13412         (neon_emit_pair_result_insn, neon_disambiguate_copy)
13413         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
13414         (output_move_neon): Add prototypes.
13415         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
13416         (all_fpus): Add FPUTYPE_NEON.
13417         (fp_model_for_fpu): Add NEON field.
13418         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
13419         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
13420         in registers.
13421         (arm_legitimate_address_p): Don't support fancy addressing for NEON
13422         structure moves.
13423         (thumb2_legitimate_address_p): Likewise.
13424         (neon_valid_immediate): Recognize and prepare constants suitable for
13425         NEON instructions.
13426         (neon_immediate_valid_for_move): New function. Recognize and prepare
13427         immediates for NEON move instructions.
13428         (neon_immediate_valid_for_logic): New function. Recognize and
13429         prepare immediates for NEON logic instructions.
13430         (neon_output_logic_immediate): New function. Create asm string
13431         suitable for outputting immediate logic instructions.
13432         (neon_pairwise_reduce): New function. Implement reduction using
13433         pairwise operations.
13434         (neon_expand_vector_init): New function. Expand a (possibly
13435         non-constant) vector initialization.
13436         (neon_vector_mem_operand): New function. Memory operands supported
13437         for quad-word loads/stores to/from ARM or NEON registers. Don't
13438         allow base+offset addressing for core regs.
13439         (neon_struct_mem_operand): New function. Valid mems for NEON
13440         structure moves.
13441         (coproc_secondary_reload_class): Enable NEON registers to be loaded
13442         from neon_vector_mem_operand addresses without a secondary register.
13443         (add_minipool_forward_ref): Handle >8-byte minipool entries.
13444         (add_minipool_backward_ref): Likewise.
13445         (dump_minipool): Likewise.
13446         (push_minipool_fix): Likewise.
13447         (output_move_quad): New function. Output quad-word moves, loads and
13448         stores using ARM registers.
13449         (output_move_vfp): Add support for vectors in VFP (NEON) D
13450         registers.
13451         (output_move_neon): Output a NEON load/store to/from a quadword
13452         register.
13453         (arm_print_operand): Implement new codes:
13454         - 'c' for unadorned integers (without a # sign).
13455         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
13456         mode.
13457         - 'e', 'f' for the low and high D parts of a NEON Q register.
13458         - 'q' outputs a NEON Q register.
13459         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
13460         - 'T' prints NEON opcode features from a coded bitmask.
13461         - 'F' is similar to T, but signed/unsigned codes both print as
13462         'i'.
13463         - 't' is similar to T, but 'u' is printed instead of 'p'.
13464         - 'O' prints 'r' if NEON instruction should perform rounding (as
13465         specified by bitmask), else prints nothing.
13466         - '#' is a punctuation character to stop operand numbers from
13467         running together with following digits in the assembler
13468         strings for instructions (when using mode attributes).
13469         (arm_assemble_integer): Handle extra NEON vector modes. Permute
13470         constant vectors in big-endian mode, where necessary.
13471         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
13472         Handle EI, OI, CI, XI modes.
13473         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
13474         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
13475         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
13476         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
13477         (neon_builtin_type_bits): Add enumeration, one bit for each vector
13478         type.
13479         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
13480         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
13481         to turn v8qi, etc. into bits defined above.
13482         (neon_itype): New enumeration. Classifications of NEON builtins.
13483         (neon_builtin_datum): Define struct. Contains information about
13484         a single builtin (with multiple modes).
13485         (CF): Define helper macro for...
13486         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
13487         modes.
13488         (neon_builtin_data): New array. Define information about builtins
13489         for use during initialization/expansion.
13490         (arm_init_neon_builtins): New function.
13491         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
13492         true.
13493         (neon_builtin_compare): New function.
13494         (locate_neon_builtin_icode): New function. Find an insn code for a
13495         builtin given a function code for that builtin. Also return type of
13496         builtin (NEON_BINOP, NEON_UNOP etc.).
13497         (builtin_arg): New enumeration. Types of arguments for builtins.
13498         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
13499         Takes a variable argument list of builtin_arg types, terminated by
13500         NEON_ARG_STOP.
13501         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
13502         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
13503         (neon_emit_pair_result_insn): New function. Support returning pairs
13504         of vectors via a pointer.
13505         (neon_disambiguate_copy): New function. Set up operands for a
13506         multi-word copy such that registers do not get clobbered.
13507         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
13508         ARM_BUILTIN_NEON_BASE.
13509         (arm_file_start): Set float-abi attribute for NEON.
13510         (arm_vector_mode_supported_p): Enable NEON vector modes.
13511         (arm_mangle_map_entry): New.
13512         (arm_mangle_map): New.
13513         (arm_mangle_vector_type): New.
13514         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
13515         when appropriate.
13516         (TARGET_NEON): New macro. Target supports NEON.
13517         (fputype): Add FPUTYPE_NEON.
13518         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
13519         for vectorization based on command-line arg.
13520         (NEON_REGNO_OK_FOR_NREGS): Define.
13521         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
13522         (VALID_NEON_STRUCT_MODE): Define.
13523         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
13524         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
13525         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
13526         (consttable_16): Add pattern for outputting 16-byte minipool
13527         entries.
13528         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
13529         vec-common.md).
13530         (vec-common.md, neon.md): Include md files.
13531         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
13532         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
13533         (memory_constraint "Ut", "Un", "Us"): Define.
13534         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
13535         (MMX_char): New mode attribute.
13536         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
13537         (*add<mode>3_iwmmxt): New insn pattern.
13538         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
13539         (*sub<mode>3_iwmmxt): New insn pattern.
13540         (mulv4hi3): Rename to...
13541         (*mulv4hi3_iwmmxt): This.
13542         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
13543         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
13544         (uminv4hi3, uminv2si3): Remove. Replace with...
13545         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
13546         (*umin<mode>3_iwmmxt): These.
13547         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
13548         (ashr<mode>3_iwmmxt): This new pattern.
13549         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
13550         (lshr<mode>3_iwmmxt): This new pattern.
13551         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
13552         (ashl<mode>3_iwmmxt): This new pattern.
13553         * config/arm/neon-docgen.ml: New file. Generate documentation for
13554         intrinsics.
13555         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
13556         * config/arm/arm_neon.h: New (autogenerated).
13557         * config/arm/neon-testgen.ml: New file. Generate NEON tests
13558         automatically.
13559         * config/arm/neon.md: New file. Define NEON instructions.
13560         * config/arm/neon.ml: New file. Abstract description of NEON
13561         instructions, used to generate arm_neon.h header, documentation and
13562         tests.
13563         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
13564         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
13565         support.
13566         * doc/extend.texi (ARM Built-in Functions): Rename and remove
13567         extraneous comma.
13568         (ARM NEON Intrinsics): New subsection.
13569         * doc/arm-neon-intrinsics.texi: New (autogenerated).
13570
13571 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
13572
13573         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
13574         prototype.
13575
13576 2007-07-24  Jan Hubicka  <jh@suse.cz>
13577
13578         * regclass.c (move_table): New type.
13579         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
13580         (init_move_cost): Break out from ...
13581         (init_reg_sets_1): ... here; simplify computation of
13582         have_regs-of_mode and contains_reg_of_mode.
13583         (record_reg_classes): Unswitch internal loops.
13584         (copy_cost): Trigger lazy initialization of move cost
13585         (record_address_regs): Likewise.
13586
13587 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
13588
13589         * config/darwin.c (darwin_override_options): Don't force on
13590         flag_var_tracking_uninit when no debug info is requested.
13591
13592 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
13593
13594         * cfgloop.c (init_loops_structure): New function.
13595         (flow_loops_find): Create root of the loop tree unconditionally.
13596
13597 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
13598
13599         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
13600
13601 2007-07-24  Jan Hubicka  <jh@suse.cz>
13602
13603         * caller-save.c: Include ggc.h, gt-caller-save.h
13604         (reg_save_code, reg_restore_code): Rename to ...
13605         (cached_reg_save_code, cached_reg_restore_code): ... those.
13606         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
13607         (reg_save_code, reg_restore_code): New functions.
13608         (init_caller_save): Do not intialize
13609         reg_save_code/reg_restore_code tables.
13610         * Makefile.in: (gt-caller-save.h): New.
13611
13612 2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
13613
13614         * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
13615         with the mode of the original operand instead of
13616         integer_one_node.
13617
13618 2007-07-23  Jan Hubicka  <jH@suse.cz>
13619
13620         * i386.c (ix86_secondary_memory_needed): Break out to...
13621         (inline_secondary_memory_needed): ... here.
13622         (ix86_memory_move_cost): Break out to ...
13623         (inline_memory_move_cost): ... here; add support for IN value of 2 for
13624         maximum of input and output; fix handling of Q_REGS on 64bit.
13625         (ix86_secondary_memory_needed): Microoptimize.
13626
13627 2007-07-23  Sebastian Pop  <sebpop@gmail.com>
13628
13629         * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
13630         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
13631         stmts_from_loop, known_dependences_p, build_rdg): New.
13632         * tree-data-ref.h: Depends on graphds.h.
13633         (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
13634         (build_rdg): Declared.
13635         * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
13636
13637 2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
13638
13639         * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
13640         ccp_min_invariant.
13641
13642 2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
13643             Jakub Jelinek  <jakub@redhat.com>
13644
13645         PR middle-end/PR28690
13646         * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow
13647         EQ compares.
13648         * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
13649         and MEM_POINTER operands over REG and MEM operands.
13650         (swap_commutative_operands_p): Change return value to bool.
13651         * rtl.h: Update the corresponding prototype.
13652         * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
13653         instead of gen_rtx_PLUS.
13654         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
13655         value to bool.  Change function arguments to rtx's and update code
13656         to match.
13657         (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
13658         calls to match the new declaration.
13659         * simplify-rtx.c (simplify_associative_operation): Don't
13660         reorder simplify_binary_operation arguments.
13661
13662 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
13663
13664         * config/mips/mips.c (override_options): Use mips_costs to derive
13665         the default branch cost.
13666         * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
13667         than mips_costs.
13668         * config/mips/mips.opt (mbranch-cost=): New option.
13669         * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
13670
13671 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
13672
13673         * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
13674         (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
13675         * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
13676         instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
13677
13678 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
13679
13680         * config/mips/constraints.md (ks): New constraint.
13681         * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
13682         (*add<mode>3_mips16): ...here.
13683
13684 2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
13685
13686         * optabs.h (enum optab_index): Add new OTI_signbit.
13687         (signbit_optab): Define corresponding macro.
13688         (enum insn_code signbit_optab[]): Remove array.
13689         * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
13690         (expand_copysign_absneg): If back end provides signbit insn, use it
13691         instead of bit operations on floating point argument.
13692         * builtins.c (enum insn_code signbit_optab[]): Remove array.
13693         (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code
13694         for availability of signbit insn.
13695
13696         * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
13697         signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
13698         SSE mode is not active.
13699         (isinf<mode>2): Disable for mfpmath=sse,387.
13700
13701 2007-07-22  Ben Elliston  <bje@au.ibm.com>
13702
13703         * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
13704         `class' parameter.
13705         * struct-equiv.c (note_local_live): Likewise for `y_regno'.
13706
13707 2007-07-20  Richard Guenther  <rguenther@suse.de>
13708
13709         * tree-cfg.c (verify_expr): COND_EXPRs can have any
13710         integral typed condition.
13711         * tree-ssa.c (useless_type_conversion_p): Do not preserve
13712         booleanness.  Only preserve conversions from a non-base
13713         type to a base type, not in general between types with
13714         different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
13715         * tree.def (COND_EXPR): Document that the condition
13716         can be of any integral type.
13717
13718 2007-07-20  Nigel Stephens  <nigel@mips.com>
13719             Richard Sandiford  <richard@codesourcery.com>
13720
13721         * config/mips/mips.h (mips_dwarf_regno): Declare.
13722         (DBX_REGISTER_NUMBER): Remove redundant brackets.
13723         (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
13724         (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
13725         (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
13726         (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
13727         (REG_CLASS_NAMES): Update accordingly.
13728         * config/mips/mips.c (mips_dwarf_regno): New array.
13729         (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
13730         (mips_subword): Remove special handling for accumulator registers.
13731         (override_options): Initiailize mips_dwarf_regno.  Remove use
13732         of ACC_HI_REG_P.
13733         (mips_swap_registers): New function.
13734         (mips_conditional_register_usage): Swap accumulator registers
13735         around if TARGET_LITTLE_ENDIAN.
13736         (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
13737         * config/mips/constraints.md (h, l): Use the endianness to choose
13738         between MD0_REG and MD1_REG.
13739         * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
13740         alternative-dependent template.
13741
13742 2007-07-20  Richard Sandiford  <richard@codesourcery.com>
13743
13744         * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
13745         no_new_pseudos.
13746
13747 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
13748
13749         * function.c (thread_prologue_and_epilogue_insns): Fix exit
13750         predecessor fallthru flags.
13751
13752 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
13753
13754         * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
13755         of compare to the same type.
13756         * cfgloopmanip.c (add_loop): Update information about loop exits.
13757         (loop_version): Remove the innermost loop requirement.
13758         * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
13759         to sizetype for pointers.
13760
13761 2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
13762
13763         * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
13764         (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
13765         (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
13766
13767         * config/dfp-bit.c: Empty for TFmode conversions.
13768
13769 2007-07-18  Caroline Tice  <ctice@apple.com>
13770         
13771         * var-tracking.c (find_src_status): Check for  COND_EXEC insns
13772         and handle them correctly; check that src is not NULL before
13773         trying to use it.
13774         (find_src_set_src): Likewise.
13775         
13776 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
13777         
13778         * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
13779         (struct alignment_context, init_alignment_context): New.
13780         (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
13781         * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
13782         (XCHAL_HAVE_S32C1I): Likewise.
13783         (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
13784         * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
13785         (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
13786         (ATOMIC, HQI): New macros.
13787         (memory_barrier, *memory_barrier): New.
13788         (sync_lock_releasesi): New.
13789         (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
13790         (sync_lock_test_and_set<mode>): New.
13791         (sync_<atomic><mode>): New.
13792         (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
13793         * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
13794         (xtensa_expand_atomic): New.
13795         
13796 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13797
13798         PR target/30652
13799
13800         * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
13801         transformation for builtin ISNORMAL.
13802         (expand_builtin): Handle BUILT_IN_ISNORMAL.
13803         * builtins.def (BUILT_IN_ISNORMAL): New.
13804         * doc/extend.texi: Document isnormal.
13805
13806 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13807
13808         PR target/30652
13809
13810         * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
13811         optabs infrastructure.  Provide generic implementation for
13812         FINITE/ISFINITE.
13813         (expand_builtin): Handle FINITE/ISFINITE.
13814         (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
13815         (fold_builtin_1): Likewise.
13816
13817         * builtins.def (BUILT_IN_ISFINITE): New.
13818
13819         * doc/extend.texi: Document isfinite.
13820
13821 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13822
13823         PR target/30652
13824         PR middle-end/20558
13825
13826         * builtins.c (expand_builtin_interclass_mathfn): Provide a
13827         generic fallback for isinf.
13828         * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
13829         calculation code ...
13830         * real.c (get_max_float): ... to here.
13831         * real.h (get_max_float): New.
13832
13833 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13834
13835         PR middle-end/32668
13836
13837         * builtin-attrs.def (ATTR_TYPEGENERIC,
13838         ATTR_CONST_NOTHROW_TYPEGENERIC): New.
13839
13840         * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
13841         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
13842         BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
13843         BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
13844
13845         * c-common.c (handle_type_generic_attribute): New.
13846         (c_common_attribute_table): Add "type generic".
13847
13848         * c-typeck.c (convert_arguments): Handle "type generic" functions.
13849
13850 2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
13851
13852         * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
13853         * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
13854         properly.
13855
13856 2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
13857
13858         PR target/32808
13859         * config/cris/cris.c (cris_print_index): Don't use XEXP before
13860         checking that the operand is an expression.
13861
13862 2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
13863             Danny Smith  <dannysmith@users.sourceforge.net>
13864
13865         PR/other 30335
13866         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
13867         file mapping object in local namespace if Windows version later
13868         than NT4
13869
13870 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
13871
13872         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
13873         * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
13874         arm_cannot_force_const_mem.
13875         (arm_cannot_force_const_mem): New function.
13876         * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
13877         (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
13878         of arm_tls_referenced_p.
13879         * config/arm/arm.md (movsi): Split out-of-section constants when
13880         ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
13881         * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
13882
13883 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
13884
13885         * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
13886
13887 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
13888
13889         * config/mips/mips.md (*extendqihi2): Convert the destination
13890         to SImode.
13891
13892 2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13893
13894         * config/pa/fptr.c: Update license header.
13895         * config/pa/milli64.S: Likewise.
13896
13897 2007-07-17  Nick Clifton  <nickc@redhat.com>
13898
13899         * COPYING_v3: New file.  Contains version 3 of the GNU General
13900         Public License.
13901         * COPYING.LIB_v3: New file.  Contains version 3 of the GNU
13902         Lesser General Public License.
13903         * doc/include/gpl_v3.texi: New file.  Contains version 3 of
13904         the GNU General Public License.
13905
13906 2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>
13907
13908         PR rtl-optimization/32773
13909         * cfglayout.c (force_one_exit_fallthru): New function.
13910         (cfg_layout_finalize): Use it.
13911
13912 2007-07-16  Richard Guenther  <rguenther@suse.de>
13913             Uros Bizjak  <ubizjak@gmail.com>
13914
13915         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
13916         before forcing it to gimple operand.
13917
13918 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
13919             David Ung  <davidu@mips.com>
13920
13921         * config/mips/mips.h (TUNE_24K): Define.
13922         (TUNE_MACC_CHAINS): Add TUNE_24K.
13923         * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
13924         imadd.
13925         * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
13926         (r74k_int_madd): .. this new reservation.
13927         (define_bypass): Fixed bypasses for r74k_int_madd to use
13928         mips_linked_madd_p.
13929         * config/mips/24k.md (define_bypass): Define new
13930         r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
13931
13932 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
13933             Nigel Stephens  <nigel@mips.com>
13934
13935         * config/mips/mips.md: Include 20kc.md.
13936         * config/mips/20kc.md: New file.
13937         * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
13938         (mips_adjust_cost): Tweak for 20Kc.
13939         (mips_issue_rate): Likewise.
13940         * config/mips/mips.h (TUNE_20KC): Define.
13941
13942 2007-07-16  David Edelsohn  <edelsohn@gnu.og>
13943
13944         * config/rs6000/rs6000.c (struct processor_cost): Add
13945         cache_line_size, l1_cache_lines, and simultaneous_prefetches
13946         fields.
13947         (*_cost): Add cache information.
13948         (rs6000_override_options): Set cache parameters.
13949
13950 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13951
13952         PR bootstrap/3456
13953         * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
13954         * doc/install.texi (mips-sgi-irix6): pthread support works now.
13955
13956 2007-07-16  Paul Brook  <paul@codesourcery.com>
13957
13958         PR target/32753
13959         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
13960         (cirrus_thumb2_movsi_insn): Ditto.
13961
13962 2007-07-15  Geoffrey Keating  <geoffk@apple.com>
13963
13964         * config/rs6000/darwin-fallback.c (interpret_libc): Change
13965         CR2_REGNO to R_CR2.
13966
13967 2007-07-15  Andrew Haley  <aph@redhat.com>
13968
13969         * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
13970         before looking in the context.
13971
13972 2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13973
13974         PR middle-end/32398
13975         PR middle-end/32769
13976         * pa-protos.h (pa_eh_return_handler_rtx): Declare.
13977         * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
13978         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
13979         (pa_output_function_prologue): Use rp_saved and
13980         current_function_is_leaf to generate .CALLINFO statement.
13981         (hppa_expand_prologue): Set rp_saved.
13982         (hppa_expand_epilogue): Use rp_saved.
13983         (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
13984         * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
13985
13986 2007-07-14  Dirk Mueller  <dmueller@suse.de>
13987
13988         * omega.c (coalesce): Fix memory leak on early exit.
13989         * matrix-reorg.c (check_allocation_function): Likewise.
13990         * tree-vect-transform.c (vect_get_new_vect_var): free result
13991         of concat().
13992         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
13993         pass pointer to edge vector
13994         (partition_hot_cold_basic_blocks): Fix memory leak.
13995         * collect2.c (prefix_from_string): Free temporary storage.
13996         * reload1.c (fixup_abnormal_edges): Free sbitmap.
13997
13998 2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>
13999
14000         * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
14001         (DO_GLOBAL_DTORS_BODY): Likewise.
14002
14003 2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
14004             Nigel Stephens  <nigel@mips.com>
14005
14006         * config/mips/mips.c (mips_classify_symbol): Don't return
14007         SYMBOL_SMALL_DATA for constant pool addresses if
14008         TARGET_EMBEDDED_DATA is true.
14009
14010 2007-07-14  Uros Bizjak  <ubizjak@gmail.com>
14011
14012         * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
14013         except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
14014         __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
14015         __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
14016         __builtin_ia32_storehps, __builtin_ia32_storelps,
14017         __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
14018         __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
14019         __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
14020         __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
14021         __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
14022         __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
14023         __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
14024         __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
14025         using def_builtin_const.
14026
14027 2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>
14028
14029         PR tree-optimization/32705
14030         * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
14031         (simplify_binary_expression): Use SSA_VAL consistently.
14032
14033 2007-07-13  David Edelsohn  <edelsohn@gnu.org>
14034
14035         * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
14036         (SPEFSCR_REGNO): Delete definition.
14037         * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
14038         COUNT_REGISTER_REGNUM -> CTR_REGNO.
14039         * config/rs6000/rs6000.h: Do not define *_REGNO.
14040         LINK_REGISTER_REGNUM -> LR_REGNO.
14041         COUNT_REGISTER_REGNUM -> CTR_REGNO.
14042         * config/rs6000/predicates.md: LINK_REGISTER_REGNUM ->  LR_REGNO.
14043         COUNT_REGISTER_REGNUM -> CTR_REGNO.
14044         * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
14045         R_VRSAVE, R_VSCR. Use them.
14046         * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
14047         R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
14048         * config/rs6000/rs6000.md: Define REGNO constants.  Use them.
14049         * config/rs6000/aix.h: Define R_LR.  Use it.
14050         
14051 2007-07-13  Caroline Tice  <ctice@apple.com>
14052         
14053         * toplev.c (process_options): Turn flag_var_tracking_uninit off when
14054         flag_var_tracking is explicitly turned off (i.e. when variable
14055         tracking is not feasible); otherwise, turn flag_var_tracking on when
14056         flag_var_tracking_uninit is on.
14057         * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
14058         note definitions, to allow recording of initialization status in the
14059         notes.
14060         * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
14061         (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
14062         determine if two note locations are equal.
14063         (output_loc_list): Don't output list entries whose start & end labels
14064         are the same.
14065         (reg_loc_descriptor): Add parameter for initialization status; pass it
14066         to other loc descriptor functions.
14067         (one_reg_loc_descriptor): Add parameter for initialization status;
14068         check its value and add DW_OP_GNU_uninit to returned loc descr if
14069         appropriate.
14070         (multiple_reg_loc_descriptor): Add parameter for initialization
14071         status;
14072         pass init status argument to other loc descriptor functions; check
14073         value of intialization parameter and add DW_OP_GNU_uninit to returned
14074         loc descr if appropriate.
14075         (based_loc_descr): Add parameter for initialization status; add new
14076         variable for return value; check value of initialization parameter and
14077         add DW_OP_GNU_uninit to returned loc descr if appropriate.
14078         (concatn_mem_loc_descriptor): Add parameter for initialization status;
14079         pass init status argument to other loc descriptor functions; check
14080         value of intialization parameter and add DW_OP_GNU_uninit to returned
14081         loc descr if appropriate.
14082         (mem_loc_descriptor): Likewise.
14083         (concat_loc_descriptor): Likewise.
14084         (concatn_loc_descriptor): Likewise.
14085         (loc_descriptor): Add parameter for initialization status; pass it as
14086         argument to other loc descriptor function calls.
14087         (loc_descriptor_from_tree_1): Add appropriate initialization status
14088         to loc descriptor function calls.
14089         (add_location_or_const_value_attribute): Get initialization status
14090         from VAR_LOCATION note; add initialization status to loc descriptor
14091         function calls.
14092         * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
14093         * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
14094         status is uninitialized, add "[uninint]" to output.
14095         * common.opt (fvar-tracking-uninit): New option, similar to
14096         fvar-tracking, to turn on tracking of uninitialized variables; creates
14097         a new global flag, flag_var_tracking_uninit.
14098         * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
14099         (enum var_init_status): New type, for var initialization status field.
14100         * var-tracking.c (struct location_chain_def): Two new fields, init,
14101         for initialization status, and set_src for the assignment value expr.
14102         (unshare_variable): New parameter for initialization status;
14103         initialize new init and set_src fields.
14104         (var_reg_set): New parameters for initialization status and value;
14105         pass them to set_variable_part.
14106         (var_mem_set): Likewise.
14107         (get_init_value): New function.
14108         (var_reg_delete_and_set): New initialization status & value
14109         parameters; add call to get_init_value if status is unknown; pass new
14110         parameters to clobber_variable_part and var_reg_set.
14111         (var_mem_delete_and_set): Likewise.
14112         (var_reg_delete): Pass null set_src value to clobber_variable_part.
14113         (var_mem_delete): Likewise.
14114         (variable_union): Pass status to unshare_variable; initialize new init
14115         and set_src fields. If flag_var_tracking_uninit is not set, force
14116         status to initialized.
14117         (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
14118         used later to get the set_src value.
14119         (find_src_status): New function.
14120         (find_src_set_src): New function.
14121         (compute_bb_dataflow): Pass init status to calls to var_reg_set,
14122         var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
14123         MO_SET, get set_src value and pass it to var_reg_delete_and_set
14124         and var_mem_delete_and_set.
14125         (dump_variable): Print out "[uninit]" if appropriate.
14126         (set_variable_part): Add new initialization and set_src parameters;
14127         pass status to unshare_variable; set node->init and node- >set_src
14128         fields and modify slot in hash table appropriately; save the init and
14129         set_src values if appropriate and assign to the new node.
14130         (clobber_variable_part): New set_src parameter; if two nodes have
14131         same variable and same location but different set_src (assignment)
14132         values, clobber old node.
14133         (delete_variable_part): Pass init status to unshare_variable.
14134         (emit_note_insn_var_location): Add initialized var; assign var's init
14135         status to new 'initialized'; pass new init status field to calls to
14136         gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
14137         status to initialized.
14138         (emit_notes_in_bb): Pass initialization status to calls to
14139         var_reg_set, var_mem_set, var_reg_delete_and_set and
14140         var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
14141         var_reg_delete_and_set and var_mem_delete_and_set; call
14142         emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
14143         make up for change in add_stores.
14144         (vt_add_function_parameters): Add status to calls to
14145         set_variable_part.
14146         * config/darwin.c (darwin_override_options): Turn on uninitialized
14147         tracking automatically, if var_tracking is on and the system is
14148         10.5 or higher.
14149         
14150 2007-07-13  Sa Liu  <saliu@de.ibm.com>
14151
14152         * config.gcc: Add options for arch and tune on SPU.
14153         * config/spu/predicates.md: Add constant operands 0 and 1.
14154         * config/spu/spu-builtins.def: Add builtins for double precision 
14155         floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, 
14156         si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
14157         spu_testsv.
14158         * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
14159         a CELLEDP target.
14160         * config/spu/spu-protos.h: Add new function prototypes. 
14161         * config/spu/spu.c (spu_override_options): Check options -march and
14162         -mtune.
14163         (spu_comp_icode): Add comparison code for DFmode and vector mode.
14164         (spu_emit_branch_or_set): Use the new code for DFmode and vector 
14165         mode comparison.
14166         (spu_const_from_int): New.  Create a vector constant from 4 ints.
14167         (get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
14168         (spu_emit_vector_compare): New.  Emit vector compare.
14169         (spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
14170         * config/spu/spu.h: Add options -march and -mtune.  Define processor
14171         types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
14172         CANONICALIZE_COMPARISON.
14173         * config/spu/spu.md: Add new insns for double precision compare
14174         and double precision vector compare.  Add vcond and smax/smin patterns
14175         to enable DFmode vector conditional expression.
14176         * config/spu/spu.opt: Add options -march and -mtune.
14177         * config/spu/spu_internals.h: Add builtins for CELLEDP target:
14178         si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
14179         both CELL and CELLEDP targets: spu_testsv.
14180         * config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
14181         values.
14182
14183 2007-07-13  Richard Guenther  <rguenther@suse.de>
14184
14185         PR tree-optimization/32721
14186         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
14187         TREE_THIS_VOLATILE on the folded reference.
14188         * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
14189         if the array reference has TREE_THIS_VOLATILE set.
14190
14191 2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>
14192
14193         PR other/32188
14194         * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
14195
14196 2007-07-13  Andreas Schwab  <schwab@suse.de>
14197
14198         * gengtype-lex.l: Allow declarations to be indented.
14199
14200 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
14201
14202         * ginclude/tgmath.h: New.
14203         * config.gcc: Use GCC's tgmath.h on non-glibc systems.
14204         * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
14205         * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
14206         * configure: Regenerate.
14207
14208 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
14209
14210         * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
14211         correct index when setting register save state for xd
14212         registers.
14213
14214 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
14215
14216         * config/sh/sh.c (mark_use): Remove.
14217
14218 2007-07-12  Paul Brook  <paul@codesourcery.com>
14219
14220         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
14221         reg does not overlap return value.
14222
14223 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
14224
14225         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
14226         (set_expression_vuses): Ditto.
14227         (init_pre): Initialize expression_vuses.
14228
14229 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
14230
14231         * config/i386/sse.md (storentdf, storentsf): New.
14232
14233 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
14234
14235         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
14236         FUNCTION_DECL.
14237         * tree.c (build_decl_stat): Move code from here...
14238         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
14239         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
14240         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
14241         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
14242         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
14243         FUNCTION_BOUNDARY.
14244
14245 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
14246             Devang Patel  <dpatel@apple.com>
14247
14248         PR tree-optimization/25413
14249         * targhooks.c (default_builtin_vector_alignment_reachable): New.
14250         * targhooks.h (default_builtin_vector_alignment_reachable): New.
14251         * tree.h (contains_packed_reference): New.
14252         * expr.c (contains_packed_reference): New.
14253         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
14254         (vect_enhance_data_refs_alignment): Call
14255         vector_alignment_reachable_p.
14256         * target.h (vector_alignment_reachable): New builtin.
14257         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
14258         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
14259         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
14260
14261 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
14262
14263         * target.h (builtin_vectorization_cost): Add new target builtin.
14264         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
14265         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
14266         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
14267         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
14268         uninitialized variables.
14269         * tree-vect-transform.c (cost_for_stmt): New function.
14270         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
14271         using cost 1 for all scalar stmts. Be less conservative when
14272         estimating the number of prologue/epulogue iterations. Call
14273         targetm.vectorize.builtin_vectorization_cost. Return
14274         min_profitable_iters-1.
14275         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
14276         initialization cost instead of TARG_VEC_STMT_COST. Use
14277         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
14278         epilogue code. Fix epilogue cost computation.
14279         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
14280         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
14281         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
14282         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
14283         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
14284         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
14285
14286 2007-07-12  Richard Guenther  <rguenther@suse.de>
14287
14288         * gimplify.c (gimplify_conversion): Make sure that the result
14289         from maybe_fold_offset_to_reference is trivially convertible
14290         to the desired type before doing the simplification.
14291         (gimplify_expr): Likewise.
14292         * fold-const.c (fold_binary): Use the correct types for
14293         building the simplified expression.
14294
14295 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
14296
14297         PR rtl-optimization/32729
14298         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
14299         that fallthru to exit.
14300
14301 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
14302
14303         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
14304         (symDTPOFF2reg): Likewise.
14305
14306 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
14307
14308         PR tree-optimization/32663
14309         
14310         * tree.h (VALUE_HANDLE_VUSES): Remove.
14311         (struct tree_value_handle): Remove vuses.
14312
14313         * tree-vn.c (create_value_handle_for_expr): Don't set
14314         VALUE_HANDLE_VUSES. 
14315
14316         * tree-ssa-pre.c (expression_vuses): New.
14317         (alloc_expression_id): Set up expression_vuses.
14318         (get_expression_vuses): New.
14319         (set_expression_vuses): Ditto.
14320         (clear_expression_ids): Modify for expression_vuses.
14321         (phi_translate_1): Ditto.
14322         (phi_translate_set): Ditto.
14323         (value_dies_in_block_x): Ditto
14324         (valid_in_sets): Ditto.
14325         (add_to_sets): Ditto.
14326         (find_existing_value_expr): Ditto.
14327         (create_value_handle_for_expr): Ditto.
14328         (make_values_for_stmt): Ditto.
14329         (vuse_equiv): Remove.
14330
14331 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
14332
14333         * Makefile.in (mostlyclean): Remove object files.
14334
14335 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
14336
14337         * toplev.c (no_new_pseudos): Deleted.
14338         * rtl.h (no_new_pseudos): Deleted.
14339         * tree-pass.h (pass_no_new_pseudos): Deleted. 
14340         * passes.c (pass_no_new_pseudos): Deleted.
14341         * final.c (rest_of_clean_state): Removed no_new_pseudos.
14342         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
14343         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
14344         reload_completed.
14345         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
14346         * rtlhooks.c (gen_lowpart_general): Ditto.
14347         * optabs.c (prepare_operand): Ditto.
14348         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
14349         no_new_pseudos.
14350         * modulo-sched.c (rest_of_handle_sms): Ditto.
14351         * see.c (rest_of_handle_see): Ditto.
14352         * ifcvt.c (if_convert): Ditto.
14353         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
14354         reload_completed.
14355         * init-regs.c (gate_initialize_regs): Deleted set of
14356         no_new_pseudos.
14357         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
14358         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
14359         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
14360         
14361 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
14362
14363         PR target/32661
14364         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
14365         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
14366         (*vec_extractv2di_1_rex64): New insn pattern.
14367
14368 2007-07-11  David Daney  <ddaney@avtrex.com>
14369
14370         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
14371         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
14372         for SIGNAL_UNWIND_RETURN_COLUMN.
14373         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
14374         (DWARF_FRAME_REGNUM): Rewrite.
14375         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
14376
14377 2007-07-11  Nick Clifton  <nickc@redhat.com>
14378
14379         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
14380         delta and use gen_int_mode in place of GET_INT instead.
14381
14382 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
14383
14384         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
14385         and letter field.
14386
14387 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
14388
14389         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
14390         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
14391         types or not.
14392         * params.h (VERIFY_CANONICAL_TYPES): Remove.
14393         (USE_CANONICAL_TYPES): New.
14394         * doc/invoke.texi (verify-canonical-types): Remove.
14395         (use-canonical-types): Add.
14396
14397 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
14398
14399         * config/spu/spu.c (spu_optimization_options): Remove setting of
14400         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
14401         (spu_override_options): Move it here.
14402
14403 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
14404
14405         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
14406         * config/mips/mips.c (mips_cpu_info_table): Mention
14407         MIPS_ISA_LEVEL_SPEC in the comment.
14408
14409 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
14410
14411         PR tree-optimization/32713
14412         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
14413
14414 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
14415
14416         PR middle-end/30482
14417         * c-opts.c (c_common_post_options): Do not change flag_complex_method
14418         conditional to flag_isoc99.
14419         (c_common_init_options): Do it here, unconditionally.
14420
14421 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
14422
14423         PR tree-optimization/32589
14424         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
14425         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
14426         * tree-ssa-propagate.c (valid_gimple_expression_p): New
14427         predicate, extracted from...
14428         (set_rhs): ...here.  Call it for the expression on entry.
14429         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
14430         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
14431         (simplify_binary_expression): Use valid_gimple_expression_p
14432         to validate the simplification.
14433         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
14434
14435 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
14436
14437         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
14438         DWARF2_DEBUG on 32 bit target too.
14439         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
14440
14441 2007-07-11  Nick Clifton  <nickc@redhat.com>
14442
14443         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
14444         version for 64-bit hosts.
14445
14446 2007-07-10  David Daney  <ddaney@avtrex.com>
14447
14448         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
14449         predicate.
14450         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
14451         call.
14452         * config/mips/mips.c (mips_expand_synci_loop): New function.
14453         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
14454         (UNSPEC_RDHWR): Same.
14455         (UNSPEC_SYNCI): Same.
14456         (UNSPEC_SYNC): Same.
14457         (clear_cache): New expand.
14458         (sync): New insn.
14459         (synci): Same.
14460         (rdhwr): Same.
14461         (clear_hazard): Same.
14462         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
14463         function.
14464         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
14465         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
14466
14467 2007-07-10  Ian Lance Taylor  <iant@google.com>
14468
14469         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
14470         no_new_pseudos.
14471
14472 2007-07-10  David Daney  <ddaney@avtrex.com>
14473
14474         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
14475         * builtins.c (expand_builtin___clear_cache): New function.
14476         (expand_builtin): Call expand_builtin___clear_cache for
14477         BUILT_IN_CLEAR_CACHE case.
14478         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
14479         * doc/md.texi (clear_cache): Document new instruction pattern.
14480         * testsuite/gcc.dg/builtins-64.c: New test.
14481
14482 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
14483
14484         * config/cris/cris.md ("movsi"): Fix typo in last change.
14485
14486 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
14487
14488         PR 32617
14489         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
14490         FUNCTION_DECLs.
14491         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
14492         * varasm.c (assemble_start_function): Honor DECL_ALIGN
14493         for FUNCTION_DECLs.  Don't use align_functions_log if
14494         DECL_USER_ALIGN.
14495         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
14496         even for FUNCTION_DECLs.
14497         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
14498         FUNCTION_DECLs.
14499         * tree.h (DECL_ALIGN): Update for new location of 'align'.
14500         (DECL_FUNCTION_CODE): Update for new location and name of
14501         'function_code'.
14502         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
14503         (struct tree_decl_common): Move 'align' and 'off_align' out
14504         of union, ensure they're still on a 32-bit boundary.  Remove
14505         other fields in union 'u1'.
14506         (struct tree_function_decl): Add field 'function_code' replacing
14507         'u1.f' in tree_decl_common.
14508         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
14509         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
14510         (Variable Attributes): Cross-reference 'aligned' attribute
14511         to Function Attributes.
14512         * flags.h (force_align_functions_log): Delete.
14513         * toplev.c (force_align_functions_log): Delete.
14514
14515 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
14516
14517         PR target/32708
14518         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
14519         (*vec_concatv2di_rex): New insn pattern.
14520
14521 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14522
14523         PR target/32538
14524         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
14525
14526 2007-07-10  Ian Lance Taylor  <iant@google.com>
14527
14528         Replace no_new_pseudos in backends.
14529         * rtl.h (can_create_pseudo_p): Define.
14530         * config/darwin.c (machopic_indirect_data_reference): Use
14531         can_create_pseudo_p () instead of no_new_pseudos.
14532         (machopic_indirect_data_reference): Likewise.
14533         (machopic_legitimize_pic_address): Likewise.
14534         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
14535         (alpha_emit_set_const_1): Likewise.
14536         (alpha_emit_set_const): Likewise.
14537         (alpha_emit_conditional_move): Likewise.
14538         (alpha_split_conditional_move): Likewise.
14539         * config/alpha/alpha.md (various splitters): Likewise.
14540         (movti): Likewise.
14541         * config/arm/arm.c (legitimize_pic_address): Likewise.
14542         (arm_load_pic_register): Likewise.
14543         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
14544         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
14545         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
14546         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
14547         * config/cris/cris.md (movsi): Likewise.
14548         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
14549         (symGOTOFF2reg_hilo): Likewise.
14550         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
14551         * config/h8300/h8300.md (insv, extzv): Likewise.
14552         * config/i386/i386.c (ix86_expand_move): Likewise.
14553         (ix86_expand_vector_move): Likewise.
14554         (ix86_prepare_fp_compare_args): Likewise.
14555         (ix86_expand_carry_flag_compare): Likewise.
14556         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
14557         (tls_dynamic_gnu2_combine_32): Likewise.
14558         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
14559         * config/ia64/ia64.c (ia64_expand_move): Likewise.
14560         (ia64_expand_movxf_movrf): Likewise.
14561         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
14562         (m32c_split_move): Likewise.
14563         (m32c_expand_insv): Likewise.
14564         * config/m68k/m68k.md (movsi): Likewise.
14565         * config/mips/mips.c (mips_force_temporary): Likewise.
14566         (mips_split_symbol): Likewise.
14567         (mips_move_integer): Likewise.
14568         (mips_legitimize_const_move): Likewise.
14569         * config/mn10300/mn10300.md (movsi): Likewise.
14570         * config/pa/pa.c (emit_move_sequence): Likewise.
14571         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
14572         (rs6000_got_register): Likewise.
14573         (create_TOC_reference): Likewise.
14574         (rs6000_machopic_legitimize_pic_address): Likewise.
14575         * config/rs6000/rs6000.md (add<mode>3): Likewise.
14576         (various splitters): Likewise.
14577         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
14578         (movsi_got): Likewise.
14579         * config/s390/s390.c (emit_symbolic_move): Likewise.
14580         * config/s390/s390.md (movhi, movqi): Likewise.
14581         (load_multiple, store_multiple): Likewise.
14582         * config/score/score.c (score_force_temporary): Likewise.
14583         * config/sh/sh.c (prepare_move_operands): Likewise.
14584         (prepare_cbranch_operands): Likewise.
14585         (emit_fpu_switch): Likewise.
14586         (fpscr_set_from_mem): Likewise.
14587         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
14588         (adddi3, subsi3): Likewise.
14589         (various splitters): Likewise.
14590         (divsi_inv_fp_combine): Likewise.
14591         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
14592         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
14593         (sne): Likewise.
14594         * config/sh/predicates.md (xor_operand): Likewise.
14595         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
14596         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
14597         (movdi_pic_label_ref): Likewise.
14598         * config/spu/spu.c (spu_split_immediate): Likewise.
14599         * config/alpha/alpha.md (various splitters): Remove test
14600         !no_new_pseudos || reload_completed.
14601         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
14602         no_new_pseudos.
14603         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
14604         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
14605         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
14606         * config/score/score.c (th_output_mi_thunk): Likewise.
14607         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
14608         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
14609
14610 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
14611
14612         PR rtl-optimization/32664
14613         * mode-switching.c (create_pre_exit): Skip barrier insns.
14614
14615 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
14616
14617         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
14618         force_gimple_operand_bsi.
14619         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
14620         rewrite_use_compare): Ditto.
14621         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
14622         Ditto.
14623         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
14624         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
14625         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
14626         * tree-profile.c (prepare_instrumented_value,
14627         tree_gen_interval_profiler, tree_gen_pow2_profiler,
14628         tree_gen_one_value_profiler, tree_gen_ic_profiler,
14629         tree_gen_ic_func_profiler, tree_gen_average_profiler,
14630         tree_gen_ior_profiler): Ditto.
14631         * tree-ssa-reassoc.c (negate_value): Ditto.
14632         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
14633         Use force_gimple_operand_bsi.
14634         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
14635         * tree-if-conv.c (add_to_dst_predicate_list,
14636         find_phi_replacement_condition): Ditto.
14637         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
14638         Call mark_symbols_for_renaming for new statements.
14639         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
14640
14641 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
14642
14643         * cfghooks.c (remove_edge): New function.
14644         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
14645         loop exit rescans.
14646         * cfghooks.h (remove_edge): Declare.
14647         * cfg.c (remove_edge): Renamed to remove_edge_raw.
14648         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
14649
14650 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
14651
14652         * optabs.h: Added declaration for signbit_optab.  
14653         * optabs.c: (init_optabs): Added initialization for signbit_optab.
14654         * genoptinit.c (optabs): Added entry for signbit insns.  
14655         * builtins.c (expand_builtin_signbit): Added code to use a signbit
14656         insn, if available.  
14657         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
14658         * config/s390/s390.md (signbit<mode>2): New expander.  
14659
14660 2007-07-09  Richard Guenther  <rguenther@suse.de>
14661
14662         PR middle-end/32698
14663         * fold-const.c (fold_plusminus_mult_expr): Move constant
14664         arguments second to allow decomposing.
14665
14666 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
14667
14668         Revert:
14669         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
14670         PR debug/23551
14671         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14672         Disregard DECL_FROM_INLINE.
14673
14674 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
14675
14676         PR target/27855
14677         * doc/invoke.texi: Add ftree-reassoc flag.
14678         * common.opt (ftree-reassoc): New flag.
14679         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
14680         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
14681
14682 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
14683
14684         PR tree-optimization/32681
14685         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
14686         saved in second_edge->aux when first_bb is a loop header.
14687
14688 2007-07-09  Jan HUbicka  <jh@suse.cz>
14689
14690         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
14691
14692 2007-07-09  Richard Guenther  <rguenther@suse.de>
14693
14694         * c-decl.c (start_function): Do not promote return type.
14695
14696 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
14697
14698         * function.c (do_warn_unused_parameter): Do not warn if
14699         TREE_NO_WARNING is set.
14700
14701 2007-07-08  Andreas Schwab  <schwab@suse.de>
14702
14703         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
14704
14705 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
14706
14707         Revert this patch:
14708         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
14709
14710         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
14711         apply to assembly language, too.
14712         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
14713
14714 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
14715
14716         Revert (note the sccvn portions are *not* reverted)
14717         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
14718
14719         Fix PR tree-optimization/23488
14720
14721         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
14722         handles.
14723         * tree-flow-inline.h (get_value_handle): Ditto.
14724         * tree-ssa-pre.c (decl_vh_map): New.
14725         (decl_node_pool): New.
14726         (can_value_number_operation): Support DECL_P.
14727         (can_PRE_operation): Ditto.
14728         (create_expression_by_pieces): Ditto.
14729         (find_existing_value_expr): Modify to differnetiate between
14730         addressing and top level.
14731         (create_value_handle_for_expr): Handle DECL's.
14732         (poolify_tree): Ditto.
14733         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
14734         (make_values_for_stmt): Handle DECL's properly.
14735         (init_pre): Reorg to not init useless things during FRE.
14736         (fini_pre): Ditto.
14737         * tree-flow.h: Include pointer-set.h.
14738         (decl_vh_map): Declare.
14739         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
14740
14741 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
14742
14743         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
14744         the constraint description.
14745         * doc/md.texi: Update documentation of AVR constraints.
14746
14747 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
14748
14749         * auto-inc-dec.c, config/arm/arm.c,
14750         config/m32r/constraints.md, config/mips/mips.md,
14751         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
14752         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
14753         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
14754         typos.  Follow spelling conventions.
14755         * doc/invoke.texi, doc/rtl.texi: Fix typos.
14756
14757         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
14758         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
14759
14760         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
14761         realloc_vuse): Remove.
14762         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
14763         and realloc_vuse.
14764
14765 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
14766
14767         Fix PR tree-optimization/23488
14768
14769         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
14770         (try_to_simplify): Ditto.
14771         (visit_use): Ditto.
14772         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
14773         handles.
14774         * tree-flow-inline.h (get_value_handle): Ditto.
14775         * tree-ssa-pre.c (decl_vh_map): New.
14776         (decl_node_pool): New.
14777         (can_value_number_operation): Support DECL_P.
14778         (can_PRE_operation): Ditto.
14779         (create_expression_by_pieces): Ditto.
14780         (find_existing_value_expr): Modify to differnetiate between
14781         addressing and top level.
14782         (create_value_handle_for_expr): Handle DECL's.
14783         (poolify_tree): Ditto.
14784         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
14785         (make_values_for_stmt): Handle DECL's properly.
14786         (init_pre): Reorg to not init useless things during FRE.
14787         (fini_pre): Ditto.
14788         * tree-flow.h: Include pointer-set.h.
14789         (decl_vh_map): Declare.
14790         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
14791                 
14792 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
14793
14794         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
14795         apply to assembly language, too.
14796         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
14797
14798 2007-07-06  Ian Lance Taylor  <iant@google.com>
14799             Zack Weinberg  <zackw@panix.com>
14800
14801         PR middle-end/32441
14802         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
14803
14804 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
14805
14806         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
14807         (prefetch): Likewise if "pref" would be used.
14808
14809 2007-07-06  Josh Conner  <jconner@apple.com>
14810
14811         PR middle-end/32602
14812         PR middle-end/32603
14813         * calls.c (store_one_arg): Handle arguments which are partially
14814         on the stack when detecting argument overlap.
14815
14816 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
14817
14818         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
14819         chosen during find_reloads.
14820
14821 2007-07-06  Richard Guenther  <rguenther@suse.de>
14822
14823         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
14824         TYPE_ARG_TYPES for verification of argument types.  Use
14825         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
14826         parameters as variable arguments.
14827
14828 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
14829
14830         * libgcc2.h (word_type): Type definition removed.
14831         (cmp_return_type, shift_count_type): Type definitions added.
14832         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
14833         replaced with shift_count_type.
14834         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
14835         cmp_return_type.
14836         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
14837         changed from word_type to Wtype.
14838         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
14839         replaced with shift_count_type.
14840         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
14841         cmp_return_type.
14842         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
14843         and libgcc_shift_count attribute added.
14844         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
14845         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
14846         (TARGET_INITIALIZER): New target hooks added.
14847         * targhooks.c (default_libgcc_cmp_return_mode,
14848         default_libgcc_shift_count_mode): Default implementations for the new
14849         target hooks added.
14850         * targhooks.h (default_libgcc_cmp_return_mode,
14851         default_libgcc_shift_count_mode): Function prototypes added.
14852         * target.h (struct gcc_target): Fields for the new target hooks added.
14853         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
14854         as library call.
14855         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
14856         library call.
14857
14858         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
14859         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
14860
14861         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
14862         s390_libgcc_shift_count_mode): Functions added.
14863         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
14864         Target hooks defined.
14865
14866 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
14867
14868         * config/mips/mips.c (compute_frame_size): Restore the original
14869         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
14870         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
14871         Document why the difference is needed.
14872
14873 2007-07-06  Richard Guenther  <rguenther@suse.de>
14874
14875         * c-common.c (boolean_increment): Use correctly typed
14876         constant.
14877
14878 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
14879
14880         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
14881         the topmost argument register is not also included in the save mask.
14882         (mips16e_collect_argument_save_p): Take a pointer to the argument
14883         register, rather than a pointer to the number of arguments.
14884         (mips16e_collect_argument_saves): Only include argument saves
14885         that aren't in the register mask.
14886
14887 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
14888
14889         PR rtl-optimization/32450
14890         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
14891         to ensure that instructions are not moved into the prologue when
14892         profiling is on.  Remove unused prologue_end variable.
14893         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
14894         as a scheduling barrier.
14895
14896 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
14897
14898         PR debug/23551
14899         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14900         Disregard DECL_FROM_INLINE.
14901
14902 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
14903
14904         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
14905         IORing with a constant.
14906
14907 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
14908
14909         PR rtl-optimization/32475
14910         * df-scan.c (df_def_record_1): Add a use of the stack pointer
14911         for every definition of the stack pointer.
14912
14913 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
14914
14915         * arm.c (vfp3_const_double_index): Copy signed results of
14916         REAL_VALUE_TO_INT into unsigned vars.
14917
14918 2007-07-05  Richard Guenther  <rguenther@suse.de>
14919
14920         PR middle-end/32639
14921         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
14922         FUNCTION_TYPE.
14923         * tree-ssa.c (useless_type_conversion_p): Check canonical
14924         types early.
14925
14926 2007-07-05 Anatoly Sokolov <aesok@post.ru>
14927
14928         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
14929         zero_extendhisi2): Change to define_insn_and_split. 
14930         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
14931
14932 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
14933
14934         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
14935         pass_match_asm_constraints): New.
14936         * passes.c (init_optimization_passes): Add new pass.
14937         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
14938         * function.h (struct function): Add has_asm_statement bit.
14939         (current_function_has_asm_statement): New.
14940         * tree-pass.h (pass_match_asm_constraints): New.
14941
14942 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
14943
14944         * config/mips/mips.c (mips_file_start): Avoid declaration
14945         after code.
14946
14947 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
14948
14949         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
14950
14951 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
14952
14953         * rtl.def (NOTE): Change print format string to print
14954         operand 5 as a note insn name.
14955
14956 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
14957             David Ung  <davidu@mips.com>
14958
14959         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
14960         * doc/invoke.texi: (MIPS Options): Document them.
14961
14962 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
14963             David Ung  <davidu@mips.com>
14964
14965         Add support for SmartMIPS ASE.
14966
14967         * optabs.c (expand_binop_directly): New, broken out from...
14968         (expand_binop): Here.  Make it try rotating in the other
14969         direction even when the second operand isn't constant.
14970         * config/mips/mips.md (*lwxs): New.
14971         * config/mips/mips.opt (msmartmips): New.
14972         * config/mips/mips.c (mips_lwxs_address_p): New.
14973         (mips_rtx_costs): Make it recognize scaled indexed addressing.
14974         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
14975         __mips_smartmips when compiling for TARGET_SMARTMIPS.
14976         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
14977         (ISA_HAS_LWXS): New.
14978         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
14979         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
14980         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
14981         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
14982         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
14983         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
14984         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
14985
14986 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
14987
14988         * tree-vectorizer.c (new_loop_vec_info): Initialize
14989         LOOP_VINFO_COST_MODEL_MIN_ITERS.
14990         * tree-vectorizer.h (_loop_vec_info): Added new filed
14991         min_profitable_iters.
14992         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
14993         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
14994         * tree-vect-analyze.c (vect_analyze_operations): Set
14995         LOOP_VINFO_COST_MODEL_MIN_ITERS.
14996         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
14997         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
14998         Fix calculation of peel_iters_prologue. Move consideration of epilogue
14999         and prologue cost to after they are computed.
15000         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
15001         TARG_VEC_STMT_COST.
15002         (vect_model_simple_cost): Takes additional argument dt. Consider cost
15003         of creating vectors from scalars according to dt.
15004         (vect_model_store_cost): Likewise.
15005         (vectorizable_call): Use dt array instead of scalar dt. Call
15006         vect_model_simple_cost with additional argument dt.
15007         (vectorizable_assignment): Likewise.
15008         (vectorizable_operation): Likewise.
15009         (vectorizable_type_demotion): Likewise.
15010         (vectorizable_type_promotion): Likewise.
15011         (vectorizable_store): Use dt array instead of scalar dt. Call
15012         vect_model_store_cost with additional argument dt.
15013         (vect_do_peeling_for_loop_bound): Don't call
15014         vect_estimate_min_profitable_iters. Instead, lookup
15015         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
15016         "may not be profitable".
15017
15018 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
15019
15020         PR testsuite/32014
15021         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
15022         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
15023         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
15024         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
15025
15026 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
15027
15028         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
15029         addressing modes cheaper.
15030
15031 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
15032
15033         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
15034         (dw_ranges_struct): Rename block_num to num.  Adjust.
15035         (dw_ranges_by_label_struct): New.
15036         (ranges_by_label, ranges_by_label_allocated,
15037         ranges_by_label_in_use): New variables.
15038         (add_ranges_num): Factored most of the code out of...
15039         (add_ranges): ... this one.  Rewrite in terms of the former.
15040         (add_ranges_by_labels): New.
15041         (output_ranges): Output by-label ranges.
15042         (dwarf2out_finish): Output range for multiple-section
15043         compile_unit.  Output standard DW_AT_low_pc in addition to
15044         unexpected DW_AT_entry_pc.
15045
15046 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
15047
15048         PR tree-optimization/32604
15049         PR tree-optimization/32606
15050
15051         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
15052         (compute_antic_safe): Removed.
15053         (ANTIC_SAFE_LOADS): Ditto.
15054         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
15055         (execute_pre): Don't call compute_antic_safe.
15056         (vuse_equiv): New function.
15057         (make_values_for_stmt): Use it
15058         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
15059         not always true.
15060
15061 2007-07-04 Anatoly Sokolov <aesok@post.ru>
15062
15063         PR target/31331
15064         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
15065         rather than a decl. 
15066         (avr_attribute_table): Make "naked" attribute apply to function types
15067         rather than to decls.
15068         (avr_handle_fntype_attribute): New function.
15069
15070 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
15071
15072         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
15073         after \.
15074
15075 2007-07-04  David Ung  <davidu@mips.com>
15076             Joseph Myers  <joseph@codesourcery.com>
15077
15078         * config/mips/mips.md (type): Add logical, signext and move.
15079         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
15080         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
15081         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
15082         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
15083         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
15084         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
15085         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
15086         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
15087         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
15088         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
15089         movv2sf_hardfloat_64bit): Use the new types.
15090         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
15091         *movdf_softfloat, *movdf_mips16): Use "multi".
15092         (extendqihi2): Replace with a define_expand.
15093         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
15094         Based on extend<SHORT:mode><GPR:mode>2 patterns.
15095         * config/mips/74k.md (r74k_int_logical): New reservation and
15096         bypasses.
15097         (r74k_int_arith): Remove "slt".
15098         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
15099         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
15100         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
15101         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
15102         reservations for "arith".
15103
15104 2007-07-04  Richard Guenther  <rguenther@suse.de>
15105
15106         * tree-ssa.c (useless_type_conversion_p): Add handling for
15107         scalar float and vector types.  Only call the types_compatible_p
15108         langhook for aggregate types as last resort.  Follow the
15109         rules.
15110
15111 2007-07-04  Richard Guenther  <rguenther@suse.de>
15112
15113         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
15114         the same as NOP_EXPR.
15115
15116 2007-07-04  Nick Clifton  <nickc@redhat.com>
15117
15118         * target.h (struct gcc_target): Add target_help field.
15119         * target-def.h (TARGET_HELP): New.
15120         (TARGET_INITIALIZER): Use TARGET_HELP.
15121         * opts.c (command_handle_option): Invoke target_help function, if
15122         defined, when the user has specified --target-help on the command
15123         line.
15124         * doc/invoke.texi: Mention that --target-help might print
15125         additional information.
15126         * doc/tm.texi: Document TARGET_HELP hook.
15127
15128         * arm.c (TARGET_HELP): Override default definition.
15129         (arm_target_help): New - display a wrapped list of cores and
15130         architectures supported.
15131
15132 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
15133
15134         * config/v850/v850.c (expand_prologue): Make sure
15135         GEN_INT() argument is sign extended rather than zero extended.
15136         (expand_epilogue): Likewise.
15137         (output_move_double): Delete.
15138         * config/v850/v850-protos.h (output_move_double): Delete.
15139         * config/v850/v850.md (movdi): Delete.
15140         (*movdi_internal): Delete.
15141         (movdf): Delete.
15142         (*movdf_internal): Delete.
15143
15144 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
15145
15146         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
15147         unless compiling RTP PIC.
15148
15149 2007-07-04  Richard Guenther  <rguenther@suse.de>
15150
15151         PR tree-optimization/32482
15152         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
15153         original ssa name if we didn't find a shift expression.
15154         Fix shift constant for bit zero test.
15155
15156 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
15157
15158         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
15159
15160 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
15161
15162         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
15163         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
15164         * config/arm/vxworks.h (ASM_SPEC): Delete.
15165         (SUBTARGET_EXTRA_ASM_SPEC): Define.
15166
15167 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
15168
15169         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
15170         (DDR_REVERSED_P): New.
15171         * tree-data-ref.c (initialize_data_dependence_relation,
15172         build_classic_dist_vector): Set DDR_REVERSED_P.
15173
15174 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
15175
15176         PR middle-end/32457
15177         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
15178         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
15179         init_omega_for_ddr_1): Use non conservative number of iterations
15180         estimations.
15181         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
15182         (analyze_siv_subscript): Remove FIXME and reinitialization of 
15183         last_conflicts to chrec_dont_know.
15184         * testsuite/gfortran.dg/vect/pr32457.f90: New.
15185
15186 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
15187
15188         * tree.c (maybe_canonicalize_argtypes): Improve description.
15189
15190 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
15191
15192         * tree.c (maybe_canonicalize_argtypes): New.
15193         (build_function_type): Set canonical type.
15194         (build_method_type_directly): Ditto.
15195         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
15196         properly.
15197
15198 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15199
15200         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
15201         like PLUS_EXPR.
15202         (rewrite_use_nonlinear_expr): Likewise.
15203
15204 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
15205
15206         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
15207
15208 2007-07-04  Ben Elliston  <bje@au.ibm.com>
15209
15210         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
15211         of this file.
15212
15213         * c-objc-common.c (c_types_compatible_p): Fix indentation.
15214
15215         * doc/tm.texi (Run-time Target): Capitalise "CPU".
15216         (Exception Handling): Likewise.
15217
15218 2007-07-03  Jan Hubicka  <jh@suse.cz>
15219
15220         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
15221
15222 2007-07-03  Eric Christopher  <echristo@apple.com>
15223
15224         * doc/cppopts.texi: Add conflicting option note to -dM.
15225         * doc/invoke.texi: Add note about possible conflicts with
15226         -E for -dCHARS and note that -dM will not produce
15227         any results if there is no machine dependent reorg.
15228         
15229 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
15230
15231         * tree.h (DECL_ALIGN): Back out previous change.
15232
15233 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
15234
15235         * configure.ac: Test for .dtprelword support on MIPS.
15236         * configure, config.in: Regenerate.
15237         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
15238         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
15239
15240 2007-07-03  Julian Brown  <julian@codesourcery.com>
15241
15242         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
15243         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
15244         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
15245         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
15246         capability.
15247         (all_fpus): Add FPUTYPE_VFP3.
15248         (fp_model_for_fpu): Add VFPv3 field.
15249         (arm_rtx_costs_1): Give cost to VFPv3 constants.
15250         (vfp3_const_double_index): New function. Return integer index of
15251         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
15252         isn't suitable.
15253         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
15254         and argument represents a valid RTX for a VFPv3 constant.
15255         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
15256         two instructions.
15257         (vfp_emit_fstmd): Similar, for fstmd.
15258         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
15259         constants, represented as integer indices.
15260         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
15261         VFP_REGNO_OK_FOR_DOUBLE macros.
15262         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
15263         (arm_file_start): Set float-abi attribute for VFPv3, and output
15264         correct ".fpu" assembler directive.
15265         (arm_dbx_register_numbering): Add FIXME.
15266         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
15267         (fputype): Add FPUTYPE_VFP3.
15268         (FIXED_REGISTERS): Add 32 registers for D16-D31.
15269         (CALL_USED_REGISTERS): Likewise.
15270         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
15271         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
15272         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
15273         (D7_VFP_REGNUM): New.
15274         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
15275         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
15276         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
15277         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
15278         (REG_ALLOC_ORDER): Adjust for VFPv3.
15279         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
15280         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
15281         VFP_LO_REGS, VFP_HI_REGS.
15282         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
15283         (IS_VFP_CLASS): Define macro.
15284         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
15285         IS_VFP_CLASS.
15286         (REGISTER_MOVE_COST): Likewise.
15287         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
15288         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
15289         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
15290         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
15291         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
15292         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
15293         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
15294         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
15295         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
15296         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
15297         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
15298         where appropriate for single-word registers.
15299         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
15300         As above. Fix type attributes.
15301         * config/arm/constraints.md (register_contraint "t"): Define.
15302         (register_constraint "w"): Change to D0-D15, or D0-D31 for
15303         VFPv3/NEON.
15304         (register_constraint "x"): Define.
15305         (constraint "Dv"): Define.
15306
15307 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
15308
15309         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
15310
15311 2007-07-03  Tom Tromey  <tromey@redhat.com>
15312
15313         * c-parser.c (objc_pq_context): Removed.
15314         (objc_need_raw_identifier): Likewise.
15315         (c_parser) <objc_pq_context>: New field.
15316         <objc_need_raw_identifier>: Likewise.
15317         (OBJC_NEED_RAW_IDENTIFIER): Removed.
15318         (c_lex_one_token): Update.
15319         (c_parser_objc_protocol_definition): Update.
15320         (c_parser_objc_method_definition): Update.
15321         (c_parser_objc_methodproto): Update.
15322         (c_parser_declspecs): Update.
15323
15324 2007-07-03  David Ung  <davidu@mips.com>
15325
15326         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
15327
15328 2007-07-03  David Ung  <davidu@mips.com>
15329             Richard Sandiford  <richard@codesourcery.com>
15330
15331         * doc/invoke.texi: Document -march=74kf3_2.
15332         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
15333         (TUNE_74K): Check for it.
15334         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
15335         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
15336         * config/mips/mips.md (cpu): Add 74kf3_2.
15337         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
15338         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
15339         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
15340         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
15341         74kf3_2 to the CPU list.
15342         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
15343         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
15344         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
15345         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
15346         (r74kf3_2_fxfer_from_c1): New insn reservations.
15347
15348 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
15349             David Ung  <davidu@mips.com>
15350
15351         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
15352         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
15353         and 74k[fx].  Document aliases for the new options.
15354         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
15355         (PROCESSOR_24KF2_1): ...this.
15356         (PROCESSOR_24KX): Rename to...
15357         (PROCESSOR_24KF1_1): ...this.
15358         (PROCESSOR_74KF): Rename to...
15359         (PROCESSOR_74KF2_1): ...this.
15360         (PROCESSOR_74KX): Rename to...
15361         (PROCESSOR_74KF1_1): ...this.
15362         (TUNE_74K): Update PROCESSOR_* names.
15363         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
15364         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
15365         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
15366         (mips_rtx_cost_data): Update processor names in comments.
15367         (mips_issue_rate): Update PROCESSOR_* names.
15368         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
15369         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
15370         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
15371         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
15372         Update cpu attribute names.
15373         (r24k_fpu_iss): Rename this reservation to...
15374         (r24kf2_1_fpu_iss): ...this and update all uses.
15375         (r24kx_fpu_iss): Rename this reservation to...
15376         (r24kf1_1_fpu_iss): ...this and update all uses.
15377         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
15378         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
15379         Update cpu attribute names.
15380
15381 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
15382
15383         * config/m32r/constraints.md: New file.
15384         * config/m32r/m32r.c: Include tm-constrs.h.
15385         (small_data_operand): Use satisfies_constraint_* instead of macro.
15386         (addr24_operand, gen_compare): Likewise.
15387         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
15388         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
15389         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
15390         EXTRA_CONSTRAINT): Likewise.
15391         * config/m32r/m32r.md: Include constraints.md.
15392         (*movsi_insn): Use satisfies_constraint_* instead of macro.
15393         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
15394         * config/m32r/predicates.md (conditional_move_operand): Likewise.
15395         (two_insn_const_operand, int8_operand, uint16_operand,
15396         reg_or_int16_operand, reg_or_uint16_operand,
15397         reg_or_cmp_int16_operand, cmp_int16_operand,
15398         seth_add3_operand): Likewise.
15399
15400 2007-07-03  Eric Christopher  <echristo@gmail.com>
15401
15402         * libgcc2.h: Conditionally declare __bswapsi2 and
15403         __bswapdi2.
15404         
15405 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
15406
15407         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
15408         defined.
15409
15410 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15411
15412         PR target/28307
15413         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
15414         (__gthrw_pragma): Provide default definition.
15415         (__gthrw2): Use it.
15416         * gthr-posix.c (__gthrw_pragma): Define.
15417
15418 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
15419
15420         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
15421         before declaring inequality.
15422
15423 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
15424
15425         * combine.c (recog_for_combine): Log the success or failure of
15426           matching new insn patterns against the machine description in
15427           detailed dumps.
15428
15429 2007-07-03  Revital Eres  <eres@il.ibm.com>
15430
15431         * ddg.c (print_sccs): New function.
15432         (check_sccs): New function.
15433         (create_ddg_all_sccs): Use it.
15434         * ddg.h (print_sccs): Declare.
15435         * modulo-sched.c (sms_order_nodes): Call print_sccs.
15436
15437 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
15438
15439         * targhooks.h (default_mode_for_suffix): New function declaration.
15440         * targhooks.c (default_mode_for_suffix): New default target hook.
15441         * target.h (struct c): New structure in the targetm struct.
15442         (mode_for_suffix): New target hook as part of struct c.
15443         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
15444         default_mode_for_suffix.
15445         (TARGET_C): New define.
15446         * c-lex.c: Include "target.h".
15447         (interpret_float): Use targetm.c.mode_for_suffix to determine
15448         the mode for a given non-standard suffix.
15449         Makefile.in (c-lex.o): Depend on $(TARGET_H).
15450
15451         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
15452         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
15453
15454         * doc/extend.texi (Floating Types): New node.  Document __float80 and
15455         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
15456
15457 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
15458
15459         PR target/32506
15460         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
15461         predicate instead of target_operand.
15462         (divsi3_i1_media, divsi3_media_2): Likewise.
15463
15464 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
15465
15466         * tree.h (alias_sets_might_conflict_p): Rename into
15467         alias_sets_must_conflict_p.
15468         * alias.c (alias_sets_might_conflict_p): Likewise.
15469         (alias_sets_conflict_p): Use it.
15470         (objects_must_conflict_p): Likewise.
15471         * c-common.c (strict_aliasing_warning): Adjust.
15472
15473 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15474
15475         * rtlhooks.c (gen_lowpart_if_possible): Check for
15476         invalid subreg before calling gen_lowpart_SUBREG.
15477
15478 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
15479
15480         * config/darwin9.h: Add copyright notice.
15481         (LINK_COMMAND_SPEC): Add comment.
15482         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
15483         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
15484         DARWIN_LIBSYSTEM_HAS_UNWIND.
15485
15486 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
15487
15488         PR libgomp/32468
15489         * omp-low.c (check_combined_parallel): New function.
15490         (lower_omp_parallel): Call it via walk_stmts, set
15491         OMP_PARALLEL_COMBINED if appropriate.
15492         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
15493         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
15494         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
15495         don't consider it as combined parallel.
15496
15497 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
15498
15499         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
15500         (gcc_tooldir): Likewise.
15501         * configure: Regenerate.
15502         * Makefile.in (libsubdir_to_prefix): New variable, based on the
15503         old configure.ac gcc_tooldir setting.
15504         (prefix_to_exec_prefix): New variable.
15505         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
15506         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
15507
15508 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
15509
15510         Fix PR tree-optimization/32583
15511         Fix PR tree-optimization/32584
15512         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
15513         (phi_translate_set): Use phi_translate directly now.
15514         (make_values_for_stmt): Don't value number RHS if we already know
15515         it is constant.
15516
15517 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
15518             Jim Wilson <wilson@specifix.com>
15519
15520         PR target/31684
15521         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
15522         copy_insn.
15523
15524 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15525             Richard Sandiford  <richard@codesourcery.com>
15526             Nigel Stephens  <nigel@mips.com>
15527
15528         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
15529         (mips16e_output_save_restore): Declare.
15530         (mips16e_save_restore_pattern_p): Likewise.
15531         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
15532         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
15533         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
15534         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
15535         (BITSET_P): New global macro, extracted from...
15536         (mips_for_each_saved_reg): ...here.
15537         (mips16e_save_restore_info): New struct.
15538         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
15539         (mips16e_save_restore_regs): New variable.
15540         (mips_split_plus, mips16e_find_first_register): New functions.
15541         (mips16e_mask_registers): New function.
15542         (compute_frame_size): Expand the commentary before the function.
15543         Enforce the MIPS16e save and restore register range restrictions.
15544         Pad the general register save area at the low end.
15545         (mips16e_save_restore_reg, mips16e_build_save_restore)
15546         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
15547         (mips16e_output_save_restore, mips16e_collect_propagate_value)
15548         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
15549         New functions.
15550         (mips_expand_prologue, mips_expand_epilogue): Handle
15551         GENERATE_MIPS16E_SAVE_RESTORE.
15552         * config/mips/mips.md (*mips16e_save_restore): New pattern.
15553
15554 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
15555
15556         PR tree-optimization/31966
15557         PR tree-optimization/32533
15558         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
15559         "basic_block" description as its third argument.  Update function
15560         calls to get destination bb from "edge" argument.  Save "cond" into
15561         aux field of the edge.  Update prototype for changed arguments.
15562         (if_convertible_loop_p): Clear aux field of incoming edges if bb
15563         contains phi node.
15564         (find_phi_replacement_condition): Operate on incoming edges, not
15565         on predecessor blocks.  If there is a condition saved in the
15566         incoming edge aux field, AND it with incoming bb predicate.
15567         Return source bb of the first edge.
15568         (clean_predicate_lists): Clean aux field of outgoing node edges.
15569         (tree_if_conversion): Do not initialize cond variable. Move
15570         variable declaration into the loop.
15571         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
15572         initializations of new_stmt, arg0 and arg1 variables.
15573
15574 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
15575
15576         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
15577         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
15578
15579 2007-07-02  Richard Guenther  <rguenther@suse.de>
15580
15581         * tree-ssa.c (useless_type_conversion_p): Document
15582         future intent as defining the middle-end type system.
15583         Re-structure to call langhook last, group by type class,
15584         mark questionable parts.
15585
15586 2007-07-02  Richard Guenther  <rguenther@suse.de>
15587
15588         * tree-flow.h (types_compatible_p): Declare.
15589         * tree-ssa.c (types_compatible_p): New function.
15590         * ipa-type-escape.c (discover_unique_type): Use
15591         types_compatible_p instead of lang_hooks.types_compatible_p.
15592         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
15593         * tree-vn.c (expressions_equal_p): Likewise.
15594         * tree.c (fields_compatible_p): Likewise.
15595         * tree-ssa-dom.c (avail_expr_eq): Likewise.
15596         (cprop_operand): Use useless_type_conversion_p instead of
15597         lang_hooks.types_compatible_p.
15598         * tree-inline.c (setup_one_parameter): Likewise.
15599         (declare_return_variable): Likewise.
15600         * tree-nrv.c (tree_nrv): Likewise.
15601         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
15602         (maybe_fold_offset_to_component_ref): Likewise.
15603         (maybe_fold_offset_to_reference): Likewise.
15604         * tree-ssa-copy.c (may_propagate_copy): Likewise.
15605         (merge_alias_info): Likewise.
15606         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
15607         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
15608         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
15609         * tree-tailcall.c (find_tail_calls): Likewise.
15610         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
15611         * gimplify.c (canonicalize_addr_expr): Likewise.
15612         (fold_indirect_ref_rhs): Likewise.
15613         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
15614         (cpt_same_type): Likewise.
15615         (check_pointer_types_r): Swap parameters to cpt_same_type
15616         where appropriate.
15617         * fold-const.c (fold_convert): Revert fix for PR15988.
15618         * tree-inline.c (setup_one_parameter): Instead fix it here by
15619         using fold_build1 instead of fold_convert and checking for
15620         error_mark_node.  Convert only if the conversion is necessary.
15621
15622 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
15623
15624         * configure.ac: Check for .gnu_attribute on Power.
15625         * configure: Regenerate.
15626         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
15627         attribute for floating-point ABI.
15628
15629 2007-07-02  Ira Rosen  <irar@il.ibm.com>
15630
15631         PR tree-optimization/32230
15632         PR tree-optimization/32477
15633         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
15634         address is a constant.
15635
15636 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
15637
15638         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
15639         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
15640         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
15641         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
15642         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
15643         64-bit targets.  Add support for *-elfoabi*.
15644         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
15645         different settings if $(tm_defines) does not select the EABI.
15646         (MULTILIB_EXCLUSIONS): Define in those circumstances.
15647         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
15648         (MIPS_ARCH_OPTION_SPEC): Likewise.
15649         (MIPS_ISA_LEVEL_SPEC): Likewise.
15650         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
15651         * config/mips/elfoabi.h: New file.
15652
15653 2007-07-02  Richard Guenther  <rguenther@suse.de>
15654
15655         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
15656         (useless_type_conversion_p): ... this.
15657         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
15658         (useless_type_conversion_p): ... this.
15659         * builtins.c (fold_builtin_memory_op): Rename
15660         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
15661         * tree-cfg.c (verify_expr): Likewise.
15662         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
15663         * tree-ssa-ccp.c (ccp_fold): Likewise.
15664         * tree-ssa-copy.c (may_propagate_copy): Likewise.
15665         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
15666         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
15667         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
15668         * tree-ssa-pre.c (eliminate): Likewise.
15669         * tree-ssa.c (delete_tree_ssa): Likewise.
15670         (tree_ssa_useless_type_conversion): Likewise.
15671         * tree.c (build2_stat): Likewise.
15672
15673 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
15674
15675         Fix PR tree-optimization/32571
15676         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
15677         simplifying them.
15678
15679 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
15680
15681         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
15682         and other expected operations explicitly, change default to
15683         gcc_unreachable. 
15684
15685 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
15686
15687         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
15688         PARALLEL.
15689         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
15690         (tls_load_dot_plus_eight): Move the label number into the unspec.
15691         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
15692
15693 2007-07-01  Andreas Schwab  <schwab@suse.de>
15694
15695         * dwarf2out.c (initial_return_save): Define only if used.
15696
15697 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
15698
15699         Unreverting Richard's Revert of:
15700
15701         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
15702
15703         * dce.c (deletable_insn_p_1): New function, split out from...
15704         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
15705         specially, not those inside PARALLELs.  Remove BODY argument
15706         and adjust recursive call accordingly.
15707         (prescan_insns_for_dce): Update call to delete_insn_p.
15708
15709 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
15710             Revital Eres  <eres@il.ibm.com>
15711
15712         * ddg.c (create_ddg_all_sccs): Fix missed
15713         initialization of scc_nodes.
15714
15715 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
15716
15717         PR middle-end/32559
15718         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
15719         X + ~X to 1 only for INTEGRAL_TYPE_P type.
15720
15721 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
15722
15723         * configure.ac: Check for .gnu_attribute on MIPS.
15724         * configure, config.in: Regenerate.
15725         * config/mips/mips.c (mips_file_start): If supported, output
15726         attribute for floating-point ABI.
15727
15728 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
15729
15730         PR target/32433
15731         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
15732         (ffs_cmove): New expander to expand using ctz pattern.
15733         (*ffs_cmove): Remove pattern.
15734         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
15735         (ffsdi2): Expand using ctz pattern.
15736         (*ffs_rex64): Remove pattern.
15737
15738 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15739
15740         PR rtl-optimization/32296
15741         * pa.md (return): Delete pattern.
15742         (return_internal): Remove "(const_int 1)" from pattern.
15743         (epilogue): Use return_internal pattern for trivial returns.
15744         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
15745         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
15746
15747 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
15748
15749         * tree-ssa-pre.c (is_exception_related): New function
15750         (can_value_number_operation): Use it.
15751
15752 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
15753         
15754         Fix PR tree-optimization/32540
15755         Fix PR tree-optimization/31651
15756
15757         * tree-ssa-sccvn.c: New file.
15758
15759         * tree-ssa-sccvn.h: Ditto.
15760         
15761         * tree-vn.c: Include tree-ssa-sccvn.h
15762         (val_expr_paid_d): Removed.
15763         (value_table): Ditto.
15764         (vn_compute): Ditto.
15765         (val_expr_pair_hash): Ditto.
15766         (val_expr_pair_expr_eq): Ditto.
15767         (copy_vuses_from_stmt): Ditto.
15768         (vn_delete): Ditto.
15769         (vn_init): Ditto.
15770         (shared_vuses_from_stmt): Ditto.
15771         (print_creation_to_file): Moved up.
15772         (sort_vuses): Ditto.
15773         (sort_vuses_heap): Ditto.
15774         (set_value_handle): Make non-static.
15775         (make_value_handle): Ditto.
15776         (vn_add): Rewritten to use sccvn lookups.
15777         (vn_add_with_vuses): Ditto.
15778         (vn_lookup): Ditto (and second argument removed).
15779         (vn_lookup_with_vuses): Ditto.
15780         (vn_lookup_or_add): Ditto (and second argument removed);
15781         (vn_lookup_or_add_with_vuses): Ditto.
15782         (vn_lookup_with_stmt): New.
15783         (vn_lookup_or_add_with_stmt): Ditto.
15784         (create_value_handle_for_expr): Ditto.
15785
15786         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
15787         (seen_during_translate): New function.
15788         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
15789         (phi_trans_add): Ditto.
15790         (constant_expr_p): FIELD_DECL is always constant.
15791         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
15792         Use constant_expr_p.
15793         Avoid infinite recursion on mutually valued expressions.
15794         Change callers of vn_lookup_or_add.
15795         (phi_translate): New function.
15796         (compute_antic_safe): Allow phi nodes.
15797         (create_component_ref_by_pieces): Update for FIELD_DECL change.
15798         (find_or_generate_expression): Rewrite slightly.
15799         (create_expression_by_pieces): Updated for vn_lookup_or_add
15800         change.
15801         Update VN_INFO for new names.
15802         (insert_into_preds_of_block): Update for new names.
15803         (add_to_exp_gen): New function.
15804         (add_to_sets): Use vn_lookup_or_add_with_stmt.
15805         (find_existing_value_expr): Rewrite to changed vn_lookup.
15806         (create_value_expr_from): Ditto, and use add_to_exp_gen.
15807         (try_look_through_load): Removed.
15808         (try_combine_conversion): Ditto.
15809         (get_sccvn_value): New function.
15810         (make_values_for_phi): Ditto.
15811         (make_values_for_stmt): Ditto.
15812         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
15813         SCCVN.
15814         (init_pre): Update for SCCVN changes.
15815         (fini_pre): Ditto.
15816         (execute_pre): Ditto.
15817
15818         * tree-flow.h (make_value_handle): Declare.
15819         (set_value_handle): Ditto.
15820         (sort_vuses_heap): Ditto.
15821         (vn_lookup_or_add_with_stmt): Ditto.
15822         (vn_lookup_with_stmt): Ditto.
15823         (vn_compute): Remove.
15824         (vn_init): Ditto.
15825         (vn_delete): Ditto.
15826         (vn_lookup): Update arguments.
15827
15828         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
15829         (tree-vn.o): Ditto.
15830         (tree-ssa-sccvn.o): New.
15831         (OBJS-common): Add tree-ssa-sccvn.o
15832         
15833 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15834
15835         PR c/4076
15836         * c-typeck.c (build_external_ref): Don't mark as used if called
15837         from itself.
15838         * calls.c (rtx_for_function_call): Likewise.
15839         
15840 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
15841
15842         Revert:
15843
15844         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
15845
15846         * dce.c (deletable_insn_p_1): New function, split out from...
15847         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
15848         specially, not those inside PARALLELs.  Remove BODY argument
15849         and adjust recursive call accordingly.
15850         (prescan_insns_for_dce): Update call to delete_insn_p.
15851
15852 2007-06-30  Rask Ingemann Lambertsen  <rask@sygehus.dk>
15853
15854         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
15855         (try_combine): Move potential calls to undo_all() so they happen
15856         before we commit to using the combined insns.
15857
15858 2007-06-30  Jan Hubicka  <jh@suse.cz>
15859
15860         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
15861         code.
15862
15863 2007-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
15864
15865         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
15866         (cgraph_remove_unreachable_nodes): Likewise.
15867         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
15868         * ipa-inline.c (update_caller_keys): Cast according to the coding
15869         conventions.
15870         (cgraph_decide_recursive_inlining): Likewise.
15871         (cgraph_decide_inlining_of_small_function): Likewise.
15872         (try_inline): Likewise.
15873         (cgraph_decide_inlining_incrementally): Likewise.
15874         * ipa-pure-const.c (get_function_state): Likewise.
15875         (scan_function): Likewise.
15876         (analyze_function): Likewise.
15877         (static_execute): Likewise.
15878         * ipa-reference.c (scan_for_static_refs): Likewise.
15879         (merge_callee_local_info): Likewise.
15880         (analyze_function): Use type safe memory macros.
15881         (static_execute): Likewise. Cast according to the coding conventions.
15882         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
15883         conventions.
15884         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
15885         names.
15886         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
15887         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
15888         variable names.
15889
15890 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15891
15892         PR middle-end/30024
15893         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
15894         for complex modes (both int and real).
15895
15896 2007-06-29  Jan Hubicka  <jh@suse.cz>
15897
15898         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
15899
15900 2007-06-29  Jan Hubicka  <jh@suse.cz>
15901
15902         PR middle-end/32372
15903         * cse.c (cse_insn): Avoid invalid sharing in between register note and
15904         the insn pattern.
15905
15906 2007-06-29  Anatoly Sokolov <aesok@post.ru>
15907
15908         PR target/32335
15909         * config/avr/avr.c: Include dataflow header file.
15910         (expand_prologue): Adjust for prologue insn change.
15911         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
15912         inside a insn.
15913
15914 2007-06-29  Richard Guenther  <rguenther@suse.de>
15915
15916         PR middle-end/32493
15917         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
15918         during type verification.
15919
15920 2007-06-29  Jan Hubicka  <jh@suse.cz>
15921
15922         * recog.c (validate_change_rtx_1): Unshare TO argument.
15923
15924 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
15925
15926         PR tree-optimization/24659
15927         * tree-vect-transform.c (vectorizable_call): Handle
15928         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
15929
15930         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
15931         * config/i386/i386.c (enum ix86_builtins)
15932         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
15933         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
15934         description.
15935         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
15936         const using def_builtin_const.
15937         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
15938         input operands in the same modes as the result.
15939         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
15940
15941 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
15942
15943         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
15944         (df_set_dead_notes_for_mw): Likewise.
15945
15946 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
15947
15948         * c-common.c (pointer_int_sum): Do the negation in sizetype.
15949
15950 2007-06-28  DJ Delorie  <dj@redhat.com>
15951
15952         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
15953
15954 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
15955
15956         * doc/invoke.texi (C++ Dialect Options): Document
15957         fvisibility-ms-compat.
15958         * c.opt (fvisibility-ms-compat): New.
15959
15960 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15961
15962         PR tree-opt/32417
15963         * tree-affine.c (aff_combination_add_elt): Handle
15964         pointer addition specially.
15965
15966 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
15967
15968         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
15969         decl is non-external for AIX ABI.
15970
15971 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
15972
15973         * config/rs6000/predicates.md (current_file_function_operand):
15974         Ensure the symbol is non-external for AIX ABI.
15975
15976 2007-06-28  Nick Clifton  <nickc@redhat.com>
15977
15978         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
15979         (fdce, fdse, fpredictive-commoning): Likewise.
15980
15981 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
15982
15983         PR other/31400
15984         * gcc.c (process_command): Recognize the new -static-libgfortran
15985         option.
15986
15987 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
15988
15989         PR target/32418
15990         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
15991         Use a call clobbered hard reg instead of a pseudo reg.
15992
15993 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
15994
15995         * config/sh/sh.md (load_gbr): Use correct operand constraint.
15996
15997 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
15998
15999         PR target/32479
16000         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
16001         REG_LIBCALL and REG_RETVAL notes.
16002         (divsi3, mulsi3): Likewise.
16003         (mulhisi3): Likewise.  Use emit_libcall_block.
16004         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
16005
16006 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
16007
16008         PR rtl-optimization/32481
16009         * combine.c (adjust_for_new_dest): Rescan the changed insn.
16010
16011 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
16012
16013         * dce.c (deletable_insn_p_1): New function, split out from...
16014         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
16015         specially, not those inside PARALLELs.  Remove BODY argument
16016         and adjust recursive call accordingly.
16017         (prescan_insns_for_dce): Update call to delete_insn_p.
16018
16019 2007-06-27  Richard Guenther  <rguenther@suse.de>
16020
16021         PR middle-end/32492
16022         * tree.h (fold_convertible_p): Declare.
16023         * fold-const.c (fold_convertible_p): New function.
16024         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
16025         instead of lang_hooks.types_compatible_p.
16026
16027 2007-06-26  Jan Hubicka  <jh@suse.cz>
16028
16029         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
16030         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
16031         early use validate_unshare_change.
16032         (reload_combine): Likewise.
16033         * recog.c (change_t): New field unshare.
16034         (validate_change_1): Rename from validate_change; add argument unshare.
16035         (validate_change): Turn into wrapper of validate_change_1; update
16036         prototype for bools.
16037         (validate_unshare_change): New.
16038         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
16039         calls of df_insn_rescan.
16040         * recog.h (validate_change): Replace ints by bools.
16041         (validate_unshare_change): Declare.
16042
16043 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
16044
16045         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
16046         
16047 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
16048
16049         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
16050
16051 2007-06-25  Jan Hubicka  <jh@suse.cz>
16052
16053         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
16054         uninlinable call.
16055         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
16056         cgraph_decide_inlining_incrementally): Move uninlinability checks to
16057         places other call site specific checks are performed.
16058
16059 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16060
16061         PR tree-opt/32421
16062         * tree-vect-transform.c (vectorizable_operation): Convert
16063         POINTER_PLUS_EXPR over to PLUS_EXPR.
16064
16065 2007-06-25  Chao-ying Fu  <fu@mips.com>
16066
16067         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
16068         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
16069         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
16070         Document GET_MODE_IBIT, and GET_MODE_FBIT.
16071
16072         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
16073         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
16074         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
16075         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
16076         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
16077         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
16078         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
16079         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
16080         ALL_FIXED_POINT_MODE_P): New define.
16081         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
16082         MODE_UACCUM.
16083         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
16084
16085         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
16086         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
16087         MODE_VECTOR_UACCUM): New mode classes.
16088
16089         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
16090         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
16091         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
16092         USA, UDA, and UTA.
16093
16094         * genmodes.c (struct mode_data): Add ibit and fbit fields.
16095         (blank_mode): Initialize ibit and fbit.
16096         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
16097         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
16098         MODE_UACCUM.
16099         (new_adjust): Change required_class to required_class_from and
16100         required_class_to for testing within a range.
16101         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
16102         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
16103         MODE_VECTOR_UACCUM.
16104         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
16105         (make_fixed_point_mode): New.
16106         (_ADD_ADJUST): Change C to C1 and C2.
16107         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
16108         use a range for machine classes.
16109         (ADJUST_IBIT, ADJUST_FBIT): New.
16110         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
16111         CONST_MODE_FBIT.
16112         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
16113         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
16114         Emit adjustment for ibit and fbit.
16115         (emit_mode_ibit, emit_mode_fbit): New.
16116         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
16117
16118 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
16119
16120         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
16121         as the source of the set.
16122
16123 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
16124
16125         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
16126         FP_REGNO_P): Use IN_RANGE.
16127         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
16128         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
16129         (DATA_REG_P): Use DATA_REGNO_P.
16130         (FP_REG_P): Use FP_REGNO_P.
16131         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
16132         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
16133         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
16134
16135 2007-06-24  Jan Hubicka  <jh@suse.cz>
16136
16137         PR middle-end/30563
16138         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
16139
16140 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
16141
16142         PR middle-end/32461
16143         * fold-const.c (fold_binary): Strip nops of operand 0
16144         of BIT_NOT_EXPR before calling operand_equal_p.
16145         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
16146         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
16147
16148 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
16149
16150         * doc/extend.texi: Document that dllimport and dllexport imply
16151         default visibility.
16152         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
16153         imported or exported declaration, including type declarations.
16154         * c-common.c (handle_visibility_attribute): Check for conflicts
16155         with dllimport/dllexport.
16156         (c_determine_visibility): Handle dllimport/dllexport as an
16157         explicit visibility atttribute.
16158
16159 2007-06-23  Richard Guenther  <rguenther@suse.de>
16160
16161         PR tree-optimization/16876
16162         PR middle-end/29478
16163         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
16164         for CALL_EXPRs.
16165         * tree-inline.c (initialize_inlined_parameters): Do not call
16166         lang_hooks.tree_inlining.convert_parm_for_inlining.
16167         * cgraphbuild.c (initialize_inline_failed): Set inline failed
16168         reason for mismatched types.
16169         * gimplify.c (gimplify_call_expr): Verify the call expression
16170         arguments match the called function type signature.  Otherwise
16171         mark the call expression to be not considered for inlining
16172         using CALL_CANNOT_INLINE_P flag.
16173         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
16174         edges call expression.
16175         (cgraph_decide_inlining_of_small_function): Likewise.
16176         (cgraph_decide_inlining): Likewise.
16177         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
16178         Remove define.
16179         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
16180         * c-typeck.c (c_convert_parm_for_inlining): Remove.
16181         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
16182         Remove declaration.
16183         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
16184         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
16185         Remove.
16186         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
16187         convert_parm_for_inlining member.
16188
16189 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
16190
16191         PR target/31152
16192         * arm.md (negscc): Match the correct operand for optimized LT0 test.
16193         Remove optimization for GT.
16194
16195 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
16196
16197         PR middle-end/32437
16198         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
16199         is a PARALLEL.
16200         (prescan_insns_for_dce): Add extra parameter.
16201         
16202 2007-06-23  Jan Hubicka  <jh@suse.cz>
16203
16204         PR middle-end/31541
16205         * gimplify.c (mark_addressable): New function.
16206         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
16207
16208 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
16209
16210         PR middle-end/32374
16211         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
16212
16213 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
16214
16215         PR target/32413
16216         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
16217         moves between MMX/SSE registers to at least 8 units to prevent
16218         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
16219
16220 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
16221
16222         * config/i386/i386.c (override_options): Correct x86_sahf
16223         setting condition.
16224
16225 2007-06-21  David Daney  <ddaney@avtrex.com>
16226
16227         PR target/32406
16228         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
16229         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
16230         (exception_receiver): Renamed to ...
16231         (nonlocal_goto_receiver): ... this.
16232
16233 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
16234
16235         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
16236         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
16237         partial register accesses.
16238
16239 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
16240
16241         * fold-const.c (debug_fold_checksum): Move it under
16242         ENABLE_FOLD_CHECKING.
16243
16244 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
16245
16246         PR middle-end/20623
16247         * tree.h (debug_fold_checksum): Declared.
16248         * fold-const.c (build_fold_addr_expr_with_type_1): New.
16249         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
16250         build_fold_addr_expr_with_type_1.
16251         (fold_addr_expr, debug_fold_checksum): New.
16252         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
16253         (fold_unary, fold_comparison, split_address_to_core_and_offset):
16254         Use fold_addr_expr.
16255         
16256 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
16257
16258         PR tree-optimization/19590
16259         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
16260         of scev is a constant.
16261
16262 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
16263
16264         * df-problems.c (df_note_bb_compute): Made computation of live
16265         info consistent with df_lr.
16266
16267 2007-06-21  Richard Guenther  <rguenther@suse.de>
16268
16269         PR tree-optimization/32453
16270         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
16271         for pointer anti-range.
16272
16273 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
16274
16275         * config/i386/i386.c (processor_target_table): Increase maximum
16276         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
16277         default 64bit.
16278
16279         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
16280         byte alignment if > 8 byte alignment is preferred.
16281         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
16282
16283 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
16284
16285         PR tree-optimization/31866
16286         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
16287         if ASM_EXPR's input is not a SSA_NAME.
16288
16289         PR middle-end/32362
16290         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
16291         but decl is a global var, instead return decl.
16292         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
16293         even for is_global_var decls, if they are private in some outer
16294         context.
16295
16296 2007-06-21  Richard Guenther  <rguenther@suse.de>
16297
16298         PR tree-optimization/32451
16299         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
16300
16301 2007-06-21  Christian Bruel  <christian.bruel@st.com>
16302
16303         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
16304         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
16305         (push_regs): Changed saving order or banked registers.
16306         (sh_expand_epilogue): Likewise.
16307         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
16308         (FIRST_BANKED_REG): Likewise.
16309         (LAST_BANKED_REG): Likewise.
16310         * config/sh/sh.md (banked) New attribute.
16311         (in_delay_slot): Check banked attribute.
16312         
16313 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
16314
16315         PR tree-optimization/32075
16316         * tree-data-ref.c (subscript_dependence_tester_1, 
16317         analyze_miv_subscript, analyze_overlapping_iterations,
16318         add_distance_for_zero_overlaps, build_classic_dist_vector,
16319         subscript_dependence_tester_1, analyze_overlapping_iterations,
16320         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
16321         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
16322         to evolution_function_is_affine_multivariate_p.
16323
16324 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16325
16326         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
16327
16328 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
16329
16330         PR target/32335
16331         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
16332         for TARGET_A16.
16333         * config/m32c/prologue.md (epilogue_exitd_16): New.
16334         (epilogue_reit_16): New.
16335         (epilogue_exitd): Rename to epilogue_exitd_24.
16336         (epilogue_reit): Rename to epilogue_reit_24.
16337
16338 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
16339             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
16340
16341         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
16342         New counters.
16343         * haifa-sched.c (queue_to_ready): Don't requeue next insn
16344         if dbg_cnt (sched_insn) reaches the limit.
16345         (choose_ready): New parameter INSN_PTR and new return value.
16346         (schedule_block): Handle dbg_cnt (sched_insn). Handle
16347         the new return value from choose_ready.
16348         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
16349         (rest_of_handle_global_alloc): New global_alloc_at_func.
16350
16351 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
16352
16353         PR tree-optimization/25737
16354         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
16355         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
16356         * tree-flow.h (struct fieldoff): Add new field alias_set.
16357         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
16358         argument addressable_type.  Set alias_set of fieldoff.
16359         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
16360         (create_overlap_variables_for): Pass alias_set from fieldoff to
16361         create_sft.
16362         * alias.c (get_alias_set): Use alias_set from SFT if set.
16363
16364 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
16365
16366         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
16367         of a variable as an unsigned HOST_WIDE_INT integer.
16368
16369 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
16370
16371         PR rtl-optimization/32405
16372         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
16373
16374 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
16375
16376         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
16377
16378         PR middle-end/31959
16379         * builtins.c: Include diagnostic.h.
16380         (expand_builtin_expect): Make gcc_assert more permissive.
16381         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
16382
16383         PR inline-asm/32109
16384         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
16385         and !allows_mem.
16386
16387         PR middle-end/32285
16388         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
16389         if ACCUMULATE_OUTGOING_ARGS.
16390
16391 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
16392
16393         * config/m68hc11/m68hc11.c: Include dataflow header file.
16394         (m68hc11_reorg): Port to dataflow.
16395
16396 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
16397
16398         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
16399         (struct df_problem.free_blocks_on_set_blocks): New field.
16400         (struct dataflow.optional_p): New field.
16401         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
16402         (df_live_set_all_dirty): New function.
16403         * df-scan.c (df_scan_alloc): Initialize optional_p.
16404         (problem_SCAN): Initialize free_blocks_on_set_blocks.
16405         * df-core.c (df_set_blocks): Removed use of
16406         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
16407         df_problem.free_blocks_on_set_blocks to determine which blocks are
16408         recycled.
16409         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
16410         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
16411         uses dataflow.optional_p to determine if problem should be
16412         deleted.
16413         (rest_of_handle_df_initialize): Only start live problem if 
16414         -02 or above.
16415         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
16416         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
16417         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
16418         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
16419         problem_NOTE): Initialize free_blocks_on_set_blocks.
16420         (df_lr_bb_local_compute): Recompute luids if df_live problem is
16421         not active.
16422         (df_live_set_all_dirty, df_note_alloc): New function.
16423         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
16424         df_get_live_*.
16425         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
16426         * postreload.c (reload_combine): Ditto.
16427         * cse.c (cse_extended_basic_block): Ditto.
16428         * regmove.c (mark_flags_life_zones): Ditto.
16429         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
16430         erase_matching_seqs): Ditto.
16431         * bt-load.c (compute_defs_uses_and_gen): Ditto.
16432         * integrate (allocate_initial_values): Ditto.
16433         * combine.c (reg_dead_at_p): Ditto.
16434         * resource.c (mark_target_live_regs): Ditto.
16435         * sched-rgn.c (check_live_1, update_live_1): Ditto.
16436         * config/sh/sh.c (find_r0_life_regions): Ditto.
16437         * global.c (rest_of_handle_global_alloc): Only add back df_live
16438         for -O > 1.
16439         * local-alloc.c (rest_of_handle_local_alloc): Only remove
16440         df_live for -O > 1.
16441         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
16442         df_get_live_*.
16443         (if_convert): Make sure df_live is there at -O == 1.
16444         (pass_if_after_combine): Cleanup flags.
16445         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
16446         is there at -O == 1.
16447         
16448 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
16449
16450         * config/arm/arm.c (arm_get_frame_offsets): Set
16451         offsets->locals_base to avoid negative stack size.
16452         (thumb1_expand_prologue): Assert on negative stack size.
16453
16454 2007-06-19  Sebastian Pop  <sebpop@gmail.com>
16455
16456         PR tree-optimization/32367
16457         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
16458         of the chrec has no evolution in that loop.
16459         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
16460
16461 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
16462
16463         * config/xtensa/xtensa.c: Include "df.h".
16464         (xtensa_builtin_saveregs): Use adjust_address instead of
16465         change_address.
16466         (xtensa_va_start): Invoke make_tree with sizetype for
16467         expand_builtin_saveregs and then convert the result to a pointer.
16468         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
16469         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
16470         Subtract argument size from index value as integers and then use
16471         POINTER_PLUS_EXPR to add the result to the array address.
16472         
16473 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
16474
16475         PR target/32335
16476         * config/m32c/m32c.c: Include dataflow header file.
16477         (m32c_emit_prologue): Adjust for prologue insn change.
16478         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
16479         once inside a PARALLEL. Assume frame size passed in operand 0
16480         includes space to save the fb register.
16481         (prologue_enter_24): Likewise.
16482         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
16483
16484 2007-06-19  David Daney  <ddaney@avtrex.com
16485
16486         PR target/32313
16487         * config/mips/mips.md (cprestore): Mark $gp as used.
16488
16489 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
16490
16491         PR target/32369
16492         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
16493         (frv_ifcvt_modify_insn): Likewise.
16494
16495 2007-06-19  Richard Guenther  <rguenther@suse.de>
16496
16497         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
16498         only handle positive offsets that fit in a HOST_WIDE_INT.
16499
16500 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
16501
16502         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
16503         result of rsqrt insn for zero input argument to avoid NaN.
16504
16505 2007-06-19  Richard Guenther  <rguenther@suse.de>
16506
16507         PR middle-end/31950
16508         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
16509
16510 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
16511
16512         PR tree-optimization/32353
16513         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
16514
16515 2007-06-19  Nick Clifton  <nickc@redhat.com>
16516
16517         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
16518
16519 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
16520
16521         PR target/32389
16522         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
16523         * config/i386/i386.c (assign_386_stack_local): Assert that
16524         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
16525         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
16526         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
16527         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
16528
16529 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
16530
16531         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
16532
16533 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
16534
16535         PR rtl-optimization/32321
16536         * gcse.c (replace_store_insn): Update the note before
16537         calling emit_insn_after.
16538
16539 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
16540
16541         PR middle-end/32355
16542         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
16543         cse_main.
16544         * df-problems.c (df_note_bb_compute): Fix dumping info.
16545         
16546 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
16547
16548         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
16549         insn with emit_jump_insn.
16550
16551 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
16552
16553         PR tree-optimization/32383
16554         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
16555         * targhooks.h (default_builtin_reciprocal): Update prototype.
16556         * target.h (struct gcc_target): Update builtin_reciprocal.
16557         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
16558         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
16559         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
16560         when fndecl is in BUILT_IN_MD class.
16561         (execute_convert_to_rsqrt): Ditto.
16562
16563         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
16564         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
16565         Convert BUILT_IN_SQRTF code only  when md_fn is false.
16566
16567 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16568
16569         * bt-load.c (move_btr_def): Fix the order of arguments
16570         to validate_replace_rtx.
16571
16572 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
16573
16574         * config/m68k/m68k-devices.def: Add 54450..54455.
16575
16576 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
16577
16578         PR rtl-optimization/32366
16579         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
16580         FLOAT_EXTEND]: Prevent non-scalar modes from entering
16581         significand_size.
16582
16583 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
16584
16585         PR middle-end/32349
16586         * modulo-sched (generate_reg_moves): Added rescan parameter and if
16587         this is true, rescan insn being modified.
16588         (sms_schedule): Added rescan parameter.
16589         (rest_of_handle_sms): Moved freeing of dominance info to before
16590         getting out of cfg_layout.
16591         
16592 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
16593
16594         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
16595         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
16596         appropriate.
16597
16598         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
16599         FL_CF_EMAC from the entry for isac.
16600
16601         * config/m68k/predicates.md (const_call_operand): Adjust comment.
16602         (const_sibcall_operand): New.
16603         (sibcall_operand): Use it.
16604         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
16605         (m68k_isas): ISAC does not imply FPU or EMAC.
16606         (override_options): Add ISA_C logic for symbolic jump & call.
16607
16608 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
16609
16610         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
16611         return mode from the builtin itself.
16612         (sparc_fold_builtin): Fix cast of zero constant.
16613
16614 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
16615
16616         * targhooks.c (default_builtin_reciprocal): New default target hook.
16617         * targhooks.h (default_builtin_reciprocal): Add prototype.
16618         * hooks.c (hook_tree_tree_bool_null): Remove hook.
16619         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
16620         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
16621         default_builtin_reciprocal.
16622
16623 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
16624
16625         PR middle-end/31723
16626         * hooks.c (hook_tree_tree_bool_null): New hook.
16627         * hooks.h (hook_tree_tree_bool_null): Add prototype.
16628         * tree-pass.h (pass_convert_to_rsqrt): Declare.
16629         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
16630         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
16631         and convert it to reciprocal a*rfunc(b).
16632         (execute_convert_to_rsqrt): New function.
16633         (gate_convert_to_rsqrt): New function.
16634         (pass_convert_to_rsqrt): New pass definition.
16635         * target.h (struct gcc_target): Add builtin_reciprocal.
16636         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
16637         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
16638         TARGET_BUILTIN_RECIPROCAL.
16639         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
16640
16641         * config/i386/i386.h (TARGET_RECIP): New define.
16642         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
16643         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
16644         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
16645         and not optimizing for size.
16646         (*rcpsf2_sse): New insn pattern.
16647         (*rsqrtsf2_sse): Ditto.
16648         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
16649         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
16650         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
16651         and not optimizing for size.
16652         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
16653         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
16654         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
16655         and not optimizing for size.
16656         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
16657         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
16658         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
16659         and not optimizing for size.
16660         (*sse_rsqrtv4sf2): Do not export.
16661         (sqrtv4sf2): Ditto.
16662         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
16663         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
16664         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
16665         and not optimizing for size.
16666         (sqrtv4sf2): Ditto.
16667         * config/i386/i386.opt (mrecip): New option.
16668         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
16669         (ix86_emit_swsqrtsf): Ditto.
16670         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
16671         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
16672         builtin definition.
16673         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
16674         ix86_expand_unop1_builtin.
16675         (ix86_emit_swdivsf): New function.
16676         (ix86_emit_swsqrtsf): Ditto.
16677         (ix86_builtin_reciprocal): New function.
16678         (TARGET_BUILTIN_RECIPROCAL): Use it.
16679         (ix86_vectorize_builtin_conversion): Rename from
16680         ix86_builtin_conversion.
16681         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
16682         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
16683         "i386 and x86_64 Options" section.
16684         (Intel 386 and AMD x86_64 Options): Document -mrecip.
16685
16686 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
16687             Zdenek Dvorak <dvorakz@suse.cz>
16688             Richard Guenther  <rguenther@suse.de>
16689             Kaz Kojima  <kkojima@gcc.gnu.org>
16690
16691         * tree-vrp.c (compare_values_warnv): Convert val2 to
16692         the type of val1.
16693         (extract_range_from_assert): Create
16694         POINTER_PLUS_EXPR for pointer types.
16695         (extract_range_from_binary_expr): Handle
16696         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
16697         for pointer types.
16698         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
16699         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
16700         POINTER_PLUS_EXPR as PLUS_EXPR.
16701         (number_of_iterations_lt_to_ne):
16702         For pointer types, use sizetype when
16703         creating MINUS_EXPR/PLUS_EXPRs.
16704         (assert_loop_rolls_lt): For pointer types, use sizetype when
16705         creating MINUS_EXPR/PLUS_EXPRs.
16706         (number_of_iterations_le): Likewise.
16707         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
16708         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
16709         like PLUS_EXPR and MINUS_EXPR.
16710         * tree-pretty-print.c (dump_generic_node): Handle
16711         POINTER_PLUS_EXPR.
16712         (op_prio): Likewise.
16713         (op_symbol_1): Likewise.
16714         * optabs.c (optab_for_tree_code): Likewise.
16715         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
16716         specially.
16717         * tree-tailcall.c (process_assignment): Mention
16718         POINTER_PLUS_EXPR in a TODO comment.
16719         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
16720         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
16721         not used with a pointer and an integer type.
16722         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
16723         increment using chrec_convert_rhs instead of chrec_convert.
16724         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
16725         PLUS_EXPR except for the right hand side's type will be
16726         sizetype.
16727         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
16728         (fold_used_pointer_cast): Kill.
16729         (pointer_offset_p): Kill.
16730         (fold_used_pointer): Kill.
16731         (pointer_used_p): Kill.
16732         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
16733         call fold_used_pointer.
16734         (instantiate_parameters_1): Convert the increment
16735         using chrec_convert_rhs instead of chrec_convert.
16736         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
16737         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
16738         instead of PLUS_EXPR.
16739         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
16740         PLUS_EXPR for pointers.
16741         (std_gimplify_va_arg_expr): Likewise.
16742         (fold_builtin_memory_op): Likewise.
16743         (fold_builtin_strstr): Likewise.
16744         (fold_builtin_strchr): Likewise.
16745         (fold_builtin_strrchr): Likewise.
16746         (fold_builtin_strpbrk): Likewise.
16747         (expand_builtin_memory_chk): Likewise.
16748         (fold_builtin_memory_chk): Likewise.
16749         (std_expand_builtin_va_start): Use
16750         sizetype for the call to make_tree and then convert
16751         to the pointer type.
16752         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
16753         instead of PLUS_EXPR for adding to a pointer.
16754         (std_gimplify_va_arg_expr): Use fold_build2 for
16755         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
16756         the operands to sizetype first and then cast the BIT_AND_EXPR
16757         back to the pointer type.
16758         * fold-const.c (build_range_check): Handle pointer types
16759         specially.
16760         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
16761         of PLUS_EXPR's. Make sure the offset is converted to
16762         sizetype.
16763         (try_move_mult_to_index): Strip the NOPs from the offset.
16764         Remove code argument and replace all uses with PLUS_EXPR.
16765         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
16766         specially. Don't use a pointer type for MINUS_EXPR.
16767         (fold_unary): Handle for (T1)(X op Y),
16768         only p+ as that is the only as that can be handled for
16769         binary operators now.
16770         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
16771         POINTER_PLUS_EXPR.
16772         <case PLUS_EXPR>: Add folding of PTR+INT into
16773         PTR p+ INT.
16774         Don't call try_move_mult_to_index.
16775         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
16776         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
16777         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
16778         Don't call try_move_mult_to_index.
16779         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
16780         (tree_expr_nonzero_p): Likewise.
16781         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
16782         of PLUS_EXPR for the complex expression folding.
16783         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
16784         first chrec is a pointer type, then the second should
16785         be sizetype and not the first's type.
16786         For POINTER_PLUS_EXPR, use a different right hand side type.
16787         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
16788         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
16789         different right hand side type.
16790         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
16791         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
16792         instead of PLUS_EXPR.
16793         When either operand is zero, convert the other operand.
16794         (chrec_apply): Use chrec_convert_rhs
16795         on the argument x instead of chrec_convert.
16796         (reset_evolution_in_loop): For pointer types, the new_evol
16797         should be sizetype.
16798         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
16799         different right hand side type.
16800         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
16801         (chrec_convert_rhs): New function.
16802         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
16803         different right hand side type.
16804         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
16805         * tree-chrec.h (chrec_convert_rhs): New prototype.
16806         (build_polynomial_chrec): For pointer types, the right hand
16807         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
16808         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
16809         Remove subtraction case as it is always addition now.
16810         Make sure the offset is converted to sizetype.
16811         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
16812         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
16813         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
16814         PLUS_EXPR in pointer type.
16815         Handle POINTER_PLUS_EXPR.
16816         (tree_to_aff_combination): Likewise.
16817         (force_expr_to_var_cost): Likewise.
16818         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
16819         instead of PLUS_EXPR for pointers.
16820         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
16821         instead of PLUS_EXPR of pointer types.
16822         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
16823         as PLUS_EXPR.
16824         (check_va_list_escapes): Likewise.
16825         (check_all_va_list_escapes): Likewise.
16826         * dwarf2out.c (loc_descriptor_from_tree_1):
16827         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
16828         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
16829         (string_constant): Likewise.
16830         * tree-ssa-address.c (tree_mem_ref_addr): When adding
16831         the offset to the base, use POINTER_PLUS_EXPR.
16832         (add_to_parts): Convert the index to sizetype.
16833         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
16834         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
16835         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
16836         Offset only holds something for PLUS_EXPR.
16837         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
16838         a PLUS_EXPR.
16839         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
16840         and not PLUS_EXPR.
16841         (analyze_accesses_for_modify_stmt): Likewise.
16842         Remove comment about the type being integral type as it is
16843         wrong now.
16844         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
16845         PLUS_EXPR.
16846         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
16847         and not PLUS_EXPR.
16848         Correct the type which the artimentic is done in (is now
16849         sizetype).
16850         Reindent one loop.
16851         * tree-data-ref.c (split_constant_offset): Handle
16852         POINTER_PLUS_EXPR
16853         * tree-affine.c (tree_to_aff_combination): Likewise.
16854         * c-typeck.c (build_unary_op): For pointers create the increment
16855         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
16856         for pointers.
16857         * gimplify.c (gimplify_self_mod_expr): Create a
16858         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
16859         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
16860         * tree.def (POINTER_PLUS_EXPR): New tree code.
16861         * tree-predcom.c (ref_at_iteration): If we have a pointer
16862         type do the multiplication in sizetype.
16863         * tree-mudflap.c (mf_xform_derefs_1): Create a
16864         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
16865         * tree-ssa-forwprop.c 
16866         (forward_propagate_addr_into_variable_array_index):
16867         Don't expect there to be a cast for the index as that
16868         does not exist anymore.
16869         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
16870         instead of PLUS_EXPR.
16871         Don't check for the first operand of the POINTER_PLUS_EXPR
16872         was the index as it cannot be.
16873         Call forward_propagate_addr_into_variable_array_index with
16874         the SSA_NAME instead of the statement.
16875         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
16876         (compare_constant): Likewise.
16877         (copy_constant): Likewise.
16878         (compute_reloc_for_constant): Likewise.
16879         (output_addressed_constants): Likewise.
16880         (initializer_constant_valid_p): Likewise.
16881         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
16882         Convert the MIN/MAX of the inner type to the outer
16883         type before comparing them.
16884         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
16885         POINTER_PLUS_EXPR instead of PLUS_EXPR.
16886         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
16887         of PLUS_EXPR for pointers.
16888         * tree-inline.c (estimate_num_insns_1): Handle
16889         POINTER_PLUS_EXPR.
16890         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
16891         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
16892         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
16893         instead of PLUS_EXPR for the pointer increment statement.
16894         (vect_update_ivs_after_vectorizer): For pointer types, create
16895         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
16896         MULT_EXPR in sizetype.
16897         (vect_gen_niters_for_prolog_loop): Add a cast when creating
16898         byte_misalign.
16899         * tree-object-size.c (plus_expr_object_size): Handle
16900         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
16901         code which is trying to figure out which side is a pointer and 
16902         is the index.
16903         (check_for_plus_in_loops_1): Likewise.
16904         (check_for_plus_in_loops): Likewise.
16905         * c-common.c (pointer_int_sum): Create a
16906         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
16907         * tree-ssa-structalias.c (handle_ptr_arith): Handle
16908         only POINTER_PLUS_EXPR.  Removing all the extra
16909         code which is trying to figure out which side is a pointer and 
16910         is the index.
16911         * tree-cfg.c (verify_expr): Add extra checking for pointers and
16912         PLUS_EXPR and MINUS_EXPR.
16913         Also add checking to make sure the operands of POINTER_PLUS_EXPR
16914         are correct.
16915         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
16916         with make_tree, instead of a pointer type.
16917         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
16918         for pointers instead of PLUS_EXPR.
16919         (s390_gimplify_va_arg): Likewise.
16920         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
16921         instead of PLUS_EXPR when doing addition on pointer
16922         types.  Use sizetype for the second operand.
16923         (spu_gimplify_va_arg_expr): Likewise.
16924         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
16925         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
16926         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
16927         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
16928         for the pointer addition and also use size_int/sizetype
16929         for the offset.
16930         (ix86_gimplify_va_arg): Likewise.
16931         Perform BIT_AND_EXPR on sizetype arguments.
16932         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
16933         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
16934         for the pointer additions and also use size_int for the offsets.
16935         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
16936         additions and also use size_int for the offsets.  Perform
16937         BIT_AND_EXPR on sizetype arguments.
16938         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
16939         POINTER_PLUS_EXPR for pointers and create the
16940         BIT_AND_EXPR in sizetype.
16941         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
16942         instead of PLUS_EXPR for pointer addition.
16943         (rs6000_va_start): Likewise.
16944         Also use sizetype for the offset.
16945         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
16946         as PLUS_EXPR/MINUS_EXPR.
16947         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
16948         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
16949         Don't use BIT_AND_EXPR on a pointer type, convert the
16950         expression to sizetype first.
16951         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
16952         for pointers.
16953         (mips_gimplify_va_arg_expr): Likewise.
16954         Don't create BIT_AND_EXPR in a pointer type.
16955
16956 2007-06-15  Eric Christopher  <echristo@apple.com>
16957
16958         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
16959         (x86_64-*-darwin*): Ditto.
16960         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
16961         for above.
16962
16963 2007-06-15  Matthew Wilcox <matthew@wil.cx>
16964
16965         * doc/extend.texi: Document behavior of __attribute__((aligned))
16966         on typedefs.
16967
16968 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
16969
16970         * rtlanal.c (note_stores): Improve documentation.
16971
16972 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
16973
16974         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
16975         LOCAL_LABEL_PREFIX): Delete.
16976         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
16977         (bfin_internal_label): Delete.
16978
16979 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
16980
16981         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
16982         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
16983         otherwise define to LIBGCC2_TF_CEXT.
16984         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
16985         (LIBGCC_TF_CEXT): Ditto.
16986         (TF_SIZE): Ditto.
16987
16988 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
16989
16990         PR rtl-optimization/32339
16991         * df-scan.c (df_uses_record): Don't modify flags but just add to
16992         it for df_ref_record.
16993
16994 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16995
16996         * tree-mudflap.c: Fix whitespace issues.
16997
16998 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
16999
17000         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
17001
17002 2007-06-14  Eric Christopher  <echristo@apple.com>
17003
17004         * config/i386/sse.md (movdi_to_sse): Rewrite body.
17005         (movv4sf): Use gcc_unreachable instead of abort.
17006
17007 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
17008
17009         PR target/32268
17010         * config/i386/sfp-machine.h (CMPtype): New define.
17011         (mach stubs): Use CMPtype instead of int as a return type.
17012
17013 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
17014
17015         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
17016         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
17017         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
17018         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
17019         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
17020         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
17021         config/soft-fp/soft-fp.h: Update from glibc CVS.
17022
17023 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
17024
17025         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
17026
17027 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
17028
17029         PR target/32341
17030         * config/v850/v850.c: Include dataflow header file.
17031         (substitute_ep_register): Fix typo.
17032
17033 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
17034
17035         * configure.ac: Fix earlier checkin.
17036         * configure: Regenerated.
17037
17038 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
17039
17040         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
17041         * aclocal.m4: Regenerate.
17042         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
17043         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
17044         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
17045         * configure: Regenerate.
17046         * Makefile.in (LOOSE_WARN): Subst loose_warn.
17047
17048         * Makefile.in (quickstrap): Build libgcc too.
17049
17050 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
17051
17052         * configure.ac: Add --enable-checking=df.  Explicitly mention that
17053         the variables are initialized as for "release".
17054         * df-core.c: Use it.
17055         * configure: Regenerate.
17056         * config.in: Regenerate.
17057
17058 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
17059
17060         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
17061         validate_replace_rtx instead of replace_rtx.
17062         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
17063
17064 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
17065
17066         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
17067         (DWARF2_UNWIND_INFO): Override default if configured with
17068         SJLJ EH disabled.
17069         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
17070         (ENDFILE_SPEC): Add crtend.o.
17071         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
17072         (ENDFILE_SPEC): Add crtend.o.
17073         (TARGET_USE_JCR_SECTION): Define.
17074         (MD_UNWIND_SUPPORT): Define for 32-bit target.
17075
17076         * config/i386/cygming-crtbegin.c: New file.
17077         * config/i386/cygming-crtend.c: New file.
17078
17079 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
17080
17081         * config/i386/w32-unwind.h: New file.
17082
17083 2007-06-13  Eric Christopher  <echristo@apple.com>
17084
17085         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
17086         the user set a value below STACK_BOUNDARY.
17087
17088 2007-06-13  Thiemo Seufer  <ths@networkno.de>
17089
17090         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
17091         imply -lpthread for -pthread.
17092
17093 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
17094
17095         * basic-block.h: Remove the prototype for
17096         free_basic_block_vars.
17097         * cfglayout.h: Remove the prototype for
17098         insn_locators_initialize.
17099         * tree.h: Remove the prototype for emit_line_note.
17100
17101         * tree-ssa-pre.c (mergephitemp): Remove.
17102         (init_pre): Don't use mergephitemp.
17103
17104 2007-06-13  Eric Christopher  <echristo@apple.com>
17105
17106         * config/i386/i386.c (override_options): If we've specified
17107         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
17108
17109 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
17110
17111         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
17112         is defined.
17113
17114 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
17115
17116         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
17117         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
17118         (eh_store_handler): New pattern.
17119         (eh_return): Emit it instead of a plain move.
17120
17121 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
17122
17123         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
17124         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
17125         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
17126         def_builtin_const.
17127
17128 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
17129
17130         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
17131         (find_next_insn_start, find_load): New functions.
17132         (bfin_reorg): Use them to deal with the fact that parallel insns are
17133         no longer represented as a SEQUENCE.
17134
17135 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
17136
17137         * config/sparc/sparc.c (sparc_override_options): Initialize
17138         fpu mask correctly.
17139
17140 2007-06-13  Dave Korn  <dave.korn@artimi.com>
17141
17142         * config/i386/i386.c (ix86_eax_live_at_start_p): Use df_get_live_out.
17143
17144 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
17145
17146         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
17147         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
17148         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
17149         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
17150         tree-vect-transform.c: Fix comment typos.  Follow spelling
17151         conventions.
17152
17153 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
17154
17155         * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
17156         to the exit block use set.
17157         (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
17158         * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
17159         * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
17160
17161 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
17162
17163         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
17164         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
17165         to indicate an error.
17166         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
17167         New functions.
17168         (dbg_cnt_process_opt): Print an error on a bad argument.
17169         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
17170         * common.opt (-fdbg-cnt-list): New.
17171         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
17172
17173 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
17174
17175         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
17176         flag on ref-all pointers.
17177
17178 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17179
17180         PR middle-end/31579
17181         * expr.c (expand_expr_addr_expr_1): Call expand_expr
17182         for the offset with the modifier as EXPAND_INITIALIZER
17183         if the modifier is EXPAND_INITIALIZER.
17184         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
17185         a register if we had an overflow.
17186
17187 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17188
17189         * real.c (real_isfinite): New.
17190         (real_sqrt): Use it.
17191         * real.h (real_isfinite): New.
17192         * builtins.c: Use it.
17193
17194 2007-06-12  Ian Lance Taylor  <iant@google.com>
17195             Daniel Berlin  <dberlin@dberlin.org>
17196
17197         PR libstdc++/29286
17198         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
17199         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
17200         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
17201         (DECL_NO_TBAA_P): Define.
17202         (struct tree_decl_common): Add no_tbaa_flag field.
17203         * tree-ssa-structalias.c (struct variable_info): Add
17204         no_tbaa_pruning field.
17205         (new_var_info): Initialize no_tbaa_pruning field.
17206         (unify_nodes): Copy no_tbaa_pruning field.
17207         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
17208         (dump_solution_for_var): Print no_tbaa_pruning flag.
17209         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
17210         callers.
17211         (compute_tbaa_pruning): New static function.
17212         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
17213         Call compute_tbaa_pruning.
17214         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
17215         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
17216         * gimple-low.c (lower_stmt): Likewise.
17217         * tree-gimple.c (is_gimple_stmt): Likewise.
17218         * tree-ssa-operands.c (get_expr_operands): Likewise.
17219         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17220         * tree-inline.c (estimate_num_insns_1): Likewise.
17221         (copy_result_decl_to_var): Likewise.
17222         * expr.c (expand_expr_real_1): Likewise.
17223         * tree-pretty-print.c (dump_generic_node): Likewise.
17224         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
17225         * omp-low.c (omp_copy_decl_2): Likewise.
17226         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
17227         * doc/c-tree.texi (Expression trees): Document
17228         CHANGE_DYNAMIC_TYPE_EXPR.
17229
17230 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17231
17232         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
17233         with !HONOR_NANS and !HONOR_INFINITIES.
17234         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
17235
17236 2007-06-12  Tristan Gingold  <gingold@adacore.com>
17237
17238         * gcov.c: Comments updated.
17239         (source_info): Add file_time field.
17240         (source_index): New variable.
17241         (mutiple_files): New variable.
17242         (generate_results): New function extracted from process_file.
17243         (process_file): Save and restore chain of functions, generate
17244         results and free structures only if not merging results.
17245         (release_structures): File names are now freed in create_file_names
17246         (create_file_names): Free previous file names.
17247         (find_source): File date is now read here and modifications in
17248         source files is checked here.
17249         (read_graph_file): Only reverse order of functions for the current
17250         object file.
17251         (make_gcov_file_name): Do not generate long names if input_name is
17252         NULL.
17253         (output_lines): If merging results do not display graph, data and
17254         runs informations.
17255         Checking source file modification is done in find_source.
17256
17257         * doc/gcov.texi: Append an s to sourcefile.
17258
17259 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
17260
17261         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
17262         (forced_nop): New pattern.
17263         * config/bfin/bfin.c: Include "df.h".
17264         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
17265         (bfin_discover_loop): Use df_get_live_in instead of
17266         global_live_at_start.
17267         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
17268         df_analyze when done.
17269         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
17270         the insns.  Use QImode for the final insn in a bundle.  Call
17271         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
17272         gen_nop.
17273         (reorder_var_tracking_notes): New function.
17274         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
17275         update_life_info.  Call df_analyze after scheduling and bundle
17276         generation.  Call reorder_var_tracking_notes if generating these
17277         notes.  Call df_finish_pass at the end.
17278
17279 2007-06-12  Dirk Mueller  <dmueller@suse.de>
17280
17281         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
17282         a comparison, not an assignment.
17283
17284 2007-06-12  Olivier Hainque  <hainque@adacore.com>
17285
17286         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
17287         Request walking the subtrees only, leaving the current is_lhs/val_only
17288         untouched.
17289         (convert_non_local_reference): Likewise.
17290
17291 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
17292
17293         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
17294
17295 2007-06-12  Richard Guenther  <rguenther@suse.de>
17296
17297         PR tree-optimization/15353
17298         PR tree-optimization/31657
17299         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
17300         * timevar.def: Add TV_TREE_IFCOMBINE.
17301         * tree-pass.h (pass_tree_ifcombine): Declare.
17302         * tree-ssa-ifcombine.c: New file.
17303         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
17304         * tree-flow.h (blocks_in_phiopt_order): Declare.
17305         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
17306         (tree-ssa-ifcombine.o): New dependencies.
17307
17308 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
17309
17310         PR rtl-optimization/32293
17311         * combine.c (simplify_if_then_else): Truncate return from
17312         nonzero_bits() to correct mode.
17313
17314 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
17315
17316         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
17317         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
17318
17319 2007-06-11  Diego Novillo  <dnovillo@google.com>
17320
17321         * Makefile.in (reload1.o-warn): Remove.
17322
17323 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
17324
17325         * combine.c (subst): Use reg_overlap_mentioned_p
17326         instead of comparing register numbers directly.
17327
17328 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
17329
17330         * reload1.c (mark_home_live_1): Use the mode parameter.
17331
17332 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
17333
17334         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
17335         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
17336         word "deferred".
17337         * df-core.c: Ditto.
17338
17339 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
17340
17341         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
17342
17343 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
17344
17345         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
17346         from integer registers.
17347         (FP mode splitters): Handle TFmode.
17348
17349 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
17350
17351         * tree-ssa-structalias.c (find_what_p_points_to): Return false
17352         for ref-all pointers that point-to anything.
17353
17354 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
17355
17356         * config/arm/arm.c (arm_output_dwarf_dtprel,
17357         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
17358
17359 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
17360
17361         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
17362         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
17363         to memory moves.
17364
17365 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
17366
17367         * tree.c (signed_or_unsigned_type_for): New.
17368         (unsigned_type_for): Use signed_or_unsigned_type_for.
17369         (signed_type_for): Use signed_or_unsigned_type_for.
17370         * tree.h (signed_or_unsigned_type_for): New.
17371         (get_signed_or_unsigned_type): Remove.
17372         * fold-const.c (fold_negate_expr): Use signed_type_for instead of
17373         lang_hooks.types.signed_type
17374         (size_diffop): Likewise.
17375         (all_ones_mask_p): Likewise.
17376         (build_range_check): Likewise.
17377         (fold_cond_expr_with_comparison): Likewise.
17378         (fold_cond_expr_with_comparison): Likewise.
17379         (unextend): Likewise.
17380         (extract_muldiv_1): Likewise.
17381         (fold_single_bit_test_into_sign_test): Likewise.
17382         (fold_binary): Likewise.
17383         (fold_ternary): Likewise.
17384         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
17385         instead of get_signed_or_unsigned_type.
17386         * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
17387         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
17388         * expr.c (signed_or_unsigned_type_for): Use
17389         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
17390         * langhooks.c (get_signed_or_unsigned_type): Remove.
17391         (lhd_signed_or_unsigned_type): Remove.
17392         * langhooks.h (lang_hooks_for_types): Remove signed_type and
17393         signed_or_unsigned_type.
17394         (lhd_signed_or_unsigned_type): Remove.
17395         * expmed.c (make_tree): Use signed_type_for instead of
17396         lang_hooks.types.signed_type.
17397         * c-common.c (same_scalar_type_ignoring_signedness): Use
17398         c_common_signed_type instead of lang_hooks.types.signed_type.
17399         (c_common_unsigned_type): New.
17400         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
17401         (shorten_compare): Use c_common_unsigned_type instead of
17402         c_common_signed_or_unsigned_type.
17403         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
17404         unsigned_type_for.
17405         * convert.c (convert_to_integer): Use signed_type_for instead of
17406         lang_hooks.types.signed_type.
17407         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
17408         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
17409         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
17410         * c-format.c (check_format_types): Use c_common_unsigned_type
17411         instead of unsigned_type_for.
17412         * c-decl.c (groakdeclarator): Likewise.
17413         * c-typeck.c (convert_for_assignment): Likewise.
17414         * c-common.h (c_common_unsigned_type): New.
17415
17416 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
17417
17418         PR target/32280
17419         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
17420         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
17421
17422 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
17423
17424         PR middle-end/32279
17425         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
17426         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
17427
17428 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
17429             Sebastian Pop  <sebpop@gmail.com>
17430
17431         * lambda-code.c (remove_iv): New.
17432         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
17433
17434 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
17435
17436         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
17437         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
17438         * tree-ssa-loop-prefetch.c: Include optabs.h.
17439         (FENCE_FOLLOWING_MOVNT): New macro.
17440         (struct mem_ref): Add independent_p and storent_p fields.
17441         (record_ref): Initalize the new fields.
17442         (gather_memory_references_ref): Return true if the reference
17443         could be analysed.
17444         (gather_memory_references): Check whether all memory accesses
17445         in loop were recorded.
17446         (should_issue_prefetch_p): Return false for nontemporal stores.
17447         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
17448         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
17449         (determine_loop_nest_reuse): Detect independent memory references.
17450         (loop_prefetch_arrays): Call mark_nontemporal_stores.
17451         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
17452         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
17453         * config/i386/i386.h (x86_mfence): Declare.
17454         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
17455         * config/i386/i386.c (x86_mfence): New variable.
17456         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
17457
17458         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
17459         * optabs.c (init_optabs): Initialize storent_optab.
17460         * optabs.h (enum optab_index): Add OTI_storent.
17461         (storent_optab): Declare.
17462         * genopinit.c (optabs): Add initialization for storent_optab.
17463         * tree.h (MOVE_NONTEMPORAL): New macro.
17464         * expr.c (expand_assignment, store_expr, store_constructor_field,
17465         store_constructor, store_field, expand_expr_real_1): Propagate
17466         nontemporality of the expanded store.
17467         (emit_storent_insn): New function.
17468         * expr.h (expand_assignment, store_expr): Declaration changed.
17469         * function.c (assign_parm_setup_reg): Pass false as nontemporality
17470         to expand_assignment.
17471         * stmt.c (expand_asm_expr): Ditto.
17472         * calls.c (initialize_argument_information): Pass false as
17473         nontemporality to store_expr.
17474         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
17475         storentsi): New.
17476
17477 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
17478
17479         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
17480         parameter, use it.
17481         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
17482
17483 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
17484
17485         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
17486         and allow DECL_P here.
17487
17488 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
17489
17490         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
17491         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
17492         track of the size of the expression.
17493         * cfghooks.c (merge_blocks): Remove block from loops structure only
17494         after call of the merge_blocks hook.
17495
17496 2007-06-09  Tom Tromey  <tromey@redhat.com>
17497
17498         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
17499         (deprecated_state): Removed.
17500         (start_decl): Update.
17501         (enum deprecated_states): Moved earlier.
17502         (groktypename): Update.
17503         (push_parm_decl): Likewise.
17504         (grokfield): Likewise.
17505         (start_function): Likewise.
17506
17507 2007-06-09  Ian Lance Taylor  <iant@google.com>
17508
17509         PR tree-optimization/32169
17510         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
17511         CONVERT_EXPR, check whether min and max both converted to an
17512         overflow infinity representation.
17513
17514 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
17515
17516         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
17517         not inserted on the edge.
17518
17519 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
17520
17521         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
17522         instructions if they are supported.
17523         (__divsi3, __umodsi3, __modsi3): Likewise.
17524         (__ashldi3, __ashrdi3, __lshrdi3): New.
17525         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
17526
17527 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
17528             Tony Linthicum <tony.linthicum@amd.com>
17529
17530         * doc/invoke.texi: Add fvect-cost-model flag.
17531         * common.opt (fvect-cost-model): New flag.
17532         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
17533         cost fields in stmt_vec_info struct for STMT.
17534         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
17535         fields in stmt_vec_info struct and access functions for the same.
17536         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
17537         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
17538         load, store and vector to scalar operation.
17539         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
17540         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
17541         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
17542         (TARG_VEC_STORE_COST): Define cost of vector store.
17543         (vect_estimate_min_profitable_iters): Define new function.
17544         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
17545         check to evaluate if loop iterations are less than minimum profitable
17546         iterations determined by cost model or minimum vect loop bound defined
17547         by user, whichever is more conservative.
17548         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
17549         run-time check to evaluate if loop iterations are less than minimum
17550         profitable iterations determined by cost model or minimum vect loop
17551         bound defined by user, whichever is more conservative.
17552         (vect_estimate_min_profitable_iterations): New function to estimate
17553         mimimimum iterartions required for vector version of loop to be
17554         profitable over scalar version.
17555         (vect_model_reduction_cost): New function.
17556         (vect_model_induction_cost): New function.
17557         (vect_model_simple_cost): New function.
17558         (vect_cost_strided_group_size): New function.
17559         (vect_model_store_cost): New function.
17560         (vect_model_load_cost): New function.
17561         (vectorizable_reduction): Call vect_model_reduction_cost during
17562         analysis phase.
17563         (vectorizable_induction): Call vect_model_induction_cost during
17564         analysis phase.
17565         (vectorizable_load): Call vect_model_load_cost during analysis phase.
17566         (vectorizable_store): Call vect_model_store_cost during analysis phase.
17567         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
17568         vectorizable_promotion, vectorizable_demotion): Call
17569         vect_model_simple_cost during analysis phase.
17570
17571 2007-06-08  Simon Baldwin  <simonb@google.com>
17572
17573         * reg-stack.c (get_true_reg): Readability change.  Moved default case
17574         label into direct switch statement scope.
17575
17576 2007-06-08  Simon Baldwin  <simonb@google.com>
17577
17578         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
17579         in gcc_assert() with '==' comparison.
17580
17581 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
17582
17583         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
17584         TARGET_ABM handling of x86_popcnt variable.
17585
17586 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
17587
17588         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
17589         __builtin_copysignq and __builtin_infq built-in functions.
17590
17591 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
17592
17593         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
17594         SSE4.2 section.  Correct built-in function names in SSE4A section.
17595
17596 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
17597
17598         PR tree-optimization/32243
17599         * tree-vect-transform.c (vectorizable_type_promotion): Move check
17600         for ncopies after ratio check between nunits_out and nunits_in.
17601         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
17602
17603 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
17604
17605         PR tree-optimization/32224
17606         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
17607         vectorization upon a non GIMPLE_MODIFY_STMT.
17608
17609 2007-06-08  Christian Bruel  <christian.bruel@st.com>
17610
17611         PR target/29953
17612         * config/sh/sh.md (doloop_end): New pattern and splitter.
17613         * loop-iv.c (simple_rhs_p): Check for hardware registers.
17614
17615 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
17616
17617         PR middle-end/32209
17618         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
17619         functions.
17620         (verify_dominators): Do not change dominance tree.
17621
17622 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
17623
17624         * config/sh/constraints.md: New file.
17625         * config/sh/sh.c: Include tm-constrs.h.
17626         (reg_class_from_letter): Remove.
17627         (prepare_cbranch_operands): Use satisfies_constraint_*
17628         function instead of macro.
17629         (andcosts, broken_move, sh_secondary_reload): Likewise.
17630         * config/sh/predicates.md (trapping_target_operand): Likewise.
17631         (and_operand, arith_operand, arith_reg_or_0_operand,
17632         cmp_operand, logical_operand, target_operand,
17633         ua_address_operand, ua_offset, xor_operand): Likewise.
17634         * config/sh/sh.md: Include constraints.md.
17635         (*movsicc_t_false): Use satisfies_constraint_* function
17636         instead of macro.
17637         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
17638         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
17639         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
17640         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
17641         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
17642         (REG_CLASS_FROM_CONSTRAINT): Remove.
17643         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
17644         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
17645         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
17646         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
17647         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
17648         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
17649         function instead of macro.
17650         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
17651         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
17652         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
17653         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
17654         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
17655         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
17656         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
17657         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
17658         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
17659         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
17660         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
17661         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
17662         EXTRA_CONSTRAINT_STR): Likewise.
17663         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
17664
17665 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
17666
17667         * config/i386/darwin.h (STACK_BOUNDARY): Define.
17668
17669 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
17670
17671         PR c++/30759
17672         * c-common.h (flag_cpp0x): Replaced by...
17673         (cxx_dialect): ... this new variable specifying the C++ dialect that
17674         is used.
17675         * c-common.c (flag_cpp0x): Removed.
17676         (cxx_dialect): Defined.
17677         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
17678         cxx_dialect.
17679         * c-opts.c (c_common_post_options): Likewise.
17680         (set_std_cxx98): Set cxx_dialect to cxx98.
17681         (set_std_cxx0x): Set cxx_dialect to cxx0x.
17682
17683 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
17684             Hui-May Chang <hm.chang@apple.com>
17685
17686         * doc/invoke.texi (Darwin Options): Update documentation for
17687         -mmacosx-version-min.
17688         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
17689         * config/darwin-driver.c: New file.
17690         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
17691         * config/t-darwin (darwin-driver.o): New rule.
17692
17693         * config/darwin-c.c (version_as_macro): Ignore low digit.
17694
17695 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
17696
17697         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
17698         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
17699         (CSGNMODE): New mode macro.
17700         (CSGNVMODE): New mode attribute.
17701         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
17702         expander using CSGNMODE mode macro.  Handle TFmode.
17703         (copysign<mode>3_const): Rename from copysignsf3_const and
17704         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
17705         Handle TFmode.
17706         (copysign<mode>3_var): Rename from copysignsf3_var and
17707         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
17708         Handle TFmode.
17709         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
17710         mode macro.  Handle TFmode.
17711         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
17712         (iortf3, *iortf3): Ditto.
17713         (xortf3, *xortf3): Ditto.
17714         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
17715         TFmode and TImode masks.
17716         (ix86_expand_copysign): Expand TFmode copysign insn.
17717         (IX86_BUILTIN_INFQ): New.
17718         (IX86_BUILTIN_FABSQ): Ditto.
17719         (IX86_BUILTIN_COPYSIGNQ): Ditto.
17720         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
17721         [__builtin_fabsq]: Ditto.
17722         [__builtin_copysignq]: Ditto.
17723         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
17724         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
17725         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
17726         ix86_expand_binop_builtin().
17727
17728 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
17729
17730         * config/xtensa/lib1funcs.asm: Clean up whitespace.
17731
17732 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
17733
17734         PR target/31850
17735         * rtl.h (push_to_sequence2): New.
17736         * emit-rtl.c (push_to_sequence2): New.
17737         * function.c (assign_parm_data_all): Add new fields.
17738         (assign_parm_setup_block): Call push_to_sequence2 instead of
17739         push_to_sequence.
17740         (assign_parm_setup_reg): Ditto.
17741         (assign_parm_setup_stack): Ditto.
17742         (assign_parms_unsplit_complex): Ditto.
17743         (assign_parms): Change field name.
17744
17745 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
17746
17747         PR tree-optimization/32220
17748         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
17749         phi node is reached before defining statement.
17750
17751 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17752
17753         PR tree-opt/32231
17754         * tree-vect-transform.c (vectorizable_call): Call update_stmt
17755         after changing the right hand side of the assignment.
17756
17757 2007-06-06  Eric Christopher  <echristo@apple.com>
17758
17759         * config.gcc (i?86-*-darwin*): Remove arch parameter.
17760         (x86_64-*-darwin*): Ditto.
17761         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
17762         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
17763
17764 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
17765
17766         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
17767         coding conventions.
17768         (add_key): Likewise.
17769         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
17770         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
17771         variable names.
17772         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
17773         macros.
17774         (add_cost_one_coalesce): Likewise.
17775         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
17776         variable names. Rename orig to orig_name for consistency.
17777         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
17778         coding conventions.
17779         (cprop_into_successor_phis): Avoid using C++ keywords as variable
17780         names.
17781         (record_equivalences_from_stmt): Likewise.
17782         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
17783         the coding conventions.
17784         (memory_ssa_name_same): Likewise.
17785         (dse_optimize_stmt): Likewise.
17786         (dse_record_phis): Likewise.
17787         (dse_finalize_block): Likewise.
17788         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
17789         keywords as variable names.
17790         (may_move_till): Cast according to the coding conventions.
17791         (force_move_till_expr): Avoid using C++ keywords as variable names.
17792         (force_move_till): Cast according to the coding conventions.
17793         (memref_hash): Likewise.
17794         (memref_eq): Likewise.
17795         (gather_mem_refs_stmt): Likewise.
17796         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
17797         using C++ keywords as variable names.
17798         (idx_find_step): Cast according to the coding conventions.
17799         (idx_record_use): Likewise.
17800         (find_depends): Likewise.
17801         (prepare_decl_rtl): Likewise.
17802         (mbc_entry_hash): Likewise.
17803         (mbc_entry_eq): Likewise.
17804         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
17805         (simplify_replace_tree): Avoid using C++ keywords as variable names.
17806         (idx_infer_loop_bounds): Cast according to the coding conventions.
17807         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
17808         * tree-ssa-math-opts.c (occ_new ): Likwise.
17809         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
17810         macros.
17811         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
17812         variable names.
17813         (add_use_op): Likewise.
17814         (add_vop): Likewise.
17815         (add_vuse_op): Likewise.
17816         (add_vdef_op): Likewise.
17817         (get_expr_operands): Likewise.
17818         (push_stmt_changes): Use type safe memory macros.
17819         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
17820         keywords as variable names.
17821         (conditional_replacement): Likewise.
17822         (minmax_replacement): Likewise.
17823         (abs_replacement): Likewise.
17824         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
17825         coding conventions.
17826         (insert_fake_stores): Avoid using C++ keywords as variable names.
17827         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
17828         conventions.
17829         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
17830         (heapvar_insert): Use type safe memory macros.
17831         (new_var_info): Cast according to the coding conventions.
17832         (new_constraint): Likewise.
17833         (remove_preds_and_fake_succs): Use type safe memory macros.
17834         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
17835         conventions.
17836         (thread_single_edge): Likewise.
17837         (thread_through_loop_header): Likewise.
17838
17839 2007-06-06  Eric Christopher  <echristo@apple.com>
17840
17841         * config/i386/i386.c (override_options): Move handling
17842         of TARGET_SUBTARGET* earlier.
17843
17844 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
17845
17846         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
17847         use %n on printf.
17848
17849 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
17850
17851         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
17852         emited outside of basic block.
17853         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
17854         the created blocks.
17855         * rtl.h (delete_insn_chain): Declaration changed.
17856         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
17857         non-removed insns.
17858         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
17859         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
17860         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
17861         to delete_insn_chain.
17862         (rtl_verify_flow_info_1): Verify that the insns in header and footer
17863         do not have bb field set.
17864         (rtl_verify_flow_info): Verify that insns between basic blocks do not
17865         have bb field set.
17866         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
17867         * cfgcleanup.c (try_optimize_cfg): Ditto.
17868
17869 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
17870
17871         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
17872         (lambda_body_vector_new): Use type safe memory macros.
17873         (lambda_linear_expression_new): Likewise.
17874         (lambda_loopnest_new): Likewise.
17875         (lambda_lattice_new): Likewise.
17876         (replace_uses_equiv_to_x_with_y): Cast according to the coding
17877         conventions. Use type safe memory macros.
17878         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
17879         (lambda_body_vector_s): Likewise.
17880         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
17881         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
17882
17883 2007-06-06  Richard Guenther  <rguenther@suse.de>
17884
17885         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
17886         if we need to schedule cfg_cleanup.
17887         (tree_ssa_forward_propagate_single_use_vars): Do so.
17888
17889 2007-06-06  Ian Lance Taylor  <iant@google.com>
17890
17891         * fold-const.c (merge_ranges): If range_successor or
17892         range_predecessor fail, just return 0.
17893
17894 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
17895
17896         PR tree-optimization/32216
17897         * tree-vectorizer.c (supportable_widening_operation): Determine
17898         signedness of FIX_TRUNC_EXPR from output operand.
17899         (supportable_narrowing_operation): Ditto.
17900         * tree-vect-generic.c (expand_vector_operations_1): Determine
17901         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
17902         from input operand.
17903
17904 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
17905
17906         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
17907         (struct pta): ...from here. Change flags to unsigned to avoid
17908         excessive casting (as it is used as a bit mask).
17909         (override_options): Add casts according to the coding convenventions.
17910         (x86_64_elf_unique_section): Likewise.
17911         (examine_argument): Avoid using C++ keywords as variable names.
17912         (construct_container): Likewise.
17913         (legitimize_pic_address): Likewise.
17914         (get_dllimport_decl): Cast according to the coding conventions. Use
17915         type safe memory macros.
17916         (legitimize_address): Cast according to the coding conventions.
17917         (emit_i387_cw_initialization): Corrected the type of slot to enum
17918         ix86_stack_slot.
17919         (ix86_init_machine_status): Use type safe memory macros.
17920         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
17921         (bdesc_pcmpistr): Likewise.
17922         (bdesc_crc32): Likewise.
17923         (bdesc_sse_3arg): Likewise.
17924         (bdesc_2arg): Likewise.
17925         (bdesc_1arg): Likewise.
17926         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
17927         (ix86_expand_sse_pcmpistr): Likewise.
17928         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
17929         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
17930         int to match the langhook definition.
17931         (ix86_builtin_conversion): Change the type of code to unsigned init to
17932         match the langhook definition.
17933         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
17934         names.
17935         (ix86_preferred_output_reload_class): Likewise.
17936         (ix86_cannot_change_mode_class): Likewise.
17937         (ix86_memory_move_cost): Likewise.
17938         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
17939         avoid excessive casting later on.
17940         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
17941
17942 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
17943
17944         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
17945         as flags setting insn.
17946         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
17947
17948 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
17949
17950         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
17951         (UNSPEC_ROUND): New.
17952         ("sse4_1_round<mode>2"): New insn pattern.
17953         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
17954         SSE4.1 targets.
17955         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
17956         expander using SSEMODEF mode macro.  Expand using
17957         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
17958         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
17959         expander using SSEMODEF mode macro.  Expand using
17960         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
17961         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
17962         expander using SSEMODEF mode macro.  Expand using
17963         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
17964         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
17965         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
17966         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
17967         UNSPEC_ROUNDS.
17968
17969 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
17970             Sebastian Pop  <sebpop@gmail.com>
17971
17972         * lambda.h (build_linear_expr): New.
17973         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
17974         Use build_linear_expr, call fold and force_gimple_operand.
17975         (lambda_loopnest_to_gcc_loopnest): Check that there is
17976         something to insert.
17977         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
17978
17979 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
17980
17981         PR preprocessor/23479
17982         * doc/extend.texi: Document the 0b-prefixed binary integer
17983         constant extension.
17984
17985 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
17986
17987         PR tree-optimization/32215
17988         * tree-vectorizer.c (supportable_widening_operation): Return false
17989         for unsupported FIX_TRUNC_EXPR tree code.
17990         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
17991
17992 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
17993
17994         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
17995         register on SPE targets.  Change documentation to reflect
17996         reality.
17997         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
17998         Change FIXED_SCRATCH to 14 and document why we're keeping r14
17999         out of the register allocation pool.
18000         (rs6000_reg_live_or_pic_offset_p): New function.
18001         (rs6000_emit_prologue): Move the actual saving of LR up to free
18002         r0 for holding r11.  Split saving of SPE 64-bit registers into
18003         its own case.  Ensure that offsets will always be in-range for
18004         'evstdd' by using r11 as a scratch register to point at the start
18005         of the SPE save area.  Save r11 if necessary, as it is the static
18006         chain register.
18007         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
18008         into its own case.  Ensure that offsets will always be in-range
18009         for 'evldd' by using r11 as a scratch register to point at the
18010         start of the SPE save area.  Also adjust r11 when restoring
18011         the stack pointer to compensate for pre-loading r11.
18012
18013 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
18014
18015         * cfg.c (init_flow): Use type safe memory macros.
18016         (alloc_block): Likewise.
18017         (unchecked_make_edge): Likewise.
18018         (dump_flow_info): Avoid using C++ keywords as variable names.
18019         (copy_original_table_clear): Cast according to the coding conventions.
18020         (copy_original_table_set): Likewise.
18021         * cfgexpand (label_rtx_for_bb): Likewise.
18022         (expand_gimple_basic_block): Likewise.
18023         * cfghooks.c (dump_bb): Likewise.
18024         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
18025         variable names.
18026         (lv_add_condition_to_bb): Likewise.
18027         * cfglayout (relink_block_chain): Cast according to the coding
18028         conventions.
18029         (fixup_reorder_chain): Likewise.
18030         (fixup_fallthru_exit_predecessor): Likewise.
18031         * cfgloop.c (glb_enum_p): Likewise.
18032         (get_exit_description): Likewise.
18033         (dump_recorded_exit): Likewise.
18034         * cfgloop.h (enum loop_estimation): Move out of struct scope...
18035         (struct loop): ... from here.
18036         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
18037         conventions.
18038         * cfgrtl.c (rtl_create_basic_block): Likewise.
18039         (rtl_split_block): Likewise.
18040         (rtl_dump_bb): Likewise.
18041         (cfg_layout_split_block): Likewise.
18042         (init_rtl_bb_info): Use typesafe memory macros.
18043
18044         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
18045         * graphds.h: Updated all usages of edge to graph_edge.
18046         * graphds.c: Likewise.
18047         * cfgloopanal.c: Likewise.
18048
18049 2007-06-05  Ian Lance Taylor  <iant@google.com>
18050
18051         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
18052         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
18053         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
18054         expression.
18055         (test_for_singularity): Likewise.
18056
18057 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
18058
18059         * config/i386/constraints.md ("Y2"): Replaced by ...
18060         ("Yt"): This.
18061         * config/i386/i386.md: Likewise.
18062         * config/i386/mmx.md: Likewise.
18063         * config/i386/sse.md: Likewise.
18064
18065 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
18066
18067         * config/i386/constraints.md ("z"): Replaced by ...
18068         ("Y0"): This.
18069         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
18070         (sse4_1_blendvps): Likewise.
18071         (sse4_1_pblendvb): Likewise.
18072         (sse4_2_pcmpestr): Likewise.
18073         (sse4_2_pcmpestrm): Likewise.
18074         (sse4_2_pcmpestr_cconly): Likewise.
18075         (sse4_2_pcmpistr): Likewise.
18076         (sse4_2_pcmpistrm): Likewise.
18077         (sse4_2_pcmpistr_cconly): Likewise.
18078
18079 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
18080
18081         * matrix-reorg.c (transform_access_sites): Fix computation.
18082         (transform_allocation_sites): Same.
18083
18084 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
18085
18086         * config/i386/i386.c (override_options): Use
18087         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
18088
18089 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
18090
18091         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
18092         (nonimm_not_xmm0_operand): Ditto.
18093         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
18094         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
18095         as operand[2] predicate.  Require "z" class XMM register for
18096         operand[3].  Adjust asm template.
18097         ("sse4_1_blendvpd"): Ditto.
18098         ("sse4_1_pblendvb"): Ditto.
18099         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
18100         force op2 into xmm0 register for variable blend instructions.
18101
18102 2007-06-04  Tom Tromey  <tromey@redhat.com>
18103
18104         * c-tree.h (start_enum): Update.
18105         (build_enumerator): Likewise.
18106         * c-decl.c (enum_next_value): Removed.
18107         (enum_overflow): Likewise.
18108         (start_enum): Add c_enum_contents argument.  Don't use globals.
18109         (build_enumerator): Likewise.
18110         * c-tree.h (struct c_enum_contents): New struct.
18111
18112 2007-06-04  Tom Tromey  <tromey@redhat.com>
18113
18114         * c-common.c (c_common_get_alias_set): Fix indentation.
18115
18116 2007-06-04  Ian Lance Taylor  <iant@google.com>
18117
18118         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
18119         to overflow, reduce overflow infinity to regular infinity.
18120         (vrp_var_may_overflow): New static function.
18121         (vrp_visit_phi_node): Check vrp_var_may_overflow.
18122
18123 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
18124
18125         * stor-layout.c (layout_type): Remove duplicate code.
18126
18127 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
18128
18129         PR c/32191
18130         * c-common.c (c_define_builtins): Call targetm.init_builtins ()
18131         before build_common_builtin_nodes ().
18132
18133 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
18134
18135         PR target/31733
18136         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
18137
18138 2007-06-04  Jan Hubicka  <jh@suse.cz>
18139
18140         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
18141         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
18142         instead of _stat version.
18143
18144 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
18145
18146         PR tree-optimization/32194
18147         * tree-predcom.c (determine_offset): Check that both references have
18148         the same type.
18149
18150 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
18151
18152         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
18153         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
18154         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
18155         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
18156         Add argument to iterate_fix_dominators call.
18157         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
18158         * gcse.c (hoist_code): Change domby to vector.
18159         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
18160         Add argument to iterate_fix_dominators call.
18161         * loop-doloop.c (doloop_modify): Changed recount_dominator to
18162         recompute_dominator.
18163         * lambda-code.c (perfect_nestify): Ditto.
18164         * cfgloopanal.c: Include graphds.h.
18165         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
18166         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
18167         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
18168         add_edge call.
18169         * graphds.c: New file.
18170         * graphds.h: New file.
18171         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
18172         (get_dominated_by, get_dominated_by_region): Change return type to
18173         vector.
18174         (verify_dominators): Recompute all dominators and compare the results.
18175         (recount_dominator): Renamed to ...
18176         (recompute_dominator): ... this.  Do not check that the block is
18177         dominated by entry.
18178         (iterate_fix_dominators): Reimplemented.
18179         (prune_bbs_to_update_dominators, root_of_dom_tree,
18180         determine_dominators_for_sons): New functions.
18181         * et-forest.c (et_root): New function.
18182         * et-forest.h (et_root): Declare.
18183         * Makefile.in (graphds.o): Add.
18184         (cfgloopanal.o): Add graphds.h dependency.
18185         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
18186         * basic-block.h (get_dominated_by, get_dominated_by_region,
18187         iterate_fix_dominators): Declaration changed.
18188         (recount_dominator): Renamed to ...
18189         (recompute_dominator): ... this.
18190         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
18191         (thread_through_all_blocks): Do not free dominance info.
18192
18193 2007-06-03  Andreas Schwab  <schwab@suse.de>
18194
18195         * config/m68k/m68k.c (override_options): Don't override
18196         REAL_MODE_FORMAT.
18197         * config/m68k/m68k-modes.def (SF, DF): Define to use
18198         motorola_single_format and motorola_double_format, resp.
18199         * real.c (motorola_single_format): Renamed from
18200         coldfire_single_format.
18201         (motorola_double_format): Renamed from coldfire_double_format.
18202         (encode_ieee_extended): Generate a proper canonical NaN image
18203         respecting canonical_nan_lsbs_set.
18204         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
18205         true.
18206         * real.h: Adjust declarations.
18207
18208 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
18209
18210         PR target/32163
18211         * config/sh/sh.md (symGOT_load): Don't schedule insns when
18212         the symbol is generated with the stack protector.
18213
18214 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
18215
18216         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
18217         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
18218         "interrupt".
18219         * doc/extend.texi (interrupt): Mention m68k.
18220
18221 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
18222
18223         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
18224         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
18225         (ix86_expand_sse_pcmpestr): Do not check operands for
18226         "register_operand", when insn operand predicate is "register_operand".
18227         (ix86_expand_sse_pcmpistr): Ditto.
18228
18229 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
18230             Uros Bizjak  <ubizjak@gmail.com>
18231
18232         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
18233         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
18234         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
18235         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
18236         * config/i386/constraints.md ("z"): New register constraint
18237         for members of SSE_FIRST_REG class.
18238         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
18239         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
18240         SSE_FIRST_REG class.
18241         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
18242         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
18243         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
18244         (IX86_BUILTIN_PCMPESTRM128): Likewise.
18245         (IX86_BUILTIN_PCMPESTRA128): Likewise.
18246         (IX86_BUILTIN_PCMPESTRC128): Likewise.
18247         (IX86_BUILTIN_PCMPESTRO128): Likewise.
18248         (IX86_BUILTIN_PCMPESTRS128): Likewise.
18249         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
18250         (IX86_BUILTIN_PCMPISTRI128): Likewise.
18251         (IX86_BUILTIN_PCMPISTRM128): Likewise.
18252         (IX86_BUILTIN_PCMPISTRA128): Likewise.
18253         (IX86_BUILTIN_PCMPISTRC128): Likewise.
18254         (IX86_BUILTIN_PCMPISTRO128): Likewise.
18255         (IX86_BUILTIN_PCMPISTRS128): Likewise.
18256         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
18257         (struct builtin_description): Change "flag" field to unsigned.
18258         (bdesc_pcmpestr): New builtin description table.
18259         (bdesc_pcmpistr): Likewise.
18260         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
18261         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
18262         Initialize pcmp[ei]str[im] insns for SSE4.2.
18263         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
18264         (ix86_expand_sse_pcmpistr): Likewise.
18265         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
18266         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
18267         (UNSPEC_PCMPISTR): Likewise.
18268         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
18269         (sse4_2_pcmpestri):New isns pattern.
18270         (sse4_2_pcmpestrm): Likewise.
18271         (sse4_2_pcmpestr_cconly): Likewise.
18272         (sse4_2_pcmpistr): New insn patern and splitter.
18273         (sse4_2_pcmpistri):New isns pattern.
18274         (sse4_2_pcmpistrm): Likewise.
18275         (sse4_2_pcmpistr_cconly): Likewise.
18276         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
18277         in SSE4.2.
18278
18279 2007-06-01  David Daney  <ddaney@avtrex.com>
18280
18281         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
18282         LOADGP_ABSOLUTE and not binds_local_p.
18283
18284 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
18285
18286         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
18287
18288 2007-06-01  Ian Lance Taylor  <iant@google.com>
18289
18290         * tree-vrp.c (compare_name_with_value): Always set
18291         used_strict_overflow if we get a result from the variable itself.
18292
18293 2007-06-01  Ian Lance Taylor  <iant@google.com>
18294
18295         PR rtl-optimization/31455
18296         * lower-subreg.c (find_decomposable_subregs): Don't decompose
18297         subregs which have a cast between modes which are not tieable.
18298
18299 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
18300
18301         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
18302         breaks after return statements.
18303
18304 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
18305
18306         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
18307         only after no_new_pseudos.
18308
18309 2007-05-31  Eric Christopher  <echristo@apple.com>
18310
18311         * expr.c (convert_move): Assert that we don't have a BLKmode
18312         operand.
18313         (store_expr): Handle BLKmode moves by calling emit_block_move.
18314
18315 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
18316
18317         * c-typeck.c (build_indirect_ref): Include type in error message.
18318         (build_binary_op): Pass types to binary_op_error.
18319         * c-common.c (binary_op_error): Take two type arguments, print out
18320         types with error.
18321         * c-common.h (binary_op_error): Update prototype.
18322
18323 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
18324
18325         * config/i386/i386.c: Correct coments on -mno-sse4.
18326
18327 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
18328
18329         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
18330         (x86_64-*-*): Likewise.
18331         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
18332         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
18333         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
18334         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
18335         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
18336         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
18337         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
18338         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
18339         (OPTION_MASK_ISA_SSE4): Likewise.
18340         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
18341         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
18342         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
18343         (override_options): Support SSE4.2.
18344         (ix86_build_const_vector): Support SImode and DImode.
18345         (ix86_build_signbit_mask): Likewise.
18346         (ix86_expand_int_vcond): Support V2DImode.
18347         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
18348         (IX86_BUILTIN_CRC32HI): Likewise.
18349         (IX86_BUILTIN_CRC32SI): Likewise.
18350         (IX86_BUILTIN_CRC32DI): Likewise.
18351         (IX86_BUILTIN_PCMPGTQ): Likewise.
18352         (bdesc_crc32): Likewise.
18353         (bdesc_sse_3arg): Likewise.
18354         (ix86_expand_crc32): Likewise.
18355         (ix86_init_mmx_sse_builtins): Support SSE4.2.
18356         (ix86_expand_builtin): Likewise.
18357         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
18358         __SSE4_2__ for -msse4.2.
18359         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
18360         (CRC32MODE): Likewise.
18361         (crc32modesuffix): Likewise.
18362         (crc32modeconstraint): Likewise.
18363         (sse4_2_crc32<mode>): Likewise.
18364         (sse4_2_crc32di): Likewise.
18365         * config/i386/i386.opt (msse4.2): New for SSE4.2.
18366         (msse4): Likewise.
18367         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
18368         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
18369         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
18370         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
18371         (vcondu<mode>): Likewise.
18372         * doc/extend.texi: Document SSE4.2 built-in functions.
18373         * doc/invoke.texi: Document -msse4.2/-msse4.
18374
18375 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
18376
18377         PR tree-optimization/32160
18378         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
18379         variable as gimple reg.
18380         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
18381
18382 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
18383
18384         * gcc.c (main): Don't consider linker options when issuing the
18385         warning about a linker input file not being used.
18386
18387 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18388
18389         * tree-vrp.c (compare_names): Initialize sop.
18390
18391 2007-05-30  Dirk Mueller  <dmueller@suse.de>
18392
18393         * cgraphunit.c (cgraph_analyze_function): Remove
18394         computation of inline parameters.
18395
18396 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
18397
18398         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
18399
18400 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
18401
18402         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
18403         Add vx-common.h.  Include vxworks.h between vx-common.h and
18404         arm/vxworks.h.
18405         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
18406         redefining.
18407         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
18408         (TARGET_ASM_DESTRUCTOR): Likewise.
18409         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
18410         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
18411         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
18412         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
18413         (VXWORKS_ENDIAN_SPEC): Define.
18414         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
18415         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
18416         VXWORKS_* equivalents.
18417         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
18418         (ASM_FILE_START): Delete.
18419         (TARGET_VERSION): Reformat.
18420         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
18421         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
18422         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
18423         (FPBIT, DPBIT): Define.
18424         (fp-bit.c, dp-bit.c): New rules.
18425         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
18426         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
18427         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
18428         * config/arm/arm.h: Include vxworks-dummy.h.
18429         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
18430         Mark with ATTRIBUTE_UNUSED.
18431         (arm_override_options): Do not allow VxWorks RTP PIC to be used
18432         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
18433         make it incompatible with -msingle-pic-base.
18434         (arm_function_ok_for_sibcall): Return false for calls that might
18435         go through a VxWorks PIC PLT entry.
18436         (require_pic_register): New function, split out from...
18437         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
18438         for VxWorks RTPs.
18439         (arm_load_pic_register): Handle the VxWorks RTP initialization
18440         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
18441         (arm_emit_call_insn): New function.
18442         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
18443         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
18444         (pic_offset_arm): New pattern.
18445         (call, call_value): Use arm_emit_call_insn.
18446         (call_internal, call_value_internal): New expanders.
18447         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
18448         VxWorks unless __PIC__.
18449
18450 2007-05-30  Eric Christopher  <echristo@gmail.com>
18451
18452         * genrecog.c: Include regs.h in generated file.
18453         * genemit.c: Ditto. Fix up formatting.
18454         * config/mn10300/constraints.md: New.
18455         * config/mn10300/mn10300.md: Include.
18456         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
18457         Fix up for removed macro.
18458         * config/mn10300/predicates.md (call_address_operand): Ditto.
18459         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
18460         (CONST_OK_FOR_I): Ditto.
18461         (CONST_OK_FOR_J): Ditto.
18462         (CONST_OK_FOR_K): Ditto.
18463         (CONST_OK_FOR_L): Ditto.
18464         (CONST_OK_FOR_M): Ditto.
18465         (CONST_OK_FOR_N): Ditto.
18466         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
18467         (OK_FOR_Q): Ditto.
18468         (OK_FOR_R): Ditto.
18469         (OK_FOR_T): Ditto.
18470         (EXTRA_CONSTRAINT): Ditto.
18471
18472 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
18473
18474         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
18475         Remove defines.
18476         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
18477         OPTION_MASK_ISA_64BIT.
18478         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
18479
18480 2007-05-30  Richard Guenther  <rguenther@suse.de>
18481
18482         PR middle-end/32152
18483         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
18484         types for comparison.
18485         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
18486         with original typed arguments.
18487         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
18488
18489 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
18490
18491         PR tree-optimization/31769
18492         * except.c (duplicate_eh_regions): Clear prev_try if
18493         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
18494
18495 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
18496
18497         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
18498         * tree-ssa-sink.c (statement_sink_location): Return basic block and
18499         bsi of the location where statements should be inserted.
18500         (sink_code_in_bb): Take bsi from statement_sink_location.
18501         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
18502         instead of bsi_start.
18503         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
18504         bsi_insert_after.
18505         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
18506         (bsi_move_before): Document inconsistency with bsi_move_after.
18507         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
18508
18509 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
18510
18511         * config/i386/i386.h (TARGET_ABM): New define.
18512         (TARGET_POPCNT): Ditto.
18513         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
18514         New temporary defines to redefine from OPTION_ISA_* defines.
18515         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
18516         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
18517         (ix86_isa_flags): New extern int declaration.
18518         (TARGET_SUBTARGET_DEFAULT): New define.
18519         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
18520         (TARGET_SUBTARGET32_DEFAULT): Ditto.
18521         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
18522         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
18523         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
18524         * config/i386/darwin.h: Change TARGET_64BIT define to
18525         OPTION_ISA_64BIT.
18526
18527         * config/i386/i386.opt (m3dnowa): Define as undocumented option
18528         using existing "ix86_isa_flags" varible.
18529         (m32, m64): Use existing "ix86_isa_flags" variable.
18530         (mmmx, m3dnow): Ditto.
18531         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
18532         (mabm): Define as non-negative option using "x86_abm" variable.
18533         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
18534
18535         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
18536         Rewrite feature test bitmap.
18537         (ix86_isa_flags): New initialized global int varible.
18538         (ix86_isa_flags_explicit): New static int variable.
18539         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
18540         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
18541         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
18542         target_flags_explicit.
18543         (override_options): Remove "target_enable" and "target_disable" fields
18544         from "struct ptt". Update processor_target_table accordingly. Remove
18545         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
18546         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
18547         "target_flags" and "ix86_isa_flags_explicit" instead of
18548         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
18549         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
18550         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
18551         to true when either of PTA_POPCNT or PTA_ABM is set in
18552         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
18553         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
18554         processor_alias_table flags entry.  Remove handling of
18555         "target_enable" and "target_disable" fields of processor_target_table.
18556         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
18557         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
18558         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
18559         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
18560         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
18561         "target_flags".
18562         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
18563
18564 2007-05-29  David Daney  <ddaney@avtrex.com>
18565
18566         PR gcc/31975
18567         * config/mips/mips.c (mips_output_mi_thunk): Emit
18568         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
18569
18570 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
18571         * config/i386/i386.c (ix86_function_regparm): Added checking of
18572         ix86_force_align_arg_pointer to determine the number of
18573         register parameters.
18574
18575 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
18576
18577         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
18578         (SET_DR_MISALIGNMENT): New.
18579         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
18580         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
18581         Use SET_DR_MISALIGNMENT.
18582         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
18583         pointer.
18584         * tree-data-ref.c (create_data_ref, compute_all_dependences,
18585         find_loop_nest): Export.
18586         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
18587         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
18588         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
18589         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
18590         New macros.
18591         (struct mem_ref): Add field reuse_distance.
18592         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
18593         Initialize reuse_distance field.
18594         (issue_prefetch_ref): Select temporality of prefetch according to
18595         reuse_distance.
18596         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
18597         self_reuse_distance, determine_loop_nest_reuse): New functions.
18598         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
18599         (tree_ssa_prefetch_arrays): Dump L2 cache size.
18600         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
18601         dependency.
18602
18603 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
18604
18605         * tree-ssa-alias.c: Add aliasing overview.
18606
18607 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
18608             Danny Smith  <dannysmith@users.sourceforge.net>
18609
18610         PR target/29498
18611         * config/i386/t-crtfm: Compile crtfastmath.o with
18612         -minline-all-stringops.
18613         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
18614         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
18615
18616 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18617
18618         * doc/md.texi: Document constraints on HP PA-RISC.
18619
18620         * pa/constraints.md: New file.
18621         * pa.md: Include constraints.md.
18622         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
18623         (integer_store_memory_operand, ldil_cint_p): New functions.
18624         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
18625         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
18626         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
18627         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
18628         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
18629
18630 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
18631
18632         PR c/31339
18633         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
18634         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
18635         case POSTDECREMENT_EXPR>): Return the error_mark_node
18636         if either the real or imaginary parts would an
18637         error_mark_node.
18638
18639 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
18640
18641         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
18642         name when we remove it from a call.
18643
18644 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
18645
18646         * targhooks.c (default_narrow_bitfield): Remove.
18647         * targhooks.h: Remove the prototype for
18648         default_narrow_bitfield.
18649
18650         * langhooks-def.h: Remove the prototype for
18651         hook_get_alias_set_0.
18652         * langhooks.c (hook_get_alias_set_0): Remove.
18653
18654         * global.c (EXECUTE_IF_CONFLICT): Remove.
18655
18656 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18657
18658         PR tree-opt/32100
18659         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
18660         return true when truth_value_p is true and the type
18661         is of signed:1.
18662
18663 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
18664
18665         * doc/install.texi (Prerequisites): We no longer require Autoconf
18666         2.13 for the top-level.
18667
18668 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
18669
18670         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
18671         memory access via x86_expand_vector_move_misalign() only for
18672         TImode values on 32-bit targets.
18673
18674 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
18675
18676         * matrix-reorg.c: New file. Implement matrix flattening and
18677         transposing optimization.
18678         * tree-pass.h: Add matrix reorg pass.
18679         * common.opt: Add fipa-mreorg flag.
18680         * Makefile.in: Add matrix-reorg.c.
18681         * passes.c: Add matrix reorg pass.
18682         * varpool.c (add_new_static_var): New function.
18683         * cgraph.h (add_new_static_var): Declare.
18684
18685 2007-05-27  Eric Christopher  <echristo@apple.com>
18686
18687         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
18688         sp_offset depending on stack size. Save r12 depending
18689         on registers we're saving later.
18690         (rs6000_emit_epilogue): Update sp_offset depending only
18691         on stack size.
18692
18693 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
18694
18695         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
18696         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
18697         * ifcvt.c (if_convert): Ditto.
18698         * tree-ssa-threadupdate.c (thread_block): Ditto.
18699         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
18700         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
18701         verify_loop_closed_ssa): Check number_of_loops instead of
18702         current_loops.
18703         * predict.c (tree_estimate_probability): Ditto.
18704         * tree-if-conv.c (main_tree_if_conversion): Ditto.
18705         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
18706         * modulo-sched.c (sms_schedule): Ditto.
18707         * tree-scalar-evolution.c (scev_const_prop): Ditto.
18708         (scev_finalize): Do not do anything if scev analysis was not
18709         initialized.
18710         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
18711         current_loops == NULL.
18712         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
18713         * loop-init.c (loop_optimizer_init): Do not free current_loops when
18714         there are no loops.
18715         (loop_optimizer_finalize): Assert that loops were analyzed.
18716         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
18717         rtl_doloop): Check number_of_loops instead of current_loops.
18718         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
18719         current_loops == NULL.
18720         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
18721         gate_tree_vectorize tree_linear_transform, check_data_deps,
18722         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
18723         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
18724         Check number_of_loops instead of current_loops.
18725         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
18726         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
18727         free loops if available.
18728         (execute_pre): Do not pass do_fre to fini_pre.
18729
18730 2007-05-27  Tobias Burnus  <burnus@net-b.de>
18731
18732         PR middle-end/32083
18733         * real.c (mpfr_from_real): Fix sign of -Inf.
18734
18735 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
18736
18737         * tree-vect-transform.c (vectorizable_conversion): Initialize
18738         tree_code variables to ERROR_MARK.
18739         (vectorizable_type_demotion): Likewise.
18740         (vectorizable_type_promotion): Likewise.
18741
18742 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
18743
18744         PR target/32065
18745         * config/i386/i386.md (movti): Handle push operands via
18746         ix86_expand_push().
18747
18748 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
18749
18750         * basic-block.h: Remove the prototype for merge_seq_blocks.
18751         * cfgcleanup.c (merge_seq_blocks): Remove.
18752
18753         * tree-flow.h: Remove the prototype for is_aliased_with.
18754         * tree-ssa-alias.c (is_aliased_with): Remove.
18755
18756 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
18757
18758         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
18759
18760         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
18761
18762         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
18763         ix86_expand_sse4_unpack if SSE4.1 is enabled.
18764         (vec_unpacks_hi_v16qi): Likewise.
18765         (vec_unpacku_lo_v16qi): Likewise.
18766         (vec_unpacks_lo_v16qi): Likewise.
18767         (vec_unpacku_hi_v8hi): Likewise.
18768         (vec_unpacks_hi_v8hi): Likewise.
18769         (vec_unpacku_lo_v8hi): Likewise.
18770         (vec_unpacks_lo_v8hi): Likewise.
18771         (vec_unpacku_hi_v4si): Likewise.
18772         (vec_unpacks_hi_v4si): Likewise.
18773         (vec_unpacku_lo_v4si): Likewise.
18774         (vec_unpacks_lo_v4si): Likewise.
18775
18776 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
18777
18778         * c-typeck.c, config/arm/arm.c, config/darwin.c,
18779         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
18780         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
18781         follow spelling conventions in various
18782         warning/error/diagnostic messages.
18783
18784         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
18785         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
18786         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
18787         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
18788         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
18789         * doc/tm.texi: Follow spelling conventions.
18790
18791 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18792
18793         PR tree-opt/32090
18794         * tree-ssa-forwprop.c
18795         (forward_propagate_addr_into_variable_array_index): Remove
18796         the lhs argument.  Use the type of def_rhs instead of lhs.
18797         (forward_propagate_addr_expr_1): Update use of
18798         forward_propagate_addr_into_variable_array_index.
18799
18800 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
18801             Nigel Stephens  <nigel@mips.com>
18802
18803         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
18804         function attributes, "far" being an alias for "long_call".
18805         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
18806         (mips_near_type_p, mips_far_type_p): New.
18807         (mips_comp_type_attributes): New function to check that attributes
18808         attached to a function type are compatible.
18809         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
18810         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
18811         to the target function of the thunk.
18812         (mips_encode_section_info): Check for "near" and "far" function
18813         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
18814
18815         * config/mips/predicates.md (const_call_insn_operand): Test only
18816         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
18817
18818         * doc/extend.texi (Function Attributes): Document MIPS "near" and
18819         "far" attributes.
18820
18821         * testsuite/gcc.target/mips/near-far-1.c: New test case.
18822         * testsuite/gcc.target/mips/near-far-2.c: New test case.
18823         * testsuite/gcc.target/mips/near-far-3.c: New test case.
18824         * testsuite/gcc.target/mips/near-far-4.c: New test case.
18825
18826 2007-05-25  Eric Christopher  <echristo@apple.com>
18827
18828         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
18829         to x86-darwin configurations.
18830         * config/i386/t-darwin: Add softfp support.
18831         * config/i386/t-darwin64: Ditto.
18832         * config/i386/sfp-machine.h: If mach then don't use
18833         aliasing, emit a stub to call.
18834
18835 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
18836
18837         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
18838         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
18839         tree-predcom.c, tree-ssa-alias-warnings.c,
18840         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
18841         comment typos.  Follow spelling conventions.
18842         * doc/cpp.texi, doc/invoke.texi: Fix typos.
18843
18844 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
18845
18846         PR target/32065
18847         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
18848         constants into memory.  Expand unaligned memory references for
18849         SSE modes via x86_expand_vector_move_misalign() function.
18850
18851 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
18852
18853         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
18854         "memory" attribute for "sseishft" type insn without operands[2].
18855
18856 2007-05-25  Dirk Mueller  <dmueller@suse.de>
18857             Marcus Meissner <meissner@suse.de>
18858
18859         * doc/extend.texi (alloc_size): New attribute.
18860         * c-common.c (handle_alloc_size_attribute): New.
18861         * tree-object-size.c (alloc_object_size): Use alloc_size
18862         attribute, if available.
18863
18864 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
18865
18866         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
18867         with MASK_SSE2.
18868         (__builtin_ia32_vec_ext_v2di): Likewise.
18869         (__builtin_ia32_vec_ext_v4si): Likewise.
18870         (__builtin_ia32_vec_ext_v8hi): Likewise.
18871         (__builtin_ia32_vec_ext_v16qi): Likewise.
18872         (__builtin_ia32_vec_set_v8hi): Likewise.
18873
18874 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
18875
18876         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
18877
18878 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
18879
18880         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
18881         (arm_is_longcall_p): Rename to...
18882         (arm_is_long_call_p): ...this.  Take a single tree argument and
18883         return a bool.
18884         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
18885         (CUMULATIVE_ARGS): Remove call_cookie.
18886         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
18887         (ENCODED_LONG_CALL_ATTR_P): Delete.
18888         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
18889         LONG_CALL_FLAG_CHAR cases.
18890         (ARM_DECLARE_FUNCTION_SIZE): Delete.
18891         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
18892         ARM_DECLARE_FUNCTION_SIZE.
18893         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
18894         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
18895         (arm_encode_call_attribute, current_file_function_operand): Delete.
18896         (arm_function_in_section_p): New function.
18897         (arm_is_longcall_p): Rename to...
18898         (arm_is_long_call_p): ...this.  Take the target function as a single
18899         argument and return a bool.  Do not rely on call cookies.  Check
18900         whether the target symbol is in the same section as the current
18901         function, not just the same compilation unit.
18902         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
18903         (arm_encode_section_info): Don't encode a call type.
18904         * config/arm/arm.md (call, call_value): Update calls to
18905         arm_is_long(_)call_p.  Simplify logic.
18906         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
18907         Update calls to arm_is_long(_)call_p.
18908
18909 2007-05-25  Richard Guenther  <rguenther@suse.de>
18910
18911         PR tree-optimization/31982
18912         * tree-ssa-forwprop.c
18913         (forward_propagate_addr_into_variable_array_index): Handle arrays
18914         with element size one.
18915
18916 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18917
18918         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
18919         (umulsi3_highpart): Likewise.
18920
18921 2007-05-24  Ian Lance Taylor  <iant@google.com>
18922
18923         PR rtl-optimization/32069
18924         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
18925         is NULL.
18926
18927 2007-05-24  Ollie Wild  <aaw@google.com>
18928
18929         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
18930         description.
18931
18932 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
18933
18934         * postreload-gcse.c (reg_changed_after_insn_p): New function.
18935         (oprs_unchanged_p): Use it to check all registers in a REG.
18936         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
18937         (reg_set_between_after_reload_p): Delete.
18938         (reg_used_between_after_reload_p): Likewise.
18939         (reg_set_or_used_since_bb_start): Likewise.
18940         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
18941         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
18942         Use reg_set_between_p instead of reg_set_between_after_reload_p.
18943         * rtlanal.c (reg_set_p): Check whether REG overlaps
18944         regs_invalidated_by_call, rather than just checking the
18945         membership of REGNO (REG).
18946
18947 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
18948
18949         * doc/passes.texi: Document predictive commoning.
18950         * doc/invoke.texi (-fpredictive-commoning): Document.
18951         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
18952         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
18953         adding indices to the generated name.
18954         (schedule_sm): Pass 0 to get_lsm_tmp_name.
18955         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
18956         * tree-pretty-print.c (op_symbol_1): Renamed to ...
18957         (op_symbol_code): ... and exported.
18958         (dump_omp_clause, op_symbol): Use op_symbol_code
18959         instead of op_symbol_1.
18960         * tree-pass.h (pass_predcom): Declare.
18961         * timevar.def (TV_PREDCOM): New timevar.
18962         * tree-ssa-loop.c (run_tree_predictive_commoning,
18963         gate_tree_predictive_commoning, pass_predcom): New.
18964         * tree-data-ref.c (find_data_references_in_loop): Find the
18965         references in dominance order.
18966         (canonicalize_base_object_address): Ensure that the result has
18967         pointer type.
18968         (dr_analyze_innermost): Export.
18969         (create_data_ref): Code to fail for references with invariant
18970         address moved ...
18971         (find_data_references_in_stmt): ... here.
18972         * tree-data-ref.h (dr_analyze_innermost): Declare.
18973         * tree-affine.c: Include tree-gimple.h and hashtab.h.
18974         (aff_combination_find_elt, name_expansion_hash,
18975         name_expansion_eq, tree_to_aff_combination_expand,
18976         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
18977         New functions.
18978         * tree-affine.h (aff_combination_constant_multiple_p,
18979         tree_to_aff_combination_expand): Declare.
18980         * tree-predcom.c: New file.
18981         * common.opt (fpredictive-commoning): New option.
18982         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
18983         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
18984         * Makefile.in (tree-predcom.o): Add.
18985         (tree-affine.o): Add TREE_GIMPLE_H dependency.
18986         * passes.c (init_optimization_passes): Add dceloop after
18987         copy propagation in loop optimizer.  Add predictive commoning
18988         to loop optimizer passes.
18989
18990 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
18991
18992         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
18993         default hook.
18994
18995 2007-05-24  Jan Hubicka  <jh@suse.cz>
18996
18997         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
18998         statistics.
18999         (genheader): Include statistics.h.
19000
19001         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
19002         notes are gone.
19003         * print-rtl.c (flag_dump_unnumbered): Update comments.
19004         (print_rtl): Fix my previous change.
19005         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
19006         specific data.
19007
19008 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
19009
19010         PR middle-end/32018
19011         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
19012         set_loop_copy.
19013         (thread_through_all_blocks): Call initialize_original_copy_tables
19014         and free_original_copy_tables.
19015         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
19016         Use set_loop_copy.
19017         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
19018         * cfghooks.c (duplicate_block): Use get_loop_copy.
19019         * cfg.c: Include cfgloop.h.
19020         (loop_copy): New hash table.
19021         (initialize_original_copy_tables): Initialize loop_copy table.
19022         (free_original_copy_tables): Free loop_copy table.
19023         (copy_original_table_clear, copy_original_table_set,
19024         set_loop_copy, get_loop_copy): New functions.
19025         (set_bb_original, set_bb_copy): Use copy_original_table_set.
19026         * cfgloop.h (struct loop): Remove copy field.
19027         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
19028         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
19029
19030 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
19031
19032         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
19033         -msse/-msse2/-msse3.
19034
19035 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
19036
19037         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
19038         __builtin_ia32_vec_set_v2di with MASK_64BIT.
19039
19040 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
19041
19042         PR target/27067
19043         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
19044         * targhooks.h (default_mangle_decl_assembler_name): Declare
19045         default hook.
19046         * targhooks.c (default_mangle_decl_assembler_name): Define
19047         default hook.
19048         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
19049         default hook.
19050         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
19051         * langhooks.c (lhd_set_decl_assembler_name): Call
19052         targetm.mangle_decl_assembler_name for names with global scope.
19053
19054         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
19055         default.
19056         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
19057         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
19058         Declare.
19059         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
19060         New. Factored out of i386_pe_encode_section_info.
19061         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
19062         Move check for prior decoration of stdcall
19063         symbols to i386_pe_encode_section_info.
19064         (i386_pe_encode_section_info): Adjust call to
19065         gen_stdcall_or_fastcall_suffix.  Use
19066         i386_pe_maybe_mangle_decl_assembler_name, if needed.
19067         (i386_pe_mangle_decl_assembler_name): New. Wrap
19068         i386_pe_maybe_mangle_decl_assembler_name.
19069
19070 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
19071
19072         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
19073         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
19074         * langhooks.c (get_signed_or_unsigned_type): Don't check for
19075         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
19076         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
19077         TYPE_UNSIGNED.
19078
19079 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
19080             Nigel Stephens  <nigel@mips.com>
19081             Richard Sandiford  <richard@codesourcery.com>
19082
19083         Fix up MIPS16 hard float and add support for complex.
19084
19085         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
19086         (TARGET_SOFT_FLOAT_ABI): New.
19087         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
19088         __mips_soft_float to reflect the ABI in use, not whether the
19089         FPU is directly accessible (e.g., in MIPS16 mode).
19090         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
19091         (UNITS_PER_FPVALUE): Likewise.
19092
19093         * config/mips/mips.c (mips_expand_call): Remove redundant
19094         TARGET_MIPS16 check.
19095         (mips_arg_regno): New.
19096         (function_arg_advance): When setting bits in cum->fp_code for
19097         MIPS16, don't subtract 1 from cum->arg_number, since it is now
19098         zero-based.
19099         (function_arg): Use mips_arg_regno.
19100         (mips_return_mode_in_fpr_p): New.
19101         (mips16_call_stub_mode_suffix): New.
19102         (mips16_cfun_returns_in_fpr_p): New.
19103         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
19104         (mips_output_function_prologue): Test mips16_hard_float, not
19105         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
19106         (mips_expand_epilogue): Call MIPS16 helper routines to copy
19107         return value into a floating-point register.
19108         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
19109         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
19110         (mips16_fp_args): Handle MIPS32r2 ISA which supports
19111         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
19112         word of double arguments from or to the high bits of 64-bit
19113         floating point registers.
19114         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
19115         (mips16_fpret_double): New helper function.
19116         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
19117         support for complex modes.  Fill in DECL_RESULT for stubdecl.
19118         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
19119
19120         * config/mips/mips16.S
19121         (RET, ARG1, ARG2): New.
19122         (MERGE_GPRf, MERGE_GPRt): New.
19123         (DELAYt, DELAYf): New.
19124         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
19125         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
19126         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
19127         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
19128         (SFOP): Renamed to...
19129         (OPSF3): This, and macro-ified.  Updated all uses.
19130         (SFOP2): Renamed to...
19131         (OPSF2): This, and macro-ified.  Updated all uses.
19132         (SFCMP): Renamed to...
19133         (CMPSF): This, and macro-ified.  Updated all uses.
19134         (SFREVCMP): Renamed to...
19135         (REVCMPSF): This, and macro-ified.  Updated all uses.
19136         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
19137         (LDDBL1, LDDBL2, RETDBL): Deleted.
19138         (DFOP): Renamed to...
19139         (OPDF3): This, and macro-ified.  Updated all uses.
19140         (DFOP2): Renamed to...
19141         (OPDF2): This, and macro-ified.  Updated all uses.
19142         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
19143         (DFCMP): Renamed to...
19144         (CMPDF): This, and macro-ified.  Updated all uses.
19145         (DFREVCMP): Renamed to...
19146         (REVCMPDF): This, and macro-ified.  Updated all uses.
19147         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
19148         (RET_FUNCTION): New.
19149         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
19150         (__mips16_ret_sc, __mips16_ret_dc): New.
19151         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
19152         STUB_ARGS_6, STUB_ARGS_10): New.
19153         (CALL_STUB_NO_RET): New.
19154         (__mips16_call_stub_1): Macro-ified.
19155         (__mips16_call_stub_5): Macro-ified.
19156         (__mips16_call_stub_2): Macro-ified.
19157         (__mips16_call_stub_6): Macro-ified.
19158         (__mips16_call_stub_9): Macro-ified.
19159         (__mips16_call_stub_10): Macro-ified.
19160         (CALL_STUB_RET): New.
19161         (__mips16_call_stub_sf_0): Macro-ified.
19162         (__mips16_call_stub_sf_1): Macro-ified.
19163         (__mips16_call_stub_sf_5): Macro-ified.
19164         (__mips16_call_stub_sf_2): Macro-ified.
19165         (__mips16_call_stub_sf_6): Macro-ified.
19166         (__mips16_call_stub_sf_9): Macro-ified.
19167         (__mips16_call_stub_sf_10): Macro-ified.
19168         (__mips16_call_stub_df_0): Macro-ified.
19169         (__mips16_call_stub_df_1): Macro-ified.
19170         (__mips16_call_stub_df_5): Macro-ified.
19171         (__mips16_call_stub_df_2): Macro-ified.
19172         (__mips16_call_stub_df_6): Macro-ified.
19173         (__mips16_call_stub_df_9): Macro-ified.
19174         (__mips16_call_stub_df_10): Macro-ified.
19175         (__mips16_call_stub_sc_0): New.
19176         (__mips16_call_stub_sc_1): New.
19177         (__mips16_call_stub_sc_5): New.
19178         (__mips16_call_stub_sc_2): New.
19179         (__mips16_call_stub_sc_6): New.
19180         (__mips16_call_stub_sc_9): New.
19181         (__mips16_call_stub_sc_10): New.
19182         (__mips16_call_stub_dc_0): New.
19183         (__mips16_call_stub_dc_1): New.
19184         (__mips16_call_stub_dc_5): New.
19185         (__mips16_call_stub_dc_2): New.
19186         (__mips16_call_stub_dc_6): New.
19187         (__mips16_call_stub_dc_9): New.
19188         (__mips16_call_stub_dc_10): New.
19189
19190         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
19191         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
19192         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
19193
19194 2007-05-23  Ian Lance Taylor  <iant@google.com>
19195
19196         * doc/invoke.texi (Invoking GCC): Document that the order of the
19197         -l option matters.
19198
19199 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
19200
19201         PR target/30987
19202         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
19203         * config/score/predicate.md (const_pow2, const_npow2): Remove.
19204         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
19205         undef.
19206
19207         PR target/30474
19208         * config/score/score.c (score_print_operand): Make sure that only
19209         lower bits are used.
19210
19211 2007-05-22  Ian Lance Taylor  <iant@google.com>
19212
19213         * tree-vrp.c (avoid_overflow_infinity): New static function,
19214         broken out of set_value_range_to_value.
19215         (set_value_range_to_value): Call avoid_overflow_infinity.
19216         (extract_range_from_assert): Likewise.
19217
19218 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19219
19220         PR middle-end/31095
19221          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
19222         change the type before looking for a COMPOUND_EXPR.
19223
19224 2007-05-22  Ian Lance Taylor  <iant@google.com>
19225
19226         * lower-subreg.c (decompose_multiword_subregs): If we change an
19227         insn, call remove_retval_note on it.
19228
19229 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
19230
19231         * regs.h (end_hard_regno): New function.
19232         (END_HARD_REGNO, END_REGNO): New macros.
19233         (add_to_hard_reg_set): New function.
19234         (remove_from_hard_reg_set): Likewise.
19235         (in_hard_reg_set_p): Likewise.
19236         (overlaps_hard_reg_set_p): Likewise.
19237         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
19238         (note_btr_set): Use END_HARD_REGNO.
19239         * caller-save.c (setup_save_areas): Use end_hard_regno.
19240         (mark_set_regs): Use END_HARD_REGNO.
19241         (add_stored_regs): Use end_hard_regno.
19242         (mark_referenced_regs): Use add_to_hard_reg_set.
19243         * combine.c (update_table_tick): Use END_REGNO.
19244         (record_value_for_reg): Likewise.
19245         (record_dead_and_set_regs): Likewise.
19246         (get_last_value_validate): Likewise.
19247         (use_crosses_set_p): Likewise.
19248         (reg_dead_at_p_1): Likewise.
19249         (reg_dead_at_p): Likewise.
19250         (mark_used_regs_combine): Use add_to_hard_reg_set.
19251         (move_deaths): Use END_HARD_REGNO.
19252         (reg_bitfield_target_p): Use end_hard_regno.
19253         (distribute_notes): Use END_HARD_REGNO.
19254         * cse.c (mention_regs): Use END_REGNO.
19255         (insert): Use add_to_hard_reg_set.
19256         (invalidate): Use END_HARD_REGNO.
19257         (invalidate_for_call): Likewise.
19258         (exp_equiv_p): Use END_REGNO.
19259         (cse_insn): Likewise.
19260         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
19261         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
19262         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
19263         * function.c (keep_stack_depressed): Use end_hard_regno.
19264         * global.c (global_alloc): Use end_hard_regno.
19265         (global_conflicts): Use add_to_hard_reg_set instead of
19266         mark_reg_live_nc.
19267         (find_reg): Likewise.
19268         (mark_reg_store): Likewise.
19269         (mark_reg_conflicts): Likewise.
19270         (mark_reg_death): Use remove_from_hard_reg_set.
19271         (mark_reg_live_nc): Delete.
19272         (set_preference): Use end_hard_regno.
19273         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
19274         remove_from_hard_reg_set.
19275         (post_mark_life): Use add_to_hard_reg_set.
19276         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
19277         (reg_becomes_live): Use add_to_hard_reg_set.
19278         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
19279         (peep2_find_free_register): Use add_to_hard_reg_set.
19280         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
19281         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
19282         * regrename.c (note_sets): Use add_to_hard_reg_set.
19283         (clear_dead_regs): Use remove_from_hard_reg_set.
19284         (regrename_optimize): Use add_to_hard_reg_set.
19285         (find_oldest_value_reg): Use in_hard_reg_set_p.
19286         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
19287         (hard_reg_set_here_p): Use end_hard_regno.
19288         (decompose): Likewise.
19289         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
19290         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
19291         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
19292         (mark_home_live): Use end_hard_regno.
19293         (spill_hard_reg): Likewise.
19294         (clear_reload_reg_in_use): Likewise.
19295         * reorg.c (delete_prior_computation): Use END_REGNO.
19296         * resource.c (update_live_status): Use END_HARD_REGNO.
19297         (mark_referenced_resources): Use add_to_hard_reg_set.
19298         (mark_set_resources): Likewise.
19299         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
19300         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
19301         (reg_overlap_mentioned_p): Likewise.
19302         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
19303         (covers_regno_no_parallel_p): Use END_REGNO.
19304         (find_regno_note): Likewise.
19305         (find_reg_fusage): Use END_HARD_REGNO.
19306         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
19307         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
19308
19309 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
19310
19311         * mode-switching.c (reg_dies): Change type of second argument to
19312         "HARD_REG_SET *".
19313         (optimize_mode_switching): Update accordingly.
19314
19315 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
19316
19317         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
19318         in favor of...
19319         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
19320         (hard_reg_set_empty_p): ...these new functions.
19321         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
19322         GO_IF_HARD_REG_SUBSET.
19323         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
19324         instead of GO_IF_HARD_REG_EQUAL.
19325         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
19326         instead of GO_IF_HARD_REG_EQUAL.
19327         * global.c (find_reg): Use hard_reg_set_empty_p instead of
19328         GO_IF_HARD_REG_SUBSET.
19329         (modify_reg_pav): Use hard_reg_set_empty_p instead of
19330         GO_IF_HARD_REG_EQUAL.
19331         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
19332         of GO_IF_HARD_REG_SUBSET.
19333         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
19334         instead of GO_IF_HARD_REG_EQUAL.
19335         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
19336         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
19337         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
19338         of GO_IF_HARD_REG_SUBSET,
19339         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
19340         GO_IF_HARD_REG_SUBSET.
19341         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
19342         instead of GO_IF_HARD_REG_EQUAL.
19343         * config/sh/sh.c (push_regs, calc_live_regs): Use
19344         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
19345         (hard_regs_intersect_p): Delete.
19346
19347 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
19348
19349         * doc/sourcebuild.texi (Test Directives) Add dg-message.
19350
19351 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
19352             Richard Henderson  <rth@redhat.com>
19353
19354         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
19355         extra_headers.
19356         (x86_64-*-*): Likewise.
19357
19358         * i386/i386-modes.def (V2QI): New.
19359
19360         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
19361         SSE4A.
19362         (override_options): Support SSE4.1.
19363         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
19364         (IX86_BUILTIN_BLENDPS): Likewise.
19365         (IX86_BUILTIN_BLENDVPD): Likewise.
19366         (IX86_BUILTIN_BLENDVPS): Likewise.
19367         (IX86_BUILTIN_PBLENDVB128): Likewise.
19368         (IX86_BUILTIN_PBLENDW128): Likewise.
19369         (IX86_BUILTIN_DPPD): Likewise.
19370         (IX86_BUILTIN_DPPS): Likewise.
19371         (IX86_BUILTIN_INSERTPS128): Likewise.
19372         (IX86_BUILTIN_MOVNTDQA): Likewise.
19373         (IX86_BUILTIN_MPSADBW128): Likewise.
19374         (IX86_BUILTIN_PACKUSDW128): Likewise.
19375         (IX86_BUILTIN_PCMPEQQ): Likewise.
19376         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
19377         (IX86_BUILTIN_PMAXSB128): Likewise.
19378         (IX86_BUILTIN_PMAXSD128): Likewise.
19379         (IX86_BUILTIN_PMAXUD128): Likewise.
19380         (IX86_BUILTIN_PMAXUW128): Likewise.
19381         (IX86_BUILTIN_PMINSB128): Likewise.
19382         (IX86_BUILTIN_PMINSD128): Likewise.
19383         (IX86_BUILTIN_PMINUD128): Likewise.
19384         (IX86_BUILTIN_PMINUW128): Likewise.
19385         (IX86_BUILTIN_PMOVSXBW128): Likewise.
19386         (IX86_BUILTIN_PMOVSXBD128): Likewise.
19387         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
19388         (IX86_BUILTIN_PMOVSXWD128): Likewise.
19389         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
19390         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
19391         (IX86_BUILTIN_PMOVZXBW128): Likewise.
19392         (IX86_BUILTIN_PMOVZXBD128): Likewise.
19393         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
19394         (IX86_BUILTIN_PMOVZXWD128): Likewise.
19395         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
19396         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
19397         (IX86_BUILTIN_PMULDQ128): Likewise.
19398         (IX86_BUILTIN_PMULLD128): Likewise.
19399         (IX86_BUILTIN_ROUNDPD): Likewise.
19400         (IX86_BUILTIN_ROUNDPS): Likewise.
19401         (IX86_BUILTIN_ROUNDSD): Likewise.
19402         (IX86_BUILTIN_ROUNDSS): Likewise.
19403         (IX86_BUILTIN_PTESTZ): Likewise.
19404         (IX86_BUILTIN_PTESTC): Likewise.
19405         (IX86_BUILTIN_PTESTNZC): Likewise.
19406         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
19407         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
19408         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
19409         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
19410         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
19411         (bdesc_ptest): New.
19412         (bdesc_sse_3arg): Likewise.
19413         (bdesc_2arg): Likewise.
19414         (bdesc_1arg): Likewise.
19415         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
19416         with 3 args.
19417         (ix86_expand_sse_4_operands_builtin): New.
19418         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
19419         smaller than 8 bits as the 2nd arg.
19420         (ix86_expand_sse_ptest): New.
19421         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
19422         (ix86_expand_vector_set): Support SSE4.1.
19423         (ix86_expand_vector_extract): Likewise.
19424
19425         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
19426         __SSE4_1__ for -msse4.1.
19427
19428         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
19429         (UNSPEC_INSERTPS): Likewise.
19430         (UNSPEC_DP): Likewise.
19431         (UNSPEC_MOVNTDQA): Likewise.
19432         (UNSPEC_MPSADBW): Likewise.
19433         (UNSPEC_PHMINPOSUW): Likewise.
19434         (UNSPEC_PTEST): Likewise.
19435         (UNSPEC_ROUNDP): Likewise.
19436         (UNSPEC_ROUNDS): Likewise.
19437
19438         * config/i386/i386.opt (msse4.1): New for SSE4.1.
19439
19440         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
19441         (const_pow2_1_to_32768_operand): Likewise.
19442
19443         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
19444         file.
19445
19446         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
19447         SSE4.1.
19448         (sse4_1_insertps): Likewise.
19449         (*sse4_1_extractps): Likewise.
19450         (sse4_1_ptest): Likewise.
19451         (sse4_1_mulv2siv2di3): Likewise.
19452         (*sse4_1_mulv4si3): Likewise.
19453         (*sse4_1_smax<mode>3): Likewise.
19454         (*sse4_1_umax<mode>3): Likewise.
19455         (*sse4_1_smin<mode>3): Likewise.
19456         (*sse4_1_umin<mode>3): Likewise.
19457         (sse4_1_eqv2di3): Likewise.
19458         (*sse4_1_pinsrb): Likewise.
19459         (*sse4_1_pinsrd): Likewise.
19460         (*sse4_1_pinsrq): Likewise.
19461         (*sse4_1_pextrb): Likewise.
19462         (*sse4_1_pextrb_memory): Likewise.
19463         (*sse4_1_pextrw_memory): Likewise.
19464         (*sse4_1_pextrq): Likewise.
19465         (sse4_1_blendpd): Likewise.
19466         (sse4_1_blendps): Likewise.
19467         (sse4_1_blendvpd): Likewise.
19468         (sse4_1_blendvps): Likewise.
19469         (sse4_1_dppd): Likewise.
19470         (sse4_1_dpps): Likewise.
19471         (sse4_1_movntdqa): Likewise.
19472         (sse4_1_mpsadbw): Likewise.
19473         (sse4_1_packusdw): Likewise.
19474         (sse4_1_pblendvb): Likewise.
19475         (sse4_1_pblendw): Likewise.
19476         (sse4_1_phminposuw): Likewise.
19477         (sse4_1_extendv8qiv8hi2): Likewise.
19478         (*sse4_1_extendv8qiv8hi2): Likewise.
19479         (sse4_1_extendv4qiv4si2): Likewise.
19480         (*sse4_1_extendv4qiv4si2): Likewise.
19481         (sse4_1_extendv2qiv2di2): Likewise.
19482         (*sse4_1_extendv2qiv2di2): Likewise.
19483         (sse4_1_extendv4hiv4si2): Likewise.
19484         (*sse4_1_extendv4hiv4si2): Likewise.
19485         (sse4_1_extendv2hiv2di2): Likewise.
19486         (*sse4_1_extendv2hiv2di2): Likewise.
19487         (sse4_1_extendv2siv2di2): Likewise.
19488         (*sse4_1_extendv2siv2di2): Likewise.
19489         (sse4_1_zero_extendv8qiv8hi2): Likewise.
19490         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
19491         (sse4_1_zero_extendv4qiv4si2): Likewise.
19492         (*sse4_1_zero_extendv4qiv4si2): Likewise.
19493         (sse4_1_zero_extendv2qiv2di2): Likewise.
19494         (*sse4_1_zero_extendv2qiv2di2): Likewise.
19495         (sse4_1_zero_extendv4hiv4si2): Likewise.
19496         (*sse4_1_zero_extendv4hiv4si2): Likewise.
19497         (sse4_1_zero_extendv2hiv2di2): Likewise.
19498         (*sse4_1_zero_extendv2hiv2di2): Likewise.
19499         (sse4_1_zero_extendv2siv2di2): Likewise.
19500         (*sse4_1_zero_extendv2siv2di2): Likewise.
19501         (sse4_1_roundpd): Likewise.
19502         (sse4_1_roundps): Likewise.
19503         (sse4_1_roundsd): Likewise.
19504         (sse4_1_roundss): Likewise.
19505         (mulv4si3): Don't expand for SSE4.1.
19506         (smax<mode>3): Likewise.
19507         (umaxv4si3): Likewise.
19508         (uminv16qi3): Likewise.
19509         (umin<mode>3): Likewise.
19510         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
19511
19512         * doc/extend.texi: Document SSE4.1 built-in functions.
19513
19514         * doc/invoke.texi: Document -msse4.1.
19515
19516 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
19517
19518         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
19519         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
19520         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
19521         (ASM_SPEC): Add asm_pcrel_spec.
19522         (EXTRA_SPECS): Add asm_pcrel_spec.
19523
19524 2007-05-21  David Daney  <ddaney@avtrex.com>
19525
19526         * doc/install.texi (Building a cross compiler): Add requirements
19527         for Java cross compiler.
19528
19529 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19530
19531         PR middle-end/31995
19532         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
19533         Add loopno argument.  Use evolution_function_is_invariant_rec_p
19534         instead of evolution_function_is_constant_p.
19535         Update calls to evolution_function_is_affine_multivariate_p.
19536         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
19537         Add loopno argument.
19538         * tree-scalar-evolution.c (gather_chrec_stats): Call
19539         evolution_function_is_affine_multivariate_p with a loop
19540         number of 0.
19541         * tree-data-ref.c (analyze_miv_subscript): Likewise.
19542         (analyze_overlapping_iterations): Likewise.
19543         (access_functions_are_affine_or_constant_p): Likewise.
19544         (build_classic_dist_vector_1): If the access functions
19545         are equal, don't do anything.
19546
19547 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
19548             Paolo Carlini  <pcarlini@suse.de>
19549             Uros Bizjak  <ubizjak@gmail.com>
19550
19551         * c-cppbuiltin.c (c_cpp_builtins): Define
19552         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
19553         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
19554         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
19555         * doc/cpp.texi ([Standard Predefined Macros]): Document.
19556
19557 2007-05-21  Mike Stump  <mrs@apple.com>
19558
19559         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
19560         handling as well.
19561         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
19562
19563 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
19564
19565         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
19566         implementation if __OPTIMIZE__ is not defined.
19567         (_mm_alignr_pi8): Ditto.
19568         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
19569         (_mm_inserti_si64): Ditto.
19570         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
19571         (_mm_slli_epi16): Ditto.
19572         (_mm_slli_epi32): Ditto.
19573         (_mm_slli_epi64): Ditto.
19574         (_mm_srai_epi16): Ditto.
19575         (_mm_srai_epi32): Ditto.
19576         (_mm_srli_si128): Ditto.
19577         (_mm_slli_si128): Ditto.
19578         (_mm_srli_epi16): Ditto.
19579         (_mm_srli_epi32): Ditto.
19580         (_mm_srli_epi64): Ditto.
19581         (_mm_extract_epi16): Ditto.
19582         (_mm_insert_epi16): Ditto.
19583         (_mm_shufflehi_epi16): Ditto.
19584         (_mm_shufflelo_epi16): Ditto.
19585         (_mm_shuffle_epi32): Ditto.
19586         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
19587         (_m_pextrw): Ditto.
19588         (_mm_insert_pi16): Ditto.
19589         (_m_pinsrw): Ditto.
19590         (_mm_shuffle_pi16): Ditto.
19591         (_m_pshufw): Ditto.
19592         (_mm_shufle_ps): Ditto.
19593         (_mm_prefetch): Ditto.
19594
19595 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
19596
19597         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
19598         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
19599         * real.c (encode_i370_single, decode_i370_single,
19600         encode_i370_double, decode_i370_double): Functions removed.
19601         (i370_single_format, i370_double_format): Initializations removed.
19602         (real_maxval, round_for_format, exact_real_truncate, significand_size):
19603         Consider the log2_b field to always be one.
19604         (ieee_single_format, mips_single_format, coldfire_single_format,
19605         ieee_double_format, mips_double_format, coldfire_double_format,
19606         ieee_extended_motorola_format, ieee_extended_intel_96_format,
19607         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
19608         ibm_extended_format, mips_extended_format, ieee_quad_format,
19609         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
19610         decimal_single_format, decimal_double_format, decimal_quad_format,
19611         c4x_single_format, c4x_extended_format, real_internal_format): Remove
19612         initialization of log2_b.
19613         * real.h (i370_single_format, i370_double_format): Declarations
19614         removed.
19615         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
19616         field to always be one.
19617
19618 2007-05-21  Andreas Schwab  <schwab@suse.de>
19619
19620         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
19621         NOTE_INSN_BASIC_BLOCK_P.
19622         (process_for_unwind_directive): Likewise.
19623
19624 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
19625
19626         * builtins.c (expand_builtin_setjmp_setup): Update comment.
19627         * function.h (struct function): Move va_list_gpr_size,
19628         va_list_fpr_size, function_frequency to front of bitfields.  Add
19629         calls_unwind_init.
19630         (current_function_calls_unwind_init): New.
19631         * except.c (expand_builtin_unwind_init): Set
19632         current_function_calls_unwind_init not
19633         current_function_has_nonlocal_label.
19634         * reload1.c (has_nonexceptional_receiver): New.
19635         (reload): Use it and current_function_calls_unwind_init to
19636         determine whether call-saved regs must be saved.
19637
19638 2007-05-20  Jan Hubicka  <jh@suse.cz>
19639
19640         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
19641         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
19642         * ddg.c (create_ddg): LIkewise.
19643         * final.c (final): Remove hunk moving line number notes around since
19644         they are no longer present at this stage.
19645         (final_scan_insn): Use NOTE_KIND instead of
19646         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
19647         (output_asm_label): Likewise.
19648         * reorg.c (dbr_schedule): Likewise.
19649         * haifa-sched.c (unlink_other_notes): Likewise.
19650         * mode-switching.c (optimize_mode_switching): Likewise.
19651         * graph.c (start_bb): Likewise.
19652         * rtl.def (NOTE): Update description.
19653         * jump.c (squeeze_notes): Delete.
19654         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
19655         NOTE_INSN_BASIC_BLOCK_P when possible.
19656         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
19657         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
19658         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
19659         (dwarf2out_var_location): Likewise.
19660         * cfgbuild.c (make_edges): Likewise.
19661         (find_basic_blocks_1): Likewise.
19662         * function.c (reorder_blocks_1): Likewise.
19663         (epilogue_done): Likewise.
19664         (reposition_prologue_and_epilogue_notes): Likewise.
19665         * print-rtl.c (print_rtx): Likewise; drop code for printing
19666         line number notes.
19667         (print_rtl): Likewise.
19668         (print_rtl_single): Likewise.
19669         * gcse.c (insert_insn_start_bb): Likewise.
19670         * alias.c (init_alias_analysis): Likewise.
19671         * calls.c (fixup_tail_calls): Likewise.
19672         * except.c (sjlj_emit_function_enter): Likewise.
19673         * emit-rtl.c (add_insn_after): Likeiwse.
19674         (emit_label_before): Likewise.
19675         (emit_label_after): Likewise.
19676         (emit_note_before, emit_note_after, emit_note): Update
19677         parameter to be enum insn_note; do not deal with source
19678         files.
19679         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
19680         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
19681         when possible.
19682         (merge_blocks_move_successor_nojumps): Simplify now when
19683         we don't have BLOCK notes.
19684         (try_optimize_cfg): Likewise.
19685         * cfglayout.c (skip_insns_after_block): Likewise.
19686         (record_effective_endpoints): Likewise.
19687         (duplicate_insn_chain): Likewise.
19688         * varasm.c (output_constant_pool_1): Likewise.
19689         * sched-deps.c (sched_analyze): Likewise.
19690         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
19691         Exterminate.
19692         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
19693         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
19694         (SET_INSN_DELETED): Simplify.
19695         (NOTE_LINE_NUMBER): Exterminate.
19696         (NOTE_LINE_KIND): New.
19697         (NOTE_INSN_BASIC_BLOCK_P): Update.
19698         (enum insn_note): Simplify.
19699         (GET_NOTE_INSN_NAME) Simplify.
19700         (emit_note_before, emit_note_after, emit_note): Update prototype.
19701         (squeeze_notes): Remove.
19702         * sched-int.h (NOTE_NOT_BB_P): Update.
19703         * resource.c (mark_target_live_regs): Update.
19704         * sched-rgn.c (debug_dependencies): Update.
19705         * sched-vis.c (print_insn): Update.
19706         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
19707         * config/i386/i386.c (ix86_output_function_epilogue): Update.
19708         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
19709         (TARGET_ADJUST_UNROLL_MAX): Likewise.
19710         (split_branches): Update.
19711         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
19712         4.0.0.
19713         (sh_adjust_unroll_max): Exterminate.
19714         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
19715         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
19716         (m68hc11_reorg): Likewise.
19717         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
19718         (emit_predicate_relation_info): Update.
19719         (process_for_unwind_directive): Update.
19720         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
19721         (output_call): Update.
19722         * config/pa/pa.c (output_lbranch): Update.
19723         (output_millicode_call): Update.
19724         (output_call): Update.
19725         (pa_combine_instructions): Update.
19726         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
19727         * config/bfin/bfin.c (gen_one_bundle): Update.
19728         * cfgrtl.c (can_delete_note_p): Update.
19729         (delete_insn): Update.
19730         (rtl_merge_blocks): Update.
19731         (commit_one_edge_insertion): Update.
19732         (rtl_verify_flow_info): Update.
19733         * stmt.c (expand_case): Do not call squeeze_notes.
19734
19735 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19736
19737         PR middle-end/7651
19738         PR c++/11856
19739         PR c/12963
19740         PR c/23587
19741         PR other/29694
19742         * c.opt (Wtype-limits): New.
19743         * doc/invoke.texi (Wtype-limits): Document it.
19744         (Wextra): Enabled by -Wextra.
19745         * c-opts.c (c_common_post_options): Enabled by -Wextra.
19746         * c-common.c (shorten_compare): Warn with Wtype-limits.
19747
19748 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
19749
19750         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
19751         inlined function, not as a macro.
19752         (_mm_alignr_pi8): Ditto.
19753         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
19754         (_mm_inserti_si64): Ditto.
19755         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
19756         (_mm_extract_epi16): Ditto.
19757         (_mm_insert_epi16): Ditto.
19758         (_mm_shufflehi_epi16): Ditto.
19759         (_mm_shufflelo_epi16): Ditto.
19760         (_mm_shuffle_epi32): Ditto.
19761         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
19762         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
19763         all functions.
19764         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
19765         float constant.
19766         (_m_to_float): Use C89 compatible assignment.
19767
19768 2007-05-20  Martin Michlmayr  <tbm@cyrius.com>
19769
19770         PR target/32007
19771         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
19772
19773 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19774
19775         PR middle-end/7651
19776         * doc/invoke.texi (Wreturn-type): Complete description.
19777         (Wextra): Delete item about return-type warning.
19778         * c-decl.c: Delete redundant Wextra warning.
19779
19780 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
19781
19782         PR target/31585
19783         * config/i386/pmmintrin.h: Do not include xmmintrin.h
19784         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
19785         inlined function, not as a macro.
19786         (_mm_prefetch): Ditto.
19787         (_m_pextrw): Ditto.
19788         (_mm_insert_pi16): Ditto.
19789         (_m_pinsrw): Ditto.
19790         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
19791         (_m_pshufw): Ditto. Add const to __N argument.
19792         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
19793         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
19794         (_mm_slli_epi32): Ditto.
19795         (_mm_srli_si128): Implement as always inlined function, not as a
19796         macro.  Add __inline to function declaration.
19797         (_mm_slli_si128): Ditto.
19798
19799 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
19800
19801         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
19802         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
19803         New constants.
19804         (struct fenv): New structure.
19805         (FP_HANDLE_EXCEPTIONS): New define.
19806         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
19807         (_FP_DECL_EXP): New define.
19808         (FP_INIT_ROUNDMODE): New define.
19809         (FP_ROUNDMODE): New define.
19810
19811 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19812
19813         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
19814         (Wconversion): Update description.
19815         (Wconversion-sign): New.
19816         * c.opt (Wconversion-sign): New.
19817         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
19818         means disabled for C++. Otherwise, take the status of Wconversion.
19819         * c-common.c (conversion_warning): Warn with either Wconversion or
19820         Wconversion-sign.
19821         (warnings_for_convert_and_check): Conditions are already checked by
19822         conversion_warning.
19823         (convert_and_check): Don't check warnings if the conversion failed.
19824
19825 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
19826            Anatoly Sokolov <aesok@dol.ru>
19827
19828         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
19829         avr_epilogue_uses) : Add declaration.
19830         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
19831         * config/avr/constraints.md (R): New constraint.
19832         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
19833         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
19834         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
19835         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
19836         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
19837         call_prologue_saves, epilogue_restores, return_from_epilogue,
19838         return_from_main_epilogue, return_from_interrupt_epilogue,
19839         return_from_naked_epilogue, prologue, epilogue): New patterns.
19840         (jump): Handle symbol reference.
19841         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
19842         avr_output_function_prologue, avr_output_function_epilogue): Remove
19843         functions.
19844         (avr_init_machine_status, expand_prologue, expand_epilogue,
19845         avr_asm_function_end_prologue, avr_epilogue_uses,
19846         avr_asm_function_begin_epilogue): New functions.
19847         (prologue_size, epilogue_size, jump_tables_size): Remove global
19848         variables.
19849         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
19850         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
19851         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
19852         (avr_override_options): Initialise init_machine_status.
19853         (output_movhi): Handle all stack pointer loads.
19854         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
19855         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
19856         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
19857         (EPILOGUE_USES) Redefine.
19858         (machine_function) Declare.
19859
19860 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
19861
19862         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
19863         Use a single return statement.
19864
19865 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19866
19867         PR middle-end/30250
19868         * builtins.c (do_mpfr_lgamma_r): New.
19869         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
19870         * tree.h (CASE_FLT_FN_REENT): New.
19871
19872 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
19873
19874         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
19875         (output_die): Use 'unsigned long' with %x.
19876         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
19877         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
19878         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
19879
19880         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
19881
19882 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
19883
19884         PR target/31989
19885         PR target/31681
19886         PR target/31666
19887         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
19888         true if function has no argument.
19889
19890 2007-05-18  DJ Delorie  <dj@redhat.com>
19891
19892         * config/mips/mips.c (mips_offset_within_alignment_p): New.
19893         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
19894
19895 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
19896
19897         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
19898         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
19899         count_trailing_zeros.
19900         (__i386__): Implement count_leading_zeros using __builtin_clz().
19901         Implement count_trailing_zeros usign __builtin_ctz().
19902
19903 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
19904
19905         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
19906
19907 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
19908
19909         PR middle-end/31344
19910         * expr.c (emit_move_change_mode): Change mode of push operands here.
19911
19912 2007-05-17  Ian Lance Taylor  <iant@google.com>
19913
19914         PR tree-optimization/31953
19915         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
19916         Change all callers.
19917         (set_value_range_to_null): Call set_value_range_to_value.
19918         (extract_range_from_comparison): Likewise.
19919
19920 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19921
19922         * toplev.c (print_version): Output GMP/MPFR version info.
19923
19924         * builtins.c (CASE_MATHFN_REENT): New macro.
19925         (mathfn_built_in): Use it.
19926         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
19927         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
19928         BUILT_IN_LGAMMAL_R): New.
19929         * doc/extend.texi: Document new builtins.
19930
19931         PR middle-end/31796
19932         * builtins.c (do_mpfr_remquo): New.
19933         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
19934         (fold_builtin_3): Handle BUILT_IN_REMQUO.
19935
19936         PR middle-end/30251
19937         * builtins.c (fold_builtin_1): Handle y0, y1.
19938         (fold_builtin_2): Handle yn.
19939
19940         PR middle-end/30251
19941         * builtins.c (do_mpfr_bessel_n): New.
19942         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
19943         (fold_builtin_2): Handle BUILT_IN_JN.
19944
19945 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
19946
19947         PR target/31965
19948         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
19949         TYPE_PRECISION (intmax_type_node).
19950
19951 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
19952
19953         PR target/31850
19954         * reload.c (subst_reloads): Remove checking.
19955
19956 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
19957
19958         PR rtl-optimization/31691
19959         * combine.c (simplify_set): Build a new src pattern instead of
19960         substituting its operands in the COMPARE case.
19961
19962 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
19963
19964         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
19965         (execute_vrp): Preserve loops through jump threading.
19966         * tree-ssa-threadupdate.c (thread_single_edge,
19967         dbds_continue_enumeration_p, determine_bb_domination_status,
19968         thread_through_loop_header): New functions.
19969         (create_edge_and_update_destination_phis,
19970         create_edge_and_update_destination_phis): Set loops for the new blocks.
19971         (prune_undesirable_thread_requests): Removed.
19972         (redirect_edges): Do not pretend that redirect_edge_and_branch can
19973         create new blocks.
19974         (thread_block): Do not call prune_undesirable_thread_requests.
19975         Update loops.
19976         (mark_threaded_blocks): Select edges to thread here.
19977         (thread_through_all_blocks): Take may_peel_loop_headers argument.
19978         Thread edges through loop headers independently.
19979         * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
19980         * tree-pass.h (TODO_mark_first_instance): New.
19981         (first_pass_instance): Declare.
19982         * cfghooks.c (duplicate_block): Put the block to the original loop
19983         if copy is not specified.
19984         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
19985         jump threading.  Pass may_peel_loop_headers to
19986         thread_through_all_blocks according to first_pass_instance.
19987         * cfgloop.h (create_preheader): Declare.
19988         * tree-flow.h (thread_through_all_blocks): Declaration changed.
19989         * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
19990         * passes.c (first_pass_instance): New variable.
19991         (next_pass_1): Set TODO_mark_first_instance.
19992         (execute_todo): Set first_pass_instance.
19993
19994 2007-05-17  Uros Bizjak  <ubizjak@gmail.com>
19995
19996         PR tree-optimization/24659
19997         * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
19998         OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
19999         OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
20000         OTI_vec_pack_ufix_trunc.
20001         (vec_unpacks_float_hi_optab): Define new macro.
20002         (vec_unpacks_float_lo_optab): Ditto.
20003         (vec_unpacku_float_hi_optab): Ditto.
20004         (vec_unpacku_float_lo_optab): Ditto.
20005         (vec_pack_sfix_trunc_optab): Ditto.
20006         (vec_pack_ufix_trunc_optab): Ditto.
20007         * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
20008         and vec_pack_[s|u]fix_trunc_optab using
20009         vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
20010         * tree-vectorizer.c (supportable_widening_operation): Handle
20011         FLOAT_EXPR and CONVERT_EXPR.  Update comment.
20012         (supportable_narrowing_operation): New function.
20013         * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
20014         * tree-vect-transform.c (vectorizable_conversion): Handle
20015         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
20016         (vect_gen_widened_results_half): Move before vectorizable_conversion.
20017         (vectorizable_type_demotion): Call supportable_narrowing_operation()
20018         to check for target support.
20019         * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
20020         for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
20021         for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
20022         for VEC_PACK_FIX_TRUNC_EXPR.
20023         (expand_binop): Special case mode of the result for
20024         vec_pack_[u|s]fix_trunc_optab.
20025         (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
20026         vec_pack_[u|s]fix_trunc_optab.
20027
20028         * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
20029         VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
20030         * tree-pretty-print.c (dump_generic_node): Handle
20031         VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
20032         VEC_PACK_FIX_TRUNC_EXPR.
20033         (op_prio): Ditto.
20034         * expr.c (expand_expr_real_1): Ditto.
20035         * tree-inline.c (estimate_num_insns_1): Ditto.
20036         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
20037
20038         * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
20039         (vec_unpacks_float_lo_v8hi): Ditto.
20040         (vec_unpacku_float_hi_v8hi): Ditto.
20041         (vec_unpacku_float_lo_v8hi): Ditto.
20042         (vec_unpacks_float_hi_v4si): Ditto.
20043         (vec_unpacks_float_lo_v4si): Ditto.
20044         (vec_pack_sfix_trunc_v2df): Ditto.
20045
20046         * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
20047         Document.
20048         [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
20049         [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
20050         * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
20051         [vec_pack_ufix_trunc]: Ditto.
20052         [vec_unpacks_float_hi]: Ditto.
20053         [vec_unpacks_float_lo]: Ditto.
20054         [vec_unpacku_float_hi]: Ditto.
20055         [vec_unpacku_float_lo]: Ditto.
20056
20057 2007-05-16  Uros Bizjak  <ubizjak@gmail.com>
20058
20059         * soft-fp/README: Update for new files.
20060         * soft-fp/floattisf.c: New file.
20061         * soft-fp/floattidf.c: New file.
20062         * soft-fp/floattitf.c: New file.
20063         * soft-fp/floatuntisf.c: New file.
20064         * soft-fp/floatuntidf.c: New file.
20065         * soft-fp/floatuntitf.c: New file.
20066         * soft-fp/fixsfti.c: New file.
20067         * soft-fp/fixdfti.c: New file.
20068         * soft-fp/fixtfti.c: New file.
20069         * soft-fp/fixunssfti.c: New file.
20070         * soft-fp/fixunsdfti.c: New file.
20071         * soft-fp/fixunstfti.c: New file.
20072         * soft-fp/extendxftf.c: New file.
20073         * soft-fp/trunctfxf.c: New file.
20074
20075         * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
20076         (__trunctfxf2): Ditto.
20077
20078         * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
20079         __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
20080         __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
20081         __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
20082         __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
20083         __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
20084
20085         * config/i386/t-fprules-softfp64: New file.
20086         * config/i386/sfp-machine.h: New file.
20087         * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
20088         x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
20089         and soft-fp/t-softfp to tmake_file.
20090         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
20091         i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
20092
20093         * config/i386/t-linux64 (softfp_wrap_start): New.
20094         (softfp_wrap_end): New.
20095         * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
20096         supported for TARGET_64BIT.
20097
20098 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
20099
20100         * c-common.c (c_common_signed_or_unsigned_type): Emulate
20101         c_common_unsigned_type behavior.
20102
20103 2007-05-16  Paolo Bonzini  <bonzini@gnu.org>
20104
20105         * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
20106         calls as pure.
20107
20108 2007-05-16  Eric Christopher  <echristo@apple.com>
20109
20110         * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
20111         saving after stack push. Set sp_offset whenever we push.
20112         (rs6000_emit_epilogue): Move altivec register restore before
20113         stack push.
20114
20115 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
20116
20117         * configure.ac: Allow sysroots to be relocated under $prefix as
20118         well as $exec_prefix.
20119         * configure: Regenerate.
20120
20121 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
20122
20123         Revert:
20124
20125         2007-05-12  Richard Sandiford  <richard@codesourcery.com>
20126
20127         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
20128         (gcc_tooldir): Likewise.
20129         * configure: Regenerate.
20130         * Makefile.in (libsubdir_to_prefix): New variable, based on the
20131         old configure.ac gcc_tooldir setting.
20132         (prefix_to_exec_prefix): New variable.
20133         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
20134         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
20135
20136 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
20137
20138         * c-typeck.c (build_binary_op): Return early for error.
20139
20140 2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>
20141
20142         * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
20143         struct nb_iter_bound.
20144         (free_numbers_of_iterations_estimates_loop): Use ggc_free.
20145         * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
20146         * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
20147         * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
20148         (struct scev_info_str, scalar_evolution_info): Add GTY markers.
20149         (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
20150         (del_scev_info): Use ggc_free.
20151         (scev_initialize): Allocate scalar_evolution_info in gc memory.
20152         * loop-init.c: Include ggc.h.
20153         (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
20154         (loop_optimizer_finalize): Use ggc_free.
20155         * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
20156         pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
20157         pass_iv_optimize): Add TODO_ggc_collect.
20158         * function.h (struct function): Remove skip marker from
20159         x_current_loops.
20160         * cfgloop.c: Include ggc.h.
20161         (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
20162         memory.
20163         (establish_preds): Vector superloops is gc allocated.
20164         (alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
20165         loop->exits list.
20166         (flow_loops_find): Vector larray is gc allocated.
20167         (loop_exit_free): Use ggc_free.
20168         (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
20169         that head of exits list is now not a part of struct loop.
20170         (record_loop_exits): Allocate exits table in gc memory.
20171         (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
20172         that head of exits list is now not a part of struct loop.
20173         * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
20174         struct loop_exit): Add GTY marker.
20175         (struct loop): Add GTY marker.  Make superloops vector gc allocated.
20176         Add skip marker to aux field.  Make head of exits list a separate
20177         object.
20178         (struct loops): Add GTY marker.  Make larray vector gc allocated.
20179         Add param marker to exits table.
20180         (get_loops): Type changed.
20181         * Makefile.in (tree-scalar-evolution.o): Add
20182         gt-tree-scalar-evolution.h dependency.
20183         (cfgloop.o, loop-init.o): Add ggc.h dependency.
20184         (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
20185         * basic-block.h (struct basic_block_def): Remove skip marker from
20186         loop_father field.
20187
20188 2007-05-14  Uros Bizjak  <ubizjak@gmail.com>
20189
20190         * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
20191         of 0 in the call to expand_expr().
20192         (expand_builtin_mathfn_3): Ditto.
20193         (expand_builtin_interclass_mathfn): Ditto.
20194         (expand_builtin_cexpi): Ditto.
20195         (expand_builtin_int_roundingfn): Ditto.
20196         (expand_builtin_int_roundingfn_2): Ditto.
20197         (expand_builtin_pow): Ditto.
20198         (expand_builtin_powi): Ditto.
20199         (expand_builtin_bswap): Ditto.
20200         (expand_builtin_unop): Ditto.
20201         (expand_builtin_fabs): Ditto.
20202         (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
20203         the call to expand_expr().
20204         (expand_builtin_sync_operation): Ditto.
20205         (expand_builtin_compare_and_swap): Ditto.
20206         (expand_builtin_lock_test_and_set): Ditto.
20207         * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
20208         instead of 0 in the call to expand_expr().
20209         (expand_builtin_extract_return_addr): Ditto.
20210         (expand_builtin_eh_return): Ditto.
20211         (expand_eh_return): Ditto.
20212         * explow.c (expr_size): Ditto.
20213         * expr.c (optimize_bitfield_assignment_op): Ditto.
20214         (expand_assignement): Ditto.
20215         (store_expr): Ditto.
20216         (store_field): Ditto.
20217         (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
20218         the call to expand_expr().
20219         (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
20220         in the call to expand_expr().
20221         [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
20222         BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
20223         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
20224         of expand_expr().
20225         * optabs.c (expand_vec_shift_expr): Ditto.
20226         (expand_vec_cond_expr): Ditto.
20227         (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
20228         call to expand_expr().
20229         * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
20230         in the call to expand_expr().
20231
20232 2007-05-14  Dave Korn  <dave.korn@artimi.com>
20233
20234         * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
20235
20236 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
20237
20238         * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
20239         instead of c_common_unsigned_type.
20240         (c_common_unsigned_type): Remove.
20241         (shorten_compare): Use c_common_signed_or_unsigned_type instead of
20242         c_common_unsigned_type.
20243         (c_common_nodes_and_builtins): Use unsigned_type_for instead of
20244         c_common_unsigned_type.
20245         * c-common.h (c_common_unsigned_type): Remove.
20246         * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
20247         c_common_unsigned_type.
20248         * c-format.c (check_format_types): Use unsigned_type_for instead of
20249         c_common_unsigned_type.
20250         * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
20251         * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
20252         of c_common_unsigned_type.
20253         * convert.c (convert_to_integer): Use unsigned_type_for instead of
20254         lang_hooks.types.unsigned_type.
20255         * expmed.c (make_tree): Use unsigned_type_for instead of
20256         lang_hooks.types.unsigned_type.
20257         * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
20258         lang_hooks.types.unsigned_type.
20259         (build_range_check): Likewise.
20260         (fold_unary): Likewise.
20261         (fold_binary): Likewise.
20262         (fold_ternary): Likewise.
20263         * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
20264         * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
20265         * tree.c (get_unsigned_type): New.
20266         (unsigned_type_for): Use get_unsigned_type instead of
20267         lang_hooks.types.unsigned_type.
20268
20269 2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
20270
20271         * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
20272         to m68k_get_function_kind.  Update its prototype.
20273         * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
20274         interrupt_thread.
20275         (m68k_interrupt_function_p): Return enum m68k_function_type
20276         instead of bool.  Rename to m68k_get_function_kind.
20277         (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
20278         target is not fido.
20279         (m68k_compute_frame_layout): Don't mark any register for save
20280         if an interrupt_thread attribute is specified.
20281         (m68k_hard_regno_rename_ok): Update a use of
20282         m68k_interrupt_function_p.
20283         * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
20284         m68k_interrupt_function_p.
20285         (m68k_function_type): New.
20286         * config/m68k/m68k.md (*return): Output a 'sleep' instruction
20287         for a function with an interrupt_thread attribute.
20288         * doc/extend.texi: Document the interrupt_thread attribute.
20289
20290 2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
20291
20292         Fix PR tree-optimization/31911
20293         * tree-ssa-pre.c (phi_translate): Make sure to cache results even
20294         if they didn't change the expression.
20295
20296 2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
20297
20298         * tree-scalar-evolution.c (resolve_mixers): Exported.
20299         * tree-scalar-evolution.h (resolve_mixers): Declare.
20300         * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
20301         ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
20302         record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
20303         base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
20304         init_array_ref, init_pointer_ref, analyze_indirect_ref,
20305         strip_conversion, analyze_offset_expr, address_analysis,
20306         object_analysis, analyze_offset): Removed.
20307         (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
20308         split_constant_offset, canonicalize_base_object_address,
20309         object_address_invariant_in_loop_p, disjoint_objects_p,
20310         dr_may_alias_p, dr_address_invariant_p): New functions.
20311         (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
20312         and dr_analyze_alias.
20313         (initialize_data_dependence_relation): Use dr_may_alias_p
20314         and object_address_invariant_in_loop_p.
20315         (compute_self_dependence): Handle the case when
20316         DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
20317         (find_data_references_in_stmt): Restrict the analysis of data
20318         references to the given loop nest.
20319         (find_data_references_in_loop): Made static.  Pass loop nest to
20320         find_data_references_in_stmt.
20321         (compute_data_dependences_for_loop): Use DR_VOPS.
20322         (free_data_ref): Free DR_VOPS.
20323         * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
20324         (struct innermost_loop_behavior): ... new.
20325         (struct base_object_info): Replaced by ...
20326         (struct indices): ... new.
20327         (struct dr_alias): New.
20328         (enum data_ref_type): Removed.
20329         (struct data_reference): Consist of struct innermost_loop_behavior,
20330         struct indices and struct dr_alias.
20331         (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
20332         (DR_MEMTAG): Renamed to ...
20333         (DR_SYMBOL_TAG): ... this.
20334         (find_data_references_in_loop): Declaration removed.
20335         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
20336         instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
20337         (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
20338         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
20339
20340 2007-05-13  Revital Eres  <eres@il.ibm.com>
20341
20342         * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
20343         which walks virtual def-use chains to find redundant stores.
20344         (dse_optimize_stmt): Call it.
20345
20346 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
20347
20348         * gcse.c (gcse_main): Do jump bypassing in CPROP2.
20349         * passes.c (init_optimization_passes): Move pass_jump_bypass
20350         after loop2.
20351
20352         * basic-block.h (bb_has_eh_pred): Fix style issue.
20353
20354 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
20355
20356         PR rtl-optimization/31848
20357         * loop-invariant.c (move_invariant_reg): If we move an insn
20358         with a REG_EQUAL note, and that insn is not always executed,
20359         remove the REG_EQUAL note.
20360
20361 2007-05-12  Richard Guenther  <rguenther@suse.de>
20362
20363         PR tree-optimization/31797
20364         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
20365         propagate into a stmt that has volatile ops.
20366
20367 2007-05-12  Richard Sandiford  <richard@codesourcery.com>
20368
20369         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
20370         (gcc_tooldir): Likewise.
20371         * configure: Regenerate.
20372         * Makefile.in (libsubdir_to_prefix): New variable, based on the
20373         old configure.ac gcc_tooldir setting.
20374         (prefix_to_exec_prefix): New variable.
20375         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
20376         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
20377
20378 2007-05-11  Silvius Rus  <rus@google.com>
20379
20380         * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
20381         * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
20382         * c-common.h (strict_aliasing_warning): Change return type.
20383         * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
20384         * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
20385         (build_c_cast): Condition call to strict_aliasing_warning.
20386         * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
20387         * flags.h (set_Wstrict_aliasing): Declare.
20388         * opts.c (set_Wstrict_alising): Define, add call to.
20389         * tree-flow.h (strict_aliasing_warning_backend): Declare.
20390         * tree-ssa-alias-warnings.c: New file.
20391         * tree-ssa-alias.c (compute_may_aliases): Add call to
20392         strict_aliasing_warning_backend.
20393
20394 2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
20395
20396         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
20397         Use loop_depth and loop_outer accessor functions.
20398         * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
20399         determine_invariantness_stmt, move_computations_stmt): Ditto.
20400         * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
20401         add_loop, loopify, unloop, fix_loop_structure): Ditto.
20402         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
20403         * tree-scalar-evolution.c (interpret_loop_phi,
20404         compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
20405         instantiate_parameters_1, scev_const_prop): Ditto.
20406         * cfghooks.c (make_forwarder_block): Ditto.
20407         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
20408         * modulo-sched.c (loop_canon_p): Ditto.
20409         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
20410         slpeel_can_duplicate_loop_p): Ditto.
20411         * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
20412         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
20413         * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
20414         cancel_loop, verify_loop_structure): Ditto.
20415         (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
20416         add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
20417         superloops vector instead of "pred" array.
20418         (establish_preds): Take father loop as an argument.  Initialize the
20419         superloops vector.
20420         (flow_loop_tree_node_add): Pass father loop to establish_preds.
20421         Do not initialize loop->outer.
20422         (flow_loop_tree_node_remove): Truncate the superloops vector.
20423         * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
20424         "pred" merged to "superloops" vector.
20425         (loop_depth, loop_outer): New.
20426         (fel_init): Use loop_outer.
20427
20428 2007-05-11  Jan Hubicka  <jh@suse.cz>
20429
20430         * cgraphunit.c: Include gt-cgraphunit.h
20431         (static_ctors, static_dtors): New static vars.
20432         (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
20433         based on implementation in c-common.c
20434         (cgraph_finalize_function): Call record_cdtor_fn.
20435         (cgraph_optimize): Call cgraph_build_cdtor_fns.
20436         * decl.c (finish_function): Do not call c_record_cdtor_fn.
20437         (c_write_global_declarations): Do not call c_build_cdtor_fns.
20438         * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
20439         build_cdtor, c_build_cdtor_fns): Remove.
20440         * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
20441         c_build_cdtor_fns): Remove prototype.
20442
20443 2007-05-11  Paolo Carlini  <pcarlini@suse.de>
20444
20445         PR other/31852
20446         * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
20447         * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
20448         * builtins.c (fold_builtin_memchr): New.
20449         (expand_builtin_memchr): Call the latter.
20450         (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
20451         * doc/extend.texi ([Other built-in functions provided by GCC]):
20452         Document memchr.
20453
20454 2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>
20455
20456         * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
20457         PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
20458         PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
20459         PFPO_OP1_TYPE_SHIFT): Constants added.
20460         (DFP_ALL): Mode macro defined.
20461         ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
20462         "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
20463         Insn definitions added.
20464         ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
20465         "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
20466         Expanders added.
20467
20468 2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
20469
20470         PR tree-optimization/31885
20471         * tree-chrec.c (chrec_contains_undetermined): Do not consider
20472         NULL_TREE to be undetermined.
20473         (automatically_generated_chrec_p): Return false for NULL.
20474
20475 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
20476
20477         * config/bfin/bfin.h (MOVE_RATIO): Define.
20478
20479 2007-05-10  Richard Sandiford  <richard@codesourcery.com>
20480
20481         * config.gcc (sparc-wrs-vxworks): New target.
20482         * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
20483         * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
20484         * config/sparc/sparc.h: Include vxworks-dummy.h.
20485         (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
20486         include LABEL_REFs too.
20487         * config/sparc/sparc.c (sparc_expand_move): Don't assume that
20488         _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
20489         VxWorks.
20490         (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
20491         on VxWorks.
20492         (load_pic_register): Use gen_vxworks_load_got for VxWorks.
20493         (sparc_emit_call_insn): New function.
20494         (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
20495         functions when generating VxWorks PIC.
20496         * config/sparc/sparc.md (vxworks_load_got): New pattern.
20497         (call, call_value): Use sparc_emit_call_insn instead of
20498         emit_call_insn.
20499
20500 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
20501
20502         * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
20503
20504 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
20505
20506         * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
20507         for floating-point values if HOST_BITS_PER_LONG > 32.  Use
20508         split_double instead of operand_subword.
20509
20510 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
20511
20512         * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
20513         * config/bfin/bfin.c (bfin_local_alignment): New function.
20514         * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
20515
20516 2007-05-08  Chao-ying Fu  <fu@mips.com>
20517
20518         * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
20519         * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
20520         (smsub_widen_optab, umsub_widen_optab): Define.
20521         * optabs.c (init_optabs): Initialize smsub_widen_optab and
20522         umsub_widen_optab.
20523         * genopinit.c (optabs): Fill in smsub_widen_optab and
20524         umsub_widen_optab.
20525         * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
20526         and umsub_widen_optab to implement multiply-subtract sequences.
20527         * config/mips/mips.md (*msac<u>_di): Rename to...
20528         (<u>msubsidi4): ...this.  Extend condition to include
20529         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
20530         of operand 0 to "ka" and use the three-operand form of msub<u>
20531         for TARGET_DSPR2.
20532         * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
20533         to define_expands.
20534
20535 2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
20536
20537         PR rtl-optimization/28011
20538         * reload.c (push_reload): Set dont_share if IN appears in OUT
20539         also when IN is a PLUS rtx.
20540         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
20541         are same PLUS rtx.
20542
20543 2007-05-08  Kazu Hirata  <kazu@codesourcery.com>
20544
20545         * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
20546         call unshare_all_decls.
20547         (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
20548         (unshare_all_decls): Remove.
20549
20550 2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
20551
20552         PR 31847
20553         * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
20554         dumps.
20555
20556 2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
20557             Nigel Stephens  <nigel@mips.com>
20558
20559         * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
20560         Update comments and all uses.
20561         (MIN_FPRS_PER_FMT): Define.
20562         * config/mips/mips.c (function_arg): Fix to correctly handle
20563         the -mips32r2 -mfp64 -mabi=32 case.
20564         (override_options): Enable use of odd-numbered registers for
20565         SFmode values on MIPS32.
20566         (mips_save_reg_p): Save whole floating-point register pair if
20567         either half is used.
20568         (compute_frame_size): Fix comment.
20569
20570 2007-05-08  Jie Zhang  <jie.zhang@analog.com>
20571
20572         * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
20573         argument of type bool.
20574         * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
20575         argument. Safely select temporary P register according to it.
20576         (do_link): Change call site of add_to_reg accordingly.
20577         (do_unlink): Add epilogue_p as a fourth argument and pass it
20578         to add_to_reg.
20579         (expand_interrupt_handler_epilogue): Change call of do_unlink
20580         accordingly.
20581         (bfin_expand_prologue): Add a third argument sibcall_p.
20582         * config/bfin/bfin.md (epilogue): Change call of
20583         bfin_expand_epilogue accordingly.
20584         (sibcall_epilogue): Likewise.
20585         (eh_return_internal): Likewise.
20586
20587         * config/bfin/bfin-protos.h (enum bfin_cpu): Add
20588         BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
20589         * config/bfin/bfin.c (bfin_handle_option): Handle
20590         -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
20591         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
20592         Support bf534, bf536 and bf561.
20593         * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
20594
20595 2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
20596
20597         PR target/31854
20598         * config/i386/i386.c (ix86_function_regparm): Process local
20599         functions only when TREE_CODE (decl) equals FUNCTION_DECL.
20600
20601 2007-05-07  Mike Stump  <mrs@apple.com>
20602
20603         * doc/invoke.texi (Warning Options): Document that -Wempty-body
20604         also checks for and while statements in C++.
20605
20606 2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
20607
20608         * gcc.c (at_file_supplied): New variable.
20609         (main): Set it if we expanded argv.
20610         (do_spec_1): Pass an @-file to the linker if we were called with
20611         an @-file argument and HAVE_GNU_LD.
20612         * collect2.c (at_file_supplied): New variable.
20613         (response_file): New variable.
20614         (collect_exit): Unlink response_file if necessary.
20615         (handler): Likewise.
20616         (do_wait): Likewise.
20617         (main): Set at_file_supplied if we expanded argv.
20618         (collect_execute): Pass an @-file to subprocesses if we were called
20619         with an @-file argument.
20620         * configure.ac: Add define for HAVE_GNU_LD.
20621         * configure: Regenerate.
20622         * config.in: Regenerate.
20623
20624 2007-05-07  Naveen.H.S  <naveen.hs@kpitcummins.com>
20625
20626         * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
20627         operand to HI mode.
20628         (mulsi3): New.
20629         (divsi3): New.
20630         (udivsi3): New.
20631
20632 2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
20633
20634         * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
20635         (TARGET_ENCODE_SECTION_INFO): Re-define.
20636         (m32c_encode_section_info): New
20637         (function_vector_handler): New
20638         (current_function_special_page_vector): New
20639         (m32c_special_page_vector_p): New.
20640         * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
20641         Prototype.
20642         * config/m32c/jump.md: Added instruction JSRS for functions
20643         with attribute "function_vector".
20644         * doc/extend.texi (function_vector): Added description
20645         for M16C, M32C targets.
20646
20647 2007-05-07  DJ Delorie  <dj@redhat.com>
20648
20649         PR 31794
20650         * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
20651         ashrpsi3, lshrpsi3): Update shift count constraint.
20652
20653 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
20654             Nathan Froyd  <froydnj@codesourcery.com>
20655
20656         PR 22133
20657         * c-incpath.c (add_path): Strip trailing path separators.
20658
20659 2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
20660
20661         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
20662         Free dominance info before purging EH edges.
20663         (eliminate_degenerate_phis): Likewise.
20664         (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
20665
20666 2007-05-07  Jan Hubicka  <jh@suse.cz>
20667
20668         * gimplify.c (gimplify_expr): Do not crash when folding
20669         (void *)(int)&a + 4.
20670
20671 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
20672
20673         PR driver/31694
20674         * c-opts.c (lang_fortran): Make it non static.
20675         * c-common.h (lang_fortran): New prototype.
20676         * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
20677         -lang-fortran option was passed by the driver.
20678
20679 2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
20680
20681         * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
20682         of ASSERT_CHECKING.  Tweak message.
20683
20684 2007-05-06  Revital Eres  <eres@il.ibm.com>
20685
20686         PR 30957
20687         * loop-unroll.c (insert_var_expansion_initialization):
20688         Initialize the expansions with -zero instead of +zero.
20689
20690 2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
20691
20692         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
20693         into pic and non-pic versions. Mark r19 as used for
20694         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
20695         for tgd_load, tld_load and tie_load .
20696         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
20697         version of tgd_load, tld_load and tie_load depending on the
20698         value of flag_pic.
20699
20700 2007-05-04  Ulrich Drepper  <drepper@redhat.com>
20701             Jakub Jelinek  <jakub@redhat.com>
20702
20703         * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
20704         (__do_global_dtors_aux): Use more paranoid loop to run
20705         destructors if HIDDEN_DTOR_LIST_END.
20706         (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
20707
20708 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
20709
20710         * varasm.c (align_variable): Don't increase alignment for
20711         DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
20712         DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
20713
20714 2007-05-04  Josh Conner  <jconner@apple.com>
20715
20716         * basic-block.h (cdi_direction): Assign values to all enumeration
20717         constants.
20718         (dom_computed): Remove.
20719         (dom_info_state): New.
20720         (set_dom_info_availability): New.
20721         * tree-ssa-loop-im.c (determine_invariantness): Initialize
20722         walk_data.dom_direction.
20723         * cfghooks.c (delete_basic_block): Use dom_info_available_p()
20724         instead of dom_computed[].
20725         (split_edge): Likewise.
20726         (create_basic_block): Likewise.
20727         (merge_blocks): Likewise.
20728         * ifcvt.c (find_if_header): Likewise.
20729         * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
20730         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
20731         * tree-ssa.c (verify_ssa): Likewise.
20732         * tree-cfg.c (tree_verify_flow_info): Likewise.
20733         (remove_edge_and_dominated_blocks): Likewise.
20734         * dominance.c (dom_computed): Make static.
20735         (calc_dfs_tree_nonrec): Change third param to a bool.
20736         (calc_dfs_tree): Change second param to a bool.
20737         (calc_idioms): Change second param to a bool.  Use
20738         dom_convert_dir_to_idx.
20739         (init_dom_info): Validate dir before using.
20740         (dom_convert_dir_to_idx): New.
20741         (calculate_dominance_info): Use dom_convert_dir_to_idx.  New
20742         variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
20743         (free_dominance_info): Use dom_convert_dir_to_idx.
20744         (get_immediate_dominator): Likewise.
20745         (set_immediate_dominator): Likewise.
20746         (get_dominated_by): Likewise.
20747         (redirect_immediate_dominators): Likewise.
20748         (nearest_common_denominator): Likewise.
20749         (dominated_by_p): Likewise.
20750         (bb_dom_dfs_in): Likewise.
20751         (bb_dom_dfs_out): Likewise.
20752         (recount_dominator): Likewise.
20753         (iterate_fix_dominators): Likewise.
20754         (add_to_dominance_info): Likewise.
20755         (delete_from_dominance_info): Likewise.
20756         (first_dom_son): Likewise.
20757         (next_dom_son): Likewise.
20758         (dom_info_available_p): Likewise.
20759         (dom_info_state): New.
20760         (set_dom_info_availability): New.
20761
20762 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
20763
20764         * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
20765         Expander removed.
20766         ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
20767
20768 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
20769
20770         * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
20771         (subdi3, subdi_carry): Delete.
20772
20773 2007-05-04  Jan Hubicka  <jh@suse.cz>
20774             Richard Guenther  <rguenther@suse.de>
20775
20776         * opts.c (decode_options): Do not fiddle with inlining
20777         parameters in case of optimizing for size.
20778         * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
20779         for size do nothing.
20780         (cgraph_decide_inlining_of_small_function): When optimizing for
20781         size never inline functions increasing caller size.
20782         (cgraph_early_inlining): Inline for size when optimizing for size.
20783
20784 2007-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
20785
20786         * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
20787         logical operations piecewise.
20788         (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
20789         zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
20790         subdi_sesidi_di): Delete.
20791         (add_with_carry): Produce carry in CC instead of a DREG to shorten
20792         the generated sequence.  Allow three-reg add in constraints.  Rewrite
20793         the rtl expression for carry to avoid zero_extend of a constant.
20794         (sub_with_carry): New pattern.
20795         (adddi3, subdi3): Change into define_expand.  For subtract, generate a
20796         different sequence not involving jumps.
20797         (notbi): Now a named pattern.
20798
20799 2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
20800
20801         * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
20802         Add the note about a significant loss of accuracy of some
20803         mathematical routines when these options are used.
20804
20805 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
20806
20807         * haifa-sched.c (rtx_vec_t): New typedef.
20808         (contributes_to_priority_p): Extract piece of priority () into new
20809         static function.
20810         (priority): Use the function.  Add assertion.
20811         (rank_for_schedule, set_priorities): Add assertion to check that
20812         insn's priority is initialized.
20813         (clear_priorities, calc_priorities): Change signature.  Make it update
20814         all relevant insns.  Update all callers ('add_to_speculative_block ()'
20815         and 'create_block_check_twin ()').
20816         * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
20817         Add new field 'priority_status'.
20818         (INSN_PRIORITY_STATUS): New macro.
20819         (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
20820
20821 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
20822
20823         * sched-ebb.c (debug_ebb_dependencies): New static function.
20824         (init_ready_list): Use it.
20825
20826         * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
20827         with changed signature and 'debug_rgn_dependencies ()'.
20828         (debug_rgn_dependencies): New static function.
20829         (init_ready_list): Use it.
20830
20831         * sched-int.h (debug_dependencies): Declare.
20832
20833 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
20834
20835         * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
20836
20837 2007-05-04  Dirk Mueller  <dmueller@suse.de>
20838
20839         * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
20840
20841 2007-05-03  Jan Hubicka  <jh@suse.cz>
20842
20843         * fold-const.c (fold_unary): Convert (T1)(X op Y) into
20844         ((T1)X op (T1)Y), for pointer type in more cases than before.
20845
20846         * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
20847
20848         * tree-object-size.c (plus_expr_object_size): When operand size is
20849         unknown, return unknown.
20850
20851 2007-05-03  Dirk Mueller  <dmueller@suse.de>
20852
20853         * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
20854
20855         * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
20856         options.
20857
20858         * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
20859
20860 2007-05-03  Janis Johnson  <janis187@us.ibm.com>
20861
20862         * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
20863
20864 2007-05-03  Joseph Myers  <joseph@codesourcery.com>
20865
20866         * config/soft-fp/double.h, config/soft-fp/extended.h,
20867         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
20868         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
20869         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
20870         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
20871         glibc CVS.
20872
20873 2007-05-03  Ian Lance Taylor  <iant@google.com>
20874
20875         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
20876         MASK_PPC_GFXOPT for 8540 or 8548.
20877
20878 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
20879
20880         * tree-vect-transform.c (vect_update_inits_of_drs): Use
20881         vect_print_dump_info() to output debug information.
20882
20883 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
20884
20885         PR target/31768
20886         * config/i386/i386.c (print_operand) ['z']: Output 'w' for
20887         operands of size 2 when operand is not MEM_P.
20888
20889 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
20890
20891         PR tree-optimization/30565
20892         * lambda-code.c (perfect_nestify): Fix updating of dominators.
20893
20894 2007-05-03  Bernd Schmidt  <bernd.schmidt@analog.com>
20895
20896         * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
20897         (umulsi3_highpart): Use them.
20898         * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
20899         for final accumulator to D regisster tranfser.
20900
20901 2007-05-03  Dorit Nuzman  <dorit@il.ibm.com>
20902
20903         PR tree-optimization/31699
20904         * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
20905         wrong code.
20906         (vect_enhance_data_refs_alignment): Compute peel amount using
20907         TYPE_VECTOR_SUBPARTS instead of vf.
20908         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
20909
20910 2007-05-02  Brooks Moses  <brooks.moses@codesourcery.com>
20911
20912         PR bootstrap/31776
20913         * system.h: Remove inclusion of double-int.h
20914         * tree.h: Include double-int.h
20915         * gengtype.c: Likewise
20916         * cfgloop.h: Likewise
20917         * Makefile.in: Adjust dependencies on double-int.h
20918
20919 2007-05-02  Eric Christopher  <echristo@apple.com>
20920
20921         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
20922         -shared to -Zdynamiclib.
20923
20924 2007-05-02  Seongbae Park  <seongbae.park@gmail.com>
20925
20926         PR c++/31663
20927         * c-common.c (strip_pointer_or_array_types): New function.
20928         * c-common.h (strip_pointer_or_array_types): New function declaration.
20929
20930 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
20931
20932         PR tree-optimization/31771
20933         * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
20934
20935 2007-05-02  Paul Brook  <paul@codesourcery.com>
20936
20937         * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
20938
20939 2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20940
20941         PR middle-end/29715
20942         * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
20943         transformation.
20944
20945 2007-05-02  Nick Clifton  <nickc@redhat.com>
20946
20947         * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
20948
20949 2007-05-02  Richard Guenther  <rguenther@suse.de>
20950
20951         PR tree-optimization/31146
20952         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
20953         argument, single_use_p.  If we have a single use that is
20954         a conversion to the definition rhs type, propagate that rhs.
20955         (forward_propagate_addr_expr): Pass single_use_p argument
20956         to forward_propagate_addr_expr_1.
20957
20958 2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20959
20960         * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
20961         variable.
20962
20963 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
20964
20965         * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
20966         'AMD Family 10 core'.
20967
20968 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
20969
20970         * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
20971         and athlon64-sse3 as improved versions of k8, opteron and athlon64
20972         with SSE3 instruction set support.
20973         * doc/invoke.texi: Likewise.
20974
20975 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
20976
20977         * config/i386/i386.c (override_options): Tuning 32-byte loop
20978         alignment for amdfam10 architecture. Increasing the max loop
20979         alignment to 24 bytes.
20980
20981 2007-05-01  Kazu Hirata  <kazu@codesourcery.com>
20982
20983         * config/m68k/constraints.md: New.
20984         * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
20985         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
20986         EXTRA_CONSTRAINT): Remove.
20987         * config/m68k/m68k.md: Include constraints.md.
20988         * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
20989
20990 2007-05-01  Ian Lance Taylor  <iant@google.com>
20991
20992         PR tree-optimization/31739
20993         * tree-vrp.c (vrp_val_is_max): New static function.
20994         (vrp_val_is_min): New static function.
20995         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
20996         copying the node.
20997         (set_value_range): Use vrp_val_is_{max,min}.
20998         (extract_range_from_assert): Likewise.
20999         (extract_range_from_binary_expr): Likewise.
21000         (extract_range_from_unary_expr): Likewise.
21001         (dump_value_range, vrp_meet): Likewise.
21002         (vrp_visit_phi_node): Likewise.
21003         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
21004
21005 2007-05-01  Mark Mitchell  <mark@codesourcery.com>
21006
21007         * config/i386/gmon-sol2.c (size_t): New type.
21008         (intptr_t): Likewise.
21009         (s_textsize): Declare as size_t.
21010         (sbrk): Declare.
21011         (monstartup): Use size_t for sizes.
21012         (_mcount): Save and restore registers.
21013         (internal_mcount): Pass 0 as the first argument to monstartup
21014         in 64-bit mode.
21015         (moncontrol): Convert pointer to appropriately sized integer
21016         before passing to profil.
21017
21018 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
21019
21020         * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
21021         __NO_FPRS__, not just if _SOFT_DOUBLE.
21022         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
21023         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
21024         also for E500 double.
21025         * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
21026         suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
21027         && !TARGET_FPRS).
21028
21029 2007-05-01  Richard Guenther  <rguenther@suse.de>
21030
21031         * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
21032         is NULL.
21033
21034 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
21035
21036         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
21037
21038 2007-05-01  Jan Hubicka  <jh@suse.cz>
21039
21040         * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
21041         invariant.
21042
21043 2007-05-01  Jan Hubicka  <jh@suse.cz>
21044
21045         * tree.h (maybe_fold_offset_to_component_ref): Remove.
21046         (maybe_fold_offset_to_reference): Declare.
21047         * fold-const.c (fold_unary): Do not fold
21048         (type *)&A into &A->field_of_type_and_offset_0
21049         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
21050         size is unknown, give up.
21051         (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
21052         offsets.
21053         (maybe_fold_offset_to_reference): New.
21054         (maybe_fold_stmt_indirect): Use it.
21055         (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
21056         * gimplify.c (gimplify_conversion): Canonicalize conversions to
21057         field references.
21058         (gimplify_expr): Likewise for plus_expr.
21059
21060 2007-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
21061
21062         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
21063         bsi_after_labels.  Always insert statements before bsi.
21064         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
21065         * predict.c (apply_return_prediction): Check for empty blocks.
21066         * cfgexpand.c (lab_rtx_for_bb): New variable.
21067         (label_rtx_for_bb): Do not create new tree labels.
21068         (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
21069         (tree_expand_cfg): Initialize lab_rtx_for_bb.
21070         * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
21071         creating edges.
21072         (label_for_bb): Add field used.
21073         (update_eh_label, main_block_label): Mark the label used.
21074         (cleanup_dead_labels): Remove unused labels.
21075
21076 2007-05-01  Richard Guenther  <rguenther@suse.de>
21077
21078         * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
21079         if it is not about to be set.
21080         (get_value_range): Do not pre-allocate equiv bitmap.
21081         (update_value_range): No need to clear equiv field.
21082         (add_equivalence): Change prototype to get bitmap pointer.
21083         Allocate bitmap here if it is not already.
21084         (extract_range_from_assert): Do not allocate bitmap here.
21085         Update callers to add_equivalence.
21086         (extract_range_from_ssa_name): Likewise.
21087         (get_vr_for_comparison): New static helper.
21088         (compare_name_with_value): Handle NULL equiv bitmap by
21089         peeling the first iteration of the comparison loop.
21090         Use get_vr_for_comparison.
21091         (compare_names): Handle NULL equiv bitmaps by using fake
21092         ones.  Use get_vr_for_comparison.
21093
21094 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
21095
21096         * double-int.c (mpz_set_double_int): Moved from
21097         tree-ssa-loop-niter.c.
21098         (mpz_get_double_int): Likewise; also, add option to wrap
21099         out-of-range integers.
21100         * double-int.h: New prototypes for above.
21101         * tree.c (get_static_type_bounds): Moved from
21102         tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
21103         TYPE_MAX_VALUE if they exist..
21104         * tree.h: New prototype for above.
21105         * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
21106         get_type_bounds calls.
21107         (mpz_set_double_int): Move to double-int.c.
21108         (get_type_bounds): Move to tree.c, rename to
21109         get_static_type_bounds.
21110         (mpz_to_double_int): Move to double-int.c, rename to
21111         mpz_get_double_int.
21112
21113 2007-04-30  Bob Wilson  <bob.wilson@acm.org>
21114
21115         * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
21116         DIV0 exception can fall through to a normal return.
21117
21118 2007-04-30  Alexandre Oliva  <aoliva@redhat.com>
21119
21120         PR middle-end/22156
21121         Temporarily revert:
21122         2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
21123         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
21124         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
21125         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
21126         initialize align to silence bogus warning.
21127         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
21128         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
21129         all_no_warning.
21130         (struct sra_walk_fns): Remove use_all parameter from use.
21131         (sra_hash_tree): Handle BIT_FIELD_REFs.
21132         (sra_elt_hash): Don't hash bitfld blocks.
21133         (sra_elt_eq): Skip them in parent compares as well.  Handle
21134         BIT_FIELD_REFs.
21135         (sra_walk_expr): Don't maintain or pass down use_all_p.
21136         (scan_use): Remove use_all parameter.
21137         (scalarize_use): Likewise.  Re-expand assignment to
21138         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
21139         output, and re-scalarize after output.  Don't mark anything
21140         for no warning.
21141         (scalarize_ldst): Adjust.
21142         (scalarize_walk_gimple_modify_statement): Likewise.
21143         (build_element_name_1): Handle BIT_FIELD_REFs.
21144         (instantiate_element): Don't warn for any element whose parent
21145         is used as a whole.
21146         (instantiate_missing_elements_1): Return the sra_elt.
21147         (canon_type_for_field): New.
21148         (try_instantiate_multiple_fields): New.
21149         (instantiate_missing_elemnts): Use them.
21150         (mark_no_warning): Removed.
21151         (generate_one_element_ref): Handle BIT_FIELD_REFs.
21152         (REPLDUP, sra_build_elt_assignment): New.
21153         (generate_copy_inout): Use them.
21154         (generate_element_copy): Likewise.  Handle bitfld differences.
21155         (generate_element_zero): Don't recurse for blocks.  Use
21156         sra_build_elt_assignment.
21157         (generate_one_element_int): Take elt instead of var.  Use
21158         sra_build_elt_assignment.
21159         (generate_element_init_1): Adjust.
21160         (scalarize_use, scalarize_copy): Use REPLDUP.
21161         (scalarize_ldst): Move assert before dereference.
21162         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
21163
21164 2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21165
21166         PR C++/31721
21167         * tree.c (reconstruct_complex_type): Reconstruct a reference
21168         correctly.
21169         Also use the same mode for the pointer as the old pointer type.
21170
21171 2007-04-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
21172
21173         * doc/trouble.texi (Interoperation): Remove note about Ultrix
21174         Fortran compiler.
21175
21176 2007-04-29  Zdenek Dvorak  <dvorakz@suse.cz>
21177
21178         PR rtl-optimization/31676
21179         * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
21180         (df_refs_record): Call it.
21181
21182 2007-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
21183
21184         * rtl.def (SS_ABS): New code.
21185         * config/bfin/bfin.c (print_operand): New modifier 'v'.
21186         (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
21187         BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
21188         BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
21189         (bfin_init_builtins): Define them.
21190         (bdesc_1arg, bdesc_2arg): Add some of them here, ...
21191         (bfin_expand_builtin): ... and handle the others here.
21192         * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
21193         flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
21194         (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
21195         (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
21196         operand is only HImode.
21197
21198 2007-04-29  Steven Bosscher  <steven@gcc.gnu.org>
21199
21200         * regclass.c (scan_one_insn): Remove splitting of
21201         two address insns.
21202
21203 2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
21204             Nigel Stephens  <nigel@mips.com>
21205
21206         * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
21207
21208 2007-04-28  Jan Hubicka  <jh@suse.cz>
21209
21210         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
21211         insn_locators_alloc instead of insn_locators_initialize;
21212         call reset_block_changes.
21213         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
21214         * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
21215         * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
21216         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
21217         * config/score/score.c (th_output_mi_thunk): Likewise.
21218         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
21219         * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
21220         tolerate uninitialized locator info.
21221
21222         Re-apply:
21223         * function.c (init_function_start): Don't init line number info.
21224         (expand_function_end): Update.
21225         (reset_block_changes, record_block_change, finalize_block_changes,
21226         check_block_change, free_block_changes): Kill.
21227         * function.h (reset_block_changes, record_block_change,
21228         finalize_block_changes, check_block_change, free_block_changes):
21229         Remove prototypes.
21230         (struct function): Remove ib_boundaries_block.
21231         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
21232         Use curr_insn_locator to initialize locator.
21233         (emit_line_note): Remove.
21234         * cfgexpand.c (expand_gimple_cond_expr): Update.
21235         (construct_exit_block): Likewise.
21236         (tree_expand_cfg): Initialize/finalize locators.
21237         * expr.c (expand_expr_real): Update.
21238         * cfglayout.c (line_locators_locs, line_locators_lines,
21239         file_locators_locs, file_locators_files): Remove.
21240         (set_block_levels): Move to cfgexpand.c.
21241         (insn_locators_initialize): Remove.
21242         (pass_insn_locators_initialize): Remove.
21243         (locations_locators_locs, locations_locators_vals): New static vars.
21244         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
21245         Likewise.
21246         (insn_locators_alloc, insn_locators_finalize,
21247         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
21248         New functions.
21249         (locator_location): New.
21250         (locator_line, locator_file): Rewrite.
21251         * rtl.h (emit_line_note): Kill.
21252         (insn_locators_alloc, insn_locators_finalize,
21253         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
21254         Declare.
21255         * tree-inline.c (initialize_cfun): Do not initialize
21256         ib_boundaries_block.
21257         * passes.c (pass_insn_locators_initialize): Remove.
21258
21259 2007-04-28  Zdenek Dvorak  <dvorakz@suse.cz>
21260
21261         * tree-cfg.c (move_block_to_fn): Release bb from dominance
21262         info.  Update last_basic_block correctly.
21263
21264 2007-04-27  Kaz Kojima  <kkojima@gcc.gnu.org>
21265
21266         PR target/31701
21267         * config/sh/sh.c (output_stack_adjust): Avoid using the frame
21268         register itself to hold the offset constant.  Tell flow the use
21269         of r4 and r5 when they are used.
21270
21271 2007-04-27  Richard Guenther  <rguenther@suse.de>
21272
21273         * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
21274         if we simplified anything.
21275         (tree_ssa_forward_propagate_single_use_vars): Defer overflow
21276         warnings until we did a simplification and the stmt was not
21277         marked as TREE_NO_WARNING.
21278
21279 2007-04-27  Mike Stump  <mrs@apple.com>
21280
21281         * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
21282
21283 2007-04-27  Ian Lance Taylor  <iant@google.com>
21284
21285         PR middle-end/31710
21286         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
21287         TYPE_MAX_VALUE exist, convert them to the new type.
21288
21289 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
21290
21291         * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
21292         if it claims to be available.
21293         * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
21294         edge is redirected.
21295         (perform_tree_ssa_dce): Always free postdominators.
21296
21297 2007-04-27  Richard Henderson  <rth@redhat.com>
21298
21299         * config/alpha/predicates.md (aligned_memory_operand): Mark
21300         as define_special_predicate.
21301         (unaligned_memory_operand, normal_memory_operand): Likewise.
21302         (reg_or_unaligned_mem_operand): Remove.
21303         (any_memory_operand): Match the documentation and check for
21304         non-renumbered pseudos during reload.
21305         * config/alpha/alpha.c (alpha_secondary_reload): Rename from
21306         alpha_secondary_reload_class, update to new interface, make static.
21307         Handle CQImode like HImode.  Remove FP subreg check.
21308         (alpha_expand_mov): Use replace_equiv_address.
21309         (alpha_expand_mov_nobwx): Use any_memory_operand.
21310         (TARGET_SECONDARY_RELOAD): New.
21311         * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
21312         (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
21313         * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
21314         * config/alpha/alpha.md: ... here.
21315         (RELOAD12, reloadmode): New.
21316         (movcqi): New.
21317         (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
21318         Don't handle the aligned case here.
21319         (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
21320         (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
21321         reload_inhi_help.  Don't expect a scratch register.
21322         (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
21323         reload_outhi_help.
21324         * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
21325
21326 2007-04-27  Richard Guenther  <rguenther@suse.de>
21327
21328         * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
21329
21330 2007-04-27  Richard Guenther  <rguenther@suse.de>
21331
21332         PR tree-optimization/30965
21333         PR tree-optimization/30978
21334         * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
21335         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
21336         (find_equivalent_equality_comparison): Likewise.
21337         (simplify_cond): Likewise.
21338         (get_prop_source_stmt): New helper.
21339         (get_prop_dest_stmt): Likewise.
21340         (can_propagate_from): Likewise.
21341         (remove_prop_source_from_use): Likewise.
21342         (combine_cond_expr_cond): Likewise.
21343         (forward_propagate_comparison): New function.
21344         (forward_propagate_into_cond): Rewrite to use fold for
21345         tree combining.
21346         (tree_ssa_forward_propagate_single_use_vars): Call
21347         forward_propagate_comparison to propagate comparisons.
21348
21349 2007-04-27  Richard Guenther  <rguenther@suse.de>
21350
21351         PR tree-optimization/31715
21352         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
21353         sure to do computation on the offset in an appropriate
21354         signed type.
21355
21356 2007-04-27  Richard Sandiford  <richard@codesourcery.com>
21357
21358         * reload.h (elimination_target_reg_p): Declare.
21359         * reload.c (find_reloads): Don't apply the reg_rtx move
21360         optimization if the SET_DEST satisfies elimination_target_reg_p.
21361         * reload1.c (elimination_target_reg_p): New function.
21362         (gen_reload): In the move/add2 fallback, make sure that op0
21363         does not overlap the destination register.
21364
21365 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
21366
21367         * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
21368         transform only GIMPLE_MODIFY_STMTs.
21369         * tree-complex.c (expand_complex_operations_1): Ditto.
21370         (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
21371         * tree-ssa-loop-manip.c (build_if_stmt): Removed.
21372         (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
21373         branches.
21374         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
21375         tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
21376         * omp-low.c (expand_parallel_call, expand_omp_for_generic,
21377         expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
21378         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
21379         slpeel_add_loop_guard): Ditto.
21380         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
21381         * lambda-code.c (perfect_nestify): Ditto.
21382         * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
21383         before the first statement.
21384         * tree-optimize.c (execute_free_datastructures): Fix comments.
21385         (execute_free_cfg_annotations): Do not call disband_implicit_edges.
21386         * tree-flow.h (disband_implicit_edges): Declaration removed.
21387         * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
21388         branches.
21389         (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
21390         COND_EXPRs without gotos.
21391         (disband_implicit_edges, has_label_p): Removed.
21392         (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
21393         (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
21394         branches.
21395         * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
21396         side effects.
21397         * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
21398         also for COND_EXPRs.
21399         * cfgexpand.c (label_rtx_for_bb): New function.
21400         (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
21401         Use label_rtx_for_bb to find the labels.
21402         (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
21403         last block.  Detect fallthru edges.
21404
21405 2007-04-26  Ian Lance Taylor  <iant@google.com>
21406
21407         PR target/28675
21408         * reload.c (find_reloads_subreg_address): If the address was valid
21409         in the original mode but not in the new mode, reload the whole
21410         address.
21411
21412 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
21413
21414         * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
21415         (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
21416         (cleanup_control_expr_graph): Do not invalidate dominance info.
21417         Record altered blocks.
21418         (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
21419         (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
21420         cleanup_tree_cfg_bb): New functions.
21421         (remove_forwarder_block): Do not maintain the worklist of blocks.
21422         Record altered blocks.
21423         (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
21424         not over whole cfg.
21425         (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1.  Only call
21426         delete_unreachable_blocks if dominators are not available.
21427         * tree-inline.c (optimize_inline_calls): Free dominance information
21428         earlier.
21429         * tree-flow.h (remove_edge_and_dominated_blocks,
21430         cfgcleanup_altered_bbs): Altered.
21431         * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
21432         blocks.
21433         (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
21434         functions.
21435         (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
21436         do not invalidate dominators.
21437
21438 2007-04-26  Anatoly Sokolov <aesok@post.ru>
21439
21440         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
21441         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
21442         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
21443         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
21444
21445 2007-04-26  Steve Ellcey  <sje@cup.hp.com>
21446
21447         * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
21448
21449 2007-04-26  Richard Guenther  <rguenther@suse.de>
21450
21451         PR tree-optimization/31703
21452         * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
21453         the right type for the target of the bittest.
21454
21455 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
21456
21457         * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
21458         ix86_sol10_return_in_memory.
21459
21460 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
21461
21462         * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
21463         variables.
21464
21465 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
21466
21467         PR c++/31598
21468         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
21469
21470         PR tree-optimization/30558
21471         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
21472         clear this_state.prev_try.
21473
21474 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
21475             Mark Mitchell  <mark@codesourcery.com>
21476
21477         * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
21478         * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
21479         * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
21480
21481 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
21482
21483         PR driver/31107
21484         * doc/invoke.texi (%:print-asm-header): Document.
21485         * gcc.c (asm_options): Use %:print-asm-header() for --target-help
21486         and -ftarget-help.
21487         (static_spec_functions): Add print-asm-header.
21488         (main): Print a banner before the --target-help linker options.
21489         (print_asm_header_spec_function): New function.
21490
21491 2007-04-25  Kaz Kojima  <kkojima@gcc.gnu.org>
21492
21493         PR target/31403
21494         * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
21495         (movsf_ie): Likewise.
21496
21497 2007-04-25  Paolo Carlini  <pcarlini@suse.de>
21498
21499         * doc/extend.texi ([Type Traits]): Adjust per N2255.
21500
21501 2007-04-25  Bob Wilson  <bob.wilson@acm.org>
21502
21503         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
21504         exception for divide-by-zero.
21505         (__umodsi3, __modsi3): Likewise.
21506
21507 2007-04-25  Dirk Mueller  <dmueller@suse.de>
21508
21509         * c-typeck.c (build_compound_expr): Annotate warning()
21510         call with OPT_Wunused_value.
21511         * tree-ssa.c (warn_uninit): Annotate warning with
21512         OPT_Wunintialized.
21513         * c-common.c (handle_sentinel_attribute): Annotate warning
21514         call with OPT_Wattributes.
21515
21516 2007-04-25  Thiemo Seufer  <ths@mips.com>
21517
21518         * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
21519         (mips16): Fix typo.
21520         * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
21521         on to the assembler.  Improve handling of -mno-mips16.  Add handling
21522         of -mno-mips3d, -mno-dsp, -mno-dspr2.
21523         * doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
21524         of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
21525         -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
21526
21527 2007-04-25  Danny Smith  <dannysmith.users.sourceforge.net>
21528
21529         PR target/31680
21530         * config/i386/winnt.c (i386_pe_file_end): Strip only
21531         USER_LABEL_PREFIX when writing export name.
21532
21533 2007-04-25  Richard Sandiford  <richard@codesourcery.com>
21534
21535         * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
21536         sh/elf.h, vx-common.h and vxworks.h.
21537         * config/sh/sh.h: Include config/vxworks-dummy.h.
21538         (SUBTARGET_OVERRIDE_OPTIONS): Define.
21539         (OVERRIDE_OPTIONS): Use it.
21540         * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
21541         (vxworks_picreg): New pattern.
21542         * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
21543         VXWORKS_OS_CPP_BUILTINS.
21544         (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
21545         to their VXWORKS_* equivalents.
21546         (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
21547         (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
21548         * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
21549         (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
21550         * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
21551         -mrtp/-fPIC multilibs.
21552         (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
21553         (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
21554         (MULTILIB_OSDIRNAMES): Delete.
21555
21556 2007-04-25  Anatoly Sokolov <aesok@post.ru>
21557
21558         PR target/18989
21559         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
21560
21561 2007-04-24  Brooks Moses  <brooks.moses@codesourcery.com>
21562
21563         * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
21564         rounding mode to be specified by the caller.
21565         (real_to_mpfr) Likewise.
21566         * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
21567         include new arguments.
21568         * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
21569
21570 2007-04-24  Ian Lance Taylor  <iant@google.com>
21571
21572         PR tree-optimization/31605
21573         * tree-vrp.c (set_value_range): Check that min and max are not
21574         both overflow infinities.
21575         (set_value_range_to_value): New static function.
21576         (extract_range_from_binary_expr): Call set_value_range_to_value.
21577         (extract_range_from_cond_expr): Likewise.
21578         (extract_range_from_expr): Likewise.
21579         (extract_range_from_unary_expr): Likewise.  Don't create a range
21580         which overflows on both sides.
21581         (vrp_meet): Check for a useless range.
21582         (vrp_visit_phi_node): If we see a constant which looks like an
21583         overflow infinity, turn off the TREE_OVERFLOW flag.
21584
21585 2007-04-24  Ian Lance Taylor  <iant@google.com>
21586
21587         * flow.c (elim_reg_cond): Handle a comparison of a subreg.
21588
21589 2007-04-24  Simon Martin  <simartin@users.sourceforge.net>
21590
21591         PR diagnostic/25923
21592         * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
21593         diagnostic message is being built.
21594         * tree-pretty-print.c (dump_generic_node): Only write the
21595         formatted text into BUFFER's stream if we are not building a
21596         diagnostic message.
21597         * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
21598         dump_generic_node.
21599         * Makefile.in (toplev.o): Depend on tree-pass.h.
21600
21601 2007-04-24  Ian Lance Taylor  <iant@google.com>
21602
21603         PR tree-optimization/31602
21604         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
21605         conditionals in the copied loop header.
21606         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
21607         warnings if TREE_NO_WARNING is set.
21608         * doc/invoke.texi (Warning Options): Clarify that
21609         -Wstrict-overflow does not warn about loops.
21610
21611 2007-04-24  Janis Johnson  <janis187@us.ibm.com>
21612
21613         * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
21614         expand on the comment about _Decimal128 arguments and check the
21615         integer result of the modulus operation; for 64-bit ELF ABI, ensure
21616         that _Decimal128 argument uses even/odd register pair.
21617         (function_arg): Ditto.
21618
21619 2007-04-24  Hui-May Chang <hm.chang@apple.com>
21620
21621         * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
21622         instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
21623
21624 2007-04-24  Richard Guenther  <rguenther@suse.de>
21625             Olga Golovanevsky  <olga@il.ibm.com>
21626
21627         * fold-const.c (multiple_of_p): Check for bottom
21628         to be zero.
21629
21630 2007-04-24  Richard Henderson  <rth@redhat.com>
21631
21632         * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
21633         IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
21634         * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
21635         looking for non-zero bits shifted out.  Avoid a recursive call
21636         when constructing the scalar.
21637         (__floatundisf): Likewise.
21638
21639 2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
21640
21641         * dwarf2out.c (field_byte_offset): Move the existing logic
21642         under the control of PCC_BITFIELD_TYPE_MATTERS and just use
21643         the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
21644
21645 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
21646
21647         PR target/31641
21648         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
21649         length argument of 0 for memset.
21650         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
21651         unsigned shift instead of the signed variant.
21652
21653 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
21654
21655         * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
21656         "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
21657         "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
21658         "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
21659         "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
21660         "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
21661         "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
21662         "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
21663         "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
21664         ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
21665         "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
21666         "mul<mode>3", "div<mode>3"): Insn definitions added.
21667         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
21668         "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
21669         to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
21670         ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
21671         "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
21672         "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
21673         ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
21674         * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
21675         TARGET_FLOAT_FORMAT): Macro definitions removed.
21676         (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
21677         * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
21678         z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
21679         (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
21680         (s390_gen_rtx_const_DI): Function removed.
21681         * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
21682
21683 2007-04-24  Richard Sandiford  <richard@codesourcery.com>
21684
21685         * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
21686         over an external ffs function.
21687
21688 2007-04-24  Chao-ying Fu  <fu@mips.com>
21689             Richard Sandiford  <richard@nildram.co.uk>
21690
21691         * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
21692         * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
21693         (smadd_widen_optab, umadd_widen_optab): Define.
21694         * optabs.c (init_optabs): Initialize smadd_widen_optab and
21695         umadd_widen_optab.
21696         * genopinit.c (optabs): Fill in smadd_widen_optab and
21697         umadd_widen_optab.
21698         * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
21699         and umadd_widen_optab to implement multiply-add sequences.
21700         * config/mips/mips.md (*<su>mul_acc_di): Rename to...
21701         (<u>maddsidi4): ...this.  Extend condition to include
21702         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
21703         of operand 0 to "ka" and use the three-operand form of madd<u>
21704         for TARGET_DSPR2.
21705         * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
21706         to define_expands.
21707         * config/mips/constraints.md (ka): New register constraint.
21708
21709 2007-04-24  Jan Hubicka  <j@suse.cz>
21710
21711         Revert:
21712
21713         2007-04-23  Jan Hubicka  <jh@suse.cz>
21714         * function.c (init_function_start): Don't init line number info.
21715         (expand_function_end): Update.
21716         (reset_block_changes, record_block_change, finalize_block_changes,
21717         check_block_change, free_block_changes): Kill.
21718         * function.h (reset_block_changes, record_block_change,
21719         finalize_block_changes, check_block_change, free_block_changes):
21720         Remove prototypes.
21721         (struct function): Remove ib_boundaries_block.
21722         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
21723         Use curr_insn_locator to initialize locator.
21724         (emit_line_note): Remove.
21725         * cfgexpand.c (expand_gimple_cond_expr): Update.
21726         (construct_exit_block): Likewise.
21727         (tree_expand_cfg): Initialize/finalize locators.
21728         * expr.c (expand_expr_real): Update.
21729         * cfglayout.c (line_locators_locs, line_locators_lines,
21730         file_locators_locs, file_locators_files): Remove.
21731         (set_block_levels): Move to cfgexpand.c.
21732         (insn_locators_initialize): Remove.
21733         (pass_insn_locators_initialize): Remove.
21734         (locations_locators_locs, locations_locators_vals): New static vars.
21735         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
21736         Likewise.
21737         (insn_locators_alloc, insn_locators_finalize,
21738         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
21739         New functions.
21740         (locator_location): New.
21741         (locator_line, locator_file): Rewrite.
21742         * rtl.h (emit_line_note): Kill.
21743         (insn_locators_alloc, insn_locators_finalize,
21744         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
21745         Declare.
21746         * tree-inline.c (initialize_cfun): Do not initialize
21747         ib_boundaries_block.
21748         * passes.c (pass_insn_locators_initialize): Remove.
21749
21750 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
21751
21752         * doc/invoke.texi: Removed leading '-' from option index entries.
21753
21754 2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
21755
21756         * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
21757         Use phi_nodes_ptr.
21758         (create_phi_node): Use set_phi_nodes.
21759         * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
21760         * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
21761         (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
21762         * tree-flow-inline.h (phi_nodes, set_phi_nodes,
21763         (bsi_start, bsi_last): Use bb_stmt_list.
21764         (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
21765         * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
21766         Traverse the statements using tsi iterator.
21767         * basic-block.h (struct basic_block_def): Fields stmt_list
21768         and phi_nodes moved to ...
21769         (struct tree_bb_info): ... new structure.
21770         * tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
21771         (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
21772         (remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
21773         (tree_verify_flow_info): Verify that il.tree is not set for
21774         entry and exit block.
21775         (tree_split_block): Use set_bb_stmt_list.
21776
21777 2007-04-23  Mike Stump  <mrs@apple.com>
21778
21779         * config/i386/i386.c (ix86_tune_features
21780         [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
21781         nocona and core2.
21782
21783 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
21784
21785         * config/i386/i386.md (prefix_extra): New attribute.
21786         (length): Add prefix_extra.
21787
21788         * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
21789         (sse2_movntv2di): Likewise.
21790         (sse2_cvtps2dq): Likewise.
21791         (sse2_cvtpd2pi): Likewise.
21792         (sse2_cvttpd2pi): Likewise.
21793         (*sse2_cvtpd2ps): Likewise.
21794         (*add<mode>3): Likewise.
21795         (sse2_ssadd<mode>3): Likewise.
21796         (sse2_usadd<mode>3): Likewise.
21797         (*sub<mode>3): Likewise.
21798         (sse2_sssub<mode>3): Likewise.
21799         (sse2_ussub<mode>3): Likewise.
21800         (*mulv8hi3): Likewise.
21801         (*smulv8hi3_highpart): Likewise.
21802         (*umulv8hi3_highpart): Likewise.
21803         (sse2_umulv2siv2di3): Likewise.
21804         (sse2_pmaddwd): Likewise.
21805         (ashr<mode>3): Likewise.
21806         (lshr<mode>3): Likewise.
21807         (ashl<mode>3): Likewise.
21808         (sse2_ashlti3): Likewise.
21809         (sse2_lshrti3): Likewise.
21810         (*umaxv16qi3): Likewise.
21811         (*smaxv8hi3): Likewise.
21812         (*uminv16qi3): Likewise.
21813         (*sminv8hi3): Likewise.
21814         (sse2_eq<mode>3): Likewise.
21815         (sse2_gt<mode>3): Likewise.
21816         (*and<mode>3): Likewise.
21817         (sse2_nand<mode>3): Likewise.
21818         (*ior<mode>3): Likewise.
21819         (*xor<mode>3): Likewise.
21820         (sse2_packsswb): Likewise.
21821         (sse2_packssdw): Likewise.
21822         (sse2_packuswb): Likewise.
21823         (sse2_punpckhbw): Likewise.
21824         (sse2_punpcklbw): Likewise.
21825         (sse2_punpckhwd): Likewise.
21826         (sse2_punpcklwd): Likewise.
21827         (sse2_punpckhdq): Likewise.
21828         (sse2_punpckldq): Likewise.
21829         (sse2_punpckhqdq): Likewise.
21830         (sse2_punpcklqdq): Likewise.
21831         (*sse2_pinsrw): Likewise.
21832         (*sse2_pextrw): Likewise.
21833         (sse2_pshufd_1): Likewise.
21834         (sse2_uavgv16qi3): Likewise.
21835         (sse2_uavgv8hi3): Likewise.
21836         (sse2_psadbw): Likewise.
21837         (sse2_pmovmskb): Likewise.
21838         (*sse2_maskmovdqu): Likewise.
21839         (*sse2_maskmovdqu_rex64): Likewise.
21840         (sse4a_extrqi): Likewise.
21841         (sse4a_extrq): Likewise.
21842         (sse3_lddqu): Set prefix_rep.
21843         (sse3_addsubv4sf3): Likewise.
21844         (sse3_haddv4sf3): Likewise.
21845         (sse3_hsubv4sf3): Likewise.
21846         (sse_cvtss2si): Likewise.
21847         (sse_cvtss2si_2): Likewise.
21848         (sse_cvtss2siq): Likewise.
21849         (sse_cvtss2siq_2): Likewise.
21850         (sse_cvttss2si): Likewise.
21851         (sse_cvttss2siq): Likewise.
21852         (sse2_cvttps2dq): Likewise.
21853         (sse3_movshdup): Likewise.
21854         (sse3_movsldup): Likewise.
21855         (sse2_cvtsd2si): Likewise.
21856         (sse2_cvtsd2si_2): Likewise.
21857         (sse2_cvtsd2siq): Likewise.
21858         (sse2_cvtsd2siq_2): Likewise.
21859         (sse2_cvttsd2si): Likewise.
21860         (sse2_cvttsd2siq): Likewise.
21861         (*sse2_cvtpd2dq): Likewise.
21862         (*sse2_cvttpd2dq): Likewise.
21863         (sse2_pshuflw_1): Likewise.
21864         (sse2_pshufhw_1): Likewise.
21865         (sse4a_insertqi): Likewise.
21866         (sse4a_insertq): Likewise.
21867         (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
21868         (ssse3_phadddv4si3): Likewise.
21869         (ssse3_phaddswv8hi3): Likewise.
21870         (ssse3_phsubwv8hi3): Likewise.
21871         (ssse3_phsubdv4si3): Likewise.
21872         (ssse3_phsubswv8hi3): Likewise.
21873         (ssse3_pmaddubswv8hi3): Likewise.
21874         (ssse3_pmulhrswv8hi3): Likewise.
21875         (ssse3_pshufbv16qi3): Likewise.
21876         (ssse3_psign<mode>3): Likewise.
21877         (ssse3_palignrti): Likewise.
21878         (abs<mode>2): Likewise.
21879         (ssse3_phaddwv4hi3): Set prefix_extra.
21880         (ssse3_phadddv2si3): Likewise.
21881         (ssse3_phaddswv4hi3): Likewise.
21882         (ssse3_phsubwv4hi3): Likewise.
21883         (ssse3_phsubdv2si3): Likewise.
21884         (ssse3_phsubswv4hi3): Likewise.
21885         (ssse3_pmaddubswv4hi3): Likewise.
21886         (ssse3_pmulhrswv4hi3): Likewise.
21887         (ssse3_pshufbv8qi3): Likewise.
21888         (ssse3_psign<mode>3): Likewise.
21889         (ssse3_palignrdi): Likewise.
21890         (abs<mode>2): Likewise.
21891         (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
21892         (*vec_dupv2df): Set mode to V2DF instead of V4SF.
21893         (sse2_pmovmskb): Set mode to SI instead of V2DF.
21894
21895 2007-04-23  Nick Clifton  <nickc@redhat.com>
21896
21897         * params.def: Fix formatting of emacs local variables.
21898
21899 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
21900
21901         * config/i386/sse.md (sse2_stored): Don't split to inter-unit
21902         move if inter-unit move isn't allowed.
21903         Don't split moving the first element of V2DI to DI to inter-unit
21904         move if inter-unit move isn't allowed.
21905
21906 2007-04-23  Richard Guenther  <rguenther@suse.de>
21907
21908         * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
21909         and CDI_POST_DOMINATORS separately.
21910
21911 2007-04-23  Nick Clifton  <nickc@redhat.com>
21912
21913         * c.opt (Wformat-contains-nul): Add warning attribute.
21914
21915 2007-04-23  Jan Hubicka  <jh@suse.cz>
21916
21917         * function.c (init_function_start): Don't init line number info.
21918         (expand_function_end): Update.
21919         (reset_block_changes, record_block_change, finalize_block_changes,
21920         check_block_change, free_block_changes): Kill.
21921         * function.h (reset_block_changes, record_block_change,
21922         finalize_block_changes, check_block_change, free_block_changes):
21923         Remove prototypes.
21924         (struct function): Remove ib_boundaries_block.
21925         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
21926         Use curr_insn_locator to initialize locator.
21927         (emit_line_note): Remove.
21928         * cfgexpand.c (expand_gimple_cond_expr): Update.
21929         (construct_exit_block): Likewise.
21930         (tree_expand_cfg): Initialize/finalize locators.
21931         * expr.c (expand_expr_real): Update.
21932         * cfglayout.c (line_locators_locs, line_locators_lines,
21933         file_locators_locs, file_locators_files): Remove.
21934         (set_block_levels): Move to cfgexpand.c.
21935         (insn_locators_initialize): Remove.
21936         (pass_insn_locators_initialize): Remove.
21937         (locations_locators_locs, locations_locators_vals): New static vars.
21938         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
21939         Likewise.
21940         (insn_locators_alloc, insn_locators_finalize,
21941         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
21942         New functions.
21943         (locator_location): New.
21944         (locator_line, locator_file): Rewrite.
21945         * rtl.h (emit_line_note): Kill.
21946         (insn_locators_alloc, insn_locators_finalize,
21947         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
21948         Declare.
21949         * tree-inline.c (initialize_cfun): Do not initialize
21950         ib_boundaries_block.
21951         * passes.c (pass_insn_locators_initialize): Remove.
21952
21953 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21954
21955         PR middle-end/31448
21956         * expr.c (reduce_to_bit_field_precision): Handle
21957         CONST_INT rtx's.
21958
21959 2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
21960
21961         PR tree-optimization/24659
21962         * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
21963         OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
21964         (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
21965         * genopinit.c (optabs): Rename vec_pack_mod_optab
21966         to vec_pack_trunc_optab.
21967         * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
21968         early for scalar floating point operands for NOP_EXPR.
21969         (vectorizable_type_promotion): Ditto.
21970         * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
21971         vec_pack_trunc_optab.
21972         (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
21973
21974         * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
21975         * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
21976         Rename from VEC_PACK_MOD_EXPR.
21977         (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
21978         * expr.c (expand_expr_real_1): Ditto.
21979         * tree-inline.c (estimate_num_insns_1): Ditto.
21980         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
21981
21982         * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
21983         (vec_unpacks_lo_v4sf): Ditto.
21984         (vec_pack_trunc_v2df): Ditto.
21985         (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
21986         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
21987         (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
21988
21989         * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
21990         vec_pack_mod_v8hi.
21991         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
21992
21993         * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
21994         Rename from VEC_PACK_MOD_EXPR.  This expression also represent
21995         packing of floating point operands.
21996         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
21997         represent unpacking of floating point operands.
21998         * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
21999         [vec_unpacks_hi]: Ditto.
22000         [vec_unpacks_lo]: Ditto.
22001
22002 2007-04-22  Jan Hubicka  <jh@suse.cz>
22003
22004         * final.c (rest_of_handle_final): Call
22005         targetm.asm_out.constructor/targetm.asm_out.destructor
22006         * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
22007         proper priority via decl_*_priority_insert.
22008         * c-common.c (c_expand_body): Likewise.
22009
22010 2007-04-22  Richard Guenther  <rguenther@suse.de>
22011
22012         PR tree-optimization/29789
22013         * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
22014         (rewrite_reciprocal): New helper split out from
22015         determine_invariantness_stmt.
22016         (rewrite_bittest): Likewise.
22017         (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
22018         A & (1 << B) if (1 << B) is loop invariant but (A >> B)
22019         is not.
22020
22021 2007-04-22  Revital Eres  <eres@il.ibm.com>
22022
22023         * loop-unroll.c (var_to_expand): New field to support also
22024         insns of the form x = something + x.
22025         (analyze_insn_to_expand_var): Use it.
22026         (expand_var_during_unrolling): Likewise.
22027
22028 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
22029
22030         * predict.c: Include pointer-set.h.
22031         (bb_predictions): New variable.
22032         (tree_predicted_by_p, tree_predict_edge,
22033         remove_predictions_associated_with_edge): Use bb_predictions map
22034         instead of bb->predictions.
22035         (clear_bb_predictions, assert_is_empty): New functions.
22036         (combine_predictions_for_bb): Use bb_predictions map.  Call
22037         clear_bb_predictions.
22038         (tree_estimate_probability): Create and free bb_predictions map.
22039         * Makefile.in (predict.o): Add pointer-set.h dependency.
22040         * basic-block.h (struct basic_block_def): Remove predictions
22041         field.
22042         * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
22043
22044 2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
22045
22046         PR target/31480
22047         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
22048         is null.
22049
22050 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22051
22052         * timevar.c (timevar_print): Change reference of --disable-checking to
22053         --enable-checking=release.  Also warn if assert checking is disabled.
22054
22055 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22056
22057         PR C/30265
22058         * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
22059         decl as addressable if the compound literal was marked as
22060         addressable.
22061         Mark the decl as a gimple register if it is a complex or
22062         vector decl and does not live in memory.
22063
22064 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22065
22066         * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
22067         (GENERIC_NEXT): New function macro.
22068         (PHI_CHAIN): Use phi_node's new chain variable.
22069         (tree_phi_node): Change tree_common to tree_base
22070         and add the chain field.
22071         * tree-phinodes.c (make_phi_node): Don't set
22072         TREE_TYPE on the new node.
22073         * c-decl.c (lang_tree_node): Use GENERIC_NEXT
22074         instead of checking GIMPLE_TUPLE_P in chain_next.
22075         * tree-vect-transform.c
22076         (get_initial_def_for_induction): Look at
22077         PHI_RESULT_TREE for the type of the phi node.
22078         (update_vuses_to_preheader): Use PHI_CHAIN
22079         instead of TREE_CHAIN on the phi node.
22080         * tree-ssa-structalias.c (compute_points_to_sets):
22081         Likewise.
22082         (ipa_pta_execute): Likewise.
22083
22084 2007-04-21  Richard Guenther  <rguenther@suse.de>
22085
22086         PR middle-end/31136
22087         * fold-const.c (fold_unary): Call fold_convert_const on the
22088         original tree.
22089
22090 2007-04-21  Alexandre Oliva  <aoliva@redhat.com>
22091
22092         * gcse.c (store_killed_in_insn): Handle PARALLELs.
22093         (store_killed_in_pat): New.
22094
22095 2007-04-20  Richard Henderson  <rth@redhat.com>
22096
22097         PR target/31628
22098         * config/i386/i386.c (type_has_variadic_args_p): Look for any
22099         TREE_LIST with a void_type_node value, not void_list_node exactly.
22100
22101 2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>
22102
22103         * doc/standards.texi: Re-arrange into language-specific
22104         subsections. Add a C++ section, documenting which standards we
22105         support.
22106
22107 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
22108
22109         * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
22110         * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
22111
22112 2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
22113
22114         * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
22115         ecrti.o and crtbegin.o.
22116         (LIB_DEFAULT_SPEC): Include -lc.
22117         (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
22118
22119 2007-04-20  Richard Henderson  <rth@redhat.com>
22120
22121         PR target/28623
22122         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
22123         argument; update all callers.
22124         (get_unaligned_offset): New.
22125         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
22126         get_unaligned_address, just pass on the address directly.
22127         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
22128         the subreg in the helper patterns.
22129         (unaligned_extendqidi_le): Use get_unaligned_offset.
22130         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
22131         (unaligned_extendhidi_be): Likewise.
22132         (unaligned_extendhidi): Tidy.
22133         * config/alpha/alpha-protos.h: Update.
22134
22135 2007-04-20  Richard Henderson  <rth@redhat.com>
22136
22137         * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
22138         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
22139         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
22140         * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
22141         * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
22142         (CPP_SPEC): Don't include %(cpp_subtarget).
22143         * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
22144         (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
22145         * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
22146
22147 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
22148
22149         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
22150         for __builtin_ia32_cmpordss.
22151
22152         PR tree-optimization/31632
22153         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
22154         and arg1 for optimizations of comparison against min/max values.
22155         Fold arg0 to arg1's type for optimizations of comparison against
22156         min+1 and max-1 values.
22157
22158 2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>
22159
22160         * reload.c (combine_reloads): When trying to use a dying register,
22161         check whether it's uninitialized and don't use if so.
22162
22163 2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>
22164
22165         * fold-const.c: Remove prototypes for native_encode_expr and
22166         native_interpret_expr.
22167         (native_encode_expr): Make non-static.
22168         (native_interpret_expr): Likewise.
22169         * tree.h: Add prototypes for the above.
22170
22171 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
22172
22173         * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
22174         *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
22175         *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
22176         spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
22177         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
22178         Add length attributes.
22179
22180 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
22181
22182         * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
22183         not that it is 1.
22184
22185         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
22186         __STDC_WANT_DEC_FP__.
22187
22188 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
22189
22190         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
22191         for long double compatibility.
22192         * configure: Regenerate.
22193
22194 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
22195
22196         PR rtl-optimization/29841
22197         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
22198         trap instructions.
22199         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
22200         that may cause control flow transfer from being moved.
22201
22202 2007-04-18  Jan Hubicka  <jh@suse.cz>
22203
22204         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
22205         types.
22206
22207 2007-04-18  Eric Christopher  <echristo@apple.com>
22208
22209         * config/rs6000/darwin.md (load_macho_picbase): Use link register
22210         only. Update operands.
22211         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
22212         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
22213         link register to pic register.
22214
22215 2007-04-18  Dirk Mueller  <dmueller@suse.de>
22216
22217         PR diagnostic/31227
22218         * tree-vrp.c (search_for_addr_array): New.
22219         (check_array_bounds): Suppress warning about
22220         address taken of array refs if its not de-referenced.
22221
22222 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
22223
22224         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
22225         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
22226
22227         * tree-vectorizer.h (NITERS_KNOWN_P): New.
22228         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
22229         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
22230
22231         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
22232         dump print.
22233         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
22234         print message.
22235         (vect_analyze_scalar_cycles): Fix indentation.
22236         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
22237         (vect_mark_relevant): Include phis in relevance analysis.
22238
22239         * tree-vect-transform.c (vect_transform_loop): Add an assert.
22240
22241 2007-04-18  Anatoly Sokolov <aesok@post.ru>
22242
22243         * config/avr/avr.c (ptrreg_to_str): Replace error() with
22244         output_operand_lossage().
22245
22246 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
22247
22248         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
22249         the unused code for reduction without adjust-in-epilog to simplify the
22250         function.
22251
22252 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
22253
22254         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
22255         (S390_TDC_NEGATIVE_ZERO): New constant.
22256         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
22257         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
22258         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
22259         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
22260         (S390_TDC_POSITIVE_INFINITY): New constant.
22261         (S390_TDC_NEGATIVE_INFINITY): New constant.
22262         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
22263         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
22264         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
22265         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
22266         (S390_TDC_INFINITY): New constant.
22267         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
22268         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
22269         optimization for UNSPEC_CCZ_TO_INT.
22270         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
22271         ("*ccz_to_int"): New insn.
22272         ("isinf<mode>2"): New insn.
22273         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
22274         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
22275         (UNSPEC_CCZ_TO_INT): New constant.
22276
22277 2007-04-18  Richard Guenther  <rguenther@suse.de>
22278
22279         PR tree-optimization/19431
22280         PR tree-optimization/21463
22281         * tree-pass.h (pass_phiprop): Declare.
22282         * passes.c (init_optimization_passes): New phiprop pass.
22283         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
22284         (phivn_valid_p): New helper function.
22285         (phiprop_insert_phi): Likewise.
22286         (propagate_with_phi): Likewise.
22287         (tree_ssa_phiprop): New propagator propagating loads
22288         through phi nodes if profitable.
22289
22290 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
22291
22292         * tree-vect-analyze.c (process_use): New function.
22293         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
22294         Check phis in all bbs.
22295         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
22296         assert.
22297
22298 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
22299
22300         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
22301         we use REG_EQUAL.
22302
22303 2007-04-17  Anatoly Sokolov <aesok@post.ru>
22304
22305         PR target/30483
22306         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
22307         error().
22308
22309 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
22310
22311         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
22312         on "0".
22313         (sse_vmmulv4sf3): Likewise.
22314         (sse2_vmaddv2df3): Likewise.
22315         (sse2_vmmulv2df3): Likewise.
22316
22317 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
22318
22319         PR rtl-optimization/31360
22320         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
22321         (target_reg_cost): New.
22322         (init_set_costs): Initialize target_reg_cost.  Add comments
22323         regarding the rationale of the costs.
22324         (global_cost_for_size): Renamed to...
22325         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
22326         of register pressure.
22327         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
22328         estimate_reg_pressure_cost.  Add number of ivs.
22329         (determine_set_costs): Dump target_reg_cost.
22330         * loop-invariant.c (gain_for_invariant): Use
22331         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
22332         (best_gain_for_invariant, find_invariants_to_move): Remove
22333         n_inv_uses.
22334         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
22335         (target_reg_cost): Declare.
22336         (global_cost_for_size): Declaration removed.
22337         (estimate_reg_pressure_cost): Declare.
22338
22339 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
22340
22341         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
22342         regnos into even/odd register pairs.
22343         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
22344         TDmode similar to the other floating point modes.
22345         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
22346         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
22347         define_expand's.
22348         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
22349         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
22350         (movdd_hardfloat64): Use TARGET_MFPGPR.
22351
22352 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
22353
22354         * reload1.c (delete_output_reload): Don't count output in n_inherited.
22355
22356         Revert
22357         2005-01-05  Richard Henderson  <rth@redhat.com>
22358         PR rtl-opt/10692
22359         * reload1.c (do_input_reload): Restrict the optimization deleteing
22360         a previous output reload to RELOAD_FOR_INPUT.
22361
22362 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
22363
22364         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
22365         induc_vec_info_type.
22366         (vectorizable_induction): New function declaration.
22367         * tree-vect-transform.c (get_initial_def_for_induction): No need to
22368         check if already vectorized.  Find first place in BB where new stmts
22369         can be inserted.  Takes only one argument.
22370         (vectorizable_induction): New function.
22371         (vect_transform_stmt): Add case for induc_vec_info_type to call
22372         vectorizable_induction.
22373         (vect_transform_loop): Consider phis for vectorization.
22374         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
22375         condition.
22376         (analyze_operations): Call vectorizable_induction when analyzing phis.
22377         Fix comment.
22378         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
22379         (vect_mark_relevant): Include phis in relevance analysis.
22380         (vect_mark_stmts_to_be_vectorize): Likewise.
22381         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
22382
22383 2007-04-16  Lawrence Crowl  <crowl@google.com>
22384
22385         * doc/invoke.texi (Debugging Options): Add documentation for the
22386         -femit-struct-debug options -femit-struct-debug-baseonly,
22387         -femit-struct-debug-reduced, and
22388         -femit-struct-debug-detailed[=...].
22389
22390         * c-opts.c (c_common_handle_option): Add
22391         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
22392         and OPT_femit_struct_debug_detailed_.
22393         * c.opt: Add specifications for
22394         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
22395         and -femit-struct-debug-detailed[=...].
22396         * opts.c (set_struct_debug_option): Parse the
22397         -femit-struct-debug-... options.
22398         * opts.c (matches_main_base, main_input_basename,
22399         main_input_baselength, base_of_path, matches_main_base): Add
22400         variables and functions to compare header base name to compilation
22401         unit base name.
22402         * opts.c (should_emit_struct_debug): Add to determine to emit a
22403         structure based on the option.
22404         (dump_struct_debug) Also disabled function to debug this
22405         function.
22406         * opts.c (handle_options): Save the base name of the
22407         compilation unit.
22408
22409         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
22410         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
22411         This hook indicates if a type is generic.  Set it by default
22412         to "never generic".
22413         * langhooks.h (struct lang_hooks_for_types): Add a new hook
22414         to determine if a struct type is generic or not.
22415         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
22416         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
22417         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
22418         with live C++ hook.
22419
22420         * flags.h (enum debug_info_usage): Add an enumeration to describe
22421         a program's use of a structure type.
22422         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
22423         to indicate the program's usage of the type.  Filter structs based
22424         on the -femit-struct-debug-... specification.
22425         (gen_type_die): Split into two routines, gen_type_die and
22426         gen_type_die_with_usage.  gen_type_die is now a wrapper
22427         that assumes direct usage.
22428         (gen_type_die_with_usage): Replace calls to gen_type_die
22429         with gen_type_die_with_usage adding the program usage of
22430         the referenced type.
22431         (dwarf2out_imported_module_or_decl): Suppress struct debug
22432         information using should_emit_struct_debug when appropriate.
22433
22434 2007-04-16  Ian Lance Taylor  <iant@google.com>
22435
22436         PR tree-optimization/31522
22437         * tree-vrp.c (vr_phi_edge_counts): New static variable.
22438         (vrp_initialize): Allocate vr_phi_edge_counts.
22439         (vrp_visit_phi_node): Don't push to infinity if we saw a new
22440         executable edge.  Drop test for all constants.
22441         (vrp_finalize): Free vrp_phi_edge_counts.
22442
22443         * doc/cpp.texi (Common Predefined Macros): Clarify description of
22444         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
22445
22446         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
22447         predecessors at head rather than tail.
22448
22449 2007-04-16  Matthias Klose  <doko@debian.org>
22450
22451         * config/alpha/linux.h (CPP_SPEC): Define.
22452         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
22453
22454 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
22455
22456         * function.h: Remove sequence_stack extern declaration.
22457
22458 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
22459
22460         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
22461         TARGET_FIDOA.
22462         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
22463         defined.
22464
22465 2007-04-16  Anatoly Sokolov <aesok@post.ru>
22466
22467         * config/avr/avr.c (avr_arch_types): Rearranging  array.
22468         (enum avr_arch): Add.
22469         (avr_mcu_types): Use avr_arch enumeration constants instead of
22470         numbers.
22471         * config/avr/avr.h (LINK_SPEC): Simplify.
22472
22473 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
22474
22475         * config/m68k/m68k.c (m68k_libcall_value,
22476         m68k_function_value): Use macros for register names more.
22477
22478         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
22479         instead.
22480         (M68K_REGNAME): Use A6_REG.
22481         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
22482
22483 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
22484
22485         PR middle-end/28071
22486         * sched-int.h (struct deps): Split field 'pending_lists_length' into
22487         'pending_read_list_length' and 'pending_write_list_length'.  Update
22488         comment.
22489         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
22490         to handle two length counters instead of one.  Update all uses.
22491         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
22492         two length counters instead of one.
22493         * sched-rgn.c (propagate_deps): Update to handle two length counters
22494         instead of one.
22495
22496 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
22497
22498         PR target/31582
22499         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
22500         copy of source, pass it to ix86_expand_vector_set and return
22501         it as target.
22502
22503 2007-04-16  David Ung  <davidu@mips.com>
22504             Joseph Myers  <joseph@codesourcery.com>
22505
22506         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
22507         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
22508         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
22509         Add 74K processor information.
22510         * config/mips/mips.md: Include 74k.md.
22511         (cpu): Add 74kc,74kf,74kx.
22512         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
22513         * config/mips/74k.md: New.
22514         * doc/invoke.texi (MIPS Options): Document 74K support.
22515
22516 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
22517
22518         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
22519         vectorizable_* functions.
22520         * tree-vect-transform.c (vectorizable_call): Add check for
22521         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
22522         (vectorizable_store): likewise.
22523         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
22524         Add comments.
22525         (vectorizable_operation, vectorizable_type_demotion): Likewise.
22526         (vectorizable_type_promotion, vectorizable_load): Likewise.
22527         (vectorizable_live_operation, vectorizable_condition): Likewise.
22528         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
22529         STMT_VINFO_LIVE_P.
22530         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
22531
22532 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
22533
22534         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
22535         register numbers more.
22536         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
22537         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
22538         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
22539         FUNCTION_VALUE_REGNO_P): Likewise.
22540         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
22541         STATIC_CHAIN_REGNUM): Likewise.
22542         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
22543         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
22544         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
22545         * config/m68k/m68k.md (FP_REG): New.
22546
22547 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
22548
22549         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
22550         alignment on fido.
22551
22552 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
22553
22554         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
22555         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
22556         comment typos.
22557
22558 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
22559
22560         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
22561         cold loops.
22562
22563 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22564
22565         PR c/31520
22566         * c-decl.c (finish_decl): Grab the type of the decl after the call
22567         to store_init_value.
22568
22569 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
22570
22571         * common.opt (fforward-propagate): Fix "Optimization" annotation.
22572
22573 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
22574
22575         PR c++/25874
22576         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
22577         dominators, post dominators and cleanup cfg before returning.
22578
22579 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
22580
22581         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
22582         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
22583
22584 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
22585
22586         * config.gcc: Recognize fido.
22587         * config/m68k/m68k-devices.def (fidoa): New.
22588         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
22589         __mfido__.
22590         (FL_FIDOA, TARGET_FIDOA): New.
22591         * config/m68k/m68k.opt (mfidoa): New.
22592
22593 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22594
22595         PR middle-end/31322
22596         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
22597         when a personality function is used.
22598
22599 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
22600
22601         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
22602
22603 2007-04-13  Mike Stump  <mrs@apple.com>
22604
22605         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
22606         we can...
22607         * config/darwin.opt (fapple-kext): Make C++ only.
22608         * config/darwin.c (darwin_override_options): Remove code to ensure
22609         -fapple-kext is given for C++ only.
22610
22611 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
22612
22613         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
22614         * config/mips/mips.c (override_options): Call
22615         SUBTARGET_OVERRIDE_OPTIONS, if defined.
22616
22617 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
22618
22619         * config/i386/i386.opt (msvr3-shlib): Removed.
22620
22621         * doc/invoke.texi: Remove -msvr3-shlib.
22622
22623 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
22624
22625         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
22626         with "popcnt" instruction.
22627
22628 2007-04-13  Richard Guenther  <rguenther@suse.de>
22629
22630         PR tree-optimization/21258
22631         * tree-vrp.c (compare_case_labels): New helper.
22632         (find_switch_asserts): New function.
22633         (find_assert_locations): Call it for SWITCH_EXPRs.
22634
22635 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
22636
22637         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
22638         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
22639         check is now implied in X87_FLOAT_MODE_P.
22640         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
22641         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
22642         (fix_trunc<mode>_i386_fisttp): Ditto.
22643         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
22644         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
22645         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
22646         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
22647         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
22648         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
22649         (unnamed_splitters): Ditto.
22650         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
22651         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
22652         FIRST_SSE_REG for local functions when SSE math is enabled or
22653         for functions with sseregparm attribute.
22654         (standard_80387_constant_p): Return -1 if mode is not
22655         X87_FLOAT_MODE_P.
22656         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
22657         (ix86_expand_compare): Ditto.
22658         (ix86_expand_carry_flag_compare): Ditto.
22659         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
22660         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
22661         DECIMAL_FLOAT_MODE_P.
22662         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
22663         of SCALAR_FLOAT_MODE_P.
22664         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
22665         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
22666         checks before FLOAT_MODE_P.
22667         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
22668         before FLOAT_MODE_P.
22669         [DIV]: Ditto.
22670         [NEG]: Ditto.
22671         [ABS]: Ditto.
22672         [SQRT]: Ditto.
22673         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
22674
22675 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
22676             Charles Wilson  <libtool@cwilson.fastmail.fm>
22677
22678         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
22679         (libgcc.mvars): Don't depend on them.
22680         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
22681         * exec-tool.in: New.
22682
22683 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
22684
22685         * doc/invoke.text (--help): Document --help=common.
22686
22687 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
22688
22689         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
22690
22691 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22692
22693         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
22694         * genemit.c (main): Emit #include "integrate.h".
22695         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
22696         (LOADGP_RTP): New mips_loadgp_style.
22697         * config/mips/mips.h: Include config/vxworks-dummy.h.
22698         (TARGET_RTP_PIC): New macro.
22699         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
22700         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
22701         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
22702         for TARGET_RTP_PIC.
22703         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
22704         -mvxworks-pic when using -mrtp and a PIC option.
22705         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
22706         for RTP PIC.
22707         (mips_symbolic_constant_p, mips_symbolic_address_p)
22708         (mips_symbol_insns): Handle SYMBOL_HALF.
22709         (override_options): Warn about -G and -mrtp being used together.
22710         Initialize mips_lo_relocs[SYMBOL_HALF].
22711         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
22712         (mips_emit_loadgp): Handle LOADGP_RTP.
22713         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
22714         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
22715         (tablejump): Handle function-relative case table entries if
22716         TARGET_RTP_PIC.
22717         * config/mips/predicates.md (symbol_ref_operand): New predicate.
22718
22719 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22720
22721         * config/mips/mips.md (load_call<mode>): Allow any general register.
22722         destination.
22723         (sibcall_value_internal, sibcall_value_multiple_internal)
22724         (call_value_internal, call_value_split, call_value_multiple_internal)
22725         (call_value_multiple_split): Remove constraints from operand 0.
22726
22727 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22728
22729         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
22730         rather than loadgp_noshared.
22731         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
22732         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
22733         gen_loadgp.
22734         * config/mips/mips.md (loadgp): Rename to...
22735         (loadgp_newabi): ...this.
22736         (loadgp_noshared): Rename to...
22737         (loadgp_absolute): ...this.
22738
22739 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22740
22741         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
22742         false for locally-binding symbols.
22743         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
22744
22745 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22746
22747         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
22748         (SYMBOL_GOT_PAGE_OFST): ...this.
22749         (SYMBOL_GOT_GLOBAL): Rename to...
22750         (SYMBOL_GOT_DISP): ...this.
22751         (SYMBOL_GOTOFF_GLOBAL): Rename to...
22752         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
22753         * config/mips/mips.c (mips_global_symbol_p): New function.
22754         (mips_symbol_binds_local_p): Likewise.
22755         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
22756         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use
22757         mips_global_symbol_p and mips_symbol_binds_local_p.
22758         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
22759         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
22760         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
22761         SYMBOL_GOTOFF_DISP.
22762         (mips_ok_for_lazy_binding_p): New function.
22763         (mips_load_call_address, mips_expand_call): Use it.
22764         (mips_dangerous_for_la25_p): Likewise.
22765         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
22766         (*got_disp<mode>): Use got_disp_operand instead of
22767         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
22768         SYMBOL_GOTOFF_GLOBAL.
22769         (*got_page<mode>): Use got_page_ofst_operand instead of
22770         local_got_operand.
22771         * config/mips/predicates.md (const_call_insn_operand): Use
22772         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
22773         (global_got_operand): Rename to...
22774         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
22775         SYMBOL_GOT_GLOBAL.
22776         (local_got_operand): Rename to...
22777         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
22778         of SYMBOL_GOT_LOCAL.
22779
22780 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22781
22782         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
22783         TARGET_CALL_CLOBBERED_GP.
22784         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
22785         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
22786         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
22787         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
22788         of TARGET_ABICALLS && !TARGET_NEWABI.
22789         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
22790         * config/mips/mips.c (mips_load_call_address): Check
22791         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
22792         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
22793         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
22794         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
22795         TARGET_ABICALLS && TARGET_NEWABI.
22796         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
22797         TARGET_ABICALLS.
22798         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
22799         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
22800         TARGET_ABICALLS && TARGET_NEWABI.
22801         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
22802         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
22803         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
22804         whether indirect calls must use $25.
22805         (mips_extra_live_on_entry): Check TARGET_GOT instead of
22806         TARGET_ABICALLS.
22807         * config/mips/mips.md (jal_macro): Check flag_pic and
22808         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
22809         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
22810         instead of TARGET_ABICALLS.
22811         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
22812         TARGET_ABICALLS && TARGET_OLDABI.
22813         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
22814         (sibcall): In the comment above the define_insn, mention
22815         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
22816         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
22817         instead of TARGET_ABICALLS.
22818
22819 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
22820
22821         * doc/md.texi (Blackfin family constraints): Document PA and PB.
22822         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
22823         (MACFLAGS_MATCH_P): New macro.
22824         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
22825         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
22826         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
22827         the other MACFLAG constants.
22828         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
22829         (flag_machi): Tighten constraints.  Renumber some of the operands.
22830         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
22831         output template.
22832         (flag_machi_parts_acconly): New pattern.
22833         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
22834         used.
22835         (flag_macinit1hi): Tighten constraints.
22836         (flag_mul_macv2hi_parts_acconly): New pattern.
22837
22838         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
22839         Use a more efficient implementation.
22840         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
22841         inline sequences when not optimizing for size.
22842
22843         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
22844         movhi_high2low): Delete, merge functionality into...
22845         (packv2hi): ... this pattern.
22846
22847         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
22848         * config/bfin/bfin.opt (msim): New option.
22849         (mcpu=): New option.
22850         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
22851         (bfin_cpu_t): Typedef of enum bfin_cpu.
22852         (bfin_cpu_type): New declaration.
22853         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
22854         -msim and -mcpu= options.
22855         (LIB_SPEC): Likewise.
22856         * config/bfin/bfin.c (bfin_cpu_type): Define.
22857         (bfin_handle_option): Handle -mcpu= option.
22858         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
22859         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
22860         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
22861
22862 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22863
22864         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
22865         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
22866         (powerpc-wrs-vxworksae): Use ${tm_file}.
22867         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
22868         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
22869         * config/i386/vx-common.h: New file.
22870
22871 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
22872
22873         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
22874         of crt0.o%s.
22875
22876 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
22877
22878         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
22879         ldxtr.
22880
22881 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
22882
22883         PR c++/31078
22884         PR c++/31103
22885         * c-common.c (c_build_qualified_type): Set canonical type
22886         appropriately.
22887
22888 2007-04-12  Richard Guenther  <rguenther@suse.de>
22889
22890         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
22891         lower bound and element size if lower bound is not zero
22892         or either of the ARRAY_REF operands is set.
22893
22894 2007-04-12  Richard Guenther  <rguenther@suse.de>
22895
22896         PR tree-optimization/24689
22897         PR tree-optimization/31307
22898         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
22899         indices by value.
22900         * gimplify.c (canonicalize_addr_expr): To be consistent with
22901         gimplify_compound_lval only set operands two and three of
22902         ARRAY_REFs if they are not gimple_min_invariant.  This makes
22903         it never at this place.
22904         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
22905
22906 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22907
22908         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
22909         null before emitting a .nsubspa directive.
22910
22911 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
22912
22913         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
22914         need_to_partition_p if there are no memory statements in the
22915         function.
22916
22917 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
22918
22919         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
22920         (gcd_of_steps_may_divide_p): New function.
22921         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
22922
22923 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
22924
22925         * reload.c (find_reloads_toplev, find_reloads_address,
22926         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
22927         not a pointer equality test, to decide if we need to call
22928         push_reg_equiv_alt_mem.
22929
22930 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
22931
22932         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
22933         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
22934         New.
22935         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
22936
22937 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
22938
22939         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
22940         vector to be positive.
22941
22942 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
22943
22944         PR 30735
22945         PR 31090
22946         * doc/invoke.texi: Document --params max-aliased-vops and
22947         avg-aliased-vops.
22948         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
22949         debug_memory_partitions): Move to tree-flow.h
22950         * params.h (AVG_ALIASED_VOPS): Define.
22951         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
22952         users.
22953         (mp_info_t): Likewise.
22954         (get_mem_sym_stats_for): New.
22955         (set_memory_partition): Move from tree-flow-inline.h.
22956         (mark_non_addressable): Only clear the set of symbols for the
22957         partition if it exists.
22958         (dump_memory_partitions): Move from tree-ssa-operands.c
22959         (debug_memory_partitions): Likewise.
22960         (need_to_partition_p): New.
22961         (dump_mem_ref_stats): New.
22962         (debug_mem_ref_stats): New.
22963         (dump_mem_sym_stats): New.
22964         (debug_mem_sym_stats): New.
22965         (update_mem_sym_stats_from_stmt): New.
22966         (compare_mp_info_entries): New.
22967         (mp_info_cmp): Call it.
22968         (sort_mp_info): Change argument to a list of mem_sym_stats_t
22969         objects.
22970         (get_mpt_for): Move from tree-ssa-operands.c.
22971         (find_partition_for): New.
22972         (create_partition_for): Remove.
22973         (estimate_vop_reduction): New.
22974         (update_reference_counts): New.
22975         (build_mp_info): New.
22976         (compute_memory_partitions): Refactor.
22977         Document new heuristic.
22978         Call build_mp_info, update_reference_counts,
22979         find_partition_for and estimate_vop_reduction.
22980         (compute_may_aliases): Populate virtual operands before
22981         calling debugging dumps.
22982         (delete_mem_sym_stats): New.
22983         (delete_mem_ref_stats): New.
22984         (init_mem_ref_stats): New.
22985         (init_alias_info): Call it.
22986         (maybe_create_global_var): Remove alias_info argument.
22987         Get number of call sites and number of pure/const call sites
22988         from gimple_mem_ref_stats().
22989         (dump_alias_info): Call dump_memory_partitions first.
22990         (dump_points_to_info_for): Show how many times a pointer has
22991         been dereferenced.
22992         * opts.c (decode_options): For -O2 set --param
22993         max-aliased-vops to 500.
22994         For -O3 set --param max-aliased-vops to 1000 and --param
22995         avg-aliased-vops to 3.
22996         * fortran/options.c (gfc_init_options): Remove assignment to
22997         MAX_ALIASED_VOPS.
22998         * tree-flow-inline.h (gimple_mem_ref_stats): New.
22999         * tree-dfa.c (dump_variable): Dump memory reference
23000         statistics.
23001         Dump NO_ALIAS* settings.
23002         (referenced_var_lookup): Tidy.
23003         (mem_sym_stats): New.
23004         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
23005         and ORIG are different SSA names for a memory partition.
23006         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
23007         * tree-flow.h (struct mem_sym_stats_d): Define.
23008         (mem_sym_stats_t): Define.
23009         (struct mem_ref_stats_d): Define.
23010         (struct gimple_df): Add field mem_ref_stats.
23011         (enum noalias_state): Define.
23012         (struct var_ann_d): Add bitfield noalias_state.
23013         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
23014         debug_mem_ref_stats, debug_memory_partitions,
23015         debug_mem_sym_stats): Declare.
23016         * tree-ssa-structalias.c (update_alias_info): Update call
23017         sites, pure/const call sites and asm sites in structure
23018         returned by gimple_mem_ref_stats.
23019         Remove local variable IS_POTENTIAL_DEREF.
23020         Increase NUM_DEREFS if the memory expression is a potential
23021         dereference.
23022         Call update_mem_sym_stats_from_stmt.
23023         If the memory references memory, call
23024         update_mem_sym_stats_from_stmt for all the direct memory
23025         symbol references found.
23026         (intra_create_variable_infos): Set noalias_state field for
23027         pointer arguments according to the value of
23028         flag_argument_noalias.
23029         * tree-ssa-structalias.h (struct alias_info): Remove fields
23030         num_calls_found and num_pure_const_calls_found.
23031         (update_mem_sym_stats_from_stmt): Declare.
23032         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
23033         Set default value to 100.
23034         (PARAM_AVG_ALIASED_VOPS): Define.
23035
23036 2007-04-11  Richard Guenther  <rguenther@suse.de>
23037
23038         PR middle-end/31530
23039         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
23040         a * -b + c as c - a * b if we honor sign dependent rounding.
23041
23042 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
23043
23044         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
23045         bfin_expand_strmov.
23046         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
23047         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
23048         variables.
23049         (initialize_trampoline): Don't use old-style function definition.
23050         (bfin_secondary_reload): Mark IN_P argument as unused.
23051
23052 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
23053
23054         PR tree-optimization/31343
23055         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
23056         (build_polynomial_chrec): Return a scalar when the evolution is zero.
23057         * testsuite/gcc.dg/vect/pr31343.c: New.
23058
23059 2007-04-10  Eric Christopher  <echristo@apple.com>
23060
23061         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
23062         * config/i386/i386.md (*cmpfp0): Use.
23063         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
23064         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
23065         (fix_trunc<mode>_i386_fisttp): Ditto.
23066         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
23067         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
23068         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
23069         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
23070         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
23071         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
23072         (unnamed_splitters): Ditto.
23073         * config/i386/i386.c (output_fix_trunc): Assert that
23074         we're not being passed a TFmode operand.
23075
23076 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
23077
23078         PR tree-optimization/31526
23079         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
23080         n_basic_blocks to find newly added blocks.
23081
23082 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
23083
23084         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
23085         alternative.
23086         (fix_trunc<mode>si_sse): Ditto.
23087         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
23088         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
23089         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
23090         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
23091         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
23092         expander using SSEMODEF mode macro.
23093         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
23094         expander using SSEMODEF mode macro.
23095         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
23096         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
23097         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
23098         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
23099         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
23100         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
23101         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
23102         Macroize insn using X87MODEF mode macro.
23103
23104 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
23105
23106         * config/i386/sse.md (sse2_pinsrw): Removed.
23107         (sse2_pextrw): Renamed to ...
23108         (*sse2_pextrw): This.
23109
23110 2007-04-09  Jan Hubicka  <jh@suse.cz>
23111
23112         PR target/27869
23113         * config/i386/sse.md
23114         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
23115         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
23116         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
23117         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
23118
23119 2007-04-09  Jan Hubicka  <jh@suse.cz>
23120
23121         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
23122         multiple fields of union.
23123
23124 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
23125
23126         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
23127         (create_preheaders): Check that loops are available.
23128         (fix_loop_structure): Clean up, improve comments.
23129         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
23130         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
23131         state flags.
23132         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
23133         * predict.c (tree_estimate_probability): Do not call
23134         calculate_dominance_info.  Call create_preheaders.
23135         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
23136         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
23137         flags.
23138         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
23139         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
23140         * tree-cfg.c (tree_split_edge): Make an assert more precise.
23141         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
23142         arguments.
23143
23144 2007-04-08  Jan Hubicka  <jh@suse.cz>
23145
23146         * tree.h (maybe_fold_offset_to_component_ref): Declare.
23147         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
23148         * fold-const.c (fold_unary): Use it.
23149
23150 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23151
23152         * varasm.c (assemble_variable): Remove call to
23153         lang_hooks.decls.prepare_assemble_variable.
23154         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
23155         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
23156         * langhooks.h (lang_hooks_for_decls): Remove
23157         prepare_assemble_variable.
23158
23159 2007-04-08  Mike Stump  <mrs@apple.com>
23160
23161         * config/i386/i386.c: Use inc/dec on Core2.
23162
23163 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
23164
23165         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
23166         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
23167         lhd_tree_inlining_end_inlining): Remove.
23168         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
23169         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
23170         end_inlining hooks.
23171         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
23172         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
23173         lhd_tree_inlining_end_inlining): Remove prototypes.
23174         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
23175         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
23176         LANG_HOOKS_TREE_INLINING_START_INLINING,
23177         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
23178
23179         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
23180         not set it.
23181
23182 2007-04-08  Anatoly Sokolov <aesok@post.ru>
23183
23184         PR target/29932
23185         * config/avr/predicates.md (io_address_operand): Delete predicate.
23186         (low_io_address_operand): Don't use 'mode' argument.
23187         (higth_io_address_operand): Rename ...
23188         (high_io_address_operand): ... to this. Don't use 'mode' argument.
23189         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
23190         for above change.
23191
23192 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
23193
23194         Revert change removing staticp.
23195
23196 2007-04-07  Anatoly Sokolov <aesok@post.ru>
23197
23198         PR target/30289
23199         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
23200         earlyclobber.
23201
23202 2007-04-07  Bruce Korb  <bkorb@gnu.org>
23203
23204         * c.opt: Add -Wformat-contains-nul.
23205         * c-format.c (set_Wformat): Set warn_format_contains_nul to the
23206           -Wformat setting.
23207         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
23208         the NUL byte warning.
23209
23210 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
23211
23212         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
23213
23214 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
23215
23216         * tree.c (staticp): No longer use staticp langhook.
23217         * langhooks.c (lhd_staticp): Removed.
23218         * langhooks.h (struct lang_hooks): Remove staticp.
23219         * c-common.c (c_staticp): Remove.
23220         * c-common.h (c_staticp): Ditto.
23221         * langhooks-defs.h (lhd_staticp): Ditto.
23222         (LHD_HOOKS_STATICP): Ditto
23223         * tree.h (gcc_assert_lowered): New macro.
23224
23225 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
23226
23227         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
23228         argument "reliable".
23229         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
23230         Add argument "reliable".  Propagate it through calls.
23231         (infer_loop_bounds_from_undefined): Derive number of iterations
23232         estimates from references in blocks that do not dominate loop latch.
23233         (gcov_type_to_double_int): New function.
23234         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
23235         and expected_loop_iterations_unbounded.
23236         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
23237         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
23238         * tree-data-ref.c (estimated_loop_iterations): Export.
23239         (get_references_in_stmt): Fix -- do not return addresses of local
23240         objects.
23241         * cfgloop.h (expected_loop_iterations_unbounded,
23242         estimated_loop_iterations): Declare.
23243
23244 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
23245
23246         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
23247
23248 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
23249
23250         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
23251         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
23252         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
23253         Use output_387_reg_move().
23254         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
23255         expander using X87MODEF12 mode macro.
23256         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
23257         choosing register preferences.  Use output_387_reg_move().
23258         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
23259         instead of "x".  Use output_387_reg_move().
23260         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
23261         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
23262         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
23263         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
23264         Use output_387_reg_move().
23265         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
23266         mode macro.
23267         (*truncxf?f_i387 splitter): Ditto.
23268
23269 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
23270
23271         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
23272         LANG_HOOKS_SAFE_FROM_P.
23273         * expr.c (safe_from_p): Remove langhook call.
23274         * langhooks.h (lang_hooks): Remove safe_from_p.
23275         (lhd_safe_from_p): Remove prototype.
23276         * langhooks.c (lhd_safe_from_p): Remove.
23277
23278 2007-04-06  Jan Hubicka  <jh@suse.cz>
23279
23280         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
23281         functions.
23282
23283 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
23284
23285         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
23286         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
23287         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
23288         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
23289         alternative.
23290         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
23291         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
23292
23293 2007-04-05  Richard Henderson  <rth@redhat.com>
23294
23295         * config/alpha/alpha.c (print_operand) [+]: Remove.
23296         (alpha_end_function): Print nop if call at end of function.
23297         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
23298         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
23299         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
23300         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
23301         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
23302         the call pattern. Update peepholes to match.
23303
23304 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
23305
23306         * doc/extend.texi (Other Builtins): Add decimal float variants
23307         of signbit.
23308         * builtins.def: Ditto.
23309         * builtins.c (expand_builtin): Ditto.
23310
23311 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
23312             H.J. Lu  <hongjiu.lu@intel.com>
23313
23314         PR target/31478
23315         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
23316         of V8HImode when calling ix86_binary_operator_ok.
23317         (sse2_pmaddwd): Call ix86_binary_operator_ok.
23318         (sdot_prodv8hi): Operands 1 and 2 must be register.
23319
23320 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
23321
23322         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
23323         initialize align to silence bogus warning.
23324
23325 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
23326
23327         PR middle-end/22156
23328         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
23329         all_no_warning.
23330         (struct sra_walk_fns): Remove use_all parameter from use.
23331         (sra_hash_tree): Handle BIT_FIELD_REFs.
23332         (sra_elt_hash): Don't hash bitfld blocks.
23333         (sra_elt_eq): Skip them in parent compares as well.  Handle
23334         BIT_FIELD_REFs.
23335         (sra_walk_expr): Don't maintain or pass down use_all_p.
23336         (scan_use): Remove use_all parameter.
23337         (scalarize_use): Likewise.  Re-expand assignment to
23338         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
23339         output, and re-scalarize after output.  Don't mark anything
23340         for no warning.
23341         (scalarize_ldst): Adjust.
23342         (scalarize_walk_gimple_modify_statement): Likewise.
23343         (build_element_name_1): Handle BIT_FIELD_REFs.
23344         (instantiate_element): Don't warn for any element whose parent
23345         is used as a whole.
23346         (instantiate_missing_elements_1): Return the sra_elt.
23347         (canon_type_for_field): New.
23348         (try_instantiate_multiple_fields): New.
23349         (instantiate_missing_elemnts): Use them.
23350         (mark_no_warning): Removed.
23351         (generate_one_element_ref): Handle BIT_FIELD_REFs.
23352         (REPLDUP, sra_build_elt_assignment): New.
23353         (generate_copy_inout): Use them.
23354         (generate_element_copy): Likewise.  Handle bitfld differences.
23355         (generate_element_zero): Don't recurse for blocks.  Use
23356         sra_build_elt_assignment.
23357         (generate_one_element_int): Take elt instead of var.  Use
23358         sra_build_elt_assignment.
23359         (generate_element_init_1): Adjust.
23360         (scalarize_use, scalarize_copy): Use REPLDUP.
23361         (scalarize_ldst): Move assert before dereference.
23362         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
23363
23364 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
23365
23366         * regmove.c: Fix unused variable warnings due to previous commit.
23367
23368 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
23369
23370         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
23371         (regmove_bb_head): Remove.
23372         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
23373         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
23374         problems with fixup_match_1.
23375         Don't initialize/free regmove_bb_head.
23376
23377         (reg_is_remote_constant_p): If an insn is in the same basic block
23378         but not before INSN, consider it remote, too.
23379
23380 2007-04-05  Anatoly Sokolov <aesok@post.ru>
23381
23382         PR target/25448
23383         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
23384         DECL_ASSEMBLER_NAME, not the DECL_NAME.
23385
23386 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
23387
23388         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
23389         (CONDITIONAL_REGISTER_USAGE): Likewise.
23390
23391 2007-04-04  Richard Henderson  <rth@redhat.com>
23392
23393         * config/alpha/lib1funcs.asm: Remove unused file.
23394
23395 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
23396
23397         PR other/31356
23398         * opts.c (print_specific_help): Fix --help=<language>
23399         header line.
23400         (common_handle_option): Support --help=common.
23401
23402 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
23403
23404         PR other/31353
23405         * gcc.c (main): Do not run the linker if
23406         print_subprocess_help indicates that it shouldn't be
23407         run.
23408
23409 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
23410
23411         PR doc/31355
23412         * doc/invoke.texi (--help=): Document <languages> value, fix
23413         formatting in tables of values.
23414
23415 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
23416
23417         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
23418         dllimport attribute of virtual methods.
23419
23420 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
23421
23422         * config/score/crti.asm: Change _bss_start to __bss_start.
23423         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
23424         (OUTGOING_REG_PARM_STACK_SPACE) update.
23425         * config/score/score.opt: add options to make backend support
23426         score5, score5u, score7 and score7d.
23427         * config/score/score.md: Likewise.
23428         * config/score/misc.md: Likewise.
23429         * config/score/mac.md: Likewise.
23430         * doc/invoke.texi: Likewise.
23431         * doc/md.texi: update constraints define.
23432
23433 2007-04-03  Richard Henderson  <rth@redhat.com>
23434
23435         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
23436         an appropriate type, use the mode instead.
23437
23438 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
23439
23440         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
23441         Set the default --with-arch setting to mips2.
23442         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
23443         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
23444         (MULTILIB_OSDIRNAMES): Delete.
23445         (MULTILIB_DIRNAMES): Define.
23446         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
23447         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
23448         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
23449         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
23450         VXWORKS_OS_CPP_BUILTINS.
23451         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
23452         (MIPS_DEBUGGING_INFO): Undefine.
23453         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
23454
23455 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
23456
23457         PR middle-end/30704
23458         * fold-const.c (native_encode_real): Encode real.c provided longs
23459         as a series of 32-bit native integers.
23460         (native_interpret_real): Interpret buffer as a series of 32-bit
23461         native integers.
23462
23463 2007-04-03  Richard Guenther  <rguenther@suse.de>
23464
23465         * genpreds.c (write_insn_constraint_len): Write function
23466         optimized for CONSTRAINT_LEN implementation.
23467         (write_tm_preds_h): Output insn_constraint_len inline and
23468         use it for CONSTRAINT_LEN.
23469         (write_insn_preds_c): Don't output insn_constraint_len.
23470         * doc/md.texi (define_register_constraint): Document multi-letter
23471         constraints shall have the same length if they start with the same
23472         letter.
23473
23474 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
23475
23476         PR target/31175
23477         * config/i386/i386.md (isinf<mode>2): Expand only when
23478         TARGET_C99_FUNCTIONS is set.
23479
23480 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
23481
23482         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
23483         (x86_64-*-linux*): Ditto.
23484         * config/i386/i386.opt (mpc): New option.
23485         * config/i386/i386.c (overrride_options): Handle
23486         ix87_precision_string.
23487         * config/i386/crtprec.c: New file.
23488         * config/i386/t-crtpc: Ditto.
23489         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
23490         and -mpc80 options.
23491         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
23492         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
23493         crtprec32.o, crtprec64.o and crtprec80.o.
23494
23495         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
23496         and -mpc80 options.
23497         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
23498
23499 2007-04-02  Eric Christopher  <echristo@apple.com>
23500
23501         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
23502         limitations on darwin.
23503
23504 2007-04-02  Anatoly Sokolov <aesok@post.ru>
23505
23506         PR target/31137
23507         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
23508
23509 2007-04-02  Dave Korn  <dave.korn@artimi.com>
23510
23511         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
23512
23513 2007-04-02  Dave Korn  <dave.korn@artimi.com>
23514
23515         * libgcc2.h (exception_descriptor): Don't forward-declare.
23516         (__get_eh_table_language, __get_eh_table_version): Delete
23517         prototypes of long-dead functions.
23518
23519 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
23520
23521         * ebitmap.h: New file
23522         * ebitmap.c: New file
23523         * Makefile.in (ebitmap.o): New target.
23524
23525 2007-04-01  Jan Hubicka  <jh@suse.cz>
23526
23527         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
23528         before very first instruction.
23529
23530 2007-04-01  Jan Hubicka  <jh@suse.cz>
23531
23532         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
23533         waring on 64bit hosts.
23534         * bitmap.h: Fix typo in bitmap_head_def.
23535
23536 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
23537
23538         PR rtl-optimization/31391
23539         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
23540         into a DELETED_LABEL note, and the label is in an empty basic
23541         block, update BB_END as well as BB_HEAD.
23542
23543 2007-04-01  Richard Henderson  <rth@redhat.com>
23544
23545         PR tree-optimization/31169
23546         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
23547         to varying if the range is outside [0,  prec-1].
23548
23549 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
23550
23551         PR target/31388
23552         * config/mips/mips.md (load_const_gp): New insn.
23553         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
23554         the MIPS16 GP pseudo register if no_new_pseudos.
23555         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
23556
23557 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23558
23559         PR target/31364
23560         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
23561         secureplt.
23562         (call_value): Likewise.
23563
23564 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
23565             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23566
23567         PR 14737
23568         * doc/invoke.texi: (optimization options): Reword description
23569         of -ffast-math. Document its primary purpose.
23570
23571 2007-03-31  Richard Guenther  <rguenther@suse.de>
23572
23573         * omp-low.c (splay-tree.h): Include.
23574         (lookup_decl): Replace splay-tree usage by pointer-map.
23575         (maybe_lookup_decl): Likewise.
23576         (new_omp_context): Likewise.
23577         (delete_omp_context): Likewise.
23578         * gimplify.c (splay-tree.h): Include.
23579         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
23580         pointer-map.
23581         (remap_ssa_name): Likewise.
23582         (remap_decl): Likewise.
23583         (remap_type_1): Likewise.
23584         (remap_type): Likewise.
23585         (copy_body_r): Likewise.
23586         (expand_call_inline): Likewise.
23587         (clone_body): Likewise.
23588         (copy_tree_r): Likewise.
23589         (remap_save_expr): Likewise.
23590         (unsave_r): Likewise.
23591         (unsave_expr_now): Likewise.
23592         (tree_function_versioning): Likewise.
23593         (build_duplicate_type): Likewise.
23594         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
23595         (struct copy_body_data): Replace splay-tree by pointer-map.
23596         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
23597         not $(SPLAY_TREE_H).
23598         (gimplify.o): Depend on $(SPLAY_TREE_H).
23599         (omp-low.p): Likewise.
23600
23601 2007-03-31  Anatoly Sokolov <aesok@post.ru>
23602
23603         * config/avr/predicates.md (even_register_operand,
23604         odd_register_operand): New predicates.
23605         * config/avr/avr.md (movw peephole2): New.
23606         (movw_r peephole2): New.
23607
23608 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
23609
23610         * tree.h (get_signed_or_unsigned_type): New.
23611         * fold-const.c (operand_equal_for_comparison_p): Use
23612         get_signed_or_unsigned_type instead of
23613         lang_hooks.types.signed_or_unsigned_type.
23614         * expr.c (store_expr): Ditto.
23615         * langhooks.c (get_signed_or_unsigned_type): New.
23616         (lhd_signed_or_unsigned_type): New.
23617         * langhooks.h (lhd_signed_or_unsigned_type): New.
23618         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
23619
23620 2007-03-30  Richard Henderson  <rth@redhat.com>
23621
23622         * tree-ssa-loop-ivopts.c: Include target.h.
23623         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
23624         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
23625         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
23626         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
23627
23628 2007-03-30  Richard Henderson  <rth@redhat.com>
23629             Kai Tietz  <kai.tietz@onevision.com>
23630
23631         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
23632         default for 64-bit.
23633         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
23634         (TARGET_64BIT_MS_ABI): New.
23635         (DBX_REGISTER_NUMBER): Handle 64-bit.
23636         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
23637         (LONG_TYPE_SIZE): Force to 32.
23638         (REG_PARM_STACK_SPACE): New.
23639         (OUTGOING_REG_PARM_STACK_SPACE): New.
23640         (REGPARM_MAX, SSE_REGPARM_MAX): New.
23641         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
23642         (STACK_BOUNDARY): Use 128 for 64-bit.
23643         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
23644         Add 64-bit implementation.
23645         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
23646         argument unused.
23647         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
23648         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
23649         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
23650         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
23651         (ix86_handle_cconv_attribute): Don't warn when ignoring if
23652         TARGET_64BIT_MS_ABI.
23653         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
23654         (ix86_pass_by_reference): Likewise.
23655         (ix86_function_value_regno_p): Likewise.
23656         (ix86_build_builtin_va_list): Likewise.
23657         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
23658         (function_arg_advance_ms_64): New.
23659         (function_arg_advance): Call it.
23660         (function_arg_ms_64): New.
23661         (function_arg): Call it.
23662         (function_value_ms_64): New.
23663         (ix86_function_value_1): Call it.
23664         (return_in_memory_ms_64): New.
23665         (ix86_return_in_memory): Call it.
23666         (setup_incoming_varargs_ms_64): New.
23667         (ix86_setup_incoming_varargs): Call it.
23668         (ix86_expand_prologue): Handle 64-bit stack probing.
23669         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
23670         (output_pic_addr_const): Likewise.
23671         (x86_this_parameter): Likewise.
23672         (x86_output_mi_thunk): Likewise.
23673         (x86_function_profiler): Likewise.
23674         (TARGET_STRICT_ARGUMENT_NAMING): New.
23675         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
23676         (TARGET_64BIT_MS_ABI): New.
23677         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
23678         * config/i386/i386.md (allocate_stack_worker): Remove.
23679         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
23680         describe the clobber of eax without a match_scratch.
23681         (allocate_stack_worker_postreload): Remove.
23682         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
23683         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
23684         (allocate_stack_worker_rex64_postreload): Remove.
23685         (allocate_stack): Handle 64-bit.
23686         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
23687         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
23688         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
23689         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
23690         (STANDARD_STARTFILE_PREFIX_1): Likewise.
23691         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
23692         * config.build (x86_64-*-mingw*): New host.
23693         * config.host (x86_64-*-mingw*): New host.
23694         * config.gcc (x86_64-*-mingw*): New target.
23695         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
23696
23697 2007-03-30  Richard Henderson  <rth@redhat.com>
23698             Kai Tietz  <kai.tietz@onevision.com>
23699
23700         * c-pragma.c (struct def_pragma_macro_value): New.
23701         (struct def_pragma_macro): New.
23702         (pushed_macro_table): New.
23703         (dpm_hash, dpm_eq): New.
23704         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
23705         (init_pragma): Install them.
23706         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
23707
23708 2007-03-30  Anatoly Sokolov <aesok@post.ru>
23709
23710         * config/avr/avr.c (avr_override_options): Clear
23711         'flag_delete_null_pointer_checks'.
23712
23713 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
23714
23715         PR c++/26099
23716         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
23717         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
23718         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
23719         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
23720         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
23721         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
23722         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
23723         C++ extensions.
23724         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
23725
23726 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
23727
23728         * regmove.c: Move all of pass_stack_adjustments from here...
23729         * combine-stack-adj.c: ...to this new file.
23730         * Makefile.in: Add rules for combine-stack-adj.o.
23731
23732 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
23733
23734         PR tree-optimization/31383
23735         * tree-data-ref.c (affine_function_equal_p): Do not require the
23736         vectors to have the same length.
23737
23738 2007-03-30  Jan Hubicka  <jh@suse.cz>
23739
23740         PR middle-end/30700
23741         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
23742         availablility; add more sanity checking; ask varpool only about
23743         VAR_DECL.
23744
23745 2007-03-29  Richard Henderson  <rth@redhat.com>
23746
23747         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
23748         to decide, but __SIZEOF_LONG_LONG__.
23749
23750 2007-03-29  Richard Henderson  <rth@redhat.com>
23751
23752         * emutls.c (struct __emutls_array): New.
23753         (emutls_destroy): Use it instead of casting element 0 from void*.
23754         (__emutls_get_address): Likewise.
23755
23756 2007-03-29  Richard Henderson  <rth@redhat.com>
23757
23758         * varasm.c (initializer_constant_valid_p): Don't deny
23759         DECL_DLLIMPORT_P on functions.
23760
23761         * config/i386/cygming.h: Remove function declarations.
23762         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
23763         (ASM_OUTPUT_LABELREF): Remove.
23764         (COMMON_ASM_OP): Remove.
23765         (ASM_OUTPUT_COMMON): Remove.
23766         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
23767         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
23768         (ASM_DECLARE_FUNCTION_NAME): Likewise.
23769         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
23770         Rename from TARGET_ENCODE_SECTION_INFO.
23771         * config/i386/netware.h: Likewise.
23772         * config/i386/i386-protos.h: Update.
23773         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
23774         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
23775         (legitimate_constant_p): Reject dllimports.
23776         (dllimport_map, get_dllimport_decl): New.
23777         (legitimize_dllimport_symbol): New.
23778         (legitimize_address, ix86_expand_move): Use it.
23779         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
23780         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
23781         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
23782         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
23783         * config/i386/predicates.md (constant_call_address_operand): Only
23784         accept symbols; reject dllimport_p symbols.
23785         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
23786         i386_pe_maybe_record_exported_symbol.
23787         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
23788         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
23789         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
23790         trust the setting of DECL_DLLIMPORT_P.
23791         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
23792         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
23793         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
23794         tidy the argument scanning loop.
23795         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
23796         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
23797         (i386_pe_strip_name_encoding): Remove.
23798         (i386_pe_binds_local_p): New.
23799         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
23800         (i386_pe_output_labelref): Remove.
23801         (i386_pe_asm_output_aligned_decl_common): New.
23802         (i386_pe_maybe_record_exported_symbol): Rename from
23803         i386_pe_record_exported_symbol; check for dllexported symbols.
23804
23805 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
23806
23807         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
23808         add comment explaining why vsnprintf cannot be used.
23809
23810 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
23811
23812         PR tree-optimization/30666
23813         * tree.c (build_complex_type): When creating type names for DWARF2
23814         debug info, create TYPE_DECLs for TYPE_NAME instead of
23815         IDENTIFIER_NODEs.
23816         (build_common_tree_nodes_2): Use build_complex_type when building
23817         predefined complex types, to preserve canonical types.
23818
23819 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
23820
23821         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
23822         (noce_get_alt_condition): Look at it to determine whether to
23823         reverse the condition or not.
23824         (noce_get_condition): Substitute the truth for lies.
23825         (noce_find_if_block): Set the then_else_reversed field.
23826
23827 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
23828
23829         * config/fr30/fr30.md (movdi): Do not accept immediates as the
23830         destination of this insn.
23831         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
23832         than calling gen_rtx_SET directly.  Use r0 to hold the value of
23833         'address + 4' rather than a stack based temporary which can be
23834         mis-optimized away.
23835
23836 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
23837
23838         * config/s390/s390.c (s390_secondary_input_reload_class,
23839         s390_secondary_output_reload_class): Functions removed.
23840         (s390_secondary_reload): New function.
23841         (TARGET_SECONDARY_RELOAD): Target macro defined.
23842         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
23843         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
23844         * config/s390/s390.md ("reload_outti", "reload_outdi",
23845         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
23846         "reload_out<mode>"): Expanders removed.
23847         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
23848         "reload<mode>_nonoffmem_out"): Expanders added.
23849
23850 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
23851
23852         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
23853         action if SRC->DEST replacement failed anyway.
23854
23855 2007-03-28  Mike Stump  <mrs@apple.com>
23856
23857         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
23858         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
23859         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
23860
23861 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
23862
23863         * config.gcc: Accept barcelona as a variant of amdfam10.
23864         * config/i386/i386.c (override_options): Likewise.
23865         * doc/invoke.texi: Likewise.
23866
23867 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
23868
23869         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
23870         offsets for BIT_FIELD_REF and COMPONENT_REF.
23871
23872 2007-03-28  Richard Guenther  <rguenther@suse.de>
23873
23874         * tree.c (is_global_var): Move ...
23875         * tree-flow-inline.h (is_global_var): ... here.
23876         * tree.h (is_global_var): Remove declaration.
23877
23878 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
23879
23880         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
23881         option.
23882         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
23883         * config/i386/i386.c (ix86_tune_features): Initialize new
23884         tuning option.
23885         * config/i386/predicates.md (promotable_binary_operator): Use
23886         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
23887
23888 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
23889
23890         PR target/31380
23891         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
23892
23893 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
23894
23895         * config/fr30/fr30.md (movsi_internal): Change destination
23896         constraint from m to V and add m to the end.
23897
23898 2007-03-28  Christian Bruel  <christian.bruel@st.com>
23899
23900         * config/sh/sh.md (movsi_i): Fix type attribute.
23901
23902 2007-03-28  Christian Bruel  <christian.bruel@st.com>
23903
23904         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
23905         (movsf_ie): Likewise.
23906
23907 2007-03-28  Christian Bruel  <christian.bruel@st.com>
23908
23909         * config.gcc: Add sh4-300 to multilib.
23910         * config/sh/t-mlib-sh4-300: New file.
23911
23912 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
23913
23914         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
23915         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
23916         fix_trunc<mode>di2.
23917         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
23918         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
23919         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
23920         "fixuns_trunctddi2"): Whitespace fix.
23921
23922 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
23923
23924         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
23925         the definition of struct sh_args.
23926         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
23927         CALL_COOKIE_INT_REG_GET): Likewise.
23928
23929 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
23930
23931         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
23932         transformations are applied successfully.
23933
23934 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
23935
23936         * tree.c (tree_contains_struct): Permit 512 tree codes.
23937         * tree.h (tree_contains_struct): Ditto.
23938         (MAX_TREE_CODES): Ditto.
23939         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
23940         SPARE member to store remaining padding bits.
23941
23942 2007-03-27  Anatoly Sokolov <aesok@post.ru>
23943
23944         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
23945         architecture.
23946
23947 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
23948
23949         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
23950         * configure: Regenerate.
23951
23952         * configure: Regenerate using the correct version of autoconf.
23953
23954 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
23955
23956         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
23957         pointer regs.
23958         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
23959         regs to "__SP_L__" and "__SP_H__".
23960
23961 2007-03-27  Richard Guenther  <rguenther@suse.de>
23962
23963         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
23964         computations with it with a HOST_WIDE_INT variable.
23965
23966 2007-03-26  Mike Stump  <mrs@apple.com>
23967
23968         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
23969         objective-c-header, objective-c++-header and objc++-cpp-output
23970         support.
23971         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
23972
23973 2007-03-26  Richard Henderson  <rth@redhat.com>
23974
23975         PR target/31361
23976         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
23977         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
23978         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
23979         IX86_BUILTIN_PSRLQ128): New.
23980         (ix86_init_mmx_sse_builtins): Add them.
23981         (ix86_expand_builtin): Expand them.
23982         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
23983         operand 2 be TImode.
23984         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
23985         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
23986         _mm_srli_epi64): Mark __B const.
23987         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
23988         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
23989         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
23990         new two-vector shift builtins.
23991
23992 2007-03-26  Ian Lance Taylor  <iant@google.com>
23993
23994         PR tree-optimization/31345
23995         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
23996         [+INF, +INF(OVF)] into VARYING.
23997
23998 2007-03-26  Zack Weinberg  <zackw@panix.com>
23999
24000         * gengtype-parse.c: New file.
24001         * gengtype-yacc.y: Delete.
24002         * gengtype-lex.l: Don't include gengtype-yacc.h.
24003         Define YY_DECL and yyterminate appropriately for recursive
24004         descent parser.  yylval is now a string out-parameter to yylex.
24005         (HWS, EOID): New shorthand.
24006         (IWORD): Add a couple more types.
24007         (yylex): Add a setup stanza.  Remove the complex rules for
24008         detecting GTY'ed types and typedefs; replace with simple
24009         keyword detectors.  Adjust everything for the changed
24010         definition of yylval.  Ignore all pp-directives, not just #define.
24011         (yyerror): Delete.
24012         (parse_file): Rename yybegin; do not call yyparse.
24013         (yyend): New.
24014         * gengtype.c (xasprintf): Export again.
24015         (this_file): New.  Use everywhere __FILE__ was being used.
24016         (get_lang_bitmap): Special case types defined in gengtype.c.
24017         (do_typedef, new_structure): Suppress definition of certain types.
24018         (new_structure): Improve diagnostics of duplicate definitions.
24019         Make sure location_s is associated with input.h.
24020         (nreverse_pairs, define_location_structures): New functions.
24021         (main): Improve tagging of kludge types.  Remove old kludges
24022         for input.h types; use define_location_structures.
24023         * gengtype.h: Update prototypes.  Define token codes here.
24024         * Makefile.in: Remove all references to gengtype-yacc.
24025         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
24026         and gengtype.
24027         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
24028         add GTY((skip)) to the field that's only conditionally there.
24029         * doc/install.texi: Document that Bison is no longer required
24030         unless building treelang.
24031
24032         * gengtype.c: Don't include gtyp-gen.h.
24033         (srcdir): Declare here.
24034         (base_files, lang_dir_names): Allocate dynamically.
24035         (gt_files, num_gt_files, num_lang_dirs): New globals.
24036         (measure_input_list, read_input_line, read_input_list)
24037         (set_lang_bitmap): New functions.
24038         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
24039         simplify, relying on read_input_list to set up the bitmaps.
24040         (main): Arguments are no longer unused.  Check for correct number
24041         of command line arguments, set srcdir and srcdir_len, then call
24042         read_input_list, before doing anything else.  No need to worry
24043         about duplicates in main loop.
24044         * configure.ac: Simplify the calculation of all_gtfiles.
24045         Put language tags in there.  Don't set or substitute
24046         all_gtfiles_files_langs or all_gtfiles_files_frags.
24047         * Makefile.in: Revamp the way gengtype is invoked, now that it
24048         takes a file on its command line with a much simpler format.
24049         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
24050         (GTFILES): Remove duplicates and C source files.
24051         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
24052         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
24053         * configure: Regenerate.
24054
24055         * gengtype.h: Remove all type definitions to gengtype.c; leave
24056         only definitions of options_p, type_p, and pair_p as opaque
24057         pointers.  Update prototypes.
24058         * gengtype.c: Many type definitions moved here from gengtype.h.
24059         Consolidate type definitions at the top of the file.
24060         (xvasprintf): Delete.
24061         (xasprintf): Make static.
24062         (create_nested_pointer_option): Add 'next' parameter.
24063         (create_field_all, create_field_at): New functions.
24064         (create_field): Now a thin wrapper around create_field_all.
24065         (create_optional_field): Rename create_optional_field_ and add
24066         line argument.  Original name is now a macro which supplies
24067         __LINE__.
24068         (oprintf): Use vsnprintf directly.
24069         (close_output_files): Use fatal rather than perror/exit.
24070         (note_def_vec, note_def_vec_alloc): Use create_field_at.
24071         (main): Set progname.  Don't use exit.
24072         * gengtype-yacc.y (struct_fields): Use create_field_at.
24073         (option, optionseqopt): Delete.
24074         (optionseq): Consolidate productions from option here so we
24075         can use the first argument to create_option.
24076
24077         * gengtype-lex.l: Distinguish unions from structures in the
24078         token type.  Don't call find_structure; return the tag as a string.
24079         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
24080         ENT_UNION.  Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
24081         string.  Reorganize typedef_struct production accordingly.
24082         Use create_nested_ptr_option.
24083         * gengtype.c (create_nested_ptr_option): New function.
24084         * gengtype.h: Declare it.
24085
24086         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
24087         (string_type): Don't declare.
24088         (do_scalar_typedef): Declare.
24089         (create_scalar_type): Update prototype.
24090         * gengtype.c (string_type): Make static.
24091         (scalar_nonchar, scalar_char): New.
24092         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
24093         (resolve_typedef): Use scalar_nonchar for error recovery.
24094         (create_scalar_type): Remove name_len field.  Return scalar_char
24095         or scalar_nonchar as appropriate.
24096         (adjust_field_type): Look at scalar_is_char boolean to decide whether
24097         to use string_type.
24098         (throughout): Use scalar_nonchar instead of calling
24099         create_scalar_type, whenever possible.
24100         (main): Initialize scalar_char and scalar_nonchar before calling
24101         gen_rtx_next.
24102         * gengtype-lex.l: Adjust for removal of second argument to
24103         create_scalar_type.  Use yylval.s instead of yylval.t when
24104         returning SCALAR.
24105         * gengtype-yacc.y: Type of SCALAR is string.  Call
24106         create_scalar_type from type:SCALAR rule.  Adjust for removal of
24107         second argument to create_scalar_type.
24108
24109         * vec.h: Remove all #if IN_GENGTYPE blocks.
24110         Add comment saying that changes may require adjustments to gengtype.
24111         * gengtype.c: Don't include coretypes.h or tm.h.
24112         Add comment to inclusion of errors.h.
24113         (note_def_vec, note_def_vec_alloc): New functions.
24114         * gengtype.h: Declare new functions.
24115         * gengtype-lex.l: Don't include coretypes.h.
24116         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
24117         Delete.
24118         (update_lineno): Remove unnecessary prototype.
24119         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
24120         (VEC rule): Just return VEC_TOKEN.
24121         * gengtype-yacc.y (VEC_TOKEN): New token type.
24122         (type): Add a production for VEC(a,b).
24123         * Makefile.in: Update dependencies.
24124
24125         * gengtype-lex.l: Remove rules for parsing pointer-to-function
24126         typedefs that use the old PARAMS macro.
24127
24128         * gengtype-lex.l: Remove all rules and states relating to yacc
24129         input files.
24130         * gengtype-yacc.y: Similarly.
24131         * gengtype.c (note_yacc_type): Delete function.
24132         * gengtype.h: Update prototypes.
24133
24134 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
24135
24136         * tree-pretty-print.c (dump_generic_node): Report precision of
24137         unnamed integer types.
24138
24139 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
24140
24141         * ifcvt.c (noce_try_store_flag_constants): Don't check
24142         no_new_pseudos here.
24143         (noce_try_store_flag_constants): Don't check no_new_pseudos.
24144         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
24145         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
24146         noce_try_sign_mask): Likewise.
24147         (if_convert): Check no_new_pseudos here.
24148
24149         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
24150         Remove prototypes.
24151         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
24152         (noce_get_condition): Handle new then_else_reversed argument.
24153         (noce_init_if_info): Remove, fold into noce_find_if_block.
24154         (noce_process_if_block): Take a struct noce_if_info as the
24155         argument.  Don't set up one based on ce_if_info.  Update pointer
24156         references accordingly.
24157         (cond_move_process_if_block): Likewise.
24158         (process_if_block): Removed.
24159         (find_if_block): Removed.  Move functionality two new functions,
24160         noce_find_if_block and cond_exec_find_if_block.
24161         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
24162         blocks and the symmetric IF-ELSE-JOIN case.
24163         (cond_exec_find_if_block): Also new function mostly based on old
24164         find_if_block and process_if_block.
24165         (find_if_header): Replace find_if_block call with separately
24166         guarded calls to noce_find_if_block and cond_exec_find_if_block.
24167         (find_cond_trap): Update noce_get_condition call.
24168         (dead_or_predicable): Likewise.
24169
24170 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
24171
24172         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
24173         Remove.
24174         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
24175         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
24176         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
24177         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
24178         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
24179         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
24180         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
24181         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
24182         __builtin_ia32_psrad128 builtins.
24183
24184 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
24185
24186         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
24187         * config/i386/constraints.md
24188         (define_constraint "I"): Use IN_RANGE macro.
24189         (define_constraint "J"): Ditto.
24190         (define_constraint "K"): Ditto.
24191         (define_constraint "M"): Ditto.
24192         (define_constraint "N"): Ditto.
24193         (define_constraint "O"): Ditto.
24194         * config/i386/predicates.md
24195         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
24196         (define_predicate "const_0_to_3_operand"): Ditto.
24197         (define_predicate "const_0_to_7_operand"): Ditto.
24198         (define_predicate "const_0_to_15_operand"): Ditto.
24199         (define_predicate "const_0_to_63_operand"): Ditto.
24200         (define_predicate "const_0_to_255_operand"): Ditto.
24201         (define_predicate "const_1_to_31_operand"): Ditto.
24202         (define_predicate "const_2_to_3_operand"): Ditto.
24203         (define_predicate "const_4_to_7_operand"): Ditto.
24204
24205 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
24206
24207         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
24208         in SImode for save_world.
24209         * config/rs6000/altivec.md (save_world, restore_world): Convert to
24210         LR hard reg.
24211
24212 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
24213
24214         PR tree-optimization/30784
24215         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
24216         BIT_FIELD_REF.
24217
24218 2007-03-25  Revital Eres  <eres@il.ibm.com>
24219
24220         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
24221           Fold movement_possibility function into it.
24222
24223 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
24224
24225         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
24226         (load_macho_picbase_{si,di}): Convert to LR hard reg.
24227         (call_indirect_nonlocal_darwin64): Same.
24228         (call_nonlocal_darwin64): Same.
24229         (call_value_indirect_nonlocal_darwin64): Same.
24230         (call_value_nonlocal_darwin64): Same.
24231         (sibcall_nonlocal_darwin64): Same.
24232         (sibcall_value_nonlocal_darwin64): Same.
24233         (sibcall_symbolic_64): Same.
24234         (sibcall_value_symbolic_64): Same.
24235         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
24236         LR pseudo.
24237         (rs6000_emit_load_toc_table): Same.
24238         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
24239         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
24240         (mull_call): Same.
24241         (divss_call): Same.
24242         (divus_call): Same.
24243         (quoss_call): Same.
24244         (quous_call): Same.
24245         (load_toc_v4_pic_si): Same
24246         (load_toc_v4_PIC_1): Same.
24247         (load_toc_v4_PIC_1b): Same.
24248         (call_indirect_aix{32,64}): Same.
24249         (call_value_indirect_aix{32,64}): Same.
24250         (call): Same.
24251         (call_value): Same.
24252         (call_local{32,64}): Same.
24253         (call_value_local{32,64}): Same.
24254         (call_indirect_nonlocal_aix{32,64}): Same.
24255         (call_nonlocal_aix{32,64}): Same.
24256         (call_value_indirect_nonlocal_aix{32,64}): Same.
24257         (call_value_nonlocal_aix{32,64}): Same.
24258         (call_indirect_nonlocal_sysv<mode>): Same.
24259         (call_nonlocal_sysv<mode>): Same.
24260         (call_value_indirect_nonlocal_sysv<mode>): Same.
24261         (call_value_nonlocal_sysv<mode>): Same.
24262         (sibcall): Same.
24263         (sibcall_local{32,64}): Same.
24264         (sibcall_value_local{32,64}): Same.
24265         (sibcall_nonlocal_aix{32,64}): Same.
24266         (sibcall_value_nonlocal_aix{32,64}): Same.
24267         (sibcall_nonlocal_sysv<mode>): Same.
24268         (sibcall_value): Same.
24269         (sibcall_value_nonlocal_sysv<mode>): Same.
24270
24271 2007-03-24  Paul Brook  <paul@codesourcery.com>
24272
24273         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
24274         * config/arm/linux-eabi.h: Remove legacy syscall hack.
24275
24276 2007-03-24  Richard Henderson  <rth@redhat.com>
24277
24278         * config/ia64/constraints.md: New file.
24279         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
24280         satisfies_constraint_?.
24281         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
24282         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
24283         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
24284         ia64_output_mi_thunk): Likewise.
24285         (ia64_const_ok_for_letter_p): Remove.
24286         (ia64_const_double_ok_for_letter_p): Remove.
24287         (ia64_extra_constraint): Remove.
24288         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
24289         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
24290         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
24291         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
24292         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
24293         EXTRA_MEMORY_CONSTRAINT): Remove.
24294         * config/ia64/ia64.md: Include constriants.md.  Replace
24295         CONST_OK_FOR_? with satisfies_constraint_?.
24296
24297 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
24298             H.J. Lu  <hongjiu.lu@intel.com>
24299
24300         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
24301         DPD or BID name.
24302         (name macros): Use DPD_BID_NAME to convert names properly.
24303
24304         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
24305         decimal floating point format.
24306         (init_floating_libfuncs): Change decimal functions so that they
24307         have a "bid_" prefix if the decimal system uses the BID format,
24308         and "dpd_" prefix if the decimal system uses the DPD format.
24309         (init_interclass_conv_libfuncs): Ditto.
24310         (init_intraclass_conv_libfuncs): Ditto.
24311
24312         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
24313         using the BID format.
24314
24315         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
24316         whether we are using the BID decimal format.
24317         * configure: Regenerate.
24318
24319         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
24320         the compiler has decimal floating point enabled.  Define
24321         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
24322         instead of DPD.
24323
24324         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
24325         using the BID format.
24326
24327         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
24328         whether we are using the BID decimal format.
24329         * configure: Regenerate.
24330
24331         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
24332         the compiler has decimal floating point enabled.  Define
24333         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
24334         instead of DPD.
24335
24336         * doc/install.texi (--enable-decimal-float): Document BID and DPD
24337         options, and that it is enabled for i386/x86_64 systems.
24338
24339         * Makefile.in (enable_decimal_float): New.
24340         (DECNUMFMT): New.
24341         (DECNUMINC): Add  -I$(DECNUMFMT).
24342         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
24343         to $(DECNUMFMT) from $(DECNUM).
24344
24345         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
24346         Substitute enable_decimal_float.
24347         * configure: Regenerated.
24348
24349         PR other/30529
24350         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
24351         unsigned long.
24352
24353         * configure.ac: Enable decimal float for x86_64-*-linux*.
24354         * configure: Regenerated.
24355
24356         PR other/30530
24357         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
24358         decimal128ClearSign to flip and clear the sign bit in decimal128.
24359         (decimal_real_maxval): Set decimal128SetSign to set the sign
24360         bit in decimal128.
24361
24362 2007-03-23  Ian Lance Taylor  <iant@google.com>
24363
24364         * fold-const.c (fold_binary): Correct warning for X - c >= X.
24365
24366 2007-03-23  Ian Lance Taylor  <iant@google.com>
24367
24368         * tree-dump.c (dump_files): Correct comment.
24369
24370 2007-03-23  Ian Lance Taylor  <iant@google.com>
24371
24372         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
24373
24374 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
24375
24376         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
24377         in cfglayout mode.  Don't go into and out of cfglayout mode.
24378         Link the blocks in the order of the constructed traces.
24379         (rest_of_handle_tracer): Adjust call to tracer.
24380         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
24381         Don't go into cfglayout mode.
24382         (rtl_loop_done): Don't go out of cfglayout mode.
24383         * cfglayout.c (relink_block_chain): New function, split out from...
24384         (fixup_reorder_chain): ...here.  Remove redundant checking.
24385         (cfg_layout_finalize): Don't clear the header, footer, and aux
24386         fields here, move the code to do so to relink_block_chain.  Likewise
24387         for free_original_copy_tables.
24388         * rtl.h (tracer): Update prototype.
24389         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
24390         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
24391         mode.  Use relink_block_chain to serialize the CFG according to the
24392         new basic block order.  Move targetm.cannot_modify_jumps_p check from
24393         here...
24394         (gate_handle_reorder_blocks): ...to here.
24395         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
24396         from here...
24397         (gate_duplicate_computed_gotos): ...to here.
24398         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
24399         something always changes when going into and out of cfglayout mode.
24400         Perform an expensive cfg cleanup while going into cfglayout mode.
24401         Always update liveness information on HAVE_conditional_execution
24402         targets.  Reserialize the basic blocks and go out of cfglayout mode.
24403         * reg-stack.c: Include cfglayout.h.
24404         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
24405         the call to reorder_basic_blocks.
24406         * basic-block.h (reorder_basic_blocks): Update prototype.
24407         (relink_block_chain): New prototype.
24408         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
24409
24410 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
24411
24412         * config/mips/mips.md (type, hazard, *movdi_32bit,
24413         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
24414         *movhi_internal, *movqi_internal, *movsf_hardfloat,
24415         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
24416         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
24417         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
24418         applicable.
24419         (movcc): Change first xfer to multi.
24420         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
24421         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
24422         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
24423         config/mips/generic.md: Change reservations using "xfer" to use
24424         "mfc,mtc".
24425         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
24426         using match_operand.
24427         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
24428         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
24429         examining mode.
24430         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
24431
24432 2007-03-22  Richard Henderson  <rth@redhat.com>
24433
24434         * config/i386/i386.c: Remove unnecessary function declarations.
24435         Move targetm definition, and all related macros, to the end of
24436         the file.  Resort some functions to put definitions before uses.
24437         (ix86_attribute_table): Make static.  Move to end of file.
24438         (ix86_gimplify_va_arg): Make static.
24439
24440 2007-03-22  Richard Henderson  <rth@redhat.com>
24441
24442         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
24443         don't increase local_regparm with force_align_arg_pointer check.
24444         (ix86_function_sseregparm): Assert 32-bit.
24445         (type_has_variadic_args_p): New.
24446         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
24447         type_has_variadic_args_p.
24448         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
24449         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
24450         use memset instead.  Do maybe_vaarg check first; skip attribute
24451         tests if true; skip attribute tests for 64-bit.
24452         (construct_container): Remove TARGET_DEBUG_ARG.
24453         (function_arg_advance_32, function_arg_advance_64): Split out ...
24454         (function_arg_advance): ... from here.
24455         (function_arg_32, function_arg_64): Split out ...
24456         (function_arg): ... from here.
24457         (ix86_pass_by_reference): Tidy.
24458         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
24459         (function_value_32): New, from parts of ix86_function_value
24460         and ix86_value_regno.
24461         (function_value_64): New, from parts of ix86_function_value
24462         and ix86_libcall_value.
24463         (ix86_function_value_1): New.
24464         (ix86_function_value, ix86_libcall_value): Use it.
24465         (return_in_memory_32, return_in_memory_64): Split out ...
24466         (ix86_return_in_memory): ... from here.
24467         (ix86_struct_value_rtx): Skip for 64-bit.
24468         (ix86_libcall_value, ix86_value_regno): Remove.
24469         (setup_incoming_varargs_64): Split out ...
24470         (ix86_setup_incoming_varargs): ... from here.
24471         (ix86_va_start): Remove TARGET_DEBUG_ARG.
24472         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
24473         * config/i386/i386-protos.h (ix86_function_value): Remove.
24474         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
24475
24476 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24477
24478         PR other/23572
24479         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
24480         infinities not supported, otherwise emit warning if -Woverflow. On
24481         underflow, emit warning if -Woverflow.
24482         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
24483         and 0 otherwise.
24484         * real.h (real_from_string): Update declaration
24485
24486 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
24487             Richard Henderson  <rth@redhat.com>
24488
24489         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
24490         * calls.c (compute_argument_block_size, expand_call,
24491         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
24492         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
24493         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
24494         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
24495         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
24496         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
24497         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
24498         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
24499         Set to 1.
24500
24501 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
24502
24503         * c-incpath.c (add_sysroot_to_chain): New.
24504         (merge_include_chains): Add sysroot argument.  Call
24505         add_sysroot_to_chain if sysrooted.
24506         (register_include_chains): Update call to merge_include_chains.
24507         * doc/cppopts.texi: Document use of '=' in include directory
24508         arguments.
24509
24510 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
24511
24512         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
24513         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
24514         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
24515         insn pattern using X87MODEF12 mode macro.
24516
24517 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
24518
24519         * regmove.c (regmove_optimize): Use reg_mentioned_p
24520         instead of reg_overlap_mentioned_p for DST.
24521
24522 2007-03-21  Mike Stump  <mrs@apple.com>
24523
24524         * c.opt: Fixup for Objective-C/C++.
24525
24526 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
24527
24528         * explow.c (convert_memory_address): Fold memory reference when
24529         POINTERS_EXTEND_UNSIGNED < 0
24530
24531 2007-03-21  Richard Henderson  <rth@redhat.com>
24532
24533         PR target/31245
24534         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
24535         * config/i386/mmintrin.h (__m64): Likewise.
24536         * config/i386/xmmintrin.h (__m128): Likewise.
24537
24538 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
24539
24540         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
24541         (VXWORKS_OS_CPP_BUILTINS): Define.
24542         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
24543         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
24544
24545 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
24546
24547         * rtl.h (constant_pool_reference_p): Delete.
24548         (find_constant_src): Declare.
24549         * rtlanal.c (find_constant_src): New function.
24550         * simplify-rtx.c (constant_pool_reference_p): Delete.
24551         * config/i386/i386.md: Use find_constant_src instead of
24552         constant_pool_reference_p/avoid_constant_pool_reference pairs.
24553
24554 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
24555
24556         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
24557         * c-cppbuiltin.c (c_cpp_builtins): Define them.
24558
24559 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
24560
24561         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
24562         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
24563         (arm_elf_asm_constructor): Use it.
24564         (arm_elf_asm_destructor): New function.
24565
24566 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
24567
24568         * jump.c (mark_jump_label): Treat SEQUENCE specially.
24569
24570 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
24571
24572         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
24573
24574 2007-03-19  Andrew Haley  <aph@redhat.com>
24575
24576         PR tree-optimization/31264
24577         * tree-vrp.c (register_edge_assert_for_1): Don't look though
24578         VIEW_CONVERT_EXPRs.
24579
24580 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
24581
24582         PR rtl-optimization/30907
24583         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
24584         (fwprop_init): Always call loop_optimizer_initialize.
24585         (fwprop_done): Always call loop_optimizer_finalize.
24586         (fwprop): We always have loop info now.
24587         (gate_fwprop_addr): Remove.
24588         (pass_fwprop_addr): Use gate_fwprop as gate.
24589
24590         PR rtl-optimization/30841
24591         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
24592         df_chain_alloc): Call df_reorganize_refs unconditionally.
24593         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
24594         refs_organized to refs_organized_size.
24595         (df_ref_create_structure): Use refs_organized_size instead of
24596         bitmap_size if refs had been organized, and keep refs_organized_size
24597         up-to-date.
24598         * df.h (struct df_ref_info): Change refs_organized to
24599         refs_organized_size.
24600         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
24601         bitmap_size.
24602
24603 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
24604
24605         * except.c (output_function_exception_table): Do not reference the
24606         EH personality routine for functions that do not require an
24607         exception table.
24608
24609 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
24610
24611         PR c/30762
24612         * c-typeck.c (convert_for_assignment): Call comptypes for
24613         RECORD_TYPE or UNION_TYPE.
24614
24615         PR inline-asm/30505
24616         * reload1.c (reload): Do invalid ASM checking after
24617         cleanup_subreg_operands.
24618
24619 2007-03-19  Jeff Law  <law@redhat.com>
24620
24621         * tree-cfg.c (find_taken_edge): Tighten conditions for
24622         optimizing computed gotos.
24623
24624 2007-03-19  Michael Matz  <matz@suse.de>
24625
24626         * builtins.c (expand_builtin_sync_operation,
24627         expand_builtin_compare_and_swap,
24628         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
24629         correctly.
24630
24631         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
24632         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
24633         for operand 3.
24634
24635 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
24636
24637         * doc/tm.texi: Add brackets around the return type of
24638         TARGET_SECONDARY_RELOAD.
24639
24640 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24641         Richard Guenther  <rguenther@suse.de>
24642
24643         PR tree-optimization/31254
24644         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
24645         Use handled_component_p () where appropriate.  Continue
24646         propagating into the rhs if we propagated into an INDIRECT_REF
24647         on the lhs.
24648
24649 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
24650
24651         * config/s390/s390.md (op_type attribute): RRR instruction type added.
24652         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
24653         (xde, xdee): Mode attributes adjusted to support DFP modes.
24654         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
24655         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
24656         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
24657         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
24658         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
24659         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
24660         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
24661         numbers.
24662         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
24663         "movsf"): Insn definitions removed.
24664         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
24665         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
24666         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
24667         definitions added.
24668         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
24669         "reload_in<mode>", "reload_out<mode>"): Expander added.
24670         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
24671         Expander removed.
24672
24673 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
24674
24675         * config/s390/s390.md: Only non-functional changes.  Renamed
24676         FPR mode macro to BFP all over the file.
24677
24678 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
24679
24680         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
24681         (op_type attribute): RRF instruction type added.
24682         (fT0): New mode attribute.
24683         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
24684         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
24685         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
24686         instruction no secondary memory is needed when moving DFmode values
24687         between GPRs and FPRs.
24688
24689 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
24690
24691         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
24692         inverted and documentation adjusted.
24693         ("mhard-dfp", "msoft-dfp"): New options.
24694         * config/s390/s390.c (s390_handle_arch_option): New architecture
24695         switch: z9-ec.
24696         (override_options): Sanity checks for the new options added.
24697         * config.gcc: New architecture switch: z9-ec.
24698         * config/s390/s390.h (processor_flags): PF_DFP added.
24699         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
24700         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
24701         when the bit is NOT set so remove it from the defaults.
24702
24703 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
24704
24705         * genemit.c (main): Print include statement for dfp.h.
24706         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
24707         is not available.
24708
24709 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
24710
24711         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
24712
24713 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
24714
24715         PR target/31022
24716         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
24717         instead of PATTERN.
24718
24719 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24720
24721         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
24722         attr_length_call, output_call, output_indirect_call): Cleanup
24723         formatting of targetm calls.
24724
24725 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
24726
24727         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
24728
24729 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24730
24731         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
24732         reservation, bypass and anti-bypass descriptions for these
24733         instructions.  Update move patterns.
24734         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
24735         TYPE_FPSTORE.
24736
24737 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
24738
24739         * tree-vect-transform.c (get_initial_def_for_induction): Replace
24740         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
24741         (get_initial_def_for_reduction): Likewise.
24742
24743 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
24744
24745         Fix PR tree-optimization/29922
24746         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
24747         (get_representative): Removed.
24748         (value_dies_in_block_x): Update for rvuse removal.
24749         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
24750         (compute_antic_aux): Handle when PHI nodes appear in
24751         non-single-successors.
24752         (dump_bitmap_of_names): Removed.
24753         (compute_antic_safe): Renamed and removed rvuse calculation.
24754         Calculate only antic safe.
24755         (insert_into_preds_of_block): Remove assert.
24756         (execute_pre): Update for renamed functions.
24757         (defer_or_phi_translate_block): New function.
24758
24759 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
24760
24761         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
24762         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
24763         typos.
24764         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
24765         Follow spelling conventions.
24766
24767         * tree-data-ref.h: Remove the prototype for analyze_array.
24768
24769 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
24770
24771         PR tree-optimization/31041
24772         * tree-vect-transform.c (get_initial_def_for_induction): Call
24773         force_gimple_operand.
24774
24775 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
24776
24777         * ipa-type-escape.c (look_for_casts) : Revert code to use
24778         handled_component_p due to ada test a-numaux.adb.
24779
24780 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
24781
24782         * final.c (final_scan_insn): Alter the condition of a
24783         conditional trap if we have nonstandard CC.
24784
24785 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
24786
24787         * configure.ac: Remove excess quoting from asm line 0 test.
24788         * configure: Rebuilt.
24789
24790 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24791
24792         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
24793         * c-common.c (convert_and_check): Move warning logic to...
24794         (warnings_for_convert_and_check): ...here. Define.
24795         * c-common.h (warnings_for_convert_and_check): Declare.
24796
24797 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24798
24799         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
24800         (output_call): Likewise.
24801
24802 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
24803
24804         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
24805
24806 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
24807
24808         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
24809
24810 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
24811
24812         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
24813         opteron, athlon-64 and athlon-fx processor_alias_table entries.
24814
24815 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
24816
24817         PR tree-optimization/31183
24818         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
24819         Use double_int instead of unsigned int for representing access_strides.
24820         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
24821
24822 2007-03-16  Richard Guenther  <rguenther@suse.de>
24823
24824         PR tree-optimization/31146
24825         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
24826         to allow recursion of forward_propagate_addr_expr.
24827         (forward_propagate_addr_into_variable_array_index): Likewise.
24828         (forward_propagate_addr_expr): Likewise.
24829         (tree_ssa_forward_propagate_single_use_vars): Likewise.
24830         (forward_propagate_addr_expr_1): Recurse on simple copies
24831         instead of propagating into them.  Do so for useless conversions
24832         as well.
24833         (forward_propagate_addr_expr): Clean up unused statements after
24834         recursion.
24835
24836 2007-03-16  Richard Guenther  <rguenther@suse.de>
24837
24838         * builtins.c (expand_builtin_cexpi): Use the right argument
24839         for the expansion via cexp.
24840
24841 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
24842
24843         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
24844         * configure: Rebuilt.
24845
24846 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
24847
24848         PR debug/29906
24849         * dwarf2out.c (force_type_die): Adjust comment.
24850         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
24851
24852 2007-03-15  DJ Delorie  <dj@redhat.com>
24853
24854         * config/frv/predicates.md (minmax_operator): Don't check operands
24855         here.
24856
24857 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
24858
24859         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
24860         Update constant estimates of number of iterations.
24861         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
24862         argument renamed to "realistic".
24863         (compute_estimated_nb_iterations): Removed.
24864         (record_niter_bound): New function.
24865         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
24866         call record_nonwrapping_iv with upper = false.
24867         (infer_loop_bounds_from_signedness): Pass upper argument to
24868         record_nonwrapping_iv.
24869         (estimate_numbers_of_iterations_loop): Do not call
24870         compute_estimated_nb_iterations.  Record estimate based on profile
24871         information.  Initialize the constant estimates of number of
24872         iterations.
24873         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
24874         estimates.
24875         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
24876         number of iterations is too small.
24877         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
24878         (EST_NOT_AVAILABLE): Removed.
24879         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
24880         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
24881         fields.
24882
24883 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
24884
24885         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
24886         Handle NE_EXPR guards.
24887
24888 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24889
24890         PR c++/24924
24891         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
24892         Set also -pedantic-errors by default for the  preprocessor unless
24893         -fpermissive is given.
24894
24895 2007-03-15  Richard Guenther  <rguenther@suse.de>
24896
24897         PR middle-end/29719
24898         PR middle-end/31161
24899         * builtins.c (expand_builtin_cexpi): As a fallback if we
24900         don't have builtins for sincos or cexp create a function
24901         declaration for cexp and expand to a call to that.
24902         (expand_builtin_int_roundingfn): Always fall
24903         back to floor/ceil and its variants even if they may be
24904         not available.
24905
24906 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
24907
24908         PR middle-end/31159
24909         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
24910         jump tables, move the call to delete_dead_jumptables from here...
24911         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
24912         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
24913         don't allow merging of blocks that try_redirect_by_replacing_jump
24914         also does not handle when not optimizing.
24915
24916 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
24917             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
24918
24919         * config/i386/i386.md (x86_sahf_1): Correctly handle
24920         HAVE_AS_IX86_SAHF.
24921
24922 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
24923
24924         PR target/31167
24925         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
24926         x86_64_general_operand as operand[2] predicate.  Remove "iF"
24927         from operand constraints and use "e" constraint instead.
24928         (*subti3_1, *subti3_1 splitter): Ditto.
24929         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
24930         operand[1] predicate.
24931
24932 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
24933
24934         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
24935         arrays, multiply the access strides by the size of the sub-array.
24936         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
24937
24938 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
24939
24940         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
24941         the configured assembler supports the sahf mnemonic.
24942         * configure: Regenerate.
24943         * config.in: Regenerate.
24944
24945         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
24946         emit "sahf" or ".byte\t0x9e" as asm template.
24947
24948 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
24949
24950         PR 31018
24951         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
24952         option to replace hard coded TARGET_xxx in md file.
24953         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
24954         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
24955         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
24956         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
24957         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
24958         (X86_TUNE_NOT_VECTORMODE): Ditto.
24959         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
24960         (TUNE_AVOID_VECTOR_DECODE): Ditto.
24961         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
24962         (TUNE_SLOW_IMUL_IMM8): Ditto.
24963         (TUNE_MOVE_M1_VIA_OR): Ditto.
24964         (TUNE_NOT_UNPAIRABLE): Ditto.
24965         (TUNE_NOT_VECTORMODE): Ditto.
24966
24967         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
24968         options.
24969
24970         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
24971         tuning options instead of hard coded TARGET_xxx.
24972         (fix ssemode peephole2's): Ditto.
24973         (imul peephole2's): Ditto.
24974         (movsi_or): Ditto.
24975         (movdi_or_rex64): Ditto.
24976         (move peephole2): Ditto.
24977         (not peephole2's): Ditto.
24978
24979 2007-03-14  Dirk Mueller  <dmueller@suse.de>
24980
24981         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
24982         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
24983         * c-parser.c (c_parser_if_body): Always add an empty statement in case
24984         of empty body.
24985         * c-parser.c (c_parser_do_statement): Warn about empty body in
24986         do/while statement.
24987         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
24988         * doc/invoke.texi (-Wempty-body): Update documentation.
24989
24990 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24991
24992         PR c/21438
24993         * c-common.h (warn_for_div_by_zero): Declare.
24994         * c-common.c (warn_for_div_by_zero): Define.
24995         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
24996         warning.
24997
24998 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
24999
25000         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
25001         to PREFIX and STANDARD_PREFIX.
25002
25003 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
25004             Phil Edwards  <phil@codesourcery.com>
25005
25006         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
25007         (__gthread_once_t): Remove busy field for RTPs.
25008         (__GTHREAD_ONCE_INIT): Update accordingly.
25009
25010 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
25011
25012         * doc/invoke.texi: Document VxWorks options.
25013
25014 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
25015
25016         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
25017
25018 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
25019
25020         PR tree-optimization/30590
25021         * tree-nrv.c (tree_nrv): Check for the partial update of the
25022         return value.
25023
25024 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
25025
25026         * flags.h (flag_random_seed): Remove declaration, in favor of...
25027         * toplev.h (get_random_seed, set_random_seed): ... these.
25028         * tree.c (get_file_function_name): Use the former.
25029         * opts.c (common_handle_option): Use the latter.
25030         * toplev.c
25031
25032 2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>
25033
25034         PR middle-end/31127
25035         * cse.c (cse_find_path): Do not bail out if a basic block that
25036         we already visited now becomes part of a path that starts at a
25037         different basic block.  Just disallow this, to make sure we
25038         visit each basic block at most once.
25039
25040 2007-03-13  Jan Hubicka  <jh@suse.cz>
25041
25042         * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
25043         attributes, when profile esitmate is present, calls with very low
25044         frequency are cold.
25045
25046 2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>
25047
25048         PR tree-optimization/30730
25049         PR tree-optimization/26900
25050         * tree-ssa-loop-niter.c: Include gmp.h.
25051         (bounds): New type.
25052         (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
25053         split_to_var_and_offset, determine_value_range,
25054         bound_difference_of_offsetted_base, refine_bounds_using_guard,
25055         bound_difference, bounds_add, bounds_negate,
25056         number_of_iterations_ne_max, dump_affine_iv): New functions.
25057         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
25058         assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
25059         difference of initial and final value of control iv to validate
25060         results.
25061         (number_of_iterations_cond): Add loop parameter.  Determine bounds
25062         on the difference of the extremes of the control iv.  Add dumps.
25063         (expand_simple_operations): Handle phi nodes.
25064         (simplify_using_initial_conditions): Do not record used conditions.
25065         (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
25066         Do not set additional_info.
25067         (implies_nonnegative_p, implies_ge_p): Removed.
25068         (derive_constant_upper_bound): Do not use parameter `additional'.
25069         (record_estimate): Parameter `additional' removed.  Parameter
25070         `i_bound' added.  Do not call derive_constant_upper_bound.
25071         (record_nonwrapping_iv): Use derive_constant_upper_bound to
25072         bound the number of iterations estimate.
25073         (estimate_numbers_of_iterations_loop): Pass the estimate from
25074         the number of iterations analysis to record_estimate.
25075         * tree.h (multiple_of_p): Declare.
25076         * tree-scalar-evolution.c (expression_expensive_p): Removed.
25077         (scev_const_prop): Do not check expression_expensive_p.
25078         * fold-const.c (multiple_of_p): Exported.
25079         * double-int.c (double_int_mask): Exported.
25080         * double-int.h (double_int_mask): Declare.
25081         * tree-flow.h (struct tree_niter_desc): Removed additional_info
25082         field.  Added max field.
25083
25084 2007-03-13  David Taylor  <taylor@candd.org>
25085
25086         PR driver/12448:
25087         * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
25088         default -MQ.
25089
25090 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25091
25092         PR target/31123
25093         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
25094         two unamed patterns.
25095
25096 2007-03-13  Uros Bizjak  <ubizjak@gmail.com>
25097
25098         * config/i386/i386.opt (mcx16, msahf): New options.
25099         * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
25100         (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
25101
25102         * config/i386/driver-i386.c (bit_LAHF_LM): New define.
25103         (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
25104         Output -mcx16 and -msahf options when corresponding bit is set.
25105
25106         * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
25107         and -msahf options.
25108
25109 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
25110
25111         * configure.ac: Test for assembler tolerance to # 0 "".
25112         * configure, config.in: Rebuilt.
25113         * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
25114
25115 2007-03-13  Geoffrey Keating  <geoffk@apple.com>
25116
25117         * doc/invoke.texi (Spec Files): Update for '%{,' spec.
25118
25119         * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
25120         (handle_syscall): Handle direct system calls.
25121         * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
25122
25123 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
25124
25125         * doc/invoke.texi: Fix cpp.info cross-reference.
25126         * doc/passes.texi: Fix gcc.info cross-reference.
25127
25128 2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>
25129
25130         PR tree-optimization/30835
25131         * lambda-code.c (can_convert_to_perfect_nest): Check whether
25132         bb_for_stmt is not NULL before accessing it.
25133
25134 2007-03-12  Joseph Myers  <joseph@codesourcery.com>
25135
25136         * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
25137         some multilibs.
25138
25139 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
25140
25141         PR 30635
25142         * doc/install.texi: Document --enable-stage1-languages
25143
25144 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
25145
25146         * tree-pass.h (pass_into_cfg_layout_mode,
25147         pass_outof_cfg_layout_mode): Declare.
25148         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
25149         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
25150         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
25151         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
25152
25153 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
25154
25155         * c-decl.c (warn_variable_length_array): New function.
25156         Refactored from grokdeclarator to handle warn_vla
25157         and handle unnamed array case.
25158         (grokdeclarator): Refactored VLA warning case.
25159         * c.opt (Wvla): New flag.
25160         * doc/invoke.texi (Wvla): New warning.
25161
25162 2007-03-12  Richard Henderson  <rth@redhat.com>
25163
25164         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
25165         (TARGET_SECTION_TYPE_FLAGS): New.
25166
25167 2007-03-12  Richard Henderson  <rth@redhat.com>
25168
25169         * config/darwin.c (machopic_reloc_rw_mask): New.
25170         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
25171         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
25172
25173 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
25174
25175         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
25176         * cppdefault.h (cpp_PREFIX): Document.
25177         (cpp_PREFIX_len): Likewise.
25178         (cpp_EXEC_PREFIX): New variable.
25179         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
25180         * c-incpath.c (add_standard_paths): Correct logic for relocating
25181         paths within prefix.
25182
25183 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
25184
25185         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
25186         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
25187         mode macro.
25188         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
25189         fix_truncdfdi_sse using SSEMODEF mode macro.
25190         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
25191         fix_truncdfsi_sse using SSEMODEF mode macro.
25192         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
25193         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
25194
25195 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
25196
25197         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
25198         elfos.h to tm_file.
25199
25200 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
25201
25202         * tree.h : Add multiple_of_p declaration.
25203         * fold-const.c (multiple_of_p): Make multiple_of_p public.
25204         * ipa-type-escape.c (results_of_malloc): Redundant.
25205         (visited_stmts): New. Visited stmt for walk_use_def_chains.
25206         (cast_type): Extended with new members.
25207         (check_cast): Returns cast_type.
25208         (cast): New structure for data of walk_use_def_chains.
25209         (is_malloc_result, is_cast_from_non_pointer_1,
25210         is_cast_from_non_pointer,
25211         is_array_access_through_pointer_and_index): New functions.
25212         (look_for_casts): Returns cast types.
25213         (check_call): Returns void.
25214         (okay_pointer_operation): Use support of pointer plus index,
25215         pointer plus constant and allow all multiplications.
25216
25217 2007-03-11  Richard Guenther  <rguenther@suse.de>
25218
25219         PR tree-optimization/31115
25220         * tree-vrp.c (extract_range_from_binary_expr): Make sure
25221         the shift count is positive and non-anti-range for RSHIFT_EXPR.
25222         A shift count of zero is not special as with *_DIV_EXPR.
25223         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
25224         direction.
25225
25226 2007-03-11  Ian Lance Taylor  <iant@google.com>
25227
25228         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
25229         the *_DIV_EXPR codes correctly with overflow infinities.
25230
25231 2007-03-11  Ira Rosen  <irar@il.ibm.com>
25232
25233         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
25234         indicate success/failure of the analysis. Add negation to subtrahend
25235         in case of subtraction. Fail if both operands contain constants.
25236         (create_data_ref): Fail if analyze_offset fails.
25237
25238 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
25239
25240         * config/i386/i386.md (frndintxf2): Rename to ...
25241         (rintxf2): ... this. Remove expander having same name.
25242         (rintsf2, rintdf2): Implement using SSEMODEF macro.
25243         (roundsf2, rounddf2): Ditto.
25244         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
25245         (lround<mode>di2, lround<mode>si2): Ditto.
25246
25247 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
25248
25249         * lower-subreg.c: Include except.h.
25250         (decompose_multiword_subregs): Verify that the only control flow
25251         insns we can split are loads to multi-words pseudos.
25252         Handle breaking such blocks after splitting, instead of calling
25253         find_many_sub_basic_blocks.
25254
25255         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
25256         on the new basic block.  Add a lengthy comment explaining why we
25257         thought this was necessary.
25258         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
25259
25260 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
25261
25262         PR c++/30924
25263         * tree.c (walk_type_fields): Recurse into the element type of
25264         ARRAY_TYPEs if there is a pointer set.
25265
25266 2007-03-10  Dirk Mueller  <dmueller@suse.de>
25267
25268         * c-common.c (warn_logical_operator): Fix condition.
25269
25270 2007-03-10  Tobias Schl�ter  <tobi@gcc.gnu.org>
25271
25272         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
25273         quotation mark.
25274         * config/darwin.c (machopic_select_section): Remove superfluous
25275         argument in call to categorize_decl_for_section.  Remove unused
25276         variable shlib.
25277
25278 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
25279
25280         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
25281         defined.
25282         * configure: Regenerate.
25283
25284 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
25285
25286         PR target/31101
25287         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
25288         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
25289         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
25290         Add LABEL_NUSES to emitted label.
25291         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
25292         branch probability value to emitted jump insn.
25293         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
25294         Do not check life information and do not re-arrange input operands
25295         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
25296
25297 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25298
25299         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
25300         the change of decode_asm_operands.
25301
25302 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25303
25304         * mode-switching.c (create_pre_exit): Skip blockage insn.
25305
25306 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
25307
25308         * tree-pass.h (TODO_update_smt_usage): Remove.
25309         Update all users.
25310         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
25311         argument SOME.
25312         Update all users.
25313
25314 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25315
25316         * pa.c (attr_length_call): Revise condition for long
25317         pc-relative branch.
25318         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
25319         local calls on the SOM target.  Don't use "LONG_PIC_PCREL" call
25320         sequence on SOM target.
25321
25322 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
25323
25324         * gcc.c: Document %{, in big comment at top.
25325         (input_suffix_matches): Remove special handling for .s and
25326         .S.
25327         (input_spec_matches): New.
25328         (handle_braces): Handle %{,.
25329         (validate_switches): ',' indicates a value which is not a switch.
25330         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
25331         to detect assembler input.
25332         * config/i386/sol2.h (CPP_SPEC): Likewise.
25333         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
25334         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25335         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
25336         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
25337         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
25338         -m64 causes deployment target to default to 10.5.
25339         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
25340
25341 2007-03-09  Richard Henderson  <rth@redhat.com>
25342
25343         PR target/26090
25344         * target.h (targetm.asm.out.reloc_rw_mask): New.
25345         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
25346         (TARGET_ASM_OUT): Use it.
25347         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
25348         * varasm.c (categorize_decl_for_section): Remove shlib argument;
25349         use the new reloc_rw_mask target hook instead.
25350         (default_section_type_flags_1): Merge into...
25351         (default_section_type_flags): ... here.
25352         (decl_readonly_section_1): Merge into...
25353         (decl_readonly_section): ... here.
25354         (default_elf_select_section_1): Merge into...
25355         (default_elf_select_section): ... here.
25356         (default_unique_section_1): Merge into...
25357         (default_unique_section): ... here.
25358         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
25359         (default_select_rtx_section): Use it.
25360         (default_elf_select_rtx_section): Likewise.
25361         * output.h: Update to match.
25362         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
25363         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
25364         (TARGET_ASM_RELOC_RW_MASK): New.
25365         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
25366         to categorize_decl_for_section.
25367         (x86_64_elf_unique_section): Likewise.
25368         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
25369         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
25370         (TARGET_ASM_RELOC_RW_MASK): New.
25371         * config/ia64/ia64.c (ia64_rwreloc_select_section,
25372         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
25373         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
25374         (TARGET_RWRELOC): Remove.
25375         (ia64_section_type_flags): Adjust call to default_section_type_flags.
25376         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
25377         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
25378         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
25379         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
25380         (rs6000_xcoff_select_section): Use decl_readonly_section.
25381         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
25382         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
25383         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
25384         (TARGET_SECTION_TYPE_FLAGS): Remove.
25385         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
25386
25387 2007-03-09  Roger Sayle  <roger@eyesopen.com>
25388
25389         * fold-const.c (fold_comparison): Remove compile-time evaluation of
25390         complex constant equality/inequality comparisons for here.
25391         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
25392         known at compile-time or can be simplified to a scalar comparison.
25393         (fold_relational_const): Move compile-time evaluation of complex
25394         constant equality/inequality comparisons to here.
25395
25396 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
25397
25398         PR rtl-optimization/30643
25399         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
25400         dest_addr_elt.
25401         (fold_rtx): Recurse, like before 2006-11-03.
25402
25403 2007-03-09  DJ Delorie  <dj@redhat.com>
25404
25405         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
25406         m32c-pragma.o.
25407
25408 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
25409
25410         PR tree-optimization/30375
25411         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
25412         LHS of statements is not the same.
25413         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
25414
25415 2007-03-09  Chao-ying Fu  <fu@mips.com>
25416
25417         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
25418         REV 2.
25419         * doc/invoke.texi (-mdspr2): Document new option.
25420         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
25421         New unspec for DSP REV 2.
25422         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
25423         these instructions are extended in DSP REV 2.
25424         (mips-dspr2.md): Include.
25425         * config/mips/mips.opt (mdspr2): New option.
25426         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
25427         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
25428         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
25429         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
25430         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
25431         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
25432         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
25433         and 2 builtins.
25434         (bdesc_map): Add one field of unsupported_target_flags.
25435         (bdesc_arrays): Update entries to have extra fields.  Add
25436         dsp_32only_bdesc.
25437         (mips_init_builtins): Initialize new function types.
25438         Check unsupported_target_fileds to filter out builtins.
25439         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
25440         TARGET_DSPR2.
25441         (ASM_SPEC): Pass mdspr2 to the assembler.
25442         * config/mips/mips-dspr2.md: New file.
25443
25444 2007-03-09  Sa Liu  <saliu@de.ibm.com>
25445
25446         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
25447
25448 2007-03-09  Ian Lance Taylor  <iant@google.com>
25449
25450         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
25451         argument) like -Wstrict-overflow=2.
25452         * doc/invoke.texi (Warning Options): Update documentation.
25453
25454 2007-03-09  Dirk Mueller  <dmueller@suse.de>
25455
25456         PR c++/17946
25457         * doc/invoke.texi (-Wlogical-op): Document.
25458         * common.opt (-Wlogical-op): New.
25459         * c-common.h (warn_logical_operator): Declare.
25460         * c-common.c (warn_logical_operator): Define.
25461         * c-typeck.c (parser_build_binary_op): Call
25462         warn_logical_operator.
25463
25464 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
25465
25466         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
25467         * final.c (final_scan_insn): Test for non-"" file name.
25468
25469 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
25470
25471         * doc/loop.texi: Document the Omega linear constraints solver.
25472         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
25473         omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
25474         omega-hash-table-size, omega-max-keys, and
25475         omega-eliminate-redundant-constraints.
25476         * tree-pass.h (pass_check_data_deps): Declared.
25477         * omega.c: New.
25478         * omega.h: New.
25479         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
25480         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
25481         pass_check_data_deps): New.
25482         * tree-data-ref.c (init_data_ref): Remove declaration.
25483         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
25484         (analyze_array): Renamed init_array_ref, move up initializations.
25485         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
25486         Removed arguments that are set to NULL.
25487         (analyze_indirect_ref): Correct indentation, correct call to
25488         init_pointer_ref.
25489         (object_analysis): Call init_array_ref instead of analyze_array.
25490         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
25491         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
25492         of DR_ACCESS_FNS_ADDR.
25493         (init_omega_eq_with_af, omega_extract_distance_vectors,
25494         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
25495         ddr_consistent_p): New.
25496         (compute_affine_dependence): Check consistency of ddrs when
25497         flag_check_data_deps is passed.
25498         (analyze_all_data_dependences): Uncomment.
25499         (tree_check_data_deps): New.
25500         * tree-data-ref.h: Include omega.h.
25501         (DR_ACCESS_FNS_ADDR): Removed.
25502         (data_dependence_relation): Add inner_loop.
25503         (DDR_INNER_LOOP): New.
25504         * common.opt (fcheck-data-deps): New.
25505         * tree-flow.h (tree_check_data_deps): Declare.
25506         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
25507         (OBJS-common): Depend on omega.o.
25508         (omega.o): Define.
25509         * passes.c (pass_check_data_deps): Scheduled.
25510         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
25511         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
25512         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
25513         PARAM_VECT_MAX_VERSION_CHECKS,
25514         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
25515
25516 2007-03-09  Richard Guenther  <rguenther@suse.de>
25517
25518         PR tree-optimization/30904
25519         PR middle-end/31058
25520         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
25521         the same way as *_DIV_EXPR.
25522
25523 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
25524
25525         * recog.c (decode_asm_operands): No mixed declarations and code.
25526
25527 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
25528
25529         * rtl.def (ASM_INPUT): Add location.
25530         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
25531         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
25532         (decode_asm_operands): Add loc operand.
25533         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
25534         * stmt.c (expand_asm): Rename to...
25535         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
25536         gen_rtx_ASM_INPUT_loc.
25537         (expand_asm_expr): Adjust.
25538         * recog.c (decode_asm_operands): Add loc operand.
25539         (check_asm_operands, extract_insn): Adjust.
25540         * reload1.c (maybe_fix_stack_asms): Likewise.
25541         * final.c (asm_insn_count): Likewise.
25542         (final_scan_insn): Output # line before and after asm.
25543
25544 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
25545
25546         * tree-ssa-structalias.c (variable_info): Remove
25547         finished_solution.
25548         (new_var_info): Ditto.
25549         (shared_bitmap_info_t): New structure.
25550         (shared_bitmap_table): New variable.
25551         (shared_bitmap_hash): New function.
25552         (shared_bitmap_eq): Ditto
25553         (shared_bitmap_lookup): Ditto.
25554         (shared_bitmap_add): Ditto.
25555         (merge_smts_into): Change to take bitmap directly.
25556         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
25557         (init_alias_vars): Init shared bitmap hashtable.
25558         (delete_points_to_sets): Delete shared bitmap hashtable.
25559         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
25560         is_aliased removal as a change that was still necessary was
25561         deleted.
25562
25563 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
25564
25565         * config/i386/i386.h (override_options): Conditionally disable
25566         x86_sahf for 64bit targets only.
25567
25568 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25569
25570         PR C/31072
25571         * c-decl.c (merge_decls): Don't call make_var_volatile.
25572         * varasm.c (make_var_volatile): Remove.
25573         * output.h (make_var_volatile): Remove.
25574
25575 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
25576
25577         PR tree-optimization/31085
25578         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
25579
25580 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25581
25582         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
25583         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
25584         ATTR_CONST_NOTHROW_LIST.
25585
25586         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
25587         FIX_TRUNC_EXPR.
25588
25589 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
25590
25591         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
25592
25593 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
25594
25595         PR 31013
25596         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
25597         is declared.
25598         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
25599         passed, use shared libgcc.
25600
25601 2007-03-08  Roger Sayle  <roger@eyesopen.com>
25602
25603         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
25604         instead of calling build2 with a GIMPLE_MODIFY_STMT.
25605         (honor_protect_cleanup_actions, lower_try_finally_switch):
25606         Likewise.
25607         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
25608         ifc_temp_var): Likewise.
25609         * tree-inline.c (setup_one_parameter): Likewise.
25610         * tree-mudflap.c (mf_decl_cache_locals,
25611         mf_build_check_statement_for): Likewise.
25612         * tree-nested.c (init_tmp_var, save_tmp_var,
25613         finalize_nesting_tree_1): Likewise.
25614         * tree-outof-ssa.c (insert_copy_on_edge,
25615         insert_backedge_copies): Likewise.
25616         * tree-profile.c (tree_gen_edge_profiler,
25617         tree_gen_ic_profiler): Likewise.
25618         * tree-scalar-evolution.c (scev_const_prop): Likewise.
25619         * tree-sra.c (sra_build_assignment): Likewise.
25620         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
25621         * tree-ssa-math-opts.c (insert_reciprocals,
25622         execute_cse_sincos_1): Likewise.
25623         * tree-tailcall.c (adjust_accumulator_values,
25624         adjust_return_value): Likewise.
25625         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
25626         * tree-vect-transform.c (vect_create_data_ref_ptr,
25627         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
25628         vect_create_epilog_for_reduction, vectorizable_reduction,
25629         vectorizable_call, vectorizable_conversion,
25630         vectorizable_assignment, vectorizable_operation,
25631         vectorizable_type_demotion, vect_gen_widened_results_half,
25632         vect_permute_store_chain, vectorizable_store,
25633         vect_setup_realignment, vect_permute_load_chain,
25634         vectorizable_load, vectorizable_condition,
25635         vect_create_cond_for_align_checks): Likewise.
25636         * tree-vrp.c (build_assert_expr_for): Likewise.
25637
25638 2007-03-08  Ian Lance Taylor  <iant@google.com>
25639
25640         * tree-vrp.c: Include "intl.h".
25641         (usable_range_p): New static function.
25642         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
25643         overflowed values, juts set *strict_overflow_p.
25644         (compare_values): Only return -2 if one of the operands is not a
25645         constant.
25646         (compare_ranges): Call usable_range_p.
25647         (compare_range_with_value): Likewise.
25648         (vrp_evaluate_conditional_warnv): Rename from
25649         vrp_evaluate_conditional.  Make static.  Change all callers.
25650         (vrp_evaluate_conditional): New function.
25651         (simplify_div_or_mod_using_ranges): Issue warning about reliance
25652         on signed overflow.
25653         (simplify_abs_using_ranges): Likewise.
25654         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
25655         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
25656         within_stmt parameter.
25657         * tree-ssa-propagate.c (fold_predicate_in): Update call to
25658         vrp_evaluate_conditional.
25659         * tree-ssa-threadedge.c
25660         (record_temporary_equivalences_from_stmts_at_dest): Change
25661         simplify parameter to take a second tree parameter.
25662         (simplify_control_stmt_condition): Likewise.
25663         (thread_across_edge): Likewise.
25664         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
25665         (thread_across_edge): Likewise.
25666         * Makefile.in (tree-vrp.o): Depend upon intl.h.
25667
25668 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
25669
25670         * config/i386/i386.h (TARGET_SAHF): New define.
25671         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
25672         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
25673         (x86_sahf): New global variable.
25674         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
25675         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
25676         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
25677         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
25678         for 64-bit.
25679         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
25680         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
25681         when expanding fcomi/sahf based tests.
25682         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
25683         expanding sahf based alternative. Emit sahf based sequence when
25684         optimizing for code size.
25685         * config/i386/i386.md (x86_sahf_1): Do not disable for
25686         TARGET_64BIT, enable for TARGET_SAHF.
25687
25688 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
25689
25690         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
25691         spurious whitespace from error message.
25692
25693 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
25694
25695         PR c++/30852
25696         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
25697
25698 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
25699
25700         * c-decl.c (grokdeclarator): Disable warnings for anonymous
25701         bitfields.
25702         * tree-sra.c (instantiate_element): Propagate disabled warnings
25703         from the element itself to the created variable.
25704
25705 2007-03-07  Richard Henderson  <rth@redhat.com>
25706
25707         PR target/30848
25708         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
25709         silently fix up the stack in the case of a missing register.
25710
25711 2007-03-07  Paul Brook  <paul@codesourcery.com>
25712
25713         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
25714
25715 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
25716
25717         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
25718         New.
25719         (phase1_vrs): Use them.
25720         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
25721         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
25722         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
25723         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
25724         __gnu_Unwind_Restore_WMMXC if required.
25725         (_Unwind_VRS_Pop): Implement iWMMXt support.
25726         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
25727         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
25728         gnu_Unwind_Save_WMMXC): Define.
25729
25730 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
25731
25732         * config/vxworks.h (vxworks_override_options): Declare.
25733         (VXWORKS_OVERRIDE_OPTIONS): Use it.
25734         * config/vxworks.c: Include target.h and toplev.h.
25735         (vxworks_override_options): New function.
25736         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
25737
25738 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
25739
25740         * config/s390/s390.c (override_options): Don't emit an error when
25741         -mstack-size is used without providing -mstack-guard.
25742         (s390_emit_prologue): Choose stack_guard value automatically if not
25743         provided via command line.
25744         * doc/invoke.texi: Adjust description of -mstack-guard and
25745         -mstack-size.
25746
25747 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
25748
25749         * config/i386/i386.c (output_set_got): Add a GOT initialization
25750         sequence for VxWorks PIC.
25751         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
25752         around labels as well as symbols.  Use gotoff_operand instead
25753         of local_symbolic_operand.
25754         (legitimize_pic_address): Use gotoff_operand instead of
25755         local_symbolic_operand.  Use @GOT accesses for labels as
25756         well as symbols.
25757         (ix86_output_addr_diff_elt): Use PC-relative rather than
25758         GP-relative offsets for VxWorks PIC.
25759         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
25760         no_new_pseudos.  Check whether the returned register is op0.
25761         * config/i386/i386.md (tablejump): Use PC-relative rather than
25762         GP-relative offsets for VxWorks PIC.
25763         * config/i386/predicates.md (gotoff_operand): New predicate.
25764
25765 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
25766
25767         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
25768         before defining.
25769         * config/vxworks-dummy.h: New file.
25770         * config/i386/i386.h: Include it.
25771
25772 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
25773
25774         * dwarf2out.c (is_inlined_entry_point): New
25775         (add_high_low_attributes): Emit DW_AT_entry_pc along with
25776         DW_AT_ranges if the first subblock is the entry point.
25777
25778 2007-03-06  David Daney  <ddaney@avtrex.com>
25779
25780         * doc/install.texi (mips-*-*): Change recommended binutils
25781         version.
25782
25783 2007-03-06  Anatoly Sokolov <aesok@post.ru>
25784
25785         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
25786         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
25787         devices.
25788         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
25789         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
25790
25791 2007-03-06  Jan Hubicka  <jh@suse.cz>
25792
25793         * errors.h (warning, error, fatal, internal_error): Mark as cold.
25794         * predict.c (maybe_hot_bb): Cold functions are never hot; hot
25795         functions are hot.
25796         (probably_cold_bb_p): Cold functions are cold.
25797         (probably_never_executed_bb_p): Cold functions are cold.
25798         (tree_bb_level_predictions): Predict calls to cold functions as not
25799         taken.
25800         (compute_function_frequency): Check hot/cold attributes.
25801         * function.h (function_frequency): Update comments.
25802         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
25803         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
25804         (c_common_att): Add cold and hot.
25805
25806         * doc/extend.texi (hot,cold attributes): Document.
25807
25808 2007-03-06  Andrew Haley  <aph@redhat.com>
25809
25810         * function.c (expand_function_end): Move blockage to just after we
25811         emit the label for the naked return from the function.
25812
25813 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
25814
25815         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
25816         before redefining.
25817
25818 2007-03-06  Jan Hubicka  <jh@suse.cz>
25819
25820         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
25821         loaded for constant large models.  Non-large 64bit PIC can do.
25822         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
25823         * cmodel.h: Add LARGE PIC.
25824         * i386.md (UNSPEC_PLTOFF): New.
25825         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
25826         unspecs as needed.
25827         (*call_1_rex64): Disable for large models.
25828         (*call_1_rex64_large): New.
25829         (*call_value_1_rex64): Disable for large models.
25830         (*call_value_1_rex64_large): New.
25831         (set_rip_rex4): New.
25832         (set_got_offset_rex64): New.
25833         * predicates.md (constant_call_address_operand): For large model
25834         constant calls are not possible.
25835         * i386-protos.h (construct_plt_address): Declare.
25836         * i386.c (override_options): Accept large models.
25837         (ix86_expand_prologue): Expand large PIC GOT pointer load.
25838         (legitimate_constant_p): Add new UNSPECs.
25839         (legitimate_pic_operand_p): Likewise.
25840         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
25841         (legitimize_pic_address): Do easy RIP relative way for TLS only for
25842         non-large model.
25843         (output_pic_addr_const): Add PLTOFF.
25844         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
25845         (ix86_expand_move): Legitimize pic address when in PIC mode.
25846         (construct_plt_address): New function.
25847         (ix86_expand_call): Offload the address to register and use GOT
25848         pointer for large model.
25849         * invoke.texi (mcmodel=large): Update documentation.
25850
25851 2007-03-06  Richard Henderson  <rth@redhat.com>
25852
25853         * config/i386/i386.c (x86_use_leave, x86_push_memory,
25854         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
25855         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
25856         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
25857         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
25858         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
25859         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
25860         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
25861         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
25862         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
25863         x86_partial_reg_dependency, x86_memory_mismatch_stall,
25864         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
25865         x86_sse_partial_reg_dependency, x86_sse_split_regs,
25866         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
25867         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
25868         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
25869         x86_schedule, x86_use_bt, x86_pad_returns,
25870         x86_use_xchgb): Merge into ...
25871         (ix86_tune_features): ... here.  New array.
25872         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
25873         x86_bswap): Merge into ...
25874         (ix86_arch_features): ... here.  New array.
25875         (x86_3dnow_a): Remove.
25876         (x86_accumulate_outgoing_args): Make static.
25877         (x86_arch_always_fancy_math_387): Make static.
25878         (ix86_tune_mask, ix86_arch_mask): Move ...
25879         (override_options): ... to local variables here.  Apply the
25880         appropriate mask to each element of ix86_arch_features and
25881         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
25882         as were done in the old macros.
25883         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
25884         * config/i386/i386.h (x86_use_leave, x86_push_memory,
25885         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
25886         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
25887         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
25888         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
25889         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
25890         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
25891         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
25892         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
25893         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
25894         x86_partial_reg_dependency, x86_memory_mismatch_stall,
25895         x86_accumulate_outgoing_args, x86_prologue_using_move,
25896         x86_epilogue_using_move, x86_decompose_lea,
25897         x86_arch_always_fancy_math_387, x86_shift1,
25898         x86_sse_partial_reg_dependency, x86_sse_split_regs,
25899         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
25900         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
25901         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
25902         x86_use_incdec, x86_pad_returns, x86_bswap,
25903         x86_partial_flag_reg_stall): Remove.
25904         (enum ix86_tune_indices): New.
25905         (ix86_tune_features): New.
25906         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
25907         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
25908         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
25909         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
25910         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
25911         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
25912         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
25913         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
25914         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
25915         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
25916         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
25917         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
25918         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
25919         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
25920         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
25921         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
25922         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
25923         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
25924         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
25925         TARGET_EXT_80387_CONSTANTS): Use it.
25926         (enum ix86_arch_indices): New.
25927         (ix86_arch_features): New.
25928         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
25929         TARGET_BSWAP): Use it.
25930         (ix86_tune_mask, ix86_arch_mask): Remove.
25931
25932 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
25933
25934         PR bootstrap/31020
25935         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
25936         Define using $${sysroot_headers_suffix}.
25937         * configure: Regenerate.
25938         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
25939         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
25940         defined.
25941         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
25942         * gcc.c (print_sysroot_headers_suffix): New.
25943         (option_map): Include --print-sysroot-headers-suffix.
25944         (display_help): Mention -print-sysroot-headers-suffix.
25945         (process_command): Handle -print-sysroot-headers-suffix.
25946         (do_spec_1): Append multilib directory to include-fixed path if
25947         sysroot suffixes in use.
25948         (main): Handle -print-sysroot-headers-suffix.
25949         * Makefile.in (start.encap): Don't depend on xlimits.h
25950         (xlimits.h): Remove.
25951         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
25952         limits.h for each multilib in fixinc_list.
25953         (fixinc_list, s-fixinc_list): New.
25954         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
25955         generate them for each multilib in fixinc_list.
25956         (stmp-fixproto): Use include-fixed.  Run fixproto for each
25957         multilib in fixinc_list.
25958         (mostlyclean): Don't remove xlimits.h.
25959         (clean): Remove include-fixed.
25960         (real-install-headers-tar, real-install-headers-cpio,
25961         real-install-headers-cp): Don't copy include, only include-fixed.
25962         (install-mkheaders): Depend on fixinc_list.  Don't depend on
25963         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
25964         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
25965         SYSTEM_HEADER_DIR setting in mkheaders.conf.
25966
25967 2007-03-06  Jan Hubicka  <jh@suse.cz>
25968
25969         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
25970         NANs easilly.
25971
25972 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
25973
25974         * configure.ac: Allow tm_file to contain build-directory files.
25975         * configure: Regenerate.
25976         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
25977         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
25978         * config/m68k/print-sysroot-suffix.sh: New file.
25979
25980 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
25981
25982         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
25983         of pic_offset_table_rtx if reload_completed.
25984         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
25985         PIC_OFFSET_TABLE_REGNUM.
25986         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
25987         return true.
25988         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
25989         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
25990
25991 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
25992
25993         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
25994         functions that call eh_return.
25995
25996 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
25997
25998         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
25999         functions that need a constant pool.
26000
26001 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
26002
26003         PR target/28181
26004         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
26005         (m68k_preferred_reload_class): Likewise.
26006         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
26007         (SECONDARY_RELOAD_CLASS): Define.
26008         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
26009         (LIMIT_RELOAD_CLASS): Delete.
26010         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
26011         registers from storing bytes.
26012         (m68k_secondary_reload_class): New function.
26013         (m68k_preferred_reload_class): Likewise.
26014
26015 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
26016
26017         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
26018         leaf functions.
26019         (m68k_expand_prologue): Likewise.
26020
26021 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
26022
26023         * config/m68k/m68k-protos.h (output_sibcall): Declare.
26024         (mips_expand_epilogue): Add a bool parameter.
26025         (m68k_legitimize_sibcall_address): Declare.
26026         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
26027         (m68k_expand_epilogue): Add a parameter to select between sibling
26028         and normal epilogues.  Only generate a return for the latter.
26029         (m68k_ok_for_sibcall_p): New function.
26030         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
26031         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
26032         (sibcall_value, *sibcall_value): Likewise.
26033         (*call, *call_value): Require !SIBLING_CALL_P.
26034         (epilogue): Update call to m68k_expand_epilogue.
26035         (sibcall_epilogue): New pattern.
26036         * config/m68k/predicates.md (const_call_operand): Say that this
26037         predicate applies to sibling calls too.
26038         (sibcall_operand): New predicate.
26039
26040 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
26041
26042         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
26043         alternatives as movsi_cf.
26044         (movsf_cf_hard): Add commentary.
26045
26046 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
26047             Richard Sandiford  <richard@codesourcery.com>
26048
26049         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
26050         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
26051         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
26052         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
26053         as being live on exit from an interrupt function.
26054         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
26055         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
26056         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
26057         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
26058         (m68k_interrupt_function_p): Globalize.
26059         (m68k_compute_frame_layout): Remove reverse mask code.
26060         (m68k_emit_movem, m68k_set_frame_related): New functions.
26061         (m68k_output_function_prologue): Delete in favor of...
26062         (m68k_expand_prologue): ...this new function.
26063         (m68k_output_function_epilogue): Delete in favor of...
26064         (m68k_expand_epilogue): ...this new function.
26065         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
26066         functions.
26067         (print_operand): Handle %?.
26068         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
26069         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
26070         (prologue, epilogue): New patterns.
26071         (return): Turn into a define_expand.
26072         (*return): New pattern, derived from old "return" pattern.  Use rte
26073         rather than rts for interrupt functions.  Only use rtd if the pop
26074         count is nonzero.
26075         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
26076         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
26077         (link, *link, unlink, *unlink, load_got): Likewise.
26078
26079 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
26080
26081         PR target/23482
26082         PR target/17114
26083         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
26084         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
26085         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
26086         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
26087         and m68k_matches_u_p.
26088         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
26089         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
26090         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
26091         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
26092         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
26093         (REG_STRICT_P): New macro.
26094         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
26095         PCREL_GENERAL_OPERAND_OK.
26096         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
26097         m68k_legitimate_base_reg_p.
26098         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
26099         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
26100         (PIC_CASE_VECTOR_ADDRESS): Update comment.
26101         * config/m68k/m68k.c (m68k_address): New structure.
26102         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
26103         (m68k_decompose_index, m68k_legitimate_constant_address_p)
26104         (m68k_jump_table_ref_p, m68k_decompose_address)
26105         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
26106         (m68k_matches_u_p): New functions.
26107         (print_operand_address): Rewrite to use m68k_decompose_index.
26108
26109 2007-03-05  David Taylor  <dtaylor@emc.com>
26110
26111         * gcc.c: Correct copyright date in --version output.
26112
26113 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26114
26115         * pa.md: In unamed move patterns, disparge copies between general
26116         and floating point registers using '?' modifier.  Don't include 'f'
26117         constraint for register preferences in DImode, SImode, HImode and
26118         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
26119         Remove constraints for copies between general and floating registers
26120         in soft-float DFmode pattern.
26121         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
26122         floating register.
26123         (movsf): Likewise.
26124
26125 2007-03-05  Mike Stump  <mrs@apple.com>
26126
26127         * c-common.c (targetcm): Add.
26128         * c-opts.c (c_common_handle_option): Handle language specific
26129         target options.
26130         * opts.c (handle_option): Verify language for target options, if
26131         any are given.
26132         * opth-gen.awk: Add CL_LANG_ALL.
26133         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
26134         (TARGETCM_INITIALIZER): Add.
26135         * target.h (struct gcc_targetcm): Add.
26136         (targetcm): Add.
26137         * targhooks.c (default_handle_c_option): Add.
26138         * targhooks.h (default_handle_c_option): Add.
26139         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
26140
26141         * config/darwin.opt (iframework): Add.
26142         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
26143         * config/darwin-c.c (handle_c_option): Add.
26144         (TARGET_HANDLE_C_OPTION): Add.
26145         (targetcm): Add.
26146         * doc/invoke.texi (Darwin Options): Add -iframework.
26147
26148 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26149
26150         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
26151         conversion.
26152
26153 2007-03-05  Ian Lance Taylor  <iant@google.com>
26154
26155         * c.opt (fgnu89-inline): New option.
26156         * c-opts.c (c_common_post_options): Set default value for
26157         flag_gnu89_inline.
26158         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
26159         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
26160         inline functions.
26161         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
26162         (grokdeclarator, start_function): Likewise.
26163         * c-cppbuiltin.c (c_cpp_builtins): Define either
26164         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
26165         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
26166         (C Dialect Options): Document -fgnu89-inline.
26167         * doc/extend.texi (Function Attributes): Explain what the
26168         gnu_inline attribute does.
26169         * doc/cpp.texi (Common Predefined Macros): Document
26170         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
26171
26172 2007-03-05  Ian Lance Taylor  <iant@google.com>
26173
26174         PR tree-optimization/31034
26175         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
26176         half-range if the other side is an overflow infinity.
26177
26178 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
26179
26180         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
26181         (bfin*-linux-uclibc*): New configuration.
26182         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
26183         defining.
26184         * config/bfin/linux.h: New file.
26185         * config/bfin/libgcc-bfin.ver: New file.
26186         * config/bfin/t-bfin-uclinux: New file.
26187         * config/bfin/t-bfin-linux: New file.
26188         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
26189         (TARGET_OS_CPP_BUILTINS): New macro.
26190
26191 2007-03-05  Richard Guenther  <rguenther@suse.de>
26192
26193         * fold-const.c (fold_binary): Remove duplicate folding
26194         of comparison of non-null ADDR_EXPR against null.
26195
26196 2007-03-05  Richard Guenther  <rguenther@suse.de>
26197             Dorit Nuzman  <dorit@il.ibm.com>
26198
26199         PR tree-optimization/26420
26200         * tree-vectorizer.c (vectorize_loops): Bail out early if there
26201         are no loops in the function.  Only print the number of
26202         vectorized loops if it is greater than zero or we are supposed
26203         to print information about unvectorized loops.
26204
26205 2007-03-05  Revital Eres  <eres@il.ibm.com>
26206
26207         * gcc.dg/var-expand1.c: New test.
26208         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
26209         when an accumulator is expanded.
26210
26211 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26212
26213         PR other/30465
26214         * c-common.c (convert_and_check): Don't give warnings for
26215         conversion if 'expr' already overflowed.
26216
26217 2007-03-04  Roger Sayle  <roger@eyesopen.com>
26218
26219         PR middle-end/30744
26220         * fold-const.c (fold_comparison): Enforce type consistency when
26221         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
26222
26223 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
26224
26225         * tree-ssa-address.c (create_mem_ref): Do not put an expression
26226         containing a cast to the base of TARGET_MEM_REF.
26227
26228 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
26229
26230         * tree.c (tree_contains_struct_check_failed): Remove spurious
26231         whitespace from error message.
26232
26233 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
26234
26235         PR target/30406
26236         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
26237         instead of precision.
26238
26239 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
26240             Nathan Sidwell  <nathan@codesourcery.com>
26241
26242         * emit-rtl.c (find_auto_inc): New.
26243         (try_split): recreate REG_INC notes,
26244         Use regular for loops rather than whiles.
26245
26246 2007-03-03  Andreas Schwab  <schwab@suse.de>
26247
26248         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
26249         * configure: Regenerate.
26250
26251 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26252
26253         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
26254         flag_rounding_math, not flag_unsafe_math_optimizations.
26255
26256         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
26257         fold_build2.
26258         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
26259         alpha_fold_vector_minmax): Likewise.
26260         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
26261         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
26262
26263 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
26264
26265         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
26266         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
26267         if the lhs has side-effects.
26268         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
26269
26270 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
26271
26272         * config/i386/i386.h (TUNEMASK): Remove define.
26273         (ARCHMASK): Remove define.
26274         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
26275          Use ix86_arch_mask variable instead of ARCHMASK.
26276         * config/i386/i386.c (override_options): Ditto.
26277         (standard_80387_constant_p): Ditto.
26278
26279 2007-03-02  Ian Lance Taylor  <iant@google.com>
26280
26281         Used signed infinities in VRP.
26282         * tree-vrp.c (uses_overflow_infinity): New static function.
26283         (supports_overflow_infinity): New static function.
26284         (make_overflow_infinity): New static function.
26285         (negative_overflow_infinity): New static function.
26286         (positive_overflow_infinity): New static function.
26287         (is_negative_overflow_infinity): New static function.
26288         (is_positive_overflow_infinity): New static function.
26289         (is_overflow_infinity): New static function.
26290         (overflow_infinity_range_p): New static function.
26291         (compare_values_warnv): New function split out of compare_values.
26292         (compare_value): Call it.
26293         (set_value_range_to_nonnegative): Add overflow_infinity
26294         parameter.  Change caller.
26295         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
26296         Change callers.
26297         (vrp_expr_computes_nonzero): Likewise.
26298         (compare_ranges, compare_range_with_value): Likewise.
26299         (compare_name_with_value, compare_names): Likewise.
26300         (vrp_evaluate_conditional): Likewise.
26301         (set_value_range): Handle infinity
26302         (vrp_operand_equal_p, operand_less_p): Likewise.
26303         (extract_range_from_assert): Likewise.
26304         (vrp_int_const_binop): Likewise.
26305         (extract_range_from_binary_expr): Likewise.
26306         (extract_range_from_unary_expr): Likewise.
26307         (extract_range_from_comparison): Likewise.
26308         (extract_range_from_expr): Likewise.
26309         (dump_value_range): Likewise.
26310         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
26311         (test_for_singularity): Likewise.
26312         (vrp_int_const_binop): Remove inline qualifier.
26313         (adjust_range_with_scev): Add comment.
26314         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
26315
26316 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
26317
26318         * tree-ssa-structalias.c (could_have_pointers): Tidy.
26319         (get_constraint_for): Likewise.
26320         (do_structure_copy): Likewise.
26321         (find_func_aliases): Fix references to MODIFY_EXPR.
26322         (intra_create_variable_infos): Tidy.
26323         * tree-ssa-operands.c (add_virtual_operand): Add argument
26324         IS_CALL_SITE.
26325         When adding members of alias sets, if IS_CALL_SITE is true and
26326         the symbol is not call-clobbered, skip it.
26327         Adjust all callers.
26328
26329 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
26330
26331         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
26332         entry by means of emit_insn_at_entry.
26333
26334 2007-03-02  Richard Henderson  <rth@redhat.com>
26335
26336         * expr.h (promoted_input_arg): Remove decl.
26337         * function.c (promoted_input_arg): Merge into ...
26338         * combine.c (setup_incoming_promotions): ... only caller.
26339         Rearrange to avoid double loop.
26340
26341 2007-03-02  Ben Elliston  <bje@au.ibm.com>
26342             Peter Bergner  <bergner@vnet.ibm.com>
26343             Janis Johnson  <janis187@us.ibm.com>
26344
26345         * config/rs6000/dfp.md: New file.
26346         * config/rs6000/rs6000.md: Include dfp.md.
26347         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
26348         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
26349         and TDmode decimal float modes in FP registers.
26350         (num_insns_constant): Likewise.
26351         (rs6000_legitimate_offset_address_p): Likewise.
26352         (rs6000_legitimize_address): Likewise.
26353         (rs6000_legitimize_reload_address): Likewise.
26354         (rs6000_legitimate_address): Likewise.
26355         (rs6000_emit_move): Likewise.
26356         (function_arg_boundary): Likewise.
26357         (function_arg_advance): Likewise.
26358         (rs6000_darwin64_record_arg_recurse): Likewise.
26359         (function_arg): Likewise.
26360         (rs6000_gimplify_va_arg): Likewise.
26361         (rs6000_split_multireg_move): Likewise.
26362         (rs6000_output_function_epilogue): Likewise.
26363         (rs6000_output_function_epilogue): Likewise.
26364         (rs6000_register_move_cost): Likewise.
26365         (rs6000_function_value): Likewise.
26366         (rs6000_libcall_value): Likewise.
26367
26368 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
26369
26370         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
26371
26372 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
26373
26374         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
26375         Use $MULTIDIR to choose between the kernel and RTP headers,
26376         and use $WIND_BASE and $WIND_USR to locate them.
26377
26378 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
26379
26380         * config/i386/i386.c (override_options): Put initialization of
26381         ix86_tune_mask and ix86_arch_mask to the correct place.
26382
26383 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
26384             Michael Meissner  <michael.meissner@amd.com>
26385
26386         PR target/31019
26387         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
26388         (ARCHMASK): Define.
26389         (TARGET_CMOVE): Use ARCHMASK.
26390         (TARGET_CMPXCHG): Ditto.
26391         (TARGET_CMPXCHG8B): Ditto.
26392         (TARGET_XADD): Ditto.
26393         (TARGET_BSWAP): Ditto.
26394         * config/i386/i386.c (ix86_tune_mask): New global variable.
26395         (ix86_arch_mask): Ditto.
26396         (override_options): Initialize ix86_tune_mask and
26397         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
26398         target_flags.
26399
26400 2007-03-02  Ben Elliston  <bje@au.ibm.com>
26401
26402         PR 30992
26403         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
26404
26405 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
26406
26407         * target.h (init_dwarf_reg_sizes_extra): New target hook.
26408         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
26409         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
26410         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
26411         hook.
26412         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
26413         rs6000_init_dwarf_reg_sizes_extra): New.
26414         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
26415         SPE register high parts.
26416
26417 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
26418
26419         * Makefile.in: Add install-pdf target as
26420         copied from automake v1.10 rules.
26421         * configure.ac: Add install-pdf to target list.
26422         * configure: Regenerate.
26423
26424 2007-03-01  Paul Brook  <paul@codesourcery.com>
26425
26426         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
26427         modes to LDRD for DImode.
26428         (output_move_double): Fixup out of range ldrd/strd.
26429         (vfp_secondary_reload_class): Rename...
26430         (coproc_secondary_reload_class): ... to this.  Add wb argument.
26431         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
26432         coproc_secondary_reload_class for CLASS_IWMMXT.
26433         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
26434         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
26435
26436 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
26437
26438         * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
26439         unroll factor by the estimated number of iterations.
26440         (loop_prefetch_arrays): Do not prefetch in loops that iterate less
26441         than prefetch latency.
26442
26443         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
26444         decode_caches_intel, detect_caches_intel): New functions.
26445         (host_detect_local_cpu): Use detect_caches_amd and
26446         detect_caches_intel.
26447
26448 2007-03-01  Richard Henderson  <rth@redhat.com>
26449
26450         * expr.c (emit_move_complex_push): Export.
26451         (emit_move_complex_parts): Split out from ...
26452         (emit_move_complex): ... here.
26453         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
26454         * config/i386/i386.md (movcdi): New.
26455
26456 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
26457
26458         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
26459         size of mode1 to check for tieable modes in MMX case.
26460
26461 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
26462
26463         * Makefile.in (rtlanal.o): Depend on tree.h.
26464         * rtl.h (offset_within_section_p, split_const): Declare.
26465         * rtlanal.c: Include tree.h.
26466         (offset_within_block_p): New function, taken from
26467         mips_offset_within_object_p.
26468         (split_const): New function, taken from mips_split_const.
26469         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
26470         Declare.
26471         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
26472         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
26473         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
26474         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
26475         (m68k_illegitimate_symbolic_constant_p): New function.
26476         * config/m68k/m68k.md (movsi): Remove misleading predicates.
26477         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
26478         symbolic constant that might be outside the symbol's section,
26479         move the symbol first and then add the offset.
26480         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
26481         Override.
26482         * config/mips/mips.c (mips_split_const): Delete.
26483         (mips_offset_within_object_p): Delete.
26484         (mips_symbolic_constant_p): Use offset_within_section_p and
26485         split_const instead of mips_offset_within_object_p and
26486         mips_split_const.
26487         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
26488         (mips_legitimize_const_move, print_operand_reloc)
26489         (mips_dangerous_for_la25_p): Use split_const instead of
26490         mips_split_const.
26491
26492 2007-02-28  Eric Christopher  <echristo@apple.com>
26493
26494         * Makefile.in (install-include-dir): Don't rm -rf include.
26495
26496 2007-02-28  Richard Guenther  <rguenther@suse.de>
26497
26498         PR middle-end/30364
26499         * fold-const.c (fold_binary): Do not associate expressions
26500         with more than one variable for integer types that do not wrap.
26501
26502 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
26503
26504         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
26505         Delete, and replace with...
26506         (fold_builtin_call_array): This.  Update callers to use it.
26507         * fold-const.c (fold_build_call_list): Delete, and replace with...
26508         (fold_build_call_array): This.
26509         (fold_build_call_list_initializer): Delete, and replace with...
26510         (fold_build_call_array_initializer): This.
26511         * tree.h: Update declarations to reflect above changes.
26512
26513         * c-typeck.c (build_function_call): Store converted arguments
26514         in a stack-allocated array instead of building a list.
26515         (convert_arguments): Store arguments in the array passed in as an
26516         argument, and return the actual number of arguments.
26517         * c-format.c: (check_function_format): Pass arguments in an
26518         array instead of a list.
26519         * c-common.c (check_function_nonnull): Likewise.
26520         (check_function_sentinel): Likewise.
26521         (check_function_arguments): Likewise.
26522         * c-common.h: Update declarations to reflect above changes.
26523
26524 2007-02-28  Jan Hubicka  <jh@suse.cz>
26525
26526         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
26527         PRED_NEGATIVE_RETURN): Update outcomes.
26528
26529 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
26530
26531         * calls.c (emit_library_call_value_1): Handle partial registers
26532         correctly when building up CALL_INSN_FUNCTION_USAGE.
26533
26534 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26535
26536         * pa/predicates.md (move_src_operand): Allow zero for mode.
26537         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
26538         move pattern.
26539
26540 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
26541
26542         PR target/30970
26543         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
26544         *movv2df_internal): Enable pattern only for valid operand
26545         combinations.
26546         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
26547         tie only 128bit modes. For MMX registers, tie only 64bit modes.
26548
26549 2007-02-27  Mike Stump  <mrs@apple.com>
26550
26551         * config/darwin-crt3.c: Avoid compilation when compiling for a
26552         kext multilib.
26553
26554 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
26555
26556         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
26557         FIXED_INCLUDE_DIR.
26558         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
26559         for fixed headers and limits.h.
26560         (install-include-dir, install-headers-tar, install-headers-cpio,
26561         install-headers-cp, real-install-headers-tar,
26562         real-install-headers-cpio, real-install-headers-cp): Handle
26563         include-fixed as well as include.
26564         (install-mkheaders): Don't install files that go only in include
26565         not include-fixed.
26566         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
26567         from GCC_INCLUDE_DIR.
26568         * gcc.c (process_command): Remove special -BstageN/ handling.
26569         (do_spec_1): Add include-fixed directories.
26570
26571 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
26572
26573         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
26574         _smulsi3_highpart.
26575         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
26576         New functions.
26577         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
26578         patterns.
26579
26580 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
26581
26582         * c-common.c (get_priority): Add check for
26583         SUPPORTS_INIT_PRIORITY.
26584
26585 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
26586
26587         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
26588
26589         * config/bfin/bfin.c: Include "cfglayout.h".
26590         (MAX_LSETUP_DISTANCE): New macro.
26591         (struct loop_info): New members incoming, incoming_src and
26592         incoming_dest.  Delete member predecessor.
26593         (length_for_loop): New function.
26594         (bfin_optimize_loop): Handle more different loop structures.
26595         (bfin_discover_loop): Rework detection of predecessor blocks by
26596         examining incoming edges.
26597         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
26598         bfin_reorg_loops.
26599         (bfin_reorder_loops): New function.
26600         (bfin_reorg_loops): Use these three new functions.
26601
26602         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
26603         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
26604         (CONSTRAINT_LEN): Add entry for 'q'.
26605         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
26606         Add 'q' constraints.
26607         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
26608         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
26609
26610         * config/bfin/bfin.md (add_with_carry): New pattern.
26611         (s_or_u, su_optab, su_modifier): New code macros/attrs.
26612         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
26613         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
26614         support unsigned multiplies too.  Removed incorrect commutativity from
26615         operand 1 constraint where appropriate.
26616         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
26617         patterns.
26618         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
26619         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
26620         New patterns.
26621         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
26622         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
26623         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
26624         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
26625         usmulhisi_hh_huh): New patterns.
26626
26627         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
26628         lshifthi3): Fix output template to use half reg for operand 2.
26629
26630         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
26631         instead of R2.
26632
26633         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
26634
26635 2007-02-27  Andreas Schwab  <schwab@suse.de>
26636
26637         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
26638
26639 2007-02-27  Jan Hubicka  <jh@suse.cz>
26640
26641         * predict.c (last_basic_block_p): Remove.
26642         (tree_estimate_probability): Update return heuristic for commonized
26643         return blocks.
26644
26645 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
26646
26647         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
26648
26649 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
26650
26651         * doc/include/gcc-common.texi (versionsubtitle): New macro.
26652         * doc/cpp.texi: Standardize title page.
26653         * doc/cppinternals.texi: Likewise.
26654         * doc/gcc.texi: Standardize title page, remove version number
26655         from copyright page.
26656         * doc/gccint.texi: Likewise.
26657         * doc/install.texi: Standardize title page, add table of
26658         contents.
26659
26660 2007-02-26  Jan Hubicka  <jh@suse.cz>
26661
26662         * predict.def: Set outcomes according to more recent results.
26663         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
26664         Remove dead predictors.
26665         * predict.c (return_prediction): Fix pasto.
26666
26667 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
26668
26669         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
26670         change; avoid a memory leak when returning early.
26671
26672 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
26673
26674         * c-decl.c (static_ctors): Move to c-common.c.
26675         (static_dtors): Likewise.
26676         (finish_function): Use c_record_cdtor_fn.
26677         (build_cdtor): Move to c-common.c.
26678         (c_write_global_declarations): Use c_build_cdtor_fns.
26679         * c-common.h (static_ctors): Declare.
26680         (static_dtors): Likewise.
26681         (c_record_cdtor_fn): Likewise.
26682         (c_build_cdtor_fns): Likewise.
26683         * c-common.c (static_ctors): New variable.
26684         (static_dtors): Likewise.
26685         (c_record_cdtor_fn): New function.
26686         (build_cdtor): Move from c-decl.c
26687         (c_build_cdtor_fns): New function.
26688
26689         * output.h (assemble_addr_to_section): Declare.
26690         (get_cdtor_priority_section): Likewise.
26691         * varasm.c (assemble_addr_to_section): New function.
26692         (get_cdtor_priority_section): Likewise.
26693         (default_named_section_asm_out_destructor): Use them.
26694         (destor_dtor_section_asm_out_destructor): Likewise.
26695         (default_named_section_asm_out_constructor): Likewise.
26696         (default_ctor_section_asm_out_constructor): Likewise.
26697         * config.gcc (*-*-vxworks*): Include vxworks.o.
26698         * config/t-vxworks (vxworks.o): New target.
26699         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
26700         (TARGET_ASM_CONSTRUCTOR): Define.
26701         (TARGET_ASM_DESTRUCTOR): Likewise.
26702         (vxworks_asm_out_constructor): Declare.
26703         (vxworks_asm_out_destructor): Likewise.
26704
26705         * c-common.c (get_priority): Check that we have not just an
26706         INTEGER_CST, but an integer constant with integeral type.
26707
26708 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
26709
26710         PR tree-optimization/30938
26711         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
26712         use &dt[nargs-1] instead of &dt[nargs] in the call to
26713         vect_is_simple_use().
26714
26715 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
26716
26717         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
26718         from register elimination as PRE_MODIFY / POST_MODIFY increments.
26719         Do not attempt to handle MEM inside auto-inc expressions.
26720         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
26721         of a register modified by an auto-inc expression.  However, do handle
26722         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
26723         (elimination_effects): Prohibit elimination of a register modified
26724         by an auto-inc expression.  Disable register elimination rules whose
26725         target register is modified by an auto-inc expression with variable
26726         increment.
26727
26728 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
26729
26730         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
26731         off-by-one error.
26732         (array_at_struct_end_p): New function.
26733         (idx_infer_loop_bounds): Use it.
26734         (estimate_numbers_of_iterations_loop): Export.
26735         * predict.c (predict_loops): Use estimated_loop_iterations_int.
26736         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
26737         (tree_estimate_probability): Call record_loop_exits.
26738         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
26739         (estimated_loop_iterations, estimated_loop_iterations_int,
26740         estimated_loop_iterations_tree): New functions.
26741         (analyze_siv_subscript_cst_affine,
26742         compute_overlap_steps_for_affine_1_2,
26743         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
26744         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
26745         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
26746         (PRED_LOOP_ITERATIONS_GUESSED): New.
26747         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
26748         * cfgloop.h (estimate_numbers_of_iterations_loop,
26749         estimated_loop_iterations_int): Declare.
26750
26751 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
26752
26753         * doc/extend.texi: Document optional priority argument to
26754         constructors and destructors.
26755         * tree.c (init_priority_for_decl): Adjust GTY markers.
26756         (init_ttree): Use priority-info hash functions for
26757         init_priority_for_decl.
26758         (tree_map_eq): Rename to ...
26759         (tree_map_base_eq): ... this.
26760         (tree_map_marked_p): Rename to ...
26761         (tree_map_base_marked_p): ... this.
26762         (tree_map_base_hash): New function.
26763         (decl_init_priority_lookup): Rework.
26764         (decl_fini_priority_lookup): New function.
26765         (decl_priority_info): New function.
26766         (decl_init_priority_insert): Use it.
26767         (decl_fini_priority_insert): Likewise.
26768         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
26769         hierarchy.
26770         (decl_restrict_base_insert): Likewise.
26771         (decl_debug_expr_insert): Likewise.
26772         (decl_value_expr_lookup): Likewise.
26773         (decl_value_expr_insert): Likewise.
26774         * tree.h (priority_type): New type.
26775         (decl_init_priority_lookup): Use priority_type.
26776         (decl_fini_priority_lookup): New function.
26777         (decl_init_priority_insert): Use priority_type.
26778         (decl_fini_priority_insert): New function.
26779         (DECL_HAS_INIT_PRIORITY): Tweak comments.
26780         (DECL_INIT_PRIORITY): Likewise.
26781         (SET_DECL_INIT_PRIORITY): Add comment.
26782         (DECL_FINI_PRIORITY): New macro.
26783         (SET_DECL_FINI_PRIORITY): Likewise.
26784         (DEFAULT_INIT_PRIORITY): Document.
26785         (MAX_INIT_PRIORITY): Likewise.
26786         (MAX_RESERVED_INIT_PRIORITY): Likewise.
26787         (tree_map_base): New type.
26788         (tree_map_base_eq): New function.
26789         (tree_map_base_hash): Likewise.
26790         (tree_map_base_marked_p): Likewise.
26791         (tree_map): Inherit from tree_map_base.
26792         (tree_map_eq): Make it a macro.
26793         (tree_map_marked_p): Likewise.
26794         (tree_int_map): Inherit from tree_map_base.
26795         (tree_int_map_eq): Make it a macro.
26796         (tree_int_map_hash): Likewise.
26797         (tree_int_map_marked_p): Likewise.
26798         (tree_priority_map): New type.
26799         (tree_priority_map_eq): New macro.
26800         (tree_priority_map_hash): Likewise.
26801         (tree_priority_map_marked_p): Likewise.
26802         * varasm.c (emults_decl): Adjust for refactoring of tree_map
26803         hierarchy.
26804         (emutls_common_1): Likewise.
26805         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
26806         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
26807         of tree_map hierarchy.
26808         * tree-cfg.c (move_stmt_r): Likewise.
26809         (new_label_mapper): Likewise.
26810         * c-tree.h (c_expand_body): Move to ...
26811         * c-common.h (c_expand_body): ... here.
26812         * c-decl.c (c_expand_body): Move to ...
26813         * c-common.c (c_expand_body): ... here.
26814         (c_common_attribute_table): Allow 1 argument for the constructor
26815         and destructor attributes.
26816         (get_priority): New function.
26817         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
26818         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
26819
26820 2007-02-24  Jan Hubicka  <jh@suse.cz>
26821
26822         PR middle-end/30509
26823         * tree-inline.c (copy_bb): Produce exact copy of EH info when
26824         copying for inlining.
26825
26826 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
26827             Jan Hubicka  <jh@suse.cz>
26828
26829         PR target/30778
26830         * i386.c (counter_mode): New function.
26831         (expand_set_or_movmem_via_loop): Use it.
26832         (expand_movmem_epilogue): Likewise; fix pasto.
26833         (ix86_expand_movmem): Do emit guard even for constant counts.
26834         (ix86_expand_setmem): Likewise.
26835
26836 2007-02-25  Nick Clifton  <nickc@redhat.com>
26837
26838         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
26839         (JUMP_TABLES_IN_TEXT_SECTION): Define.
26840
26841 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
26842
26843         PR target/30770
26844         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
26845         count argument with 0x10, not with 0x16.
26846         (expand_setmem_epilogue): Ditto.
26847
26848 2007-02-24  Mike Stump  <mrs@apple.com>
26849
26850         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
26851         symbols.
26852
26853 2007-02-24  Richard Guenther  <rguenther@suse.de>
26854
26855         PR middle-end/30951
26856         * fold-const.c (fold_binary): Fold x +- CST op x for
26857         EQ_EXPR and NE_EXPR.
26858
26859 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26860
26861         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
26862
26863 2007-02-24  Jan Hubicka  <jh@suse.cz>
26864
26865         * cgraphunit.c (decide_is_function_needed): Honor
26866         -fkeep-inline-functions.
26867
26868 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26869
26870         * builtins.c (fold_builtin_modf): New.
26871         (fold_builtin_2): Use it.
26872
26873 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
26874
26875         * loop-iv.c (implies_p): Detect additional cases where A implies B.
26876         (determine_max_iter): Take additional LOOP arg; all callers changed.
26877         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
26878         one using simplifications.
26879         (simplify_using_initial_values): Return if the expression becomes
26880         invalid due to altered regs.
26881
26882 2007-02-23  DJ Delorie  <dj@redhat.com>
26883
26884         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
26885
26886 2007-02-23  Mike Stump  <mrs@apple.com>
26887
26888         * tlink.c (scan_linker_output): Parse linker messages from
26889         darwin9's linker better.
26890
26891 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
26892
26893         PR debug/29614
26894         * varpool.c (varpool_assemble_pending_decls): Set
26895         varpool_last_needed_node to null.
26896
26897 2007-02-23  DJ Delorie  <dj@redhat.com>
26898
26899         * config/i386/i386.c (ix86_data_alignment): Don't specify an
26900         alignment bigger than the object file can handle.
26901
26902 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
26903
26904         PR target/30825
26905         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
26906         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
26907         (*movsf_1): Penalize MMX moves.
26908
26909 2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>
26910
26911         * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
26912         2^32-1 or more times unless flag_unsafe_loop_optimizations.
26913
26914         * loop-iv.c (determine_max_iter): Moved in front of its sole user.
26915
26916 2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26917
26918         * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
26919         (fold_builtin_1): Use them.
26920         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
26921         BUILT_IN_SIGNIFICAND.
26922
26923 2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>
26924
26925         * config/i386/i386.c (bdesc_1arg): Initialize
26926         IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
26927         "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
26928         (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
26929         and IX86_BUILTIN_MOVSLDUP.
26930
26931 2007-02-22  Paolo Bonzini  <bonzini@gnu.org>
26932
26933         PR rtl-optimization/30841
26934         * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
26935
26936 2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26937
26938         * builtins.c (fold_builtin_frexp): New.
26939         (fold_builtin_2): Use it.
26940
26941 2007-02-22  Mark Mitchell  <mark@codesourcery.com>
26942
26943         * doc/invoke.texi (Spec Files): Document getenv spec function.
26944
26945         * gcc.c (getenv_spec_function): New function.
26946         (static_spec_functions): Add it.
26947         * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
26948         (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
26949         header files.
26950
26951 2007-02-22  Michael Matz  <matz@suse.de
26952
26953         PR c++/29433
26954         * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
26955         (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
26956
26957 2007-02-22  Ian Lance Taylor  <iant@google.com>
26958
26959         PR debug/30898
26960         * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
26961         (mem_loc_descriptor): Call it.
26962
26963 2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
26964             Ira Rosen  <irar@il.ibm.com>
26965
26966         * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
26967
26968 2007-02-22  Ira Rosen  <irar@il.ibm.com>
26969
26970         PR tree-optimization/30843
26971         * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
26972         stores only after all the group is vectorized.
26973
26974 2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
26975
26976         PR tree-optimization/30858
26977         * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
26978         in the reduction cycle have a single use in the loop.
26979         * tree-vectorizer.h (relevant): Add documentation.
26980
26981 2007-02-20  Mike Stump  <mrs@apple.com>
26982
26983         * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
26984         * configure: Regenerate.
26985
26986 2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
26987
26988         Change the defaults of some parameters and options.
26989         * config/spu/spu-protos.h (spu_optimization_options): Declare.
26990         * config/spu/spu.c (spu_optimization_options): Add.
26991         (spu_override_options): Change params in spu_optimization_options.
26992         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
26993
26994         Register 127 is only 16 byte aligned when used as a frame pointer.
26995         * config/spu/spu-protos.h (spu_init_expanders): Declare.
26996         * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
26997         HARD_FRAME_POINTER_REGNUM.
26998         (spu_legitimate_address): Use regno_aligned_for_reload.
26999         (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
27000         aligned when frame_pointer_needed is true.
27001         (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
27002         to 8 bits.
27003         * config/spu/spu.h (INIT_EXPANDERS): Define.
27004
27005         Make sure shift and rotate instructions have valid immediate operands.
27006         * config/spu/predicates.md (spu_shift_operand): Remove.
27007         * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
27008         * config/spu/constraints.md (W, O): Extend range.
27009         * config/spu/spu.md (umask, nmask): Define.
27010         (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
27011         lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
27012         rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
27013         rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
27014         spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
27015         (lshr<mode>3_reg): Fix rtl description.
27016
27017         Make sure mulhisi immediate operands are valid.
27018         * config/spu/predicates.md (imm_K_operand): Add.
27019         * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
27020
27021         Generate constants using fsmbi and andi.
27022         * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
27023         (print_operand, spu_split_immediate, classify_immediate,
27024         fsmbi_const_p): Handle IC_FSMBI2.
27025
27026         Correctly handle a CONST_VECTOR containing symbols.
27027         * config/spu/spu.c (print_operand): Handle HIGH correctly.
27028         (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
27029         (immediate_load_p): Allow symbols that use 2 instructions to create.
27030         (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
27031         with symbols when flag_pic is set.
27032         (const_vector_immediate_p): New.
27033         (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
27034         accept a CONST_VECTOR with symbols.
27035         (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
27036         accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
27037         correctly.
27038         * config/spu/spu.md (high, low): Delete.
27039         (low_<mode>): Define.
27040
27041         Remove INTRmode and INTR_REGNUM, which didn't work.
27042         * config/spu/spu.c (spu_conditional_register_usage): Remove reference
27043         of INTR_REGNUM.
27044         * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
27045         set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
27046         peephole2 pattern): Don't use INTR or 131.
27047         (movintrcc): Delete.
27048         * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
27049         CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
27050         * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
27051         (UNSPEC_SET_INTR): Add.
27052         * config/spu/spu-modes.def (INTR): Remove.
27053
27054         More accurate warnings about run-time relocations.
27055         * config/spu/spu.c (reloc_diagnostic): Test in_section.
27056
27057         Correctly warn about immediate arguments to specific intrinsics.
27058         * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
27059         (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
27060         the instruction predicate.
27061
27062         Fix tree check errors with latest update.
27063         * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
27064         CALL_EXPR_ARG.
27065         (spu_expand_builtin): Use CALL_EXPR_FN.
27066
27067         Add missing specific intrinsics.
27068         * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
27069         si_bislede.
27070         * config/spu/spu_internals.h: Ditto.
27071
27072         Fix incorrect operand modifiers.
27073         * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
27074         * config/spu/spu.md (xor<mode>3): Change %S to %J.
27075
27076         Optimize one case of zero_extend of a vec_select.
27077         * config/spu/spu.md (_vec_extractv8hi_ze): Add.
27078
27079         Accept any immediate for hbr.
27080         * config/spu/spu.md (hbr): Change s constraints to i.
27081
27082 2007-02-21  Paul Brook  <paul@codesourcery.com>
27083
27084         * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
27085         condexec_count when skipping USE and CLOBBER.
27086
27087 2007-02-21  Nick Clifton  <nickc@redhat.com>
27088
27089         * common.opt (Warray-bounds): Add Warning attribute.
27090         (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
27091         Likewise.
27092         (fsized-zeroes): Add Optimization attribute.
27093         (fsplit-wide-types, ftree-scev-cprop): Likewise.
27094         * c.opt (Wc++0x-compat): Add Warning attribute.
27095
27096 2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
27097
27098         PR middle-end/30761
27099         * reload1.c (eliminate_regs_in_insn): In the single_set special
27100         case, attempt to re-recognize the insn before falling back to
27101         having reload fix it up.
27102
27103 2007-02-20  Eric Christopher  <echristo@gmail.com>
27104
27105         * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
27106         Rewrite accordingly.
27107         (frv_read_iacc_argument): Ditto.
27108         (frv_expand_set_builtin): Take a call instead of arglist, update for
27109         above changes.
27110         (frv_expand_unop_builtin): Ditto.
27111         (frv_expand_binop_builtin): Ditto.
27112         (frv_expand_cut_builtin): Ditto.
27113         (frv_expand_binopimm_builtin): Ditto.
27114         (frv_expand_voidbinop_builtin): Ditto.
27115         (frv_expand_int_void2arg): Ditto.
27116         (frv_expand_prefetches): Ditto.
27117         (frv_expand_voidtriop_builtin): Ditto.
27118         (frv_expand_voidaccop_builtin): Ditto.
27119         (frv_expand_load_builtin): Ditto.
27120         (frv_expand_store_builtin): Ditto.
27121         (frv_expand_mdpackh_builtin): Ditto.
27122         (frv_expand_mclracc_builtin): Ditto.
27123         (frv_expand_mrdacc_builtin): Ditto.
27124         (frv_expand_mwtacc_builtin): Ditto.
27125         (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
27126         calls for above.
27127
27128 2007-02-20  Janis Johnson  <janis187@us.ibm.com>
27129
27130         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
27131         * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
27132         cmpb instruction.
27133         (HAVE_GAS_DFP): Check for assembler support of decimal floating
27134         point instructions.
27135         * configure: Regenerate.
27136         * config.in: Regenerate.
27137         * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
27138         * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
27139         masks to power6 and power6x and to POWERPC_MASKS.
27140         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27141         _ARCH_PWR6.
27142         * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
27143         * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
27144         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
27145         Access PROTOTYPE as variable, not mask.
27146
27147 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
27148
27149         * rtl.h (remove_reg_equal_equiv_notes): New prototype.
27150         * rtlanal.c (remove_reg_equal_equiv_notes): New function.
27151         * combine.c (adjust_for_new_dest): Use it.
27152         * postreload.c (reload_combine): Likewise.
27153
27154 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
27155
27156         * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
27157         notes on an insn with multiple sets, even if single_set returns
27158         non-NULL for that insn.
27159
27160 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27161
27162         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
27163         scalbn and scalbln.
27164
27165 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
27166
27167         * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
27168         if user didn't pass it.
27169         * config/i386/darwin.h (CC1_SPEC): Likewise.
27170         * config/rs6000/darwin.h (CC1_SPEC): Likewise.
27171         (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
27172         -mmacosx-version-min.
27173
27174 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27175             Uros Bizjak  <ubizjak@gmail.com>
27176
27177         * optabs.h (enum optab_index): Add new OTI_scalb.
27178         (scalb_optab): Define corresponding macro.
27179         * optabs.c (init_optabs): Initialize scalb_optab.
27180         * genopinit.c (optabs): Implement scalb_optab using scalb?f3
27181         patterns.
27182         * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
27183         BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
27184         (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
27185         and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
27186         flag_unsafe_math_optimizations is set.
27187
27188         * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
27189         to implement scalbf, scalb and scalbl built-ins as inline x87
27190         intrinsics.
27191
27192 2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27193             DJ Delorie <dj@redhat.com>
27194
27195         PR other/30824
27196         * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
27197         (diagnostic_report_diagnostic): ... here, and turn them into real
27198         errors. If warnings are inhibited, no need to do anything.
27199
27200 2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
27201
27202         * config/i386/i386.md (expm1xf2): Reorder insn sequence for
27203         better code generation.
27204
27205 2007-02-20  Ben Elliston  <bje@au.ibm.com>
27206
27207         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
27208
27209 2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
27210
27211         * config/alpha/alpha.c, config/alpha/alpha.md,
27212         config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
27213         config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
27214         config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
27215         config/arm/lib1funcs.asm: Follow spelling conventions.
27216
27217         * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
27218         config/fr30/fr30.md, config/i386/i386.h,
27219         config/iq2000/iq2000.h, config/iq2000/predicates.md,
27220         config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
27221         config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
27222         config/pdp11/pdp11.c, config/pdp11/pdp11.h,
27223         config/rs6000/altivec.md, config/rs6000/rs6000.c,
27224         config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
27225         config/sparc/sparc.c, config/sparc/sparc.h,
27226         config/sparc/sparc.md, config/spu/constraints.md,
27227         config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
27228         conventions.
27229
27230 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
27231
27232         PR target/29943
27233         * varasm.c (use_blocks_for_decl_p): Return false for decls with
27234         alias attribute.
27235
27236 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
27237
27238         * doc/invoke.texi (-ftree-lrs): Remove.
27239
27240 2007-02-19  Diego Novillo  <dnovillo@redhat.com>
27241
27242         * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
27243         NULL.
27244
27245 2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
27246
27247         * config/ia64/ia64.c (ia64_expand_builtin): Use the
27248         new CALL_EXPR_FN macro for retrieving the function
27249         declaration of the input expression.
27250
27251 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27252
27253         * c.opt (Waddress): New.
27254         * common.opt (Walways-true): Delete.
27255         (Wstring-literal-comparison): Delete.
27256         * doc/invoke.texi (Warning Options): Delete -Walways-true and
27257         -Wstring-literal-comparison. Add -Waddress.
27258         (Waddress): New.
27259         (Walways-true): Delete.
27260         (Wstring-literal-comparison): Delete.
27261         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
27262         consistently instead of -Walways-true in example.
27263         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
27264         * c-typeck.c (parser_build_binary_op): Replace
27265         -Wstring-literal-comparison and -Walways-true with -Waddress.
27266         * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
27267         with -Waddress.
27268
27269 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
27270
27271         * tree-cfg.c (dump_function_to_file): Be prepared for functions
27272         without DECL_STRUCT_FUNCTION initialized.
27273
27274 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
27275
27276         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
27277         due to calls to functions taking pointers as parameters.
27278
27279 2007-02-19  Richard Henderson  <rth@redhat.com>
27280
27281         PR debug/29558
27282         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
27283         in memory.
27284
27285 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
27286
27287         * config/s390/s390.c (s390_call_saved_register_used,
27288         s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
27289         accessed to the new scheme.
27290
27291 2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27292
27293         * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
27294         (cris_print_index, cris_print_operand, cris_print_operand_address)
27295         (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
27296         (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
27297         (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
27298         GET_CODE () == xxx.
27299         * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
27300         EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
27301         GO_IF_LEGITIMATE_ADDRESS): Ditto.
27302         * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
27303         (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
27304         (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
27305         (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
27306         (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
27307         (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
27308         (uminsi3, call, call_value): Ditto.
27309         (define_split: indir_to_reg_split, unnamed): Ditto.
27310
27311 2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>
27312
27313         PR tree-optimization/30975
27314         * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
27315         wrong assert.
27316
27317 2007-02-18  Eric Christopher  <echristo@gmail.com>
27318
27319         * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
27320         Remove use of arglist.
27321         (mips_expand_builtin): Remove use of arglist, pass in expr.
27322         (mips_expand_builtin_direct): Rewrite handling for arglist removal.
27323         (mips_expand_builtin_movtf): Ditto.
27324         (mips_expand_builtin_compare): Ditto.
27325
27326 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
27327
27328         * tree-sra.c (sra_build_assignment): Replace assertion
27329         checking with a comment explaining why it can't be done.
27330
27331 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
27332
27333         PR middle-end/30833
27334         * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
27335         during CALL_EXPR representation conversion.
27336         * tree-ssa-propagate.c (set_rhs): Likewise.
27337
27338 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
27339
27340         * tree-sra.c (sra_build_assignment): Disable assertion checking
27341         for now.
27342
27343 2007-02-18  Roger Sayle  <roger@eyesopen.com>
27344
27345         * function.c (gimplify_parameters): Call build_gimple_modify_stmt
27346         instead of calling build2 with a GIMPLE_MODIFY_STMT.
27347         * gimple-low.c (lower_function_body, lower_builtin_setjmp):
27348         Likewise.
27349         * gimplify.c (build_stack_save_restore, gimplify_return_expr,
27350         gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
27351         gimplify_init_ctor_eval_range, gimple_push_cleanup,
27352         gimplify_omp_for, gimplify_omp_atomic_pipeline,
27353         gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
27354         force_gimple_operand): Likewise.
27355         * ipa-cp.c (constant_val_insert): Likewise.
27356         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
27357         lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
27358         perfect_nestify): Likewise.
27359         * langhooks.c (lhd_omp_assignment): Likewise.
27360         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
27361         lower_copyprivate_clauses, lower_send_clauses,
27362         lower_send_shared_vars, expand_parallel_call,
27363         expand_omp_for_generic, expand_omp_for_static_nochunk,
27364         expand_omp_for_static_chunk, expand_omp_sections,
27365         lower_omp_single_copy, lower_omp_for_lastprivate,
27366         lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
27367         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
27368         tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
27369         Likewise.
27370
27371 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
27372
27373         * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
27374         config/sh/sh.md: Follow spelling conventions.
27375
27376         * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
27377         config/frv/predicates.md: Follow spelling conventions.
27378
27379         * config/m68k/linux-unwind.h: Fix a comment typo.
27380         * target.h: Follow spelling conventions.
27381
27382 2007-02-18  Roger Sayle  <roger@eyesopen.com>
27383
27384         PR rtl-optimization/28173
27385         * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
27386         (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
27387         Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
27388         Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
27389         <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
27390
27391 2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27392
27393         * builtins.c (fold_builtin_load_exponent): New.
27394         (fold_builtin_2): Use it.
27395
27396 2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>
27397
27398         PR rtl-optimization/30773
27399         * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
27400         if we fail to attach a REG_EQUIV note.
27401
27402 2007-02-18  David Edelsohn  <edelsohn@gnu.org>
27403             Roger Sayle  <roger@eyesopen.com>
27404
27405         * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
27406
27407 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
27408
27409         * calls.c (initialize_argument_information): Pass original EXP
27410         and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
27411         code to split complex arguments here, as part of initializing the
27412         ARGS array.
27413         (expand_call): Remove code that builds a list of arguments and
27414         inserts implicit arguments into it.  Instead, just count how many
27415         implicit arguments there will be so we can determine the size of
27416         the ARGS array, and let initialize_argument_information do the work.
27417         (split_complex_values): Delete unused function.
27418
27419 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27420
27421         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
27422
27423 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
27424
27425         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
27426         for arg pointer based indexed addressing.
27427
27428 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
27429
27430         * config/ia64/ia64.h, config/ia64/ia64.md,
27431         config/ia64/predicates.md, config/ia64/sysv4.h: Follow
27432         spelling conventions.
27433
27434 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
27435
27436         * config/m68k/m68k.c (split_di): New.
27437         * config/m68k/m68k-protos.h: Declare split_di.
27438         * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
27439           Improve predicate handling and split constant shifts.
27440
27441 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
27442
27443         * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
27444         parameter for register bitfield operations, general predicates
27445         cleanup
27446
27447 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
27448
27449         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
27450         * config/m68k/linux-unwind.h: New file.
27451
27452 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
27453
27454         * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
27455         config/i386/athlon.md, config/ia64/ia64.md,
27456         config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
27457         df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
27458         ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
27459         tree-ssa-loop-niter.c, tree-vect-analyze.c,
27460         tree-vect-transform.c: Fix comment typos.
27461
27462 2007-02-17  Kazu Hirata  <kazu@codesourcery.com>
27463
27464         * sched-deps.c (find_insn_list): Remove.
27465         * sched-int.h: Remove the prototype for find_insn_list.
27466
27467 2007-02-16  Geoffrey Keating  <geoffk@apple.com>
27468
27469         * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
27470         to linker.
27471         (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
27472         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
27473         darwin_rs6000_override_options.
27474         (C_COMMON_OVERRIDE_OPTIONS): Expect
27475         darwin_macosx_version_min to be non-NULL always.
27476         (TARGET_C99_FUNCTIONS): Likewise.
27477         (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
27478         (DARWIN_MINVERSION_SPEC): New.
27479         * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
27480         * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
27481         to cc1*.
27482         (DARWIN_MINVERSION_SPEC): New.
27483         * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
27484         value.
27485         * config/darwin-c.c (darwin_cpp_builtins): Expect
27486         darwin_macosx_version_min to be non-NULL always.
27487
27488         * config/rs6000/rs6000.c: Clean up trailing whitespace.
27489
27490 2007-02-16  Uros Bizjak  <ubizjak@gmail.com>
27491
27492         * config/i386/i386.h (x86_use_xchgb): New.
27493         (TARGET_USE_XCHGB): New macro.
27494         * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
27495         * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
27496         Split after reload into bswaphi for shifts of 8.
27497         (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
27498         (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
27499         or when optimizing for size.
27500
27501 2007-02-16  Richard Guenther  <rguenther@suse.de>
27502             Christian Bruel  <christian.bruel@st.com>
27503
27504         * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
27505         DECLs but prefer SSA_NAMEs over DECLs.
27506
27507 2007-02-16  Richard Guenther  <rguenther@suse.de>
27508
27509         * tree-flow-inline.h (single_imm_use_p): Remove.
27510         (zero_imm_uses_p): Likewise.
27511         * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
27512         instead of single_imm_use_p.
27513         * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
27514         zero_imm_uses_p.
27515
27516 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27517
27518         PR other/27843
27519         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
27520         nested double- and backquotes.
27521
27522 2007-02-15  Roger Sayle  <roger@eyesopen.com>
27523
27524         PR middle-end/30391
27525         * tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
27526         should be unreachable.
27527         (build2_stat): Allow construction of MODIFY_EXPR at any time.
27528         For the time being redirect GIMPLE_MODIFY_STMT to the new
27529         (renamed) build_gimple_modify_stmt_stat.
27530         (build2_gimple_stat): Rename to...
27531         (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
27532         Always build a GIMPLE_MODIFY_STMT node.
27533         * tree.h (build2_gimple, build2_gimple_stat): Delete.
27534         (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
27535         declarations.
27536
27537         * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
27538         gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
27539         * tree-complex.c (set_component_ssa_name, expand_complex_move,
27540         expand_complex_div_wide): Likewise.
27541         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
27542         * tree-ssa-loop-im.c (schedule_sm): Likewise.
27543         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
27544         * tree-ssa-loop-manip.c (create_iv): Likewise.
27545         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
27546         abs_replacement): Likewise.
27547         * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
27548         realify_fake_stores): Likewise.
27549
27550         * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
27551         node rather than a GIMPLE_MODIFY_STMT node.
27552         (std_gimpify_va_arg_expr, expand_builtin_va_copy,
27553         fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
27554         Likewise.
27555         (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
27556         * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
27557         GIMPLE_MODIFY_STMT.
27558
27559 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
27560
27561         PR middle-end/30433
27562         * fold-const.c (fold_comparison): Add back the
27563         folding of constant complex comparisions.
27564
27565 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
27566
27567         PR middle-end/30729
27568         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
27569         effects unknown to this function, return early.
27570
27571 2007-02-15  Ian Lance Taylor  <iant@google.com>
27572
27573         * lower-subreg.c (move_eh_region_note): New static function.
27574         (resolve_simple_move): Call it.
27575         (decompose_multiword_subregs): Track blocks for which we resolve a
27576         simple move which is also a control flow insn.  Pass them to
27577         find_many_sub_basic_blocks.
27578         (pass_lower_subreg): Add TODO_verify_flow.
27579         (pass_lower_subreg2): Likewise.
27580
27581 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
27582             Brooks Moses  <brooks.moses@codesourcery.com>
27583             Lee Millward  <lee.millward@codesourcery.com>
27584
27585         * tree.h (enum tree_code_class): Add tcc_vl_exp.
27586         (VL_EXP_CLASS_P): New.
27587         (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
27588         TREE_CODE_LENGTH.
27589         (TREE_OPERAND_CHECK_CODE): Likewise.
27590         (GIMPLE_STMT_OPERAND_CHECK): Likewise.
27591         (TREE_RTL_OPERAND_CHECK): Likewise.
27592         (tree_operand_check_failed): Make second parameter the whole tree
27593         instead of its code.  Fixed callers.
27594         (VL_EXP_CHECK): New.
27595         (TREE_OPERAND_LENGTH): New.
27596         (VL_EXP_OPERAND_LENGTH): New.
27597         (CALL_EXPR_FN): New.
27598         (CALL_EXPR_STATIC_CHAIN): New.
27599         (CALL_EXPR_ARGS): New.
27600         (CALL_EXPR_ARG): New.
27601         (call_expr_nargs): New.
27602         (CALL_EXPR_ARGP): New.
27603         (build_nt_call_list): Declare.
27604         (build_vl_exp_stat): Declare.
27605         (build_vl_exp): New.
27606         (build_call_list): Declare.
27607         (build_call_nary): Declare.
27608         (build_call_valist): Declare.
27609         (build_call_array): Declare.
27610         (call_expr_arg): Declare.
27611         (call_expr_argp): Declare.
27612         (call_expr_arglist): Declare.
27613         (fold_build_call_list): Declare.
27614         (fold_build_call_list_initializer): Declare.
27615         (fold_call_expr): Declare to replace fold_builtin.
27616         (fold_builtin_fputs): Update to agree with modified definition.
27617         (fold_builtin_strcpy): Likewise.
27618         (fold_builtin_strncpy): Likewise.
27619         (fold_builtin_memory_chk): Likewise.
27620         (fold_builtin_stxcpy_chk): Likewise.
27621         (fold_builtin_strncpy_chk): Likewise.
27622         (fold_builtin_next_arg): Likewise.
27623         (fold_build_call_expr): Declare.
27624         (fold_builtin_call_list): Declare.
27625         (fold_builtin_call_valist): Declare.
27626         (build_call_expr): Declare.
27627         (validate_arglist): Update to agree with modified definition.
27628         (tree_operand_length): New.
27629         (call_expr_arg_iterator): New.
27630         (init_call_expr_arg_iterator): New.
27631         (next_call_expr_arg): New.
27632         (first_call_expr_arg): New.
27633         (more_call_expr_args_p): New.
27634         (FOR_EACH_CALL_EXPR_ARG): New.
27635
27636         * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
27637         and tcc_gimple_stmt.
27638         (tree_code_size): Update documentation.  Use sizeof (tree) rather
27639         than sizeof (char *).
27640         (tree_size): Likewise.  Add case for tcc_vl_exp.
27641         (tree_node_structure): Add case for tcc_vl_exp.
27642         (contains_placeholder_p): Likewise.
27643         (substitute_in_expr): Likewise.
27644         (substitute_placeholder_in_expr): Likewise.
27645         (stabilize_reference_1): Likewise.
27646         (build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
27647         to diagnose breakage of this interface for constructing CALL_EXPRs.
27648         (build_nt): Add similar assertion here.
27649         (build_nt_call_list): New.
27650         (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
27651         (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
27652         TREE_CODE_LENGTH.
27653         (get_callee_fndecl): Use new CALL_EXPR accessors.
27654         (tree_operand_check_failed): Change parameters to pass entire node
27655         instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
27656         (process_call_operands): New.
27657         (build_vl_exp_stat): New.
27658         (build_call_list): New.
27659         (build_call_nary): New.
27660         (build_call_valist): New.
27661         (build_call_array): New.
27662         (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
27663         (call_expr_arglist): New.
27664
27665         * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
27666         tcc_vl_exp instead of a fixed-size tcc_expression.
27667
27668         * doc/c-tree.texi (CALL_EXPR): Document new representation and
27669         accessors for CALL_EXPRs.
27670         (AGGR_INIT_EXPR): Likewise.
27671
27672 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
27673             Brooks Moses  <brooks.moses@codesourcery.com>
27674             Lee Millward  <lee.millward@codesourcery.com>
27675
27676         * builtins.c (c_strlen): Return NULL_TREE instead of 0.
27677         (expand_builtin_nonlocal_goto): Change parameter to be entire
27678         CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
27679         (expand_builtin_prefetch): Likewise.
27680         (expand_builtin_classify_type): Likewise.
27681         (mathfn_built_in): Return NULL_TREE instead of 0.
27682         (expand_errno_check): Use new CALL_EXPR accessors.
27683         (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
27684         Return NULL_RTX instead of 0.
27685         (expand_builtin_mathfn_2): Likewise.
27686         (expand_builtin_mathfn_3): Likewise.
27687         (expand_builtin_interclass_mathfn): Likewise.
27688         (expand_builtin_sincos): Likewise.
27689         (expand_builtin_cexpi): Likewise.
27690         (expand_builtin_int_roundingfn): Likewise.
27691         (expand_builtin_int_roundingfn_2): Likewise.
27692         (expand_builtin_pow): Likewise.
27693         (expand_builtin_powi): Likewise.
27694         (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
27695         of arglist, fixing callers appropriately.  Use new CALL_EXPR
27696         accessors and constructors.  Return NULL_RTX instead of 0.
27697         (expand_builtin_strstr): Likewise.
27698         (expand_builtin_strchr): Likewise.
27699         (expand_builtin_strrchr): Likewise.
27700         (expand_builtin_strpbrk): Likewise.
27701         (expand_builtin_memcpy): Likewise.
27702         (expand_builtin_mempcpy): Likewise.
27703         (expand_builtin_mempcpy_args): New.
27704         (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
27705         (expand_builtin_memmove_args): New.
27706         (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
27707         (expand_movstr): Likewise.
27708         (expand_builtin_strcpy): Likewise.
27709         (expand_builtin_strcpy_args): New.
27710         (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
27711         (expand_builtin_strncpy): Likewise.
27712         (expand_builtin_memset): Likewise.
27713         (expand_builtin_memset_args): New.
27714         (expand_builtin_bzero): Similarly to expand_builtin_memset.
27715         (expand_builtin_memcmp): Likewise.
27716         (expand_builtin_strcmp): Likewise.
27717         (expand_builtin_strncmp): Likewise.
27718         (expand_builtin_strcat): Likewise.
27719         (expand_builtin_strncat): Likewise.
27720         (expand_builtin_strspn): Likewise.
27721         (expand_builtin_strcspn): Likewise.
27722         (expand_builtin_args_info): Likewise.
27723         (expand_builtin_va_start): Likewise.
27724         (gimplify_va_arg_expr): Likewise.
27725         (expand_builtin_va_end): Likewise.
27726         (expand_builtin_va_copy): Likewise.
27727         (expand_builtin_frame_address): Likewise.
27728         (expand_builtin_alloca): Likewise.
27729         (expand_builtin_bswap): Likewise.
27730         (expand_builtin_unop): Likewise.
27731         (expand_builtin_fputs): Likewise.
27732         (expand_builtin_expect): Likewise.
27733         (expand_builtin_fabs): Likewise.
27734         (expand_builtin_copysign): Likewise.
27735         (expand_builtin_printf): Likewise.
27736         (expand_builtin_fprintf): Likewise.
27737         (expand_builtin_sprintf): Likewise.
27738         (expand_builtin_init_trampoline): Likewise.
27739         (expand_builtin_signbit): Likewise.
27740         (expand_builtin_fork_or_exec): Likewise.
27741         (expand_builtin_sync_operation): Likewise.
27742         (expand_builtin_compare_and_swap): Likewise.
27743         (expand_builtin_lock_test_and_set): Likewise.
27744         (expand_builtin_lock_release): Likewise.
27745         (expand_builtin): Likewise.
27746         (builtin_mathfn_code): Likewise.
27747
27748         (fold_builtin_constant_p): Pass call arguments individually instead
27749         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
27750         accessors and constructors.  Return NULL_TREE instead of 0.
27751         (fold_builtin_expect): Likewise.
27752         (fold_builtin_classify_type): Likewise.
27753         (fold_builtin_strlen): Likewise.
27754         (fold_builtin_nan): Likewise.
27755         (integer_valued_real_p): Likewise.
27756         (fold_trunc_transparent_mathfn): Likewise.
27757         (fold_fixed_mathfn): Likewise.
27758         (fold_builtin_cabs): Likewise.
27759         (fold_builtin_sqrt): Likewise.
27760         (fold_builtin_cbrt): Likewise.
27761         (fold_builtin_cos): Likewise.
27762         (fold_builtin_cosh): Likewise.
27763         (fold_builtin_tan): Likewise.
27764         (fold_builtin_sincos): Likewise.
27765         (fold_builtin_cexp): Likewise.
27766         (fold_builtin_trunc): Likewise.
27767         (fold_builtin_floor): Likewise.
27768         (fold_builtin_ceil): Likewise.
27769         (fold_builtin_round): Likewise.
27770         (fold_builtin_int_roundingfn): Likewise.
27771         (fold_builtin_bitop): Likewise.
27772         (fold_builtin_bswap): Likewise.
27773         (fold_builtin_logarithm): Likewise.
27774         (fold_builtin_hypot): Likewise.
27775         (fold_builtin_pow): Likewise.
27776         (fold_builtin_powi): Likewise.
27777         (fold_builtin_exponent): Likewise.
27778         (fold_builtin_memset): Likewise.
27779         (fold_builtin_bzero): Likewise.
27780         (fold_builtin_memory_op): Likewise.
27781         (fold_builtin_bcopy): Deleted; call site changed to invoke
27782         fold_builtin_memory_op directly.
27783         (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
27784         (fold_builtin_strncpy): Likewise.
27785         (fold_builtin_memcmp): Likewise.
27786         (fold_builtin_strcmp): Likewise.
27787         (fold_builtin_strncmp): Likewise.
27788         (fold_builtin_signbit): Likewise.
27789         (fold_builtin_copysign): Likewise.
27790         (fold_builtin_isascii): Likewise.
27791         (fold_builtin_toascii): Likewise.
27792         (fold_builtin_isdigit): Likewise.
27793         (fold_builtin_fabs): Likewise.
27794         (fold_builtin_abs): Likewise.
27795         (fold_builtin_fmin_fmax): Likewise.
27796         (fold_builtin_carg): Likewise.
27797         (fold_builtin_classify): Likewise.
27798         (fold_builtin_unordered_cmp): Likewise.
27799
27800         (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
27801         New functions split out from fold_builtin_1.
27802         (fold_builtin_n): New.
27803         (fold_builtin_varargs): New.
27804         (fold_builtin): Deleted.  Most callers changed to use fold_call_expr
27805         instead.
27806         (fold_call_expr): New.
27807         (build_function_call_expr): Rewrite to use new helper function.
27808         (fold_builtin_call_list): New.
27809         (build_call_expr): New.
27810         (fold_builtin_call_valist): New.
27811         (rewrite_call_expr): New.
27812         (validate_arg): New.
27813         (validate_arglist): Change parameter to be entire CALL_EXPR instead
27814         of an arglist.  Change return type to bool.  Use new CALL_EXPR
27815         accessors.
27816
27817         (fold_builtin_strstr): Pass call arguments individually instead
27818         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
27819         accessors and constructors.  Return NULL_TREE instead of 0.
27820         (fold_builtin_strchr): Likewise.
27821         (fold_builtin_strrchr): Likewise.
27822         (fold_builtin_strpbrk): Likewise.
27823         (fold_builtin_strcat): Likewise.
27824         (fold_builtin_strncat): Likewise.
27825         (fold_builtin_strspn): Likewise.
27826         (fold_builtin_strcspn): Likewise.
27827         (fold_builtin_fputs): Likewise.
27828         (fold_builtin_next_arg): Likewise.
27829         (fold_builtin_sprintf): Likewise.
27830
27831         (expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
27832         NULL_RTX instead of 0.
27833         (expand_builtin_memory_chk): Likewise.
27834         (maybe_emit_chk_warning): Likewise.
27835         (maybe_emit_sprintf_chk_warning): Likewise.
27836
27837         (fold_builtin_object_size): Pass call arguments individually instead
27838         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
27839         accessors and constructors.  Return NULL_TREE instead of 0.
27840         (fold_builtin_memory_chk): Likewise.
27841         (fold_builtin_stxcpy_chk): Likewise.
27842         (fold_builtin_strncpy_chk): Likewise.
27843         (fold_builtin_strcat_chk): Likewise.
27844         (fold_builtin_strcat_chk): Likewise.
27845         (fold_builtin_strncat_chk): Likewise.
27846         (fold_builtin_sprintf_chk): Likewise.
27847         (fold_builtin_snprintf_chk): Likewise.
27848         (fold_builtin_printf): Likewise.
27849         (fold_builtin_vprintf): Likewise.
27850
27851         * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
27852         constructors.
27853         (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
27854         (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
27855         (extract_muldiv_1): Add VL_EXP_CLASS_P case.
27856         (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
27857         (fold_unary): Likewise.
27858         (fold_binary): Likewise.
27859         (fold_ternary): Remove CALL_EXPR case, since they are no longer
27860         ternary expressions.
27861         (fold): Add logic for tcc_vl_exp.
27862         (fold_checksum_tree): Make it know about tcc_vl_exp.  Use
27863         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
27864         (fold_build3_stat): Add assertion to flag broken interface for
27865         constructing CALL_EXPRs.
27866         (fold_build_call_list): New.
27867         (fold_build_call_list_initializer): New.
27868         (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
27869         constructors.
27870         (fold_strip_sign_ops): Likewise.
27871
27872 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
27873             Brooks Moses  <brooks.moses@codesourcery.com>
27874             Lee Millward  <lee.millward@codesourcery.com>
27875
27876         * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
27877         accessors and dump arguments explicitly.
27878
27879         * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
27880         TREE_CODE_LENGTH.
27881         (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
27882         explicitly.
27883         (print_call_name): Use new CALL_EXPR accessors.
27884
27885         * print-tree.c (print_node): Add case tcc_vl_exp.  Print
27886         CALL_EXPR arguments explicitly instead of as a list.  Use
27887         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
27888
27889         * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
27890         (vrp_visit_stmt): Likewise.
27891
27892         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
27893         know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
27894         TREE_CODE_LENGTH.
27895         (force_move_till_expr): Likewise.
27896
27897         * targhooks.c (default_external_stack_protect_fail): Use
27898         build_call_expr instead of build_function_call_expr.
27899         (default_hidden_stack_protect_fail): Likewise.
27900
27901         * tree-complex.c (expand_complex_libcall): Use build_call_expr to
27902         build the call.
27903
27904         * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
27905         and walk arguments explicitly.
27906
27907         * tree-ssa-loop-niter.c (simplify_replace_tree): Use
27908         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
27909         (expand_simple_operations): Likewise.
27910         (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
27911
27912         * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
27913         of TREE_CODE_LENGTH.
27914         (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
27915
27916         * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
27917         instead of TREE_CODE_LENGTH.
27918
27919         * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
27920         (tree_ic_transform): Likewise.
27921         (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
27922         parameter instead of arglist.  Fix callers.
27923         (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
27924         (tree_stringops_transform): Likewise.
27925         (tree_indirect_call_to_profile): Likewise.
27926         (tree_stringops_values_to_profile): Likewise.
27927
27928         * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
27929         (eliminate_tail_call): Likewise.
27930
27931         * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
27932
27933         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
27934         Use TREE_OPERAND_LENGTH and generalize to handle any number of
27935         operands.
27936         (instantiate_parameters_1): Can't handle tcc_vl_exp here.
27937
27938         * omp-low.c (build_omp_barrier): Use build_call_expr.
27939         (lower_rec_input_clauses): Likewise.
27940         (lower_reduction_clauses): Likewise.
27941         (expand_parallel_call): Likewise.
27942         (maybe_catch_exception): Likewise.
27943         (expand_omp_for_generic): Likewise.
27944         (expand_omp_for_static_nochunk): Likewise.
27945         (expand_omp_sections): Likewise.
27946         (lower_omp_single_simple): Likewise.
27947         (lower_omp_single_copy): Likewise.
27948         (lower_omp_master): Likewise.
27949         (lower_omp_ordered): Likewise.
27950         (lower_omp_critical): Likewise.
27951
27952         * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
27953         (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
27954
27955         * tree-gimple.c (is_gimple_call_addr): Fix doc.
27956         (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
27957         TREE_CODE_LENGTH.  Add tcc_vl_exp case.
27958
27959         * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
27960         and generalize to handle any number of operands.
27961         (chrec_contains_undetermined): Likewise.
27962         (tree_contains_chrecs): Likewise.
27963         (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
27964
27965         * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
27966
27967         * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
27968         fold_call_expr instead of fold_builtin.
27969         (ccp_fold_builtin): Likewise.  Update calls into builtins.c to
27970         match declarations there.
27971         (fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
27972         updates.
27973
27974         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
27975         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
27976
27977         * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
27978         (scan_function): Add case tcc_vl_exp for CALL_EXPR.
27979
27980         * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
27981         accessors.
27982
27983         * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
27984         (execute_cse_sincos): Use new CALL_EXPR accessors.
27985
27986         * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
27987
27988         * gimple-low.c (lower_function_body): Use build_call_expr.
27989         (lower_builtin_setjmp): Likewise.
27990
27991         * expr.c (emit_block_move_via_libcall): Use build_call_expr.
27992         (set_storage_via_libcall): Likewise.
27993         (safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
27994         instead of TREE_CODE_LENGTH.
27995         (expand_expr_real_1): Use new CALL_EXPR accessors.
27996
27997         * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
27998         generalize to handle any number of operands.
27999         (TB_parent_eq): Likewise.
28000
28001         * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
28002         (strip_builtin_expect): Likewise.
28003
28004         * function.c (gimplify_parameters): Use build_call_expr.
28005
28006         * tree-vectorizer.c (vect_is_simple_reduction): Use
28007         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
28008
28009         * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
28010         (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
28011
28012         * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
28013         iterators.
28014
28015         * gimplify.c (build_stack_save_restore): Use build_call_expr.
28016         (gimplify_decl_expr): Likewise.
28017         (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
28018         Use new CALL_EXPR iterators.
28019         (gimplify_modify_expr_to_memcpy): Use build_call_expr.
28020         (gimplify_modify_expr_to_memset): Likewise.
28021         (gimplify_variable_sized_compare): Likewise.
28022         (gimplify_omp_atomic_fetch_op): Likewise.
28023         (gimplify_omp_atomic_pipeline): Likewise.
28024         (gimplify_omp_atomic_mutex): Likewise.
28025         (gimplify_function_tree): Likewise.
28026
28027         * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
28028         (call_expr_flags): Likewise.
28029         (expand_call): Likewise.
28030
28031         * except.c (expand_builtin_eh_return_data_regno): Pass entire
28032         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
28033         accessors.
28034
28035         * coverage.c (create_coverage): Use build_call_expr.
28036
28037         * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
28038         (temp_call_expr_obstack): New.
28039         (pool_copy_list): Delete.
28040         (temp_copy_call_expr): New.
28041         (phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
28042         CALL_EXPR accessors.  Get rid of special goo for copying argument
28043         lists and use temp_copy_call_expr instead.
28044         (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
28045         CALL_EXPR accessors.
28046         (create_expression_by_pieces): Likewise.  Use build_call_array
28047         to construct the result instead of fold_build3.
28048         (create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
28049         dealing with argument lists.
28050         (init_pre): Remove references to expression_node_pool and
28051         list_node_pool.  Init temp_call_expr_obstack instead.
28052         (fini_pre): Remove references to expression_node_pool and
28053         list_node_pool.
28054
28055         * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
28056         and walk arguments explicitly instead of as a list.
28057
28058         * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
28059         (mx_register_decls): Likewise.
28060         (mudflap_register_call): Likewise.
28061         (mudflap_finish_file): Likewise.
28062
28063         * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
28064         (ipa_callsite_compute_param): Likewise.
28065
28066         * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
28067         accessors and constructor.
28068
28069         * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
28070         accessors and constructor.
28071         (convert_tramp_reference): Likewise.
28072         (convert_call_expr): Likewise.
28073         (finalize_nesting_tree_1): Likewise.
28074
28075         * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
28076         accessors.
28077
28078         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
28079
28080         * tree-inline.c (initialize_inlined_parameters): Pass entire
28081         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
28082         accessors.
28083         (estimate_num_insns_1): Use new CALL_EXPR accessors.
28084         (expand_call_inline): Tidy up call to initialize_inlined_parameters.
28085
28086         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
28087         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
28088         (vectorizable_reduction): Likewise.
28089         (vectorizable_call): Use new CALL_EXPR iterators.
28090         (vectorizable_conversion): Use build_call_expr.
28091         (vectorizable_operation): Use TREE_OPERAND_LENGTH.
28092         (vect_gen_widened_results_half): Use build_call_expr.
28093         (vect_setup_realignment): Likewise.
28094         (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
28095
28096         * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
28097         (pass_through_call): Likewise.
28098         (compute_object_sizes): Likewise.  Use fold_call_expr instead of
28099         fold_builtin.
28100
28101         * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
28102         (tree_gen_pow2_profiler): Likewise.
28103         (tree_gen_one_value_profiler): Likewise.
28104         (tree_gen_ic_func_profiler): Likewise.
28105         (tree_gen_average_profiler): Likewise.
28106         (tree_gen_ior_profiler): Likewise.
28107
28108         * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
28109         (find_func_aliases): Use new CALL_EXPR accessors.  Add case
28110         tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
28111
28112         * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
28113         of TREE_CODE_LENGTH.
28114
28115         * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
28116         of TREE_CODE_LENGTH.
28117
28118         * convert.c (convert_to_real): Use new CALL_EXPR accessors and
28119         constructor.
28120         (convert_to_integer): Likewise.
28121
28122         * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
28123         accessors.
28124
28125 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
28126             Brooks Moses  <brooks.moses@codesourcery.com>
28127             Lee Millward  <lee.millward@codesourcery.com>
28128
28129         * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
28130         accessors.
28131         * config/frv/frv.c (frv_expand_builtin): Likewise.
28132         * config/s390/s390.c (s390_expand_builtin): Likewise.
28133
28134         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
28135         (sparc_expand_builtin): Use new CALL_EXPR accessors.
28136
28137         * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
28138         (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
28139         instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
28140         (ix86_expand_store_builtin): Likewise.
28141         (ix86_expand_unop_builtin): Likewise.
28142         (ix86_expand_unop1_builtin): Likewise.
28143         (ix86_expand_sse_compare): Likewise.
28144         (ix86_expand_sse_comi): Likewise.
28145         (ix86_expand_vec_init_builtin): Likewise.
28146         (ix86_expand_vec_ext_builtin): Likewise.
28147         (ix86_expand_vec_set_builtin): Likewise.
28148         (ix86_expand_builtin): Use new CALL_EXPR accessors.
28149
28150         * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
28151         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
28152
28153         * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
28154         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
28155         (iq2000_expand_builtin): Use new CALL_EXPR accessors.
28156
28157         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
28158         build_call_expr.
28159         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
28160         (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
28161         arglist.  Use new CALL_EXPR accessors.  Fix callers.
28162         (altivec_expand_abs_builtin): Likewise.
28163         (rs6000_expand_binop_builtin): Likewise.
28164         (altivec_expand_predicate_builtin): Likewise.
28165         (altivec_expand_lv_builtin): Likewise.
28166         (spe_expand_stv_builtin): Likewise.
28167         (altivec_expand_stv_builtin): Likewise.
28168         (rs6000_expand_ternop_builtin): Likewise.
28169         (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
28170         (altivec_expand_st_builtin): Likewise.
28171         (altivec_expand_dst_builtin): Likewise.
28172         (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
28173         arglist.  Use new CALL_EXPR accessors.  Fix callers.
28174         (altivec_expand_vec_set_builtin): Likewise.
28175         (altivec_expand_vec_ext_builtin): Likewise.
28176         (altivec_expand_builtin): Use new CALL_EXPR accessors.
28177         (spe_expand_builtin): Likewise.
28178         (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
28179         arglist.  Use new CALL_EXPR accessors.  Fix callers.
28180         (spe_expand_evsel_builtin): Likewise.
28181         (rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
28182         FCFSX cases must construct whole new CALL_EXPR, not just arglist.
28183
28184         * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
28185         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
28186         (arm_expand_unop_builtin): Likewise.
28187         (arm_expand_builtin): Use new CALL_EXPR accessors.
28188
28189         * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
28190         accessors.
28191
28192         * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
28193         CALL_EXPR instead of arglist.  Use new CALL_EXPR accessors.
28194         Fix callers.
28195         (bfin_expand_unop_builtin): Likewise.
28196         (bfin_expand_builtin): Use new CALL_EXPR accessors.
28197
28198 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
28199             Brooks Moses  <brooks.moses@codesourcery.com>
28200             Lee Millward  <lee.millward@codesourcery.com>
28201
28202         * c-semantics.c (build_stmt): Add internal diagnostic check.
28203
28204         * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
28205         accessors.  Print arguments explicitly instead of as a list.
28206
28207         * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
28208
28209         * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
28210         (c_finish_omp_flish): Likewise.
28211
28212         * c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
28213         arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
28214         instead of TREE_CODE_LENGTH.
28215         (check_function_arguments_recurse): Use new CALL_EXPR accessors.
28216         (c_warn_unused_result): Likewise.
28217
28218 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28219
28220         PR c/26494
28221         * doc/invoke.texi (Warning Options): Remove
28222         -Werror-implicit-function-declaration.
28223         (Wimplicit-function-declaration): Update description.
28224         * opts.c (common_handle_option): Move handling of -Werror=* to...
28225         (enable_warning_as_error): ...here.
28226         * opts.h (enable_warning_as_error): Declare.
28227         * c-decl.c (implicit_decl_warning): Unless
28228         -Wno-implicit-function-declaration is given, emit a pedwarn if
28229         -std=c99 or emit a warning if -Wimplicit-function-declaration.
28230         * c.opt (Wimplicit-function-declaration): Replace
28231         mesg_implicit_function_declaration with
28232         warn_implicit_function_declaration.
28233         * c-opts.c (c_common_handle_option):
28234         -Werror-implicit-function-declaration is exactly equal as
28235         -Werror=implicit-function-declaration.
28236         (set_Wimplicit): Replace mesg_implicit_function_declaration with
28237         warn_implicit_function_declaration.
28238         (c_common_post_options): -Wimplict-function-declaration is enabled
28239         by default by -std=c99, otherwise is disabled by default.
28240         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
28241
28242 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
28243
28244         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
28245         DECL on the rhs to a DECL on the lhs for debug info purposes if the
28246         former is ignored but not the latter.
28247
28248 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
28249
28250         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
28251         is made and the reference doesn't use the alias set of its type,
28252         do not create the temporary using that type.
28253
28254 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
28255
28256         * jump.c: Remove prototypes for delete_computation and
28257         delete_prior_computation.
28258
28259 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
28260
28261         * jump.c (get_label_after): Delete.
28262         (get_label_before, delete_computation, delete_jump,
28263         delete_prior_computation, follow_jumps): Move...
28264         * reorg.c (delete_computation, delete_prior_computation): ... here...
28265         (get_label_before, delete_jump): ... making these static ...
28266         (follow_jumps): ... and simplifying this since it only runs after
28267         reload.
28268         * rtl.h (get_label_after, get_label_before, delete_jump,
28269         follow_jumps): Delete prototypes.
28270
28271 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
28272
28273         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
28274
28275 2007-02-15  Nick Clifton  <nickc@redhat.com>
28276
28277         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
28278         order to prevent it from being munged by the target.
28279
28280 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
28281
28282         * config/i386/i386.md: Remove misleading comment.
28283
28284 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
28285
28286         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
28287         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
28288         invalid patterns.
28289
28290 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
28291
28292         * tree-sra.c (instantiate_missing_elements): Canonicalize
28293         bit-field types.
28294         (sra_build_assignment): New.
28295         (generate_copy_inout, generate_element_copy,
28296         generate_element_zero, generate_one_element_init): Use it.
28297
28298 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
28299
28300         * tree-sra.c (instantiate_missing_elements): Canonicalize
28301         bit-field types.
28302         (sra_build_assignment): New.
28303         (generate_copy_inout, generate_element_copy,
28304         generate_element_zero, generate_one_element_init): Use it.
28305
28306 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
28307
28308         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
28309         limbo die nodes.
28310
28311 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
28312
28313         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
28314         types as aggregates not scalars.
28315         * function.c (assign_stack_temp_for_type): Likewise.
28316
28317 2007-02-14  Roger Sayle  <roger@eyesopen.com>
28318             Zdenek Dvorak  <dvorakz@suse.cz>
28319
28320         * tree-dump.c (dump_switch_p_1): Require exact match of the option
28321         name.
28322
28323 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
28324
28325         * passes.c (next_pass_1): Clear the next field of the copied
28326         pass structure.
28327
28328 2007-02-14  Richard Henderson  <rth@redhat.com>
28329
28330         * tree-sra.c (early_sra): New.
28331         (decl_can_be_decomposed_p): Deny va_list if early_sra.
28332         (tree_sra_early, pass_sra_early): New.
28333         * tree-pass.h (pass_sra_early): Declare.
28334         * passes.c (init_optimization_passes): Use it.
28335
28336 2007-02-14  Richard Guenther  <rguenther@suse.de>
28337
28338         * flags.h (issue_strict_overflow_warning): Convert to a macro.
28339
28340 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
28341
28342          PR tree-optimization/30771
28343         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
28344         also phi nodes.
28345         (vect_analyze_operations): Induction phis can now be marked as
28346         used_in_loop.
28347         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
28348         Update documentation accordingly.
28349
28350 2007-02-14  Nick Clifton  <nickc@redhat.com>
28351
28352         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
28353         most 3 arguments are supported.
28354         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
28355
28356 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
28357
28358         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
28359         Ensure dst->current is valid.
28360
28361 2007-02-13  Paul Brook  <paul@codesourcery.com>
28362
28363         * config.gcc: Add arm*-*-uclinux-*eabi.
28364         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
28365         (SUBTARGET_EXTRA_LINK_SPEC): Define.
28366         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
28367         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
28368         (LINK_SPEC): Define.
28369         (LIB_SPEC): Define.
28370         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
28371         register.
28372         * config/arm/uclinux-eabi.h: New file.
28373         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
28374         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
28375         based targets.
28376
28377 2007-02-13  Ian Lance Taylor  <iant@google.com>
28378
28379         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
28380         * flags.h (warn_strict_overflow): Declare.
28381         (enum warn_strict_overflow_code): Define.
28382         (issue_strict_overflow_warning): New static inline function.
28383         * opts.c (warn_strict_overflow): New variable.
28384         (common_handle_option): Handle OPT_Wstrict_overflow and
28385         OPT_Wstrict_overflow_.
28386         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
28387         OPT_Wall.
28388         * fold-const.c: Include intl.h.
28389         (fold_deferring_overflow_warnings): New static variable.
28390         (fold_deferred_overflow_warning): New static variable.
28391         (fold_deferred_overflow_code): New static variable.
28392         (fold_defer_overflow_warnings): New function.
28393         (fold_undefer_overflow_warnings): New function.
28394         (fold_undefer_and_ignore_overflow_warnings): New function.
28395         (fold_deferring_overflow_warnings_p): New function.
28396         (fold_overflow_warning): New static function.
28397         (make_range): Add strict_overflow_p parameter.  Change all
28398         callers.
28399         (extract_muldiv, extract_muldiv_1): Likewise.
28400         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
28401         tree_expr_nonnegative_p.
28402         (fold_negate_expr): Call fold_overflow_warning.
28403         (fold_range_test): Likewise.
28404         (fold_comparison): Likewise.
28405         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
28406         instead of tree_expr_nonnegative_p.
28407         (tree_expr_nonnegative_warnv_p): Rename from
28408         tree_expr_nonnegative_p, add strict_overflow_p parameter.
28409         (tree_expr_nonnegative_p): New function.
28410         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
28411         strict_overflow_p parameter.
28412         (tree_expr_nonzero_p): New function.
28413         * passes.c (verify_interpass_invariants): New static function.
28414         (execute_one_pass): Call it.
28415         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
28416         warnings.
28417         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
28418         (estimate_numbers_of_iterations): Likewise.
28419         (scev_probably_wraps_p): Likewise.
28420         * tree-ssa-ccp.c: Include "toplev.h".
28421         (evaluate_stmt): Defer fold overflow warnings until we know we are
28422         going to optimize.
28423         (struct fold_stmt_r_data): Add stmt field.
28424         (fold_stmt_r): Defer fold overflow warnings until we know we
28425         optimized.
28426         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
28427         (fold_stmt_inplace): Likewise.
28428         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
28429         (cleanup_control_expr_graph): Defer fold overflow warnings until
28430         we know we are going to optimize.
28431         * tree-cfg.c (fold_cond_expr_cond): Likewise.
28432         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
28433         Likewise.
28434         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
28435         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
28436         * tree-ssa-loop-manip.c (create_iv): Likewise.
28437         * c-typeck.c (build_conditional_expr): Likewise.
28438         (build_binary_op): Likewise.
28439         * tree-vrp.c (vrp_expr_computes_nonzero): Call
28440         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
28441         (extract_range_from_unary_expr): Likewise.
28442         * simplify-rtx.c (simplify_const_relational_operation): Warn when
28443         assuming that signed overflow does not occur.
28444         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
28445         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
28446         (fold_defer_overflow_warnings): Declare.
28447         (fold_undefer_overflow_warnings): Declare.
28448         (fold_undefer_and_ignore_overflow_warnings): Declare.
28449         (fold_deferring_overflow_warnings_p): Declare.
28450         (tree_expr_nonzero_warnv_p): Declare.
28451         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
28452         of warning options.
28453         (Warning Options): Document -Wstrict-overflow.
28454         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
28455         (tree-ssa-ccp.o): Likewise.
28456         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
28457         (fold-const.o): Depend on intl.h.
28458
28459 2007-02-13  Ian Lance Taylor  <iant@google.com>
28460
28461         PR middle-end/30751
28462         * lower-subreg.c (resolve_simple_move): Decompose subregs in
28463         addresses.
28464
28465 2007-02-13  Stuart Hastings  <stuart@apple.com>
28466
28467         * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
28468
28469 2007-02-13  Richard Henderson  <rth@redhat.com>
28470
28471         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
28472         handled_component_p before looking for the indirect_ref.
28473
28474 2007-02-13  Richard Henderson  <rth@redhat.com>
28475
28476         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
28477         remove flags clobber.
28478         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
28479         (bswaphi_lowpart): New.
28480         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
28481         remove TARGET_BSWAP test.  Delete expander of the same name.
28482
28483         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
28484         (expand_unop): Use them.
28485
28486 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
28487
28488         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
28489         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
28490         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
28491         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
28492         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
28493         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
28494         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
28495         assembler dialect choice from asm templates.
28496
28497 2007-02-12  Richard Henderson  <rth@redhat.com>
28498
28499         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
28500         (fixuns_trunc<SSEMODEF>si2): Use it.
28501         * config/i386/sse.md (vec_setv4sf_0): Export.
28502         * config/i386/i386.c (ix86_build_const_vector): Export.
28503         (ix86_split_convert_uns_si_sse): Rename from
28504         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
28505         * config/i386/i386-protos.h: Update.
28506
28507 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28508
28509         PR c/29521
28510         * c-typeck.c (c_finish_return): Improve warning message.
28511
28512 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28513
28514         * alias.c (find_symbolic_term): Delete unused function.
28515
28516 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
28517
28518         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
28519         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
28520         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
28521
28522 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
28523
28524         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
28525         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
28526         the function, temporarily point the debug interface to the null one.
28527
28528 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
28529
28530         * dwarf2out.c (round_up_to_align): New static function.
28531         (field_byte_offset): Use it to round the offset.
28532
28533 2007-02-12  Richard Henderson  <rth@redhat.com>
28534
28535         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
28536         (inswl_const): Export.
28537
28538 2007-02-12  Richard Henderson  <rth@redhat.com>
28539
28540         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
28541         result mode of the libcall, convert back to outmode.
28542
28543 2007-02-12  Roger Sayle  <roger@eyesopen.com>
28544
28545         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
28546         (bswapdi2): New define_expand to implement 32-bit implementation.
28547
28548 2007-02-12  Nick Clifton  <nickc@redhat.com>
28549
28550         * doc/invoke.texi (Overall Options): Document --help=.
28551         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
28552         (cc1_options): Pass --help= on to cc1.
28553         (display_help): Add description of --help=.
28554         (process_command): Add code to handle --help=.  Allow translated
28555         --help and --target-help switches to be passed on to compiler
28556         sub-process.
28557         (main): Remove unused if statement.
28558         * opts.c (columns): Remove.
28559         (LEFT_COLUMN): Define.
28560         (wrap_help): Add columns argument.
28561         (print_filtered_help): Change parameters to be an include bitmask,
28562         an exclude bitmask, an any bitmask and the column width.  Move the
28563         code to display the params list here.  Add code to display the
28564         status of options rather than their descriptions if the quiet flag
28565         is not active.
28566         (print_specific_help): Change parameters to be an include bitmask,
28567         an exclude bitmask and an any bitmask.  Move code to look up the
28568         column width here.  Decide upon the title for an options listing.
28569         (common_handle_options): Add code to handle --help=.  Adapt code
28570         for --help and --target-help to use the revised form of the
28571         print_specific_help function.
28572         (print_help): Delete.
28573         (print_param_help): Delete.
28574         (print_switch): Delete.
28575         * opts.h (cl_lang_count): Add prototype.
28576         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
28577         CL_MAX_OPTION_CLASS): New defines.
28578         * optc-gen.awk: Add construction of cl_lang_count.
28579         * c.opt: Add Warning attribute to warning options and Optimization
28580         attribute to optimization options.
28581         * common.opt: Likewise.
28582         Add --help=.
28583         Add -fhelp and -ftarget-help as aliases for the transformed --help
28584         and --target-help options.
28585         * opt-functions.awk: Add code to handle Warning and Optimization
28586         attributes.
28587
28588 2007-02-12  Richard Henderson  <rth@redhat.com>
28589
28590         * config/alpha/constraints.md: New file.
28591         * config/alpha/alpha.c: Include tm-constrs.h.
28592         (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
28593         alpha_extra_constraint): Remove.
28594         (alpha_emit_conditional_branch): Use satisfies_constraint_*.
28595         * config/alpha/alpha-protos.h: Update.
28596         * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
28597         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
28598         (EXTRA_CONSTRAINT): Remove.
28599         * config/alpha/alpha.md: Include constraints.md.
28600         (adddi splitter): Use satisfies_constraint_*.
28601         * config/alpha/predicates.md (add_operand): Likewise.
28602         (sext_add_operand, addition_operation): Likewise.
28603
28604 2007-02-12  Dorit Nuzman  <dorit@il.ibm.com>
28605
28606         PR tree-optimization/29145
28607         * tree-data-ref.c (base_addr_differ_p): Make us more conservative
28608         in our handling of restrict qualified pointers.
28609
28610 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28611
28612         PR middle-end/7651
28613         * doc/invoke.texi (Wunused-value): Update description.
28614         (Wextra): Delete item.
28615         * opts.c (set_Wextra): Don't use the value of Wextra to set the
28616         value of Wunused-value.
28617         * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
28618         (c_finish_stmt_expr): Don't check extra_warnings.
28619         (emit_side_effect_warnings): The caller is responsible to check
28620         warn_unused_value.
28621
28622 2007-02-11  Roger Sayle  <roger@eyesopen.com>
28623             Matt Thomas  <matt@3am-software.com>
28624
28625         * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
28626
28627 2007-02-11  Roger Sayle  <roger@eyesopen.com>
28628
28629         * simplify-rtx.c (simplify_relational_operation_1): Optimize
28630         comparisons of POPCOUNT against zero.
28631         (simplify_const_relational_operation): Likewise.
28632
28633 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28634
28635         * doc/invoke.texi (Wextra): Delete outdated paragraph.
28636
28637 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28638
28639         * dwarf2out.c (root_type): Delete unused function.
28640
28641 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28642
28643         * genattrtab.c (contained_in_p): Delete unused function.
28644         (write_expr_attr_cache): Likewise.
28645
28646 2007-02-11  Jan Hubicka  <jh@suse.cz>
28647
28648         * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
28649         previous patch.
28650
28651 2007-02-11  Steven Bosscher  <steven@gcc.gnu.org>
28652
28653         * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
28654         to add the REG_EQ* note.
28655         * see.c (see_merge_one_use_extension): Likewise.
28656         * local-alloc.c (update_equiv_regs): Likewise.  Also don't
28657         turn REG_EQUAL notes into REG_EQUIV notes if the target
28658         register may have more than one set.
28659         * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
28660         * gcse.c (try_replace_reg): Likewise.
28661         * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
28662         * calls.c (fixup_tail_calls): Likewise.  Abort if there is
28663         more than one REG_EQUIV note.
28664         * reload1.c (gen_reload): Use set_unique_reg_note.
28665
28666 2007-02-11  Uros Bizjak  <ubizjak@gmail.com>
28667
28668         * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
28669         (ix86_builtin_conversion): New function.
28670
28671 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
28672
28673         PR target/29487
28674         * tree.h (DECL_REPLACEABLE_P): New macro.
28675         * except.c (set_nothrow_function_flags): Likewise.
28676
28677 2007-02-11  Tehila Meyzels  <tehila@il.ibm.com>
28678             Ira Rosen  <irar@il.ibm.com>
28679             Dorit Nuzman  <dorit@il.ibm.com>
28680
28681         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
28682         * targhooks.c (default_builtin_vectorized_conversion): New.
28683         * targhooks.h (default_builtin_vectorized_function): New declaration.
28684         * target.h (struct vectorize): Add builtin_conversion field.
28685         * tree-vectorizer.h (type_conversion_vec_info_type): New enum
28686         stmt_vec_info_type value.
28687         (vectorizable_conversion): New declaration.
28688         * tree-vect-analyze.c (vect_analyze_operations): Add
28689         vectorizable_conversion call.
28690         * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
28691         * tree-vect-transform.c (vectorizable_conversion): New function.
28692         (vect_transform_stmt): Add case for type_conversion_vec_info_type.
28693         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
28694         mode.
28695         * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
28696         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
28697         (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
28698         or ALTIVEC_BUILTIN_VCFSX.
28699
28700 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28701
28702         PR target/30634
28703         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
28704         CONST_DOUBLE and operand 0 is a hard register.
28705         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
28706         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
28707         is a hard floating-point register.
28708
28709 2007-02-10  Richard Henderson  <rth@redhat.com>
28710             Jakub Jelinek  <jakub@redhat.com>
28711             Alexandre Oliva  <aoliva@redhat.com>
28712
28713         * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
28714         * builtin-types.def (BT_WORD): Make unsigned.
28715         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
28716         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
28717         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
28718         * c-decl.c (grokdeclarator): Don't error if !have_tls.
28719         * c-parser.c (c_parser_omp_threadprivate): Likewise.
28720         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
28721         emulated tls.
28722         * expr.c (emutls_var_address): New.
28723         (expand_expr_real_1): Expand emulated tls.
28724         (expand_expr_addr_expr_1): Likewise.
28725         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
28726         * output.h (emutls_finish): Declare.
28727         * toplev.c (compile_file): Call it.
28728         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
28729         address before wrapping in CONST.
28730         * varasm.c (emutls_htab, emutls_object_type): New.
28731         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
28732         (get_emutls_object_name, get_emutls_object_type): New.
28733         (get_emutls_init_templ_addr, emutls_decl): New.
28734         (emutls_common_1, emutls_finish): New.
28735         (assemble_variable): When emulating tls, swap decls; generate
28736         constructor for the emutls objects.
28737         (do_assemble_alias): When emulating tls, swap decl and target name.
28738         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
28739         for emulated tls.
28740         * varpool.c (decide_is_variable_needed): Look at force_output.
28741         Recurse for emulated tls.
28742         (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
28743         with decide_is_variable_needed.
28744         * emutls.c: New file.
28745         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
28746         tls_object for real tls.
28747
28748 2007-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
28749
28750         PR rtl-optimization/29599
28751         * reload1.c (eliminate_regs_in_insn): Take the destination
28752         mode into account when computing the offset.
28753
28754 2007-02-09  Stuart Hastings  <stuart@apple.com>
28755             Richard Henderson  <rth@redhat.com>
28756
28757         * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
28758         * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
28759         * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
28760         fixuns_truncdfhi2): New.
28761         (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
28762         (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
28763         (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
28764         (floatunssidf2): Allow nonimmediate source.
28765         * config/i386/sse.md (movdi_to_sse): New.
28766         (vec_concatv2di): Drop '*'.
28767         * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
28768         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
28769         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
28770         New.
28771         * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
28772         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
28773         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
28774         ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
28775         (ix86_build_signbit_mask): Fix decl of v, refactor to call
28776         ix86_build_const_vector.
28777         (x86_emit_floatuns): Rewrite.
28778
28779 2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28780
28781         * genautomata.c (longest_path_length): Delete unused function.
28782         (struct state): Delete unused longest_path_length.
28783         (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
28784         (get_free_state): Delete unused.
28785
28786 2007-02-09  Jan Hubicka  <jh@suse.cz>
28787
28788         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
28789         * doc/invoke.texi (inline-unit-growth): Update default value.
28790
28791         * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
28792         * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
28793         (rebuild_cgraph_edges): Likewise.
28794         * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
28795         (dump_cgraph_node): Dump frequencies.
28796         (cgraph_clone_edge): Add frequency scales.
28797         (cgraph_clone_node): Add freuqnecy.
28798         * cgraph.h (cgraph_edge): Add freuqnecy argument.
28799         (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
28800         (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
28801         * tree-pass.h (TODO_rebuild_frequencies): New constant.
28802         * cgraphunit.c (verify_cgraph_node): Verify frequencies.
28803         (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
28804         (save_inline_function_body): Likewise.
28805         * ipa-inline.c: inluce rtl.h
28806         (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
28807         (cgraph_edge_badness): Use frequencies.
28808         (cgraph_decide_recursive_inlining): Update clonning.
28809         (cgraph_decide_inlining_of_small_function): Dump frequency.
28810         * predict.c (estimate_bb_frequencies): Export.
28811         * predict.h (estimate_bb_frequencies): Declare.
28812         * tree-inline.c (copy_bb): Watch overflows.
28813         (expand_call_inline): Update call of cgraph_create_edge.
28814         (optimize_inline_calls): Use TODO flags to update frequnecies.
28815         * passes.h: Include predict.h
28816         (init_optimization_passes): Move profile ahead.
28817         (execute_function_todo): Handle TODO_rebuild_frequencies.
28818
28819 2007-02-09  Roger Sayle  <roger@eyesopen.com>
28820
28821         * config/alpha/alpha.c (emit_insxl): Force the first operand of
28822         the insbl or inswl pattern into a register.
28823
28824 2007-02-09  Roger Sayle  <roger@eyesopen.com>
28825
28826         * config/ia64/ia64.md (bswapdi2): New define_insn.
28827
28828 2007-02-09  Richard Henderson  <rth@redhat.com>
28829
28830         * config/i386/constraints.md (Ym): New constraint.
28831         * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
28832         (movdi_1_rex64): Split sse and xmm general register moves from
28833         memory move alternatives.  Use conditional register constraints.
28834         (movsf_1, movdf_integer): Likewise.
28835         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
28836         (movdf_integer_rex64): New.
28837         (pushsf_rex64): Fix output constraints.
28838         * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
28839         (sse2_stored): Likewise.
28840         (sse2_storeq_rex64): New.
28841         * config/i386/i386.c (x86_inter_unit_moves): Enable for not
28842         amd and not generic.
28843         (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
28844         for optimize_size.  Remove SF/DFmode hack.
28845
28846 2007-02-09  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
28847
28848         * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
28849         (bit_SSE4a): New.
28850
28851 2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
28852             Richard Sandiford  <richard@codesourcery.com>
28853
28854         * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
28855         (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
28856         (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
28857         m68k/t-mlib to tmake_file.
28858         (m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
28859         (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
28860         (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
28861         Allow it to be cf or m68k.  Set m68k_arch_family.  If that
28862         variable is not empty, add t-$m68k_arch_family to tmake_file.
28863         Add t-mlibs to tmake_file.
28864         * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
28865         * config/m68k/t-cf: New file.
28866         * config/m68k/t-m68k: Likewise.
28867         * config/m68k/t-mlibs: Likewise.
28868         * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
28869         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
28870         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
28871         * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
28872         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
28873         Delete.
28874         * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
28875         (INSTALL_LIBGCC): Delete.
28876         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
28877         * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
28878         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
28879         (M68K_MLIB_CPU): Define.
28880         * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
28881         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
28882         (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
28883
28884 2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
28885             Richard Guenther  <rguenther@suse.de>
28886
28887         PR middle-end/23361
28888         * fold-const.c (fold_comparison): Handle obfuscated comparisons
28889         against INT_MIN/INT_MAX.
28890         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
28891         file if a loop is removed.
28892
28893 2007-02-09  Joseph Myers  <joseph@codesourcery.com>
28894
28895         * calls.c (store_one_arg): Pass correct alignment to
28896         emit_push_insn for non-BLKmode values.
28897         * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
28898         unaligned stack slot via a suitably aligned slot.
28899
28900 2007-02-08  DJ Delorie  <dj@redhat.com>
28901
28902         * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
28903         warnings.
28904         (legal_subregs): Use unsigned char, make const.
28905         (m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.
28906
28907 2007-02-08  Paul Brook  <paul@codesourcery.com>
28908
28909         * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
28910         special interworking needed.
28911
28912 2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>
28913
28914         * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
28915         conditional to __SSE2__.
28916         (Entries below should have been added to first ChangeLog
28917         entry for amdfam10 dated 2007-02-05)
28918         * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
28919         defined.
28920         * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
28921         defined.
28922         * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
28923         defined.
28924
28925 2007-02-08  DJ Delorie  <dj@redhat.com>
28926
28927         * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
28928         * config/m32c/m32c.c (legal_subregs): New.
28929         (m32c_illegal_subreg_p): New.
28930         * config/m32c/predicates.md (m32c_any_operand): Use it to reject
28931         unsupported subregs of hard regs.
28932
28933 2007-02-08  Jan Hubicka  <jh@suse.cz>
28934
28935         * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
28936         the same one; always update histograms.
28937
28938 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
28939
28940         * passes.c (init_optimization_passes): Tidy comment.
28941
28942 2007-02-08  Roger Sayle  <roger@eyesopen.com>
28943
28944         * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
28945         strip zero_extend, bswap and rotates from POCOUNT's argument.
28946         <PARITY>: Likewise, we can strip not, bswap, sign_extend,
28947         zero_extend and rotates from PARITY's argument.
28948         <BSWAP>: A byte-swap followed by a byte-swap is an identity.
28949         (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
28950         of an integer constant at compile-time.
28951
28952 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
28953
28954         PR 30562
28955         * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
28956         Update all users.
28957         * tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
28958         users.
28959         (init_alias_info):
28960         * tree-ssa-live.c (remove_unused_locals): Do not remove
28961         TREE_ADDRESSABLE variables.
28962         * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
28963         * tree-ssa-operands.c (add_virtual_operand): Remove argument
28964         FOR_CLOBBER.  Update all users.
28965         If VAR has an associated alias set, add a virtual operand for
28966         it if no alias is found to conflict with the memory reference.
28967
28968 2007-02-07  Jan Hubicka  <jh@suse.cz>
28969             Robert Kidd <rkidd@crhc.uiuc.edu>
28970
28971         * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
28972
28973 2007-02-07  Ian Lance Taylor  <iant@google.com>
28974
28975         * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
28976
28977 2007-02-07  Roger Sayle  <roger@eyesopen.com>
28978
28979         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
28980         parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
28981         tablejumpdi, movsi_to_cr_one): Remove constraints from
28982         define_expand's match_operands.
28983
28984 2007-02-07  Roger Sayle  <roger@eyesopen.com>
28985
28986         * global.c (compute_regsets): Move declatation of "i" inside of
28987         #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
28988
28989 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
28990
28991         PR c++/30703
28992         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
28993         of INDIRECT_REF <RESULT_DECL>.
28994
28995         * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
28996
28997 2007-02-06  J"orn Rennecke  <joern.rennecke@arc.com>
28998             Kaz Kojima  <kkojima@gcc.gnu.org>
28999
29000         PR target/29746
29001         * config/sh/sh.c (expand_cbranchdi4): Use scratch register
29002         properly.
29003         (sh_initialize_trampoline): Add parentheses to avoid a warning.
29004
29005 2007-02-06  Zdenek Dvorak <dvorakz@suse.cz>
29006
29007         * doc/loop.texi: Document possibility not to perform disambiguation
29008         of loops with multiple latches.
29009         * cfgloopmanip.c (alp_enum_p): Removed.
29010         (add_loop): Handle subloops.  Use get_loop_body_with_size.
29011         (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
29012         * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
29013         the new forwarder block.
29014         (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
29015         Handle the case latch is NULL.
29016         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
29017         modifications when marking loop exits.
29018         * ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
29019         be modified.
29020         * loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
29021         disambiguate_loops_with_multiple_latches.
29022         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
29023         before fix_loop_structure.
29024         * cfgloop.c: Include pointer-set.h and output.h.
29025         (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
29026         update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
29027         (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
29028         find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
29029         mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
29030         disambiguate_multiple_latches, get_loop_body_with_size,
29031         disambiguate_loops_with_multiple_latches): New functions.
29032         (flow_loop_dump): Dump multiple latch edges.
29033         (flow_loop_nodes_find): Handle loops with multiple latches.
29034         (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
29035         (glb_enum_p): Modified.
29036         (get_loop_body): Use get_loop_body_with_size.
29037         * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
29038         (AVOID_CFG_MODIFICATIONS): New constant.
29039         (disambiguate_loops_with_multiple_latches, add_loop,
29040         get_loop_body_with_size): Declare.
29041         * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
29042
29043 2007-02-06  Seongbae Park <seongbae.park@gmail.com>
29044
29045         PR inline-asm/28686
29046         * global.c (compute_regsets): New function.
29047         (global_alloc): Refactored ELIMINABLE_REGSET
29048         and NO_GLOBAL_ALLOC_REGS computation out.
29049         (rest_of_handle_global_alloc): Call compute_regsets()
29050         for non-optimizing case.
29051
29052 2007-02-06  Richard Henderson  <rth@redhat.com>
29053
29054         * config/i386/constraints.md (Y2): Rename from Y.
29055         (Yi): New constraint.
29056         * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
29057         pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
29058         zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
29059         (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
29060         truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
29061         fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
29062         floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
29063         absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
29064         fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
29065         * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
29066         mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
29067         vec_extractv2si_1): Change Y constraints to Y2.
29068         * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
29069         vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
29070         Change Y constraints to Y2.
29071         (sse2_loadld): Change Y constraints to x.
29072
29073 2007-02-06  Roger Sayle  <roger@eyesopen.com>
29074
29075         * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
29076         (parity<mode>2): New define_expand using rs6000_emit_parity.
29077         * config/rs6000/rs6000.c (rs6000_emit_popcount,
29078         rs6000_emit_parity): New functions.
29079         * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
29080         rs6000_emit_parity): Prototype here.
29081
29082 2007-02-06  Ian Lance Taylor  <iant@google.com>
29083
29084         * lower-subreg.c (simple_move_operand): Reject CONST.
29085         (resolve_clobber): Call validate_change rather than directly
29086         assigning to XEXP (pat, 0).
29087
29088 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
29089
29090         * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
29091         (tree-ssa-reassoc.o): Add pointer-set.h dependency.
29092         (tree-cfg.o): Remove hashtab.h dependency.
29093
29094         * tree-ssa-loop-ivopts.c: Include pointer-set.h.
29095         (struct ivopts_data): Change niters to pointer_map_t.
29096         (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
29097         (niter_for_exit): Create pointer_map on demand.  Change for
29098         pointer_map API.
29099         (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
29100         (free_loop_data): Destroy data->niters if created and reset field.
29101         (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
29102         (tree_ssa_iv_optimize_loop): Check for presence of stale data.
29103
29104         * tree-ssa-reassoc.c: Include pointer-set.h.
29105         (bb_rank): Change to long *.
29106         (operand_rank): Change to pointer_map_t.
29107         (find_operand_rank): Return long, -1 if not found.  Declare as inline.
29108         (insert_operand_rank): Accept long.
29109         (operand_entry_hash, operand_entry_eq): Remove.
29110         (get_rank): Return long.  Adjust for changes above.
29111         (init_reassoc): Change rank type to long.  Adjust creation of bb_rank
29112         and operand_rank.
29113         (fini_reassoc): Delete operand_rank with pointer_map_destroy.
29114
29115         * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
29116         (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
29117         (insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
29118         is not NULL.
29119         (lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
29120         directly since it cannot be NULL.
29121         (get_vi_for_tree): Rewrite for pointer_map API.
29122         (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
29123         (init_alias_vars): Create vi_for_tree as pointer_map.
29124         (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
29125
29126         * tree-cfg.c: Don't include hashtab.h.
29127         (edge_to_cases): Declare as pointer_map.
29128         (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
29129         Delete.
29130         (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
29131         (start_recording_case_labels): Create edge_to_cases as pointer_map.
29132         (end_recoding_case_labels): Cleanup edge_to_cases manually before
29133         destroying it.
29134         (record_switch_edge): Delete.
29135         (get_cases_for_edge): Adjust for pointer_map API, inline
29136         record_switch_edge (rewritten for new API), remove goto.
29137
29138 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
29139
29140         * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
29141         * tree-nested.c: Include pointer-set.h.
29142         (var_map_elt, var_map_eq, var_map_hash): Delete.
29143         (struct nesting_info): Remove GTY marker.  Change the two htab_t's
29144         to pointer_map_t's.
29145         (nesting_info_bitmap_obstack): New.
29146         (lookup_field_for_decl): Adjust for pointer_map API.
29147         (lookup_tramp_for_decl): Adjust for pointer_map API.
29148         (get_nonlocal_debug_decl): Adjust for pointer_map API.
29149         (get_local_debug_decl): Adjust for pointer_map API.
29150         (convert_nl_goto_reference): Adjust for pointer_map API.
29151         (convert_nl_goto_receiver): Adjust for pointer_map API.
29152         (create_nesting_tree): Create outside GGC space.  Create bitmap on
29153         the new obstack.  Create field_map and var_map as pointer_maps.
29154         (free_nesting_tree): Adjust for changes to create_nesting_tree.
29155         (root): Delete.
29156         (lower_nested_functions): Move root here, no need to NULL it.
29157         Initialize and release the obstack.
29158
29159 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
29160
29161         * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
29162         Remove prototypes and make them non-static.
29163         (struct tree_int_map): Remove.
29164         * tree.h (struct tree_int_map): Move here, turning TO into an
29165         unsigned int.
29166         (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
29167
29168         * tree.h (TREE_COMPLEXITY): Remove.
29169         (struct tree_exp): Remove complexity field.
29170         * tree.c (build1_stat): Don't set it.
29171
29172 2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
29173             Victor Kaplansky  <victork@il.ibm.com>
29174
29175         * tree-vectorizer.c (vect_is_simple_use): Support induction.
29176         (vect_is_simple_reduction): Support reduction with induction as
29177         one of the operands.
29178         (vect_is_simple_iv_evolution): Fix formatting.
29179         * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
29180         formatting.  Don't mark induction phis for vectorization.
29181         (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
29182         * tree-vect-transform.c (get_initial_def_for_induction): New function.
29183         (vect_get_vec_def_for_operand): Support induction.
29184         (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
29185         induction case.
29186         (vectorizable_reduction): Support reduction with induction as one of
29187         the operands.
29188         (vectorizable_type_demotion): Use def-type of stmt argument rather
29189         than dummy def-type.
29190
29191         * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
29192         flag_tree_scev_cprop.
29193         * common.opt (tree-scev-cprop): New flag.
29194
29195         * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
29196         call to vect_get_new_vect_var.
29197
29198 2007-02-06  Ira Rosen  <irar@il.ibm.com>
29199
29200         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
29201         vectype is not NULL.
29202         (vect_pattern_recog_1): Likewise.
29203
29204 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29205
29206         * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
29207         (fold_negate_expr): Likewise.
29208
29209 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
29210
29211         PR debug/30189
29212         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
29213         even if cv-qualification is the same.
29214
29215 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
29216
29217         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
29218         __enable_execute_stack on completion.
29219
29220 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29221
29222         * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
29223         athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
29224         athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
29225         athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
29226         athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
29227         athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
29228         athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
29229         athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
29230
29231 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29232
29233         * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
29234         cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
29235         swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
29236         fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
29237         x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
29238         floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
29239         floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
29240         mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
29241         umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
29242         umuldi3_highpart_rex64, umulsi3_highpart_insn,
29243         umulsi3_highpart_zext, smuldi3_highpart_rex64,
29244         smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
29245         x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
29246         sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
29247         sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
29248         sqrtextenddfxf2_i387): Added amdfam10_decode.
29249
29250         * config/i386/athlon.md (athlon_idirect_amdfam10,
29251         athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
29252         athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
29253         athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
29254         athlon_ivector_store_amdfam10): New define_insn_reservation.
29255         (athlon_idirect_loadmov, athlon_idirect_movstore): Added
29256         amdfam10.
29257
29258 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29259
29260         * config/i386/athlon.md (athlon_call_amdfam10,
29261         athlon_pop_amdfam10, athlon_lea_amdfam10): New
29262         define_insn_reservation.
29263         (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
29264         athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
29265         athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
29266
29267 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29268
29269         * config/i386/athlon.md (athlon_sseld_amdfam10,
29270         athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
29271         athlon_mmxssest_short_amdfam10): New define_insn_reservation.
29272
29273 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29274
29275         * config/i386/athlon.md (athlon_sseins_amdfam10): New
29276         define_insn_reservation.
29277         * config/i386/i386.md (sseins): Added sseins to define_attr type
29278         and define_attr unit.
29279         * config/i386/sse.md: Set type attribute to sseins for insertq
29280         and insertqi.
29281
29282 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29283
29284         * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
29285         ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
29286         ssecomi_load_amdfam10, ssecomi_amdfam10,
29287         sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
29288         define_insn_reservation.
29289         (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
29290
29291 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29292
29293         * config/i386/athlon.md (cvtss2sd_load_amdfam10,
29294         cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
29295         cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
29296         cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
29297         cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
29298         cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
29299         define_insn_reservation.
29300
29301         * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
29302         cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
29303         cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
29304         cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
29305         cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
29306
29307 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29308
29309         * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
29310         athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
29311         athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
29312         (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
29313         athlon_ssemul_load_k8): Added amdfam10.
29314
29315 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29316
29317         * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
29318         (x86_sse_unaligned_move_optimal): New variable.
29319
29320         * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
29321         m_AMDFAM10.
29322         (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
29323         for unaligned vector SSE double/single precision loads for AMDFAM10.
29324
29325 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29326
29327         * config/i386/i386.h (TARGET_AMDFAM10): New macro.
29328         (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
29329         Define TARGET_CPU_DEFAULT_amdfam10.
29330         (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
29331         (processor_type): Add PROCESSOR_AMDFAM10.
29332
29333         * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
29334         processor_type in config/i386/i386.h.
29335         Enable imul peepholes for TARGET_AMDFAM10.
29336
29337         * config.gcc: Add support for --with-cpu option for amdfam10.
29338
29339         * config/i386/i386.c (amdfam10_cost): New variable.
29340         (m_AMDFAM10): New macro.
29341         (m_ATHLON_K8_AMDFAM10): New macro.
29342         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
29343         x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
29344         x86_promote_QImode, x86_integer_DFmode_moves,
29345         x86_partial_reg_dependency, x86_memory_mismatch_stall,
29346         x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
29347         x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
29348         x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
29349         x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
29350         Enable/disable for amdfam10.
29351         (override_options): Add amdfam10_cost to processor_target_table.
29352         Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
29353         processor_alias_table.
29354         (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
29355         (ix86_adjust_cost): Add code for amdfam10.
29356
29357 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
29358
29359         * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
29360         instruction set feature flag. Add new (-mpopcnt) flag for popcnt
29361         instruction. Add new SSE4A (-msse4a) instruction set feature flag.
29362         * config/i386/i386.h: Add builtin definition for SSE4A.
29363         * config/i386/i386.md: Add support for ABM instructions
29364         (popcnt and lzcnt).
29365         * config/i386/sse.md: Add support for SSE4A instructions
29366         (movntss, movntsd, extrq, insertq).
29367         * config/i386/i386.c: Add support for ABM and SSE4A builtins.
29368         Add -march=amdfam10 flag.
29369         * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
29370         * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
29371         and amdfam10.
29372         * doc/extend.texi: Add documentation for SSE4A builtins.
29373
29374 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
29375
29376         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
29377
29378 2007-02-05  Richard Guenther  <rguenther@suse.de>
29379
29380         * tree-vectorizer.h (vectorizable_function): Add argument type
29381         argument, change return type.
29382         * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
29383         * tree-vect-transform.c (vectorizable_function): Handle extra
29384         argument, return vectorized function decl.
29385         (build_vectorized_function_call): Remove.
29386         (vectorizable_call): Handle calls with result and argument types
29387         differing.  Handle loop vectorization factor correctly.
29388         * targhooks.c (default_builtin_vectorized_function): Adjust for
29389         extra argument.
29390         * targhooks.h (default_builtin_vectorized_function): Likewise.
29391         * target.h (builtin_vectorized_function): Add argument type
29392         argument.
29393         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
29394         extra argument, allow vectorizing of lrintf.
29395         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
29396         documentation of target hook.
29397
29398 2007-02-05  Hans-Peter Nilsson  <hp@axis.com>
29399
29400         PR target/30665
29401         * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
29402         ("*andhi_clear", andu (casesi+45)): For size-changed operand where
29403         memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
29404
29405 2007-02-05  Roger Sayle  <roger@eyesopen.com>
29406
29407         * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
29408         BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
29409         <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
29410         * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
29411         before canonicalizing sincos to cexpi.
29412         (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
29413
29414 2007-02-05  Roger Sayle  <roger@eyesopen.com>
29415
29416         * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
29417         Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
29418         (alpha_init_builtins): Use alpha_add_builtins to process tables.
29419
29420 2007-02-05  Roger Sayle  <roger@eyesopen.com>
29421
29422         * mips-tfile.c (initialize_init_file): Correct endianness test.
29423
29424 2007-02-05  Kazu Hirata  <kazu@codesourcery.com>
29425
29426         * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
29427         the 'y' constraint.
29428
29429 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
29430
29431         * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
29432         saves in a PARALLEL before the register assignments.
29433
29434 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
29435
29436         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
29437         DWARF_FRAME_RETURN_COLUMN to be a general register.
29438         * dwarf2out.c (init_return_column_size): New function, split from...
29439         (expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
29440         DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
29441         to be nongeneral registers.
29442         * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
29443         integer registers.
29444         (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
29445         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
29446
29447 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
29448
29449         * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
29450
29451 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
29452
29453         * cfgloopmanip.c (loop_delete_branch_edge): Removed.
29454         (remove_path): Use can_remove_branch_p and remove_branch instead
29455         of loop_delete_branch_edge.
29456         * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
29457         (tree_transform_and_unroll_loop): Remove dead branches immediately.
29458         Update profile using scale_dominated_blocks_in_loop.
29459         * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
29460         * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
29461         (can_remove_branch_p, remove_branch): Declare.
29462         * tree-cfg.c (tree_can_remove_branch_p): New function.
29463         (tree_cfg_hooks): Add tree_can_remove_branch_p.
29464         * cfgrtl.c (rtl_can_remove_branch_p): New function.
29465         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
29466
29467 2007-02-05  Jan Hubicka  <jh@suse.cz>
29468
29469         PR middle-end/30696
29470         * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
29471         nodes in cgraph, don't remove offline copy of the function.
29472
29473 2007-02-04  Jan Hubicka  <jh@suse.cz>
29474
29475         * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
29476         vectors might cause maybe_lookup_element_for_expr to be called
29477         on non-sra-candidate.
29478
29479 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
29480
29481         * config/bfin/bfin-modes.def, config/bfin/bfin.c,
29482         config/bfin/bfin.md, config/bfin/predicates.md: Follow
29483         spelling conventions.
29484
29485 2007-02-04  Richard Guenther  <rguenther@suse.de>
29486
29487         PR middle-end/30636
29488         * fold-const.c (try_move_mult_to_index): Make sure to not
29489         overflow one dimension of a multi-dimensional array access.
29490
29491 2007-02-04  Jan Hubicka  <jh@suse.cz>
29492
29493         * passes.c (init_optimization_passes): Reindent.
29494
29495 2007-02-04  Jan Hubicka  <jh@suse.cz>
29496             Eric Botcazou  <ebotcazou@adacore.com>
29497
29498         * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
29499         (execute_fixup_cfg): Break out the abnormal goto code.
29500         * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
29501         (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
29502         (optimize_inline_calls): Call make_nonlocal_label_edges.
29503
29504 2007-02-04  Jan Hubicka  <jh@suse.cz>
29505
29506         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
29507         true when something was changed.
29508         (rename_ssa_copies): When something was changed, do
29509         TODO_remove_unused_locals.
29510         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
29511         add TODO_remove_unused_locals when instruction was removed.
29512
29513 2007-02-04  Jan Hubicka  <jh@suse.cz>
29514
29515         * ipa-inline.c (try_inline): Improve debug output; work on already
29516         inline edges too.
29517         (cgraph_decide_inlining_incrementally): Indent; improve debug output;
29518         call try_inline for already inlined edges too when flattening;
29519         inline also functions that make callee growth but overall unit size
29520         reduce.
29521
29522 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
29523
29524         * config/m32c/bitops.md, config/m32c/jump.md,
29525         config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
29526         config/m32r/m32r.h, config/m32r/m32r.md,
29527         config/m32r/predicates.md, config/m68hc11/larith.asm,
29528         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
29529         config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
29530         config/mips/mips-protos.h, config/mips/mips.c,
29531         config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
29532         config/mn10300/mn10300.h, config/mn10300/predicates.md,
29533         config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
29534         spelling conventions.
29535
29536         * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
29537         Follow spelling conventions.
29538
29539 2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>
29540
29541         * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
29542         warn about C++0x compatibility.
29543
29544 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
29545
29546         * config/h8300/h8300.c, config/h8300/h8300.h,
29547         config/h8300/h8300.md: Follow spelling conventions.
29548
29549 2007-02-03  Uros Bizjak  <ubizjak@gmail.com>
29550
29551         PR middle-end/30667
29552         * combine.c (try_combine): Do not substitute source operand
29553         with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
29554
29555 2007-02-03  Jan Hubicka  <jh@suse.cz>
29556
29557         PR gcov-profile/30650
29558         * value-prof.c (stringop_block_profile): Fix handling of size counter;
29559         do not divide by zero for never executed counters.
29560         (tree_find_values_to_profile): Fix counters.
29561         * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
29562
29563 2007-02-03  Ian Lance Taylor  <iant@google.com>
29564
29565         * lower-subreg.c (simple_move_operand): New static function,
29566         broken out of simple_move.  Reject LABEL_REF, SYMBOL_REF, and HIGH
29567         operands.
29568         (simple_move): Call simple_move_operand.
29569         (find_decomposable_subregs): Add special handling of MEMs.
29570         (can_decompose_p): Rename from cannot_decompose_p.  Reverse
29571         meaning of return value.  If we see a hard register, test whether
29572         it can store a word_mode value.  Change all callers.
29573
29574 2007-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29575
29576         * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
29577         ftrapv insns and expanders.
29578         (subdi3): Change define_expand operand 1 to arith11_operand, and
29579         operand 2 to reg_or_0_operand.  Change constraints of 64-bit insn
29580         pattern to handle reg_or_0 operands.  Revise 32-bit insn pattern to
29581         handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
29582         respectively.
29583
29584         PR middle-end/30174
29585         * varasm.c (notice_global_symbol): Treat global objects as weak when
29586         flag_shlib is true.
29587
29588 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29589
29590         * emit-rtl.c (dconstpi): Delete.
29591         (dconstsqrt2): New.
29592         (init_emit_once): Delete dconstpi and init dconstsqrt2.
29593         * real.h (dconstpi): Delete.
29594         (dconstsqrt2): New.
29595         * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
29596         (fold_builtin_hypot): Likewise.
29597
29598 2007-02-03  Tom Tromey  <tromey@redhat.com>
29599
29600         PR driver/30246
29601         * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
29602         -gcoff3, -gxcoff3, -gvms3 implies -dD.
29603
29604 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
29605
29606         * c-decl.c, config/avr/avr.c, config/avr/avr.h,
29607         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
29608         config/mn10300/mn10300.c, config/pdp11/pdp11.h,
29609         config/rs6000/cell.md, config/rs6000/darwin.h,
29610         config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
29611         config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
29612         jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
29613         tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
29614         typos.  Follow spelling conventions.
29615         * doc/invoke.texi: Follow spelling conventions.
29616
29617 2007-02-03  Roger Sayle  <roger@eyesopen.com>
29618
29619         * simplify-rtx.c (simplify_relational_operation_1): Implement some
29620         canonicalization transformations that attempt to simplify integer
29621         constant comparisons to become comparisons against zero.
29622
29623 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29624
29625         * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
29626         fabs(x)*sqrt(2).
29627         * fold-const.c (fold_binary): Fix comment typos.  Fold complex
29628         (x,0)-(0,y) into (x,-y).  Likewise (0,y)-(x,0) into (-x,y).
29629
29630 2007-02-02  Mike Stump  <mrs@apple.com>
29631
29632         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
29633         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
29634         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
29635         generate a branch island.
29636
29637 2007-02-02  Bob Wilson  <bob.wilson@acm.org>
29638
29639         * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
29640         (xtensa_legitimate_address_p): New.
29641         (xtensa_legitimize_address): New.
29642         (xtensa_output_addr_const_extra): New.
29643         * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
29644         (BASE_REG_P): New.
29645         (REG_OK_FOR_BASE_P): Use BASE_REG_P.
29646         (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
29647         (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
29648         (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
29649         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
29650         (xtensa_legitimize_address): New.
29651         (xtensa_output_addr_const_extra): New.
29652
29653 2007-02-02  Steve Ellcey  <sje@cup.hp.com>
29654
29655         * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
29656
29657 2007-02-02  Ian Lance Taylor  <iant@google.com>
29658
29659         * expmed.c (expand_divmod): Add comment.
29660
29661 2007-02-02  Kazu Hirata  <kazu@codesourcery.com>
29662
29663         * emit-rtl.c (renumber_insns): Remove.
29664         * flags.h: Remove the extern for flag_renumber_insns.
29665         * rtl.h: Remove the prototype for renumber_insns.
29666         * toplev.c (flag_renumber_insns): Remove.
29667
29668 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
29669
29670         Revert for x86 darwin:
29671         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
29672
29673         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
29674         code before the following patch under TARGET_MACHO.
29675         (ix86_function_value_regno_p): Likewise.
29676
29677 2007-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29678
29679         * fold-const.c (negate_expr_p, fold_negate_expr): Handle
29680         COMPLEX_EXPR.
29681
29682 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
29683
29684         PR target/29682
29685         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
29686         loads to general or fp registers.  Add comments.
29687         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
29688
29689 2007-02-02  Paolo Bonzini  <bonzini@gnu.org>
29690
29691         * pointer-set.c (insert_aux): Only return insertion slot.
29692         (pointer_set_insert): Adjust.
29693         (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
29694         pointer_map_destroy, pointer_map_insert, pointer_map_contains,
29695         pointer_map_traverse): New.
29696         * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
29697         pointer_map_create,  pointer_map_destroy, pointer_map_insert,
29698         pointer_map_contains, pointer_map_traverse): Declare.
29699
29700 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
29701
29702         PR middle-end/30473
29703         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
29704         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
29705
29706 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
29707
29708         * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
29709
29710         (struct _dep): New type.
29711         (dep_t): New typedef.
29712         (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
29713         (DEP_STATUS): New access macro.  The macro with the same name was
29714         renamed to DEP_LINK_STATUS.
29715         (dep_init): Declare function
29716
29717         (struct _dep_link): New type.
29718         (dep_link_t): New typedef.
29719         (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
29720         (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
29721         (DEP_LINK_STATUS): New macro.
29722         (debug_dep_links): New debug function.
29723
29724         (struct _deps_list): New type.
29725         (deps_list_t): New typedef.
29726         (DEPS_LIST_FIRST): New access macro.
29727         (FOR_EACH_DEP_LINK): New cycle macro.
29728         (create_deps_list, free_deps_list, delete_deps_list): Declare
29729         functions.
29730         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
29731         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
29732         (copy_deps_list_change_con): Ditto.
29733
29734         (move_dep_link): Declare function.
29735
29736         (struct _dep_node): New type.
29737         (dep_node_t): New typedef.
29738         (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
29739
29740         (struct haifa_insn_data.back_deps): New field to hold backward
29741         dependencies of the insn.
29742         (struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
29743         to deps_list_t.
29744         (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
29745         Change its type to deps_list_t.
29746         (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
29747         (INSN_DEPEND): Rename to INSN_FORW_DEPS.
29748         (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
29749
29750         (INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.
29751
29752         (DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.
29753
29754         (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
29755         and all callers.
29756         (dep_cost): Declare.
29757
29758         * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
29759         (ds_to_dk, dk_to_ds): New functions.
29760
29761         (init_dep_1): New static function.
29762         (init_dep): New function.
29763         (copy_dep): New static function.
29764
29765         (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
29766         functions.
29767         (detach_dep_link): New static function.
29768         (move_dep_link): New function.
29769
29770         (dep_links_consistent_p, dump_dep_links): New static functions.
29771         (debug_dep_links): New debugging function.
29772
29773         (deps_obstack, dl_obstack, dn_obstack): New static variables.
29774
29775         (alloc_deps_list, init_deps_list): New static functions.
29776         (create_deps_list): New function.
29777         (clear_deps_list): New static function.
29778         (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
29779         (deps_list_consistent_p, dump_deps_list): New static functions.
29780         (debug_deps_list): New function.
29781         (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
29782         functions.
29783         (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
29784
29785         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
29786         use new scheduler dependencies lists.
29787         (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
29788         (sched_analyze): Ditto.  Initialize dependencies lists.
29789         (add_forw_dep, compute_forward_dependences): Update to use new
29790         scheduler dependencies lists.
29791
29792         (init_dependency_caches): Init deps_obstack.
29793         (free_dependency_caches): Free deps_obstack.
29794
29795         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
29796         new scheduler dependencies lists.
29797         (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
29798         (add_back_forw_dep, delete_back_forw_dep): Ditto.
29799
29800         * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
29801         Update to use new scheduler dependencies lists.
29802         (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
29803         (debug_dependencies): Ditto.
29804         (schedule_region): Update comments.
29805
29806         * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
29807         scheduler dependencies lists.
29808         (schedule_ebb): Update comments.
29809
29810         * rtl.def (DEPS_LIST): Remove.
29811
29812         * lists.c (unused_deps_list): Remove.
29813         (free_list): Update assertions.
29814
29815         (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
29816         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
29817
29818         * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
29819         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
29820
29821         * haifa-sched.c (comments): Update.
29822         (insn_cost1): Remove.  Inline the code into insn_cost ().
29823         (insn_cost): Update to use new scheduler dependencies lists.  Move
29824         processing of the dependency cost to dep_cost ().
29825         (dep_cost): New function.  Use it instead of insn_cost () when
29826         evaluating cost of the dependency.  Use compatible interface to
29827         interact with the target.
29828         (priority): Update to use new scheduler dependencies lists.
29829         (rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
29830         with greater number of insns that depend on the insn.
29831         (schedule_insn): Update to use new scheduler dependencies lists.  Add
29832         code to free backward dependencies lists.  Inline and optimize code
29833         from resolve_dep () - see PR28071.
29834         (ok_for_early_queue_removal): Update to use new scheduler dependencies
29835         lists.  Update call to targetm.sched.is_costly_dependence hook.
29836
29837         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
29838         scheduler dependencies lists.
29839
29840         (resolve_dep): Remove.  Move the logic to schedule_insn ().
29841         (init_h_i_d): Initialize dependencies lists.
29842
29843         (process_insn_depend_be_in_spec): Rename to
29844         process_insn_forw_deps_be_in_spec.  Update to use new scheduler
29845         dependencies lists.
29846         (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
29847         Update to use new scheduler dependencies lists.
29848         (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
29849
29850         * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
29851         new scheduler dependencies lists.
29852         (build_intra_loop_deps): Ditto.
29853
29854         * target.h (struct _dep): Declare to use in
29855         gcc_target.sched.is_costly_dependence.
29856         (struct gcc_target.sched.adjust_cost): Fix typo.
29857         (struct gcc_target.sched.is_costly_dependence): Change signature to
29858         use single dep_t parameter instead of an equivalent triad.
29859         (struct gcc_target.sched.adjust_cost_2): Remove.
29860
29861         * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
29862
29863         * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
29864
29865         * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
29866         documentation.
29867         (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
29868
29869         * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
29870         (REG_DEP_TRUE): Document.
29871
29872         * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
29873         Change signature to correspond to the targetm.sched.adjust_cost hook.
29874         Update use in TARGET_SCHED_ADJUST_COST_2.
29875         (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
29876         (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
29877         new scheduler dependencies lists.
29878         (ia64_gen_check): Ditto.
29879
29880         * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
29881         scheduler dependencies lists.
29882
29883         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
29884         signature to correspond to the targetm.sched.is_costly_dependence hook.
29885         (is_costly_group): Update to use new scheduler dependencies lists.
29886
29887         * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
29888         instead of INSN_COST () macro.
29889
29890 2007-02-01  Ian Lance Taylor  <iant@google.com>
29891
29892         * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
29893
29894 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
29895
29896         * pa.md (tp_load): Correct mfctl instruction syntax.
29897
29898 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
29899
29900         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
29901         altivec_padding_size calculation on AIX.  Improve comment, add
29902         assert to verify that it's right.
29903
29904         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
29905         64-bit.
29906
29907 2007-2-01  Seongbae Park  <seongbae.park@gmail.com>
29908
29909         PR inline-asm/28686
29910         * global.c (global_alloc): Add mising initialization of
29911         ELIMINABLE_REGSET.
29912
29913 2007-02-01  Roger Sayle  <roger@eyesopen.com>
29914
29915         * alias.c (init_alias_analysis): Correct whitespace.
29916         * bb-reorder.c (fix_edges_for_rarely_executed_code,
29917         partition_hot_cold_basic_blocks): Likewise.
29918         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
29919         expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
29920         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
29921         fold_builtin_snprintf_chk, fold_builtin_printf,
29922         fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
29923         do_mpfr_arg3, do_mpfr_sincos): Likewise.
29924         * cfgcleanup.c (cleanup_cfg): Likewise.
29925         * cfgexpand.c (tree_expand_cfg): Likewise.
29926         * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
29927         * function.c (get_next_funcdef_no): Likewise.
29928         * gengtype.c (main): Likewise.
29929         * genmodes.c (main): Likewise.
29930         * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
29931         * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
29932         * ifcvt.c (noce_emit_move_insn): Likewise.
29933         * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
29934         Likewise.
29935         * stor-layout.c (get_best_mode): Likewise.
29936         * tree-ssa-loop-niter.c (get_val_for): Likewise.
29937         * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
29938         scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
29939         perform_var_substitution, solve_graph): Likewise.
29940         * tree-vrp.c (vrp_finalize): Likewise.
29941
29942 2007-02-01  Ian Lance Taylor  <iant@google.com>
29943
29944         * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
29945         high part of a paradoxical subreg, return a constant zero.
29946
29947 2007-02-01  Zdenek Dvorak <dvorakz@suse.cz>
29948
29949         * toplev.c (lang_dependent_init): Call init_set_costs.
29950         * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
29951
29952 2007-02-01  Richard Guenther  <rguenther@suse.de>
29953
29954         PR middle-end/30656
29955         * fold-const.c (fold_negate_expr): Allow negating a
29956         constant if overflow does not change.
29957
29958 2007-02-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29959
29960         * doc/c-tree.texi (Expression trees): Improve markup.
29961         * doc/tm.texi (Register Classes, Addressing Modes)
29962         (Floating Point): Fix spacing after abbreviations.  Fix some
29963         typos.
29964
29965 2007-02-01  Ben Elliston  <bje@au.ibm.com>
29966
29967         * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
29968         * doc/contrib.texi: Likewise.
29969         * doc/install.texi: Likewise.
29970
29971 2007-01-31  Richard Henderson  <rth@redhat.com>
29972             Ian Lance Taylor  <iant@google.com>
29973
29974         * lower-subreg.c: New file.
29975         * rtl.def (CONCATN): Define.
29976         * passes.c (init_optimization_passes): Add pass_lower_subreg and
29977         pass_lower_subreg2.
29978         * emit-rtl.c (update_reg_offset): New static function, broken out
29979         of gen_rtx_REG_offset.
29980         (gen_rtx_REG_offset): Call update_reg_offset.
29981         (gen_reg_rtx_offset): New function.
29982         * regclass.c: Revert patch of 2006-03-05, restoring
29983         reg_scan_update.
29984         (clear_reg_info_regno): New function.
29985         * dwarf2out.c (concatn_loc_descriptor): New static function.
29986         (loc_descriptor): Handle CONCATN.
29987         * common.opt (fsplit_wide_types): New option.
29988         * opts.c (decode_options): Set flag_split_wide_types when
29989         optimizing.
29990         * timevar.def (TV_LOWER_SUBREG): Define.
29991         * rtl.h (gen_reg_rtx_offset): Declare.
29992         (reg_scan_update): Declare.
29993         * regs.h (clear_reg_info_regno): Declare.
29994         * tree-pass.h (pass_lower_subreg): Declare.
29995         (pass_lower_subreg2): Declare.
29996         * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
29997         (Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
29998         -fsplit-wide-types.
29999         * doc/rtl.texi (Regs and Memory): Document concat and concatn.
30000         * Makefile.in (OBJS-common): Add lower-subreg.o.
30001         (lower-subreg.o): New target.
30002
30003 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
30004
30005         * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
30006
30007 2007-01-31  Anatoly Sokolov <aesok@post.ru>
30008
30009         PR target/19087
30010         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
30011
30012 2007-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30013
30014         PR middle-end/29335
30015         * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
30016
30017 2007-01-31  Zdenek Dvorak <dvorakz@suse.cz>
30018
30019         * cfgloop.h: Include vec-prim.h.
30020         (enum li_flags): Remove LI_ONLY_OLD.
30021         (loop_iterator): Changed.
30022         (fel_next, fel_init): Iterate over loop tree.
30023         (FOR_EACH_LOOP_BREAK): New macro.
30024         * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
30025         FOR_EACH_LOOP.
30026         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
30027         * modulo-sched.c (sms_schedule): Ditto.
30028         * tree-vectorizer.c (vectorize_loops): Ditto.
30029         * doc/loop.texi: Update information on loop numbering and behavior of
30030         FOR_EACH_LOOP wrto new loops.
30031         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
30032         add_to_evolution_1): Test nestedness of loops instead of comparing
30033         their numbers.
30034         * tree-chrec.c (chrec_fold_plus_poly_poly,
30035         chrec_fold_multiply_poly_poly, chrec_evaluate,
30036         hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
30037         reset_evolution_in_loop): Ditto.
30038         * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
30039
30040 2007-01-31  Dirk Mueller  <dmueller@suse.de>
30041
30042         * c-common.c (warn_about_parentheses): Separate warning about
30043         un-parenthized sequence of comparison operators from the one
30044         which is supposed to warn about x <= y <= z.
30045
30046 2007-01-31  Uros Bizjak  <ubizjak@gmail.com>
30047
30048         * optabs.h (enum optab_index): Add new OTI_isinf.
30049         (isinf_optab): Define corresponding macro.
30050         * optabs.c (init_optabs): Initialize isinf_optab.
30051         * genopinit.c (optabs): Implement isinf_optab using isinf?f2
30052         patterns.
30053         * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
30054         (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
30055         using isinf_optab.
30056         (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
30057         expand_builtin_interclass_mathfn.
30058         * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
30059         * config/i386/i386.md (UNSPEC_FXAM): New constant.
30060         (fxam<mode>2_i387): New insn pattern.
30061         (isinf<mode>2) New expander to implement isinf, isinff and isinfl
30062         built-in functions as x87 inline asm.
30063
30064 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
30065
30066         * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
30067
30068 2007-01-30  Eric Christopher  <echristo@apple.com>
30069
30070         * config.gcc: Add geode.
30071
30072 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
30073
30074         * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
30075         ipa-inline.c, tree-profile.c, tree-ssa-live.c,
30076         tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
30077         value-prof.c: Fix comment typos.
30078
30079 2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
30080
30081         PR c++/24745
30082         * doc/invoke.texi (Wpointer-arith): Document warning.
30083
30084 2007-01-30  Janis Johnson  <janis187@us.ibm.com>
30085
30086         * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
30087         the list of discrepancies from the draft TR.
30088
30089 2007-01-30  Dirk Mueller  <dmueller@suse.de>
30090
30091         PR c++/30601
30092         * doc/invoke.texi (-Wreturn-type): Update description to
30093         match new behavior.
30094
30095 2007-01-30  Richard Sandiford  <richard@codesourcery.com>
30096
30097         * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
30098
30099 2007-01-30  Uros Bizjak  <ubizjak@gmail.com>
30100
30101         * builtins.c (expand_builtin_int_interclass_roundingfn): New function
30102         to handle optabs that operate on floating point input argument and
30103         output to integer output.
30104         (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
30105         (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
30106         (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
30107         expand_builtin_interclass_mathfn ().
30108         * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
30109         (ilogbsi2): Remove.
30110         (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
30111         ilogbl built-in functions as x87 intrinsics.
30112
30113 2007-01-30  Richard Guenther  <rguenther@suse.de>
30114
30115         PR middle-end/27657
30116         * dwarf2out.c (reference_to_unused): Query varpool if the
30117         variable was output.
30118
30119 2007-01-30  Richard Guenther  <rguenther@suse.de>
30120
30121         PR middle-end/30313
30122         * passes.c (execute_one_pass): Reset in_gimple_form to not
30123         confuse non-unit-at-a-time mode.
30124
30125 2007-01-29  Roger Sayle  <roger@eyesopen.com>
30126             Richard Guenther  <rguenther@suse.de>
30127
30128         * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
30129         avoid undefined behaviour on overflow.  Use force_fit_type_double
30130         to construct the constant with the specified TREE_OVERFLOW.
30131
30132 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
30133
30134         * config/dfp-bit.c: Add parameterized support for fp exceptions.
30135         * config/dfp-bit.h: Ditto.
30136
30137 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
30138
30139         * c-decl.c (pop_scope): Replace warnings with call to
30140         warn_for_unused_label.
30141         * c-common.h (warn_for_unused_label): Declare.
30142         * c-common.c (warn_for_unused_label): Define.
30143
30144 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
30145
30146         * tree-optimize.c (update_inlined_to_pointers): Delete unused
30147         function.
30148
30149 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
30150
30151         * Makefile.in (USER_H): Remove decfloat.h.
30152         * ginclude/decfloat.h: Delete, moving contents to ...
30153         * ginclude/float.h: Add support for decimal floating point,
30154         guarded by __STDC_WANT_DEC_FP__.
30155
30156 2007-01-29  Mike Stump  <mrs@apple.com>
30157
30158         * doc/gccint.texi (Top): Rename Loop Representation to Loop
30159         Analysis and Representation to resolve case insensitive conflict.
30160         * doc/loop.texi (Loop Analysis and Representation): Likewise.
30161
30162 2007-01-28  Daniel Berlin  <dberlin@dberlin.org>
30163
30164         * tree.h (struct tree_memory_tag): Add aliases member.
30165         (MTAG_ALIASES): New macro.
30166         * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
30167         (add_may_alias): Remove pointer-set. Update for may_aliases being
30168         a bitmap.
30169         (mark_aliases_call_clobbered): Update for may_aliases being a
30170         bitmap.
30171         (compute_tag_properties): Ditto.
30172         (create_partition_for): Ditto.
30173         (compute_memory_partitions): Ditto.
30174         (dump_may_aliases_for): Ditto.
30175         (is_aliased_with): Ditto.
30176         (add_may_alias_for_new_tag): Ditto.
30177         (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
30178         (compute_is_aliased): New function.
30179         (compute_may_aliases): Call compute_is_aliased).
30180         (init_alias_info): Initialize alias_bitmap_obstack.
30181         (union_alias_set_into): New function.
30182         (compute_flow_sensitive_aliasing): Use union_aliases_into.
30183         (have_common_aliases_p): Rewrite to take two bitmaps and use
30184         intersection.
30185         (compute_flow_insensitive_aliasing): Stop using pointer-sets.
30186         Update for bitmaps.
30187         (finalize_ref_all_pointers): Update for add_may_alias changes.
30188         (new_type_alias): Ditto.
30189         * tree-flow-inline.h (may_aliases): Return a bitmap.
30190         * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
30191         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
30192         may_aliases being a bitmap.
30193         * tree-flow.h (struct var_ann_d): Remove may_aliases member.
30194         may_aliases now returns a bitmap.
30195         * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
30196         being a bitmap.
30197         * tree-ssa-operands.c (add_virtual_operand): Update for
30198         may_aliases being a bitmap.
30199
30200 2007-01-29  Daniel Berlin  <dberlin@dberlin.org>
30201
30202         PR tree-optimization/30630
30203         * tree-ssa-structalias.c (do_complex_constraint): Mark correct
30204         variable as changed.
30205
30206 2007-01-29  Simon Martin  <simartin@users.sourceforge.net>
30207
30208         PR c++/28266
30209         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
30210         expanded only once even if an error occurs.
30211
30212 2007-01-29  Ben Elliston  <bje@au.ibm.com>
30213
30214         * gcov-io.h (__gcov_indirect_call_profiler): Declare.
30215         (__gcov_average_profiler): Likewise.
30216         (__gcov_ior_profiler): Likewise.
30217         (__gcov_merge_ior): Likewise.
30218
30219 2007-01-28  Jan Hubicka  <jh@suse.cz>
30220
30221         * builtins.c (expand_builtin_memset): Fix typo in my last patch.
30222         * value-prof.c (stringop_block_profile): Likewise.
30223
30224 2007-01-28  Jan Hubicka  <jh@suse.cz>
30225
30226         * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
30227         Add variant handling histograms; add wrapper.
30228         (clear_storage_via_libcall): Export.
30229         (emit_block_move_hints): Break out from ...; add histograms.
30230         (emit_block_move): ... this one.
30231         (clear_storage_hints): Break out from ...; add histograms.
30232         (clear_storage): ... this one.
30233         (set_storage_via_memset): Handle histogram.
30234         * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
30235         (clear_storage_hints, clear_storage_via_libcall): Declare.
30236         (set_storage_via_setmem): Update prototype.
30237         * doc/md.texi (movmem, setmem): Document new arguments.
30238
30239         * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
30240         Add new histograms.
30241         (stringop_block_profile): New global function.
30242         (tree_stringops_values_to_profile): Profile block size and alignment.
30243         * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
30244         HIST_TYPE_IOR.
30245         (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
30246         (stringop_block_profile): Declare.
30247         * builtins.c: Include value-prof.h.
30248         (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
30249         * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
30250         (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
30251         (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
30252         * profile.c (instrument_values): Add new counters.
30253         * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
30254         calls.
30255         * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
30256         (tree_init_edge_profiler): Build new profilers.
30257         (tree_gen_average_profiler, tree_gen_ior_profiler): New.
30258         (pass_tree_profile): Add dump.
30259         (tree_profile_hooks): Update.
30260         * Makefile.in (LIBGCOV): Add new constants.
30261         * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
30262         __gcov_ior_profiler): New.
30263         * i386.md (movmem/setmem expanders): Add new optional arguments.
30264
30265 2007-01-28  David Edelsohn  <edelsohn@gnu.org>
30266
30267         * doc/md.texi (Standard Pattern Names): Document blockage pattern.
30268
30269 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
30270
30271         * tree-ssa-loop-unswitch.c: Include tree-inline.h.
30272         (tree_unswitch_single_loop): Pass eni_size_weights to
30273         tree_num_loop_insns.
30274         * tree-ssa-loop-manip.c: Include tree-inline.h.
30275         (can_unroll_loop_p): Pass eni_size_weights to
30276         tree_num_loop_insns.
30277         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
30278         Pass eni_size_weights to estimate_num_insns.
30279         * tree.h (init_inline_once): Export.
30280         * toplev.c (backend_init): Call init_inline_once.
30281         * cgraphunit.c (cgraph_process_new_functions,
30282         cgraph_analyze_function): Pass eni_inlining_weights to
30283         estimate_num_insns.
30284         * ipa-inline.c (compute_inline_parameters): Ditto.
30285         * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
30286         to estimate_num_insns.
30287         (try_unroll_loop_completely): Pass eni_size_weights to
30288         tree_num_loop_insns.
30289         * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
30290         ot estimate_num_insns.
30291         * tree-ssa-loop-prefetch.c: Include tree-inline.h.
30292         (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
30293         * tree-inline.c (eni_inlining_weights, eni_size_weights,
30294         eni_time_weights): New variables.
30295         (init_inline_once): Initialize them.
30296         (struct eni_data): Mew.
30297         (estimate_num_insns_1, estimate_num_insns): Use weights.
30298         * tree-inline.h (struct eni_weights_d): New.
30299         (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
30300         (estimate_num_insns): Declaration changed.
30301         * cfgloop.h (tree_num_loop_insns): Declaration changed.
30302         * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
30303         tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
30304
30305 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
30306
30307         * tree-data-ref.c (conflict_fn): Assert that the number of affine
30308         relations in the conflict function is valid.
30309
30310 2007-01-27  Ian Lance Taylor  <iant@google.com>
30311
30312         * common.opt: Add fstrict-overflow.
30313         * opts.c (decode_options): Set flag_strict_overflow if -O2.
30314         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
30315         (TYPE_OVERFLOW_UNDEFINED): Define.
30316         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
30317         Replace all uses.
30318         * tree.h (TYPE_TRAP_SIGNED): Don't define.
30319         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
30320         (fold_negate_expr): Likewise.
30321         (make_range): Likewise.
30322         (extract_muldiv_1): Likewise.
30323         (maybe_canonicalize_comparison): Likewise.
30324         (fold_comparison): Likewise.
30325         (fold_binary): Likewise.
30326         (tree_expr_nonnegative_p): Likewise.
30327         (tree_expr_nonzero_p): Likewise.
30328         * tree-vrp.c (compare_values): Likewise.
30329         (extract_range_from_binary_expr): Likewise.
30330         (extract_range_from_unary_expr): Likewise.
30331         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
30332         Likewise.
30333         (nowrap_type_p): Likewise.
30334         * tree-scalar-evolution.c (simple_iv): Likewise.
30335         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
30336         (build_range_check): Likewise.
30337         (extract_muldiv_1): Likewise.
30338         (fold_comparison): Likewise.
30339         * tree-vrp.c (vrp_int_const_binop): Likewise.
30340         (extract_range_from_unary_expr): Likewise.
30341         * convert.c (convert_to_integer): Likewise.
30342         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
30343         (fold_comparison): Likewise.
30344         (fold_binary): Likewise.
30345         * optabs.c (optab_for_tree_code): Likewise.
30346         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
30347         * simplify-rtx.c (simplify_const_relational_operation): Check
30348         flag_strict_overflow and flag_trapv.
30349         (simplify_const_relational_operation): Likewise.
30350         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
30351         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
30352         -fstrict-overflow.
30353
30354 2007-01-27  Roger Sayle  <roger@eyesopen.com>
30355
30356         * tree.c (tree_fold_gcd): Delete.
30357         * tree.h (tree_fold_gcd): Remove prototype.
30358         * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
30359         test whether one constant integer is a multiple of another.  Instead
30360         call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
30361         * fold-const.c (multiple_of_p): We've determined both TOP and
30362         BOTTOM are integer constants so we can call int_const_binop directly
30363         instead of the more generic const_binop.
30364
30365 2007-01-27  Roger Sayle  <roger@eyesopen.com>
30366
30367         * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
30368         1*X check that the constant hasn't overflowed, to preserve the
30369         TREE_OVERFLOW bit.
30370         (round_up): Provide an efficient implementation when rouding-up an
30371         INTEGER_CST to a power-of-two.
30372
30373 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30374
30375         * doc/sourcebuild.texi: Add comma for clarity.
30376         * doc/extend.texi: Fix some typos.
30377         * doc/passes.texi: Likewise.
30378         * doc/cppinternals.texi: Likewise.
30379         * doc/c-tree.texi: Likewise.
30380         * doc/tree-ssa.texi: Likewise.
30381         * doc/install.texi: Likewise.
30382
30383 2007-01-27  Jan Hubicka  <jh@suse.cz>
30384
30385         * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
30386         (pass_sra): Do not require alias information.
30387         * passes.c (init_optimization_passes): Add SRA
30388
30389 2007-01-27  Steven Bosscher  <steven@gcc.gnu.org>
30390
30391         * tracer.c (rest_of_handle_tracer): We already cleaned
30392         up the CFG in tracer() so don't do it here again.
30393         * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
30394         cleanup_cfg here, either.  And don't call renumber_insns.
30395
30396         * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
30397         and BB_HEAD are in the insn stream here.  Instead make sure
30398         that BB_INSN is valid on all insns.  Also, do check here that
30399         there are no pending branch predictions...
30400         (rtl_verify_flow_info): ...instead of doing it here.  Checks
30401         for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
30402         here.
30403
30404 2007-01-26  Roger Sayle  <roger@eyesopen.com>
30405
30406         * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
30407         function to simplify/factorize operand order canonicalization.
30408         (ix86_fixup_binary_operands): Reorganize using the above function.
30409         (ix86_binary_operator_ok): Likewise.
30410
30411 2007-01-27  Jakub Jelinek  <jakub@redhat.com>
30412
30413         * genattrtab.c (struct attr_value_list, insn_code_values): Move to
30414         file scope from optimize_attrs.
30415         (simplify_test_exp): If insn_code_values is not NULL, use it to speed
30416         up search.
30417         (optimize_attrs): Clear insn_code_values after freeing it.
30418
30419 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
30420
30421         * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
30422         a parts.base assignment.
30423
30424 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
30425
30426         * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
30427         (compute_subscript_distance, initialize_data_dependence_relation,
30428         finalize_ddr_dependent, analyze_ziv_subscript,
30429         analyze_siv_subscript_cst_affine,
30430         compute_overlap_steps_for_affine_univar,
30431         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
30432         analyze_siv_subscript, analyze_miv_subscript,
30433         analyze_overlapping_iterations, subscript_dependence_tester_1,
30434         compute_self_dependence, free_dependence_relation): Work
30435         with affine_fn instead of chrecs.
30436         (dump_affine_function, dump_conflict_function, affine_function_equal_p,
30437         common_affine_function, affine_function_base,
30438         affine_function_constant_p, affine_fn_op, affine_fn_plus,
30439         affine_fn_minus, affine_fn_free, conflict_fn_not_known,
30440         conflict_fn_no_dependence, free_conflict_function, free_subscripts,
30441         conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
30442         (all_chrecs_equal_p): Removed.
30443         * tree-data-ref.h (affine_fn, conflict_function): New types.
30444         (struct subscript): Change type of conflicting_iterations_in_a
30445         and conflicting_iterations_in_b.
30446
30447 2007-01-26  Steve Ellcey  <sje@cup.hp.com>
30448
30449         PR other/30182
30450         * config/pa/pa.h (TARGET_HPUX_11): New.
30451         * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
30452         * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
30453
30454 2007-01-26  Daniel Berlin  <dberlin@dberlin.org>
30455         Richard Guenther  <rguenther@suse.de>
30456
30457         * tree-ssa-structalias.c (solve_graph): Handle case
30458         we merged the variable to another.
30459
30460 2007-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30461
30462         * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
30463         functions.
30464
30465         * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
30466         catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
30467
30468 2007-01-25  DJ Delorie  <dj@redhat.com>
30469
30470         * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
30471         allow changes to modes which don't fit in those registers.
30472
30473         * reload1.c (choose_reload_regs): Check for invalid subregs before
30474         computing their locations, not after.
30475
30476 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
30477
30478         PR 25127
30479         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
30480         save Altivec registers in an eh_return function.
30481         (compute_vrsave_mask): Likewise.
30482         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
30483         for saving Altivec registers.
30484         (rs6000_emit_prologue): Don't allocate stack twice in
30485         eh_return function.  Correct expected value of altivec_save_offset
30486         when using save_world.  Describe save of R0 to stack when using
30487         save_world.  Describe stack pointer adjustment when using
30488         save_world.  Remove duplicated eh_return parameter register saving.
30489         Update sp_offset variable after save_world.
30490         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
30491         darwin-world.asm.
30492         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
30493         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
30494         implies Altivec.
30495
30496 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
30497
30498         * config.gcc (ia64*-*-hpux*): Make posix threads the default.
30499
30500 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
30501
30502         PR other/30182
30503         * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
30504         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
30505
30506 2007-01-25  Richard Guenther  <rguenther@suse.de>
30507
30508         * doc/invoke.texi (-Wcoverage-mismatch): Document.
30509         * common.opt (-Wcoverage-mismatch): New warning option.
30510         * coverage.c (get_coverage_counts): Ignore coverage mismatch
30511         if -Wcoverage-mismatch is given.
30512
30513 2007-01-25  Razya Ladelsky  <razya@il.ibm.com>
30514
30515         * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
30516         (ipcp_driver): Change to static definition.
30517         Add dumping of the ifunctions.
30518         (constant_val_insert): Remove unused parameter. Support for SSA.
30519         (ipcp_propagate_const): Support for SSA.
30520         (ipcp_profile_bb_print): Print only analyzed nodes.
30521         (ipcp_replace_map_create): Remove support for Fortran constant
30522         for now.
30523         * ipa-prop.c (ipa_method_modify_stmt,
30524         ipa_callsite_compute_param): Support for SSA.
30525         * ipa-prop.h (ipcp_driver): Remove declaration.
30526         (IS_VALID_TREE_MAP_INDEX): Add define.
30527
30528 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
30529
30530         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
30531
30532 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30533
30534         PR middle-end/30447
30535         * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
30536         constant argument to cabs and do it without checking for
30537         -funsafe-math-optimizations.
30538
30539 2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>
30540
30541         * c-common.h (RID_FIRST_CXX0X): New.
30542         (RID_LAST_CXX0X): New.
30543         * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
30544         by -Wall.
30545         * c.opt (Wc++0x-compat): New.
30546         * doc/invoke.texi (-Wc++0x-compat): Document.
30547
30548 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30549
30550         * builtins.c (fold_builtin_carg): New.
30551         (fold_builtin_1): Use it.
30552
30553 2007-01-24  Jan Hubicka  <jh@suse.cz>
30554
30555         * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
30556
30557         * ipa-inline.c (initial_insns, max_insns): Delete.
30558         (compute_max_insns): New function.
30559         (cgraph_decide_inlining_of_small_function): Use it; take minimal
30560         amount of insns as base for code growth.
30561         (cgraph_decide_inlining): Make initial_insns local; do not compute
30562         max_insns.
30563         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
30564         * doc/invoke.texi (inline-unit-growth): Update docs.
30565
30566 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
30567
30568         * config/i386/i386.h (x86_cmpxchg16b): Remove const.
30569         (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
30570         * config/i386/i386.c (x86_cmpxchg16b): Remove const.
30571         (override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
30572         for CPUs that have PTA_CX16 set.
30573
30574         PR middle-end/27416
30575         * gimplify.c (omp_check_private): New function.
30576         (gimplify_scan_omp_clauses): Use it for
30577         firstprivate/lastprivate/reduction.
30578
30579         PR middle-end/30494
30580         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
30581         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
30582
30583         PR middle-end/30421
30584         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
30585         If lower_lastprivate_clauses emits some statements, append them
30586         to dlist rather than body_p and to body_p append an initializer.
30587         (lower_omp_for): Adjust caller.
30588
30589 2007-01-24  Steve Ellcey  <sje@cup.hp.com>
30590
30591         * target.h (globalize_decl_name): New.
30592         * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
30593         * output.h (default_globalize_decl_name): New.
30594         * varasm.c (asm_output_bss): Use globalize_decl_name instead of
30595         globalize_label.
30596         (globalize_decl): Ditto.
30597         (default_globalize_decl_name): New.
30598         * config/ia64/ia64.c (ia64_globalize_decl_name): New.
30599         (ia64_handle_version_id_attribute): New.
30600         (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
30601         (ia64_asm_output_external): Use globalize_decl_name instead
30602         of globalize_label.
30603         * doc/extend.texi (version_id): New pragma.
30604         * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
30605
30606 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
30607
30608         * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
30609         _uleb128_t and _Unwind_SWord with _sleb128_t.
30610         * unwind-dw2.c (extract_cie_info, execute_stack_op,
30611         execute_cfa_program, uw_frame_state_for, uw_update_context_1):
30612         Likewise.
30613         * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
30614         * unwind-pe.h (read_uleb128, read_sleb128,
30615         read_encoded_value_with_base): Likewise.
30616         * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
30617
30618 2007-01-24  Richard Guenther  <rguenther@suse.de>
30619
30620         * builtins.c (expand_builtin_cexpi): Get the fndecl
30621         for cexp in the correct way.
30622
30623 2007-01-24  Jan Hubicka  <jh@suse.cz>
30624
30625         * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
30626         of calls.
30627
30628 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
30629
30630         * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
30631         (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
30632         __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
30633         __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
30634         __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
30635         __SIZEOF_PTRDIFF_T__.
30636         * doc/cpp.texi: Documentation for the new builtin macros added.
30637
30638 2007-01-24  Uros Bizjak  <ubizjak@gmail.com>
30639
30640         * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
30641         log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
30642         instead of operands[2] to avoid access past the end of array.
30643
30644 2007-01-24  Richard Sandiford  <richard@codesourcery.com>
30645
30646         * reload1.c (emit_reload_insns): Pass the reload register
30647         for a non-spill output reload through forget_old_reloads_1.
30648
30649 2007-01-23  Joseph Myers  <joseph@codesourcery.com>
30650
30651         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
30652         _SOFT_DOUBLE if doubles use software floating-point.
30653         * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
30654         double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
30655         * config/rs6000/darwin-ldouble.c: Also compile functions for
30656         hard-float without FPRs.  Use fmsub function for all __NO_FPRS__
30657         cases.  Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
30658         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
30659         commented-out long double override.
30660         (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
30661         * config/rs6000/eabispe.h: Likewise.
30662         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
30663         long double for non-SPE.
30664         (rs6000_handle_option): Likewise.
30665         (invalid_e500_subreg): Disallow more subregs involding DImode,
30666         DFmode, TImode or TFmode.
30667         (rs6000_legitimate_offset_address_p): Check TFmode offsets for
30668         E500 double.
30669         (legitimate_lo_sum_address_p): Also check for TFmode for E500
30670         double.
30671         (rs6000_legitimize_address): Also handle TFmode for E500 double.
30672         (rs6000_legitimize_reload_address): Also handle TFmode for E500
30673         double.
30674         (rs6000_legitimate_address): Also check for TFmode for E500
30675         double.
30676         (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
30677         (spe_build_register_parallel): Handle TFmode and TCmode.
30678         (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
30679         double.
30680         (function_arg): Handle TFmode and TCmode for E500 double.
30681         (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
30682         in general.
30683         (print_operand): Handle TFmode and TImode for %y.
30684         (rs6000_generate_compare): Handle TFmode comparisons for E500
30685         double.
30686         (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
30687         (rs6000_function_value): Handle TFmode and TCmode for E500 double.
30688         (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
30689         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
30690         TFmode for E500 double.
30691         * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
30692         (floatsidf2): Enable for E500 double.
30693         (movtf_softfloat): Use rs6000_nonimmediate_operand.
30694         (extenddftf2): Change to extenddftf2_fprs.
30695         (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
30696         depending on TARGET_E500_DOUBLE.
30697         (extendsftf2): Enable for E500 double.
30698         (trunctfdf2): Enable for E500 double.
30699         (trunctfsf2): Change to trunctfsf2_fprs.
30700         (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
30701         depending on TARGET_E500_DOUBLE.
30702         (floatsitf2): Enable for E500 double.
30703         (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
30704         (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
30705         gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
30706         (negtf2): Change to negtf2_internal.
30707         (negtf2): New expander.
30708         (abstf2): Enable for E500 double.  Call gen_spe_abstf2_tst,
30709         gen_spe_abstf2_cmp or gen_abstf2_internal depending on
30710         TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
30711         (movdi_internal32): Use rs6000_nonimmediate_operand.
30712         (unnamed splitter): Likewise.
30713         * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
30714         TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
30715         (SPE64TF, DITI): New mode macros.
30716         (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
30717         modes.
30718         (frob_tf_ti): New.
30719         (frob_<mode>_di_2): New.
30720         (frob_tf_di_8_2): New.
30721         (frob_di_df): Change to frob_di_<mode>; allow more modes.
30722         (frob_ti_tf): New.
30723         (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
30724         more modes.
30725         (frob_ti_<mode>_8_2): New.
30726         (frob_ti_tf_2): New.
30727         (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
30728         mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
30729         TFmode.
30730         (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
30731         mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
30732         (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
30733         spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
30734         spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
30735         (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
30736         tsttflt_gp): New.
30737
30738 2007-01-23  Ian Lance Taylor  <iant@google.com>
30739
30740         * Makefile.in (OBJS-common): Reformat, alphabetize, but put
30741         insn-*.o first.
30742         (OBJS-archive): Reformat, alphabetize.
30743         (OBJS): Change out_object_file to OBJS-md.
30744
30745 2007-01-23  Uros Bizjak  <ubizjak@gmail.com>
30746
30747         * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
30748         JUMP_P and CALL_P predicates where applicable.
30749         * config/i386/i386.c: Ditto.
30750         * config/i386/i386.md: Ditto.
30751         * config/i386/mmx.md: Ditto.
30752         * config/i386/predicates.md: Ditto.
30753
30754 2007-01-22  Andreas Schwab  <schwab@suse.de>
30755
30756         * config/m68k/m68k.h: Fix comment.
30757
30758 2007-01-22  Jan Hubicka  <jh@suse.cz>
30759
30760         * passes.c (init_optimization_passes): Do not rerun
30761         pass_early_warn_uninitialized.
30762
30763 2007-01-22  Richard Guenther  <rguenther@suse.de>
30764
30765         PR tree-optimization/30038
30766         * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
30767         function.
30768         (execute_cse_sincos_1): Likewise.
30769         (execute_cse_sincos): Likewise.
30770         (gate_cse_sincos): Likewise.
30771         (pass_cse_sincos): New pass CSEing sin() and cos() calls using
30772         the cexpi() canonicalization of sincos().
30773         * tree-pass.h (pass_cse_sincos): Declare.
30774         * passes.c (init_optimization_passes): New pass pas_cse_sincos.
30775
30776 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
30777
30778         PR rtl-optimization/29329
30779         * combine.c (replaced_rhs_insn): Rename to i2mod.
30780         (replaced_rhs_value): Rename to i2mod_new_rhs.
30781         (i2mod_old_rhs): New global variable.
30782         (combine_instructions): Adjust for above change.  Save a copy of
30783         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
30784         note are substituted in the second instruction.
30785         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
30786         ditch the note if it pertains to the second eliminated register
30787         and this register is mentioned in i2mod_old_rhs.
30788
30789         Revert:
30790         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
30791
30792         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
30793         the insn to which the note was originally attached.
30794
30795 2007-01-21  Jan Hubicka  <jh@suse.cz>
30796
30797         * ipa-inline.c (inlining_mode): Comment, move up.
30798         (cgraph_decide_inlining_incrementally): Do not perform inlining
30799         itself; fix handling of flattening of self recursive functions.
30800         (cgraph_find_cycles): Remove.
30801         (cgraph_flatten_node): Remove.
30802         (cgraph_decide_inlining): Use incremental inliner to handle flattening.
30803         (try_inline): New function.
30804         (cgraph_early_inlining): Update call of
30805         cgraph_decide_inlining_incrementally.  Apply inlining here.
30806         (apply_inline): Update call of cgraph_decide_inlining_incrementally.
30807
30808 2007-01-21  Dirk Mueller  <dmueller@suse.de>
30809
30810         PR bootstrap/30511
30811         * tree-vrp.c (check_array_bounds): do not warn
30812         about ADDR_EXPR's of ARRAY_REF's which are immediately
30813         used in binary expressions.
30814
30815 2007-01-21  Ira Rosen  <irar@il.ibm.com>
30816
30817         * tree-vectorizer.h (struct _stmt_vec_info): Add new field
30818         read_write_dep and macros for its access.
30819         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
30820         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
30821         argument, call vect_check_interleaving for every independent pair of
30822         data-refs. Mark loads that access the same memory location as a store
30823         in the loop.
30824         (vect_check_dependences): Remove.
30825         (vect_analyze_data_ref_dependences): Remove  vect_check_dependences
30826         call, fix the call to vect_analyze_data_ref_dependence.
30827         (vect_analyze_data_ref_access): For statements that access the same
30828         data-ref, check that they are not stores; for loads, check that there
30829         is no store that access the same location.
30830
30831 2007-01-20  Roger Sayle  <roger@eyesopen.com>
30832             Joseph Myers  <joseph@codesourcery.com>
30833
30834         * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
30835         (-fdump-rtl-stack): Likewise.
30836         (-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
30837         (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
30838         (-mpt-fixed): Use @minus{} for minus sign.
30839         (Using Precompiled Headers): Fix under/overfull hbox.
30840
30841 2007-01-20  Jan Hubicka  <jh@suse.cz>
30842
30843         * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
30844         place within annotation.
30845
30846 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30847
30848         * pa.c (output_move_double): Change array size of xoperands to 4.
30849
30850 2007-01-20  Jan Hubicka  <jh@suse.cz>
30851
30852         * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
30853         as temporary.
30854
30855 2007-01-19  Ian Lance Taylor  <iant@google.com>
30856
30857         * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
30858         constant to unsigned HOST_WIDE_INT before negating.
30859
30860 2007-01-19  Ian Lance Taylor  <iant@google.com>
30861
30862         * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
30863         to unsigned.
30864         (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
30865         (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
30866         (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
30867         (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
30868         (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
30869         (realloc_vdef, realloc_vuse): Change second parameter to
30870         unsigned.
30871         (ssa_operand_iterator_d): Change vuse_index and mayuse_index
30872         fields to unsigned.
30873         * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
30874         unsigned. Change x and lim locals to unsigned.
30875         (realloc_vdef, realloc_vuse): Change num_elem parameter to
30876         unsigned.
30877         (finalize_ssa_vuse_ops): Change old_i local to unsigned.
30878         (copy_virtual_operands): Change i and n locals to unsigned.
30879
30880 2007-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30881
30882         PR middle-end/29335
30883         * builtins.c (fold_builtin_1): Handle builtin fdim.
30884
30885 2007-01-20  Jan Hubicka  <jh@suse.cz>
30886
30887         * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
30888         * tree-ssa-structalias.c (compute_points_to_sets): Do call
30889         init_alias_heapvars.
30890         (init_alias_heapvars): Initialize only when not already initialized.
30891         (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
30892
30893 2007-01-19  Roger Sayle  <roger@eyesopen.com>
30894
30895         * common.opt (fsigned-zeros): New command line option.
30896         * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
30897         of flag_unsafe_math_optimizations.
30898         * opts.c (set_fast_math_flags): The -ffast-math command line option
30899         implies -fno-signed-zeros.
30900         (fast_math_flags_set_p): Likewise.
30901
30902         * doc/invoke.texi: Document new -fno-signed-zeros option, and update
30903         the documentation of -ffast-math appropriately.  Wrap long lines.
30904
30905 2007-01-19  Steve Ellcey  <sje@cup.hp.com>
30906
30907         * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
30908         * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
30909
30910 2007-01-19  Tomas Bily  <tbily@suse.cz>
30911
30912         * cgraphunit.c (cgraph_finalize_function): Updating of pid
30913         * tree-profile.c:
30914         (tree_init_ic_make_global_vars): New function
30915         (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
30916         (tree_gen_ic_profiler): New function
30917         (tree_gen_ic_func_profiler): New function
30918         (tree_profiling): Added calling of tree_gen_ic_func_profiler
30919         (tree_profile_hooks): Added hook for indirec/virtual calls
30920         * value-prof.c (tree_find_values_to_profile): New case for
30921         indirect calls
30922         (tree_values_to_profile): Call for determining indirect/virtual
30923         counters
30924         (tree_indirect_call_to_profile): New function
30925         (tree_ic_transform): New function
30926         (tree_ic): New function
30927         (find_func_by_pid): New function
30928         (init_pid_map): New function
30929         (tree_value_profile_transformations): Added check for
30930         indirect/virtual call transformation
30931         * value-prof.h (enum hist_type): New counter type for
30932         indirect/virtual calls
30933         (profile_hooks): Added new hook for profiling indirect/virtual
30934         calls
30935         * profile.c (instrument_values): New case for indirect/virtual
30936         call added
30937         * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
30938         (GCOV_COUNTER_V_INDIR): New counter type
30939         (GCOV_COUNTER_NAMES): New name of counter "indirect" added
30940         (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
30941         call added
30942         * cgraph.c: Definition of cgraph_max_pid
30943         (cgraph_create_node): Default init of pid attribute
30944         * cgraph.h: Declaration of cgraph_max_pid
30945         (struct cgraph_node): Added pid attribute
30946         * libgcov.c (__gcov_indirect_call_profiler): New function
30947         (__gcov_one_value_profiler_body): New function
30948         (__gcov_one_value_profiler): Body was moved to
30949         __gcov_one_value_profiler_body and calls it
30950
30951 2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>
30952
30953         * doc/gty.texi (Options): Document the mark_hook option to GTY.
30954         * gengtype.c (write_types_data, write_func_for_structure,
30955         write_types, ggc_wtd, pch_wtd): Add skip_hooks to
30956         write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
30957         (walk_type, write_func_for_structure): Generate the mark_hook if
30958         needed.
30959
30960 2007-01-19  Jan Hubicka  <jh@suse.cz>
30961
30962         * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
30963         'early' argument take inlining mode argument specifying whether to
30964         inline for size/speeed or all functions; add support for flattening;
30965         improve dumpting.
30966         (cgraph_early_inlining): Update call of decide_inlining_incrementally.
30967
30968 2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
30969
30970         PR c++/17947
30971         * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
30972         the name of the declared identifier.
30973
30974 2007-01-19  Dirk Mueller  <dmueller@suse.de>
30975
30976         * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
30977         result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
30978         duplicate evaluation.
30979
30980 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
30981
30982         * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
30983         Macroize expander using X87MODEF12 mode macro.  Extend operand 1
30984         to XFMode, use acosxf2 and truncate result to requested mode.
30985         Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
30986         (asin<mode>2): Similarly, with asin expanders.
30987         (*fscalexf4_i387): Rename from *fscalexf4.
30988         (expNcorexf3): New expander.
30989         (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
30990         (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
30991         X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
30992         truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
30993         patterns for SSE math.
30994         (exp10<mode>2): Similarly, with exp10 expanders.
30995         (exp2<mode>2): Similarly, with exp2 expanders.
30996         (expm1<mode>2): Similarly, with expm1 expanders.
30997         (ldexp<mode>3): Similarly, with ldexp expanders.
30998         (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
30999         Use gen_truncxf<mode>2_i387_noop to truncate result.
31000
31001 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
31002
31003         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
31004         for ColdFire targets.
31005
31006 2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
31007             Richard Sandiford  <richard@codesourcery.com>
31008
31009         * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
31010         (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
31011         (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
31012         * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
31013         (M68K_STATIC_CHAIN_REG_NAME): Likewise.
31014         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
31015
31016 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
31017
31018         * config/m68k/m68k.md (adddi_dilshr32): Rename to...
31019         (*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
31020         non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
31021         (*adddi_dilshr32_cf): New pattern.
31022         (adddi3, subdi3): Remove first alternatives.
31023
31024 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
31025
31026         * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
31027         implemented using move.l, do not use its cc result for floating-point
31028         comparisons.
31029
31030 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
31031
31032         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
31033         from accepting 's' constraints if flag_pic.
31034
31035 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
31036
31037         * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
31038         (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
31039         (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
31040         condition from TARGET_68881 to TARGET_HARD_FLOAT.
31041
31042 2007-01-19  Sandra Loosemore  <sandra@codesourcery.com>
31043
31044         * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
31045         ColdFire alternatives.
31046         * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
31047         * config/m68k/m68k.md (clzsi2): Define for ColdFire
31048         architectures that support ff1 instruction.
31049
31050 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
31051             Julian Brown  <julian@codesourcery.com>
31052
31053         * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
31054         * config/m68k/m68k.md (*movsi_cfv4): Fold into...
31055         (*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
31056         Add commentary.
31057
31058 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
31059
31060         * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
31061         and return a bool.
31062         (output_move_const_into_data_reg, output_move_simode_const): Delete.
31063         * config/m68k/m68k.c (const_method, const_int_cost): Take a
31064         HOST_WIDE_INT instead of an rtx.
31065         (m68k_rtx_costs): Update call accordingly.
31066         (output_move_const_into_data_reg): Likewise.  Fix formatting.
31067         (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
31068         Return a bool.
31069         (output_move_simode_const): Update calls after above changes.
31070         Rework to use automatic variables and predicates like MEM_P.
31071         * config/m68k/m68k.md (pushexthisi_const): Update call to
31072         valid_mov3q_const.
31073
31074 2007-01-19  Dirk Mueller  <dmueller@suse.de>
31075
31076         * tree-ssa-alias.c (perform_var_substitution): Fix typo
31077         in dump_flags test.
31078
31079 2007-01-19  Richard Guenther  <rguenther@suse.de>
31080
31081         * builtins.c (expand_builtin_cexpi): Fall back to expanding
31082         via cexp in case sincos is not available.
31083
31084 2007-01-19  Richard Guenther  <rguenther@suse.de>
31085
31086         * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
31087         * defaults.h (TARGET_HAS_SINCOS): Default to off.
31088         * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
31089         * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
31090         * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
31091         * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
31092         * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
31093         * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
31094
31095 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
31096
31097         * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
31098         New insn patterns.
31099         (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
31100         (atan2xf3): Directly generate RTL pattern.
31101         (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
31102         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
31103         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
31104         disable patterns for SSE math.
31105         (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
31106         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
31107         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
31108         disable patterns for SSE math.
31109
31110 2007-01-19  Alexandre Oliva  <aoliva@redhat.com>
31111
31112         * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
31113
31114 2007-01-18  Roger Sayle  <roger@eyesopen.com>
31115
31116         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
31117         VIEW_CONVERT_EXPR to the same type as it's operand.
31118
31119 2007-01-18  David Edelsohn  <edelsohn@gnu.org>
31120
31121         * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
31122         configured for long double 128.
31123
31124 2007-01-18  Mike Stump  <mrs@apple.com>
31125
31126         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
31127         error.
31128
31129 2007-01-18  Michael Meissner  <michael.meissner@amd.com>
31130
31131         * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
31132         type correct.
31133
31134 2007-01-18  Jan Hubicka  <jh@suse.cz>
31135
31136         * tree-ssa-operands.c (vop_free_bucket_size): Never return value
31137         greater than NUM_VOP_FREE_BUCKETS.
31138
31139 2007-01-18  Daniel Berlin  <dberlin@dberlin.org>
31140
31141         * tree-ssa-structalias.c: Update comments.
31142         (ptabitmap_obstack): Removed.
31143         (pta_obstack): New.
31144         (oldpta_obstack): Ditto.
31145         (stats): Add a few members.
31146         (struct variable_info): Remove node, complex, address_taken, and
31147         indirect_target members. Add oldsolution member.
31148         (new_var_info): Do not initialize removed members.
31149         (constraint_expr_type): Remove INCLUDES.
31150         (constraint_graph): Add size, implicit_preds, rep,
31151         indirect_cycles, eq_rep, label, direct_nodes, and complex members.
31152         (FIRST_REF_NODE): New macro.
31153         (LAST_REF_NODE): Ditto.
31154         (FIRST_ADDR_NODE): Ditto.
31155         (find): New function.
31156         (unite): Ditto.
31157         (dump_constraint): Do not handle INCLUDES.
31158         (insert_into_complex): Do not insert duplicate constraints.
31159         (condense_varmap_nodes): Renamed and rewritten into ...
31160         (merge_node_constraints): This. Also fix bug in handling of
31161         offseted copy constraints.
31162         (clear_edges_for_node): No longer need to deal with preds at all,
31163         or removing associated preds/succs.
31164         (merge_graph_nodes): Deal with indirect_cycles.
31165         Don't deal with predecessors.
31166         (add_implicit_graph_edge): New function.
31167         (add_pred_graph_edge): Ditto.
31168         (add_graph_edge): Don't deal with predecessors.
31169         (build_constraint_graph): Removed.
31170         (build_pred_graph): New function.
31171         (build_succ_graph): Ditto.
31172         (struct scc_info): Removed in_component. Added roots, dfs, and
31173         node_mapping. Remove visited_index, unification_queue.
31174         (scc_visit): Deal with union-find we do now.
31175         Deal with cycles with REF nodes.
31176         (collapse_nodes): Renamed and rewritten to ...
31177         (unify_nodes): This.
31178         (process_unification_queue): Removed.
31179         (topo_visit): Cleanup
31180         (do_da_constraint): Use find.
31181         (do_sd_constraint): Ditto.
31182         (do_ds_constraint): Ditto.
31183         (do_complex_constraint): Ditto.
31184         (init_scc_info): Update for removed and added members.
31185         (find_and_collapse_graph_cycles): Renamed and rewritten into ...
31186         (find_indirect_cycles): This.
31187         (equivalence_class): New variable.
31188         (label_visit): New function.
31189         (perform_variable_substitution): Rewritten.
31190         (free_var_substitution_info): New function.
31191         (find_equivalent_node): Ditto.
31192         (move_complex_constraints): Ditto.
31193         (eliminate_indirect_cycles): Ditto.
31194         (solve_graph): Only propagate changed bits.
31195         Use indirect cycle elimination.
31196         Use find.
31197         (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
31198         (tree_id_eq): Renamed to ...
31199         (tree_vi_eq): This. Update for member change
31200         (insert_id_for_tree): Renamed and rewritten to ...
31201         (insert_vi_for_tree): This.
31202         (lookup_id_for_tree): Renamed and rewritten to ...
31203         (lookup_vi_for_tree): This.
31204         (get_id_for_tree): Renamed and rewritten to ...
31205         (get_vi_for_tree): Ditto.
31206         (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
31207         (process_constraint): Don't handle INCLUDES.
31208         Remove special ADDRESSOF case.
31209         (find_func_aliases): Rewrite to use vi functions instead of id
31210         ones.
31211         (create_function_info_for): Ditto.
31212         (create_variable_info_for): Ditto.
31213         (intra_create_variable_infos): Ditto.
31214         (merge_smts_into): Ditto.
31215         (find_what_p_points_to): Ditto.
31216         (init_base_vars): Ditto.
31217         (init_alias_vars): Ditto.
31218         (remove_preds_and_fake_succs): New function.
31219         (dump_sa_points_to_info): Dump new stats.
31220         (dump_solution_for_var): Use find.
31221         (set_used_smts): Fix formatting.
31222         (compute_points_to_sets): Updated for new functions.
31223         (ipa_pta_execute): Ditto.
31224
31225 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
31226             Richard Sandiford  <richard@codesourcery.com>
31227
31228         * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
31229         parallels.
31230         * calls.c (expand_call): If the return value is a PARALLEL,
31231         extract its first member.
31232         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
31233         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
31234         use FUNCTION_EXTRA_EPILOGUE.
31235         (m68k_function_value): Return a PARALLEL if the return value
31236         is of a pointer type.
31237         * config/m68k/netbsd-elf.h (current_function_returns_pointer)
31238         (FUNCTION_EXTRA_EPILOGUE): Remove.
31239         * config/m68k/m68k.md (D0_REG): New constant.
31240
31241 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
31242
31243         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
31244         output a NOP for empty epilogues.
31245
31246 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31247
31248         * config/m68k/m68k.c (m68k_use_return_insn): Update comments
31249         before function.  Extend register save check to include all
31250         registers, not just integer ones.
31251
31252 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
31253
31254         * config/m68k/m68k-protos.h (use_return_insn): Rename to...
31255         (m68k_use_return_insn): ...this.
31256         * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
31257         * config/m68k/m68k.c (use_return_insn): Rename to...
31258         (m68k_use_return_insn): ...this.
31259         * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
31260         of USE_RETURN_INSN.
31261
31262 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
31263
31264         * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
31265         nearest even, fix denormal rounding overflow.
31266
31267 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31268
31269         * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
31270         f%$smove and f%$move.
31271         (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
31272         (extendsfdf2_cf): Use fdmove instead of f%&move.
31273         (truncdfsf2_cf): Use fsmove instead of f%$smove.
31274         (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
31275
31276 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31277
31278         * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
31279         GPR<-GPR moves.
31280
31281 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31282
31283         * real.h (real_format): Add a canonical_nan_lsbs_set field.
31284         (coldfire_single_format): Declare.
31285         (coldfire_double_format): Likewise.
31286         * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
31287         of qnan_msb_set to determine the lower bits of a canonical
31288         NaN significand.
31289         (encode_ieee_double): Likewise.
31290         (encode_ieee_quad): Likewise.
31291         (ieee_single_format): Initialize canonical_nan_lsbs_set.
31292         (mips_single_format): Likewise.
31293         (ieee_double_format): Likewise.
31294         (mips_double_format): Likewise.
31295         (ieee_extended_motorola_format): Likewise.
31296         (ieee_extended_intel_96_format): Likewise.
31297         (ieee_extended_intel_128_format): Likewise.
31298         (ieee_extended_intel_96_round_53_format): Likewise.
31299         (ibm_extended_format): Likewise.
31300         (mips_extended_format): Likewise.
31301         (ieee_quad_format): Likewise.
31302         (mips_quad_format): Likewise.
31303         (vax_f_format): Likewise.
31304         (vax_d_format): Likewise.
31305         (vax_g_format): Likewise.
31306         (i370_single_format): Likewise.
31307         (i370_double_format): Likewise.
31308         (decimal_single_format): Likewise.
31309         (decimal_double_format): Likewise.
31310         (decimal_quad_format): Likewise.
31311         (c4x_single_format): Likewise.
31312         (c4x_extended_format): Likewise.
31313         (real_internal_format): Likewise.
31314         (coldfire_single_format): New real_format.
31315         (coldfire_double_format): Likewise.
31316         * config/pdp11/pdp11.c (pdp11_f_format): Initialize
31317         canonical_nan_lsbs_set.
31318         (pdp11_d_format): Likewise.
31319         * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
31320         if TARGET_COLDFIRE_CPU.
31321
31322 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31323
31324         * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
31325         (output_call, m68k_legitimize_call_address): Declare.
31326         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
31327         parenthesees.  Add support for a 'W' constraint.
31328         (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
31329         (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
31330         (m68k_symbolic_call, m68k_symbolic_jump): Declare.
31331         * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
31332         variables.
31333         (override_options): Initialize them.  Do not set flag_no_function_cse
31334         for TARGET_ID_SHARED_LIBRARY.
31335         (m68k_output_pic_call): Delete.
31336         (m68k_legitimize_call_address): New function.
31337         (print_operand): Remove the %o prefix.  Handle the %p prefix.
31338         (output_call): New function.
31339         (m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
31340         target address from the GOT if symbolic jumps are not allowed.
31341         * config/m68k/m68k.md (call, general_operand): Do not set
31342         SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
31343         Merge separate flag_pic and !flag_pic define_insns into...
31344         (*call, *call_value): ...these new patterns.  Match the address
31345         rather than the containing MEM and require it to be a call_operand.
31346         Use output_call to generate the asm template.
31347         * config/m68k/predicates.md (const_call_operand): New predicate.
31348         (call_operand): Likewise.
31349
31350 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
31351
31352         * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
31353         (STACK_GROWS_DOWNWARD): Define to 1.
31354         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
31355         comments, emphasizing that these values are only defaults.
31356         * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
31357         * config/m68k/m68k.c (const_method): Remove trailing whitespace.
31358
31359 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31360
31361         * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
31362
31363 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
31364             Richard Sandiford  <richard@codesourcery.com>
31365
31366         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
31367         (FP_REGNO_P): New macros.
31368         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
31369         (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
31370         (EH_RETURN_STACKADJ_RTX): Use A0_REG.
31371         * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
31372
31373 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
31374
31375         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
31376         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
31377         to $tmake_file.
31378         * config/m68k/t-floatlib: New file, extracting common code from...
31379         * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
31380         * config/m68k/t-uclinux: Here.
31381         * config/m68k/fpgnulib.c: Do not compile extendeed precision
31382         routines on ColdFire targets.
31383
31384 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
31385
31386         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
31387         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
31388         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
31389         (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
31390         explicitly set MOTOROLA to 1.
31391         * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
31392
31393 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31394             Nathan Sidwell  <nathan@codesourcery.com>
31395
31396         * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
31397         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
31398         * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
31399         * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
31400         * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
31401         * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
31402         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
31403         (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
31404         (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
31405         * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
31406         * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
31407         (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
31408         (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
31409         (DBX_REGISTER_NUMBER): Delete.
31410         * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
31411         (PCC_STATIC_STRUCT_RETURN): Don't undefine.
31412         * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
31413
31414 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31415
31416         * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
31417         * config/flat.h: New file.
31418         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
31419         OBJECT_FORMAT_FLAT.
31420         * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
31421         indirect references for -msep-data or -mid-shared-library.
31422         Do not use PC-relative code addresses either.
31423         * config/m68k/m68k.c (override_options): Restrict -fPIC error
31424         to -mpcrel.
31425         * config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
31426         for shared libraries and crt1.o for executables.  Use crti.o and
31427         crtbegin.o.
31428         (ENDFILE_SPEC): Use crtend.o and crtn.o.
31429         (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
31430         Do not add -elf2flt or -shared-lib-id options here.
31431         (LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
31432         Pass -shared-lib-id if -mid-shared-library, taking the library
31433         identifier from -mshared-library-id if given, otherwise
31434         defaulting to 0.
31435         (EH_FRAME_IN_DATA_SECTION): Do not undefine.
31436         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
31437         (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
31438         and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
31439         (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
31440         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
31441         and crtend.o.
31442         * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
31443         jump sequence for ISA A and ISA A+.
31444         (PICJUMP): Likewise.
31445
31446 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31447
31448         * config.gcc (m68k-*-uclinux*): Base the port on the common
31449         and m68k GNU/Linux files rather than on the generic ELF ones.
31450         * config/m68k/uclinux.h (TARGET_VERSION): Override.
31451         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
31452
31453 2007-01-18  Julian Brown  <julian@codesourcery.com>
31454             Richard Sandiford  <richard@codesourcery.com>
31455
31456         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
31457         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
31458         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
31459         before redefining.
31460         * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
31461         80 unconditionally.
31462         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
31463
31464 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
31465
31466         * doc/install.texi: Document m68k-uclinuxoldabi.
31467         * config.gcc (m68k-*-uclinuxoldabi): New configuration.
31468         * config/m68k/uclinux-oldabi.h: New file, copied from
31469         config/m68k/uclinux.h.
31470
31471 2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
31472
31473         * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
31474         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
31475         (m32r_compute_frame_size): Use unsigned for regno.
31476         (m32r_reload_lr): Use gen_frame_mem.
31477         (pop): New.
31478         (m32r_output_function_epilogue): Don't output the function epilogue
31479         textually here.
31480         (m32r_expand_epilogue): New.
31481         (direct_return): Return false if the function has the interrupt
31482         attribute.
31483         (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
31484         * config/m32r/m32r.md (epilogue): New expander.
31485         (return_lr, return_rte): New insns.
31486         (return): Make it expander.
31487         (return_normal): New expander.
31488
31489 2007-01-18  Josh Conner  <jconner@apple.com>
31490
31491         PR target/30485
31492         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
31493         support for UNLE, UNLT, UNGE, and UNGT.
31494
31495 2007-01-18  Jan Hubicka  <jh@suse.cz>
31496
31497         * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
31498         * tree-tailcall (add_virtual_phis): Likewise.
31499         (optimize_tail_call): Return TODOs.
31500         (execute_tail_calls): Return TODOs.
31501         * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
31502         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
31503         changed.
31504         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
31505         Cleanup cfg using TODO.
31506         * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
31507         * passes.c (execute_function_todo): When cleanup did something, remove
31508         unused locals.
31509         * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
31510         (make_edges): Don't cleanup_cfg.
31511
31512 2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
31513
31514         * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
31515         UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
31516         operate on the top of stack.
31517         [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
31518         register handling of instructions that output to the second
31519         stack slot.
31520         [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
31521         (move_for_stack_reg): Special-case check for dead destination
31522         stack slot for constant load of 1.0 inside UNSPEC_TAN.
31523
31524         * config/i386/i386.md (UNSPEC_TAN): New constant.
31525         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
31526         (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
31527         to correctly model move of constant 1.0 to top stack slot.
31528         (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
31529         (unnamed peephole2 pattern): Remove corresponding peephole2
31530         pattern that optimizes tan insn and loading of constant 1.0.
31531         (tanxf2): Use fptanxf4_i387.
31532         (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
31533         patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
31534         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
31535         disable patterns for SSE math.
31536         (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
31537         (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
31538
31539 2007-01-18  Dirk Mueller  <dmueller@suse.de>
31540             Richard Guenther <rguenther@suse.de>
31541
31542         PR diagnostic/8268
31543         * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
31544         * common.opt (Warray-bounds): Add new warning option.
31545         * c-opts.c (c_common_handle_option): Define -Warray-bounds
31546         if -Wall is given.
31547         * Makefile.in: make tree-vrp.o depend on toplev.h
31548         * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
31549         is enabled.
31550         (check_array_refs, check_array_bounds, check_array_ref): New.
31551
31552 2007-01-18  Jan Hubicka  <jh@suse.cz>
31553
31554         * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
31555         (execute_ssa_ccp): Return flags conditionally.
31556         * tree-ssa-propagate.c (substitue_and_fold): Return if something was
31557         changed.
31558         * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
31559
31560 2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
31561
31562         * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
31563         the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
31564
31565         * Makefile.c (GTFILES): Add cfglayout.h.
31566         * gengtype.c (open_base_files): Likewise.
31567         * cfglayout.c (cfg_layout_function_footer,
31568         cfg_layout_function_header) Reindent to make gengtype happy.
31569         * cfglayout.h (cfg_layout_function_footer,
31570         cfg_layout_function_header): Add GTY(()) marker.
31571
31572         * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
31573
31574 2007-01-18  Ben Elliston  <bje@au.ibm.com>
31575
31576         * genautomata.c (write_automata): Include xstrerror output in the
31577         error message if writing the DFA description file fails.
31578
31579 2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>
31580
31581         * config/mips/mips-protos.h (mips_output_external): Make it
31582         return void.
31583         * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
31584         * config/mips/mips.c (irix_output_external_libcall): Likewise.
31585         (extern_list): Likewise.
31586         (extern_head): Likewise.
31587         (TARGET_ASM_FILE_END): Likewise.
31588         (mips_file_end): Likewise.
31589         (mips_output_external): Rewritten.
31590
31591 2007-01-18  Ben Elliston  <bje@au.ibm.com>
31592
31593         * genpreds.c (write_insn_preds_c): Only write out the function
31594         body for regclass_for_constraint if we have register constraints.
31595
31596 2007-01-17  Tom Tromey  <tromey@redhat.com>
31597
31598         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
31599         * doc/install.texi (Testing): Use sourceware.org.
31600         (Binaries): Likewise.
31601         (Specific): Likewise.
31602         * doc/contrib.texi (Contributors): Use sourceware.org.
31603
31604 2007-01-17  Anatoly Sokolov <aesok@post.ru>
31605
31606         * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
31607         (AVR_ENHANCED): Rename to ...
31608         (AVR_HAVE_MUL): ... new.
31609         (avr_enhanced_p): Rename to ...
31610         (avr_have_mul_p): ... new.
31611         (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
31612         'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
31613         * config/avr/avr.c (avr_enhanced_p): Rename to ...
31614         (avr_have_mul_p): ... new.
31615         (base_arch_s): Rename 'enhanced' to 'have_mul'.
31616         (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
31617         'avr_enhanced_p' and 'enhanced'.
31618         (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
31619         AVR_HAVE_MUL instead of AVR_ENHANCED.
31620         * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
31621         (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
31622         *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
31623         instead of AVR_ENHANCED.
31624         (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
31625         * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
31626         (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
31627
31628 2007-01-17  Ian Lance Taylor  <iant@google.com>
31629
31630         * vec.h (VEC_reserve_exact): Define.
31631         (vec_gc_p_reserve_exact): Declare.
31632         (vec_gc_o_reserve_exact): Declare.
31633         (vec_heap_p_reserve_exact): Declare.
31634         (vec_heap_o_reserve_exact): Declare.
31635         (VEC_OP (T,A,reserve_exact)): New static inline function, three
31636         versions.
31637         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
31638         negative parameter.
31639         (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
31640         (VEC_OP (T,A,copy)) [all versions]: Likewise.
31641         (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
31642         * vec.c (calculate_allocation): Add exact parameter.  Change all
31643         callers.
31644         (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
31645         (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
31646         (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
31647         (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
31648         (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
31649         (vec_heap_p_reserve_exact): New function.
31650         (vec_heap_o_reserve_exact): New function.
31651
31652 2007-01-17  Jan Hubicka  <jh@suse.cz>
31653
31654         * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
31655
31656 2007-01-17  Eric Christopher  <echristo@apple.com>
31657
31658         * config.gcc: Support core2 processor.
31659
31660 2007-01-16  Jan Hubicka  <jh@suse.cz>
31661
31662         * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
31663         the names, just unlink the chain so we don't crash on dangling
31664         pointers
31665         to dead SSA names.
31666
31667 2007-01-16  Jan Hubicka  <jh@suse.cz>
31668
31669         * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
31670         * tree-pass.h: Reorder to make IPA passes appear toegher.
31671         (pass_early_inline, pass_inline_parameters, pass_apply_inline):
31672         Declare.
31673         * cgraphunit.c (cgraph_finalize_function): Do not compute inling
31674         parameters, do not call early inliner.
31675         * ipa-inline.c: Update comments.  Include tree-flow.h
31676         (cgraph_decide_inlining): Do not compute inlining parameters.
31677         (cgraph_decide_inlining_incrementally): Return TODOs; assume to
31678         be called with function context set up.
31679         (pass_ipa_inline): Remove unreachable functions before pass.
31680         (cgraph_early_inlining): Simplify assuming to be called from the
31681         PM as local pass.
31682         (pass_early_inline): New pass.
31683         (cgraph_gate_ipa_early_inlining): New gate.
31684         (pass_ipa_early_inline): Turn into simple wrapper.
31685         (compute_inline_parameters): New function.
31686         (gate_inline_passes): New gate.
31687         (pass_inline_parameters): New pass.
31688         (apply_inline): Move here from tree-optimize.c
31689         (pass_apply_inline): New pass.
31690         * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
31691         transforming.
31692         * tree-inline.c (optimize_inline_calls): Return TODOs rather than
31693         doing them by hand.
31694         (tree_function_versioning): Do not allocate dummy struct function.
31695         * tree-inline.h (optimize_inline_calls): Update prototype.
31696         * tree-optimize.c (execute_fixup_cfg): Export.
31697         (pass_fixup_cfg): Remove
31698         (tree_rest_of_compilation): Do not apply inlines.
31699         * tree-flow.h (execute_fixup_cfg): Declare.
31700         * Makefile.in (gt-passes.c): New.
31701         * passes.c: Include gt-passes.h
31702         (init_optimization_passes): New passes.
31703         (nnodes, order): New static vars.
31704         (do_per_function_toporder): New function.
31705         (execute_one_pass): Dump current pass here.
31706         (execute_ipa_pass_list): Don't dump current pass here.
31707
31708 2007-01-16  Janis Johnson  <janis187@us.ibm.com>
31709
31710         * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
31711         (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
31712
31713 2007-01-16  David Edelsohn  <edelsohn@gnu.org>
31714
31715         * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
31716         (strong_alias): Define.
31717         (__gcc_qmul): Provide non-FMA for soft-float.
31718         (__gcc_qdiv): Same.
31719         (__gcc_qneg): New.
31720         (__gcc_qeq): New.
31721         (__gcc_qle): New.
31722         (__gcc_qge): New.
31723         (__gcc_qunord): New.
31724         (__gcc_stoq): New.
31725         (__gcc_dtoq): New.
31726         (__gcc_qtos): New.
31727         (__gcc_qtod): New.
31728         (__gcc_qtoi): New.
31729         (__gcc_qtou): New.
31730         (__gcc_itoq): New.
31731         (__gcc_utoq): New.
31732         (fmsub): New.
31733         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
31734         soft-float functions.
31735         * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
31736         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
31737         about long double soft float.
31738
31739 2007-01-16  Dorit Nuzman  <dorit@il.ibm.com>
31740             Tehila Meyzels  <tehila@il.ibm.com>
31741
31742         * tree-vectorizer.h (is_pattern_stmt_p): New.
31743         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
31744         formatting (tabs instead of spaces). Cleanup and clarify setting
31745         of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
31746         * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
31747         (vectorizable_type_demotion): Check that types are integral.
31748         (vectorizable_type_promotion): Likewise.
31749         (vectorizable_store): Fix typo.  Eliminate new-line at end of
31750         comments.
31751
31752 2007-01-16  Jan Hubicka  <jh@suse.cz>
31753
31754         * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
31755         cgraph edges too.
31756
31757 2007-01-15  Eric Christopher  <echristo@apple.com>
31758
31759         * ifcvt.c: Include vec.h, vecprim.h.
31760         (check_cond_move_block): New argument regs.
31761         Reorganize. Add registers used to regs.
31762         (cond_move_process_if_block): Use regs set above as
31763         loop bounds.
31764
31765 2007-01-15  Eric Christopher  <echristo@apple.com>
31766
31767         * config/darwin.h: Update copyright.
31768         (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
31769         (LINK_COMMAND_SPEC): Add -u.
31770         (LINK_SPEC): Fix umbrella for above.
31771
31772 2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
31773
31774         * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
31775         glibc CVS.
31776
31777 2007-01-15  Tom Tromey  <tromey@redhat.com>
31778
31779         * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
31780         * doc/install.texi (Testing): Don't mention jacks.
31781         (Configuration): Document --enable-java-maintainer-mode.  Move
31782         --with-java-home to libgcj-specific section.  Document
31783         --with-ecj-jar.
31784         (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
31785
31786 2007-01-15  Jan Hubicka  <jh@suse.cz>
31787
31788         * tree-ssa-dce.c (DCE_TODOs): New.
31789         (propagate_necessity): Return if something changed.
31790         (eliminate_unnecessary_stmts): Likewise.
31791         (perform_tree_ssa_dce): Return TODO flags when needed.
31792         (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
31793
31794 2007-01-15  Uros Bizjak  <ubizjak@gmail.com>
31795
31796         * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
31797         (fyl2x_extend<mode>xf3_i387): New insn pattern.
31798         (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
31799         patterns using X87MODEF12 mode macro.  Extend operand 1
31800         to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
31801         (log10<mode>2): Ditto.
31802         (log2<mode>2): Ditto.
31803         (log1p<mode>2): Ditto.
31804         (logb<mode>2): Ditto.
31805         (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
31806         (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
31807         (*fxtractxf3_i387): Rename from *fxtractxf3.
31808         (fxtract_extend<mode>xf3_i387): New insn pattern.
31809         (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
31810         * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
31811         and gen_fyl2xxf3_i387().
31812
31813 2007-01-14  Zdenek Dvorak <dvorakz@suse.cz>
31814
31815         * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
31816         * cfgloopmanip.c (fix_loop_placement): Made static.  Use
31817         get_loop_exit_edges.  Changed return type to bool.
31818         * cfgloop.h (fix_loop_placement): Declaration removed.
31819
31820 2007-01-14  Dorit Nuzman  <dorit@il.ibm.com>
31821
31822         * param.h (MIN_VECT_LOOP_BOUND): New.
31823         * params.def (MIN_VECT_LOOP_BOUND): New.
31824         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
31825         argument - minimum threshold for number of iterations.
31826         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
31827         argument to declaration.
31828         * tree-vect-analyze.c (vect_analyze_operations): Check value of
31829         MIN_VECT_LOOP_BOUND.
31830         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
31831         slpeel_tree_peel_loop_to_edge with additional argument.
31832         (vect_do_peeling_for_alignment): Likewise.
31833         * doc/invoke.texi (min-vect-loop-bound): Document new param option.
31834
31835 2007-01-14  Uros Bizjak  <ubizjak@gmail.com>
31836
31837         PR target/30413
31838         * config/i386/i386.c (print_operand) ['z']: Output 'b' for
31839         operands of size 1.
31840
31841 2007-01-14  Jan Hubicka  <jh@suse.cz>
31842
31843         * tree-dfa.c (remove_referenced_var): New function.
31844         * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
31845         prune referenced vars list too.
31846         * tree-flow.h (remove_referenced_var): Declare.
31847
31848 2007-01-14  Jan Hubicka  <jh@suse.cz>
31849
31850         * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
31851         separately.
31852         (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
31853         (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
31854         * except.h (verify_eh_throw_table_statements): Kill prototype.
31855         * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
31856         into call exrepssions.
31857         * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
31858         eh trhow verifier.
31859         * tree-cfg.c: Include pointer-set.h.
31860         (verify_node_sharing): Work on pointer set.
31861         (verify_eh_throw_stmt_node): New.
31862         (verify_stmts): Use pointers sets, verify throw_stmt.
31863
31864 2007-01-13  Zdenek Dvorak <dvorakz@suse.cz>
31865
31866         * ipa-reference.c (analyze_function): Consider also addresses taken
31867         in phi nodes.
31868
31869 2007-01-12  Roger Sayle  <roger@eyesopen.com>
31870
31871         * c-typeck.c (null_pointer_constant_p): Replace use of
31872         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
31873         (build_c_cast): Likewise.
31874
31875 2007-01-12  Roger Sayle  <roger@eyesopen.com>
31876
31877         * tree.h (force_fit_type_double): Remove unused final argument.
31878         * c-common.c (constant_expression_warning): Replace use of
31879         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
31880         (convert_and_check): Likewise.
31881         (shorten_compare): Update call to force_fit_type_double.
31882         (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
31883         * convert.c (convert_to_pointer): Update call to
31884         force_fit_type_double.
31885         * fold-const.c (force_fit_type_double): Remove overflowed_const
31886         argument.
31887         (int_const_binop, fold_convert_const_int_from_int,
31888         fold_convert_const_int_from_real, fold_div_compare,
31889         fold_sign_changed_comparison, fold_unary, fold_negate_const,
31890         fold_abs_const, fold_not_const): Remove the final argument from
31891         calls to force_fit_type_double.
31892
31893 2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
31894
31895         * configure.ac: Set insn to "nop" for spu-*-* also.
31896         * configure: Regenerate.
31897
31898 2007-01-12  Olga Golovanevsky  <olga@il.ibm.com>
31899
31900         * builtins.def : Add BUILT_IN_FREE.
31901
31902 2007-01-12  Jan Hubicka  <jh@suse.cz>
31903
31904         PR tree-optimization/30443
31905         * tree-inline.c (tree_function_versioning): Do not optimize when
31906         cloning for inlining.
31907
31908 2007-01-12  Zdenek Dvorak <dvorakz@suse.cz>
31909
31910         * doc/loop.texi: Document recording of loop exits.
31911         * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
31912         (update_single_exits_after_duplication,
31913         update_single_exit_for_duplicated_loop,
31914         update_single_exit_for_duplicated_loops): Removed.
31915         (duplicate_loop_to_header_edge): Do not call
31916         update_single_exits_after_duplication and
31917         update_single_exit_for_duplicated_loops.
31918         (loop_version): Do not update single_exit information.
31919         (fix_loop_structure): Use record_loop_exits instead of
31920         mark_single_exit_loops.
31921         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
31922         the lists of loop exits.
31923         * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
31924         split_edge, merge_blocks): Update the lists of loop exits.
31925         * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
31926         loop_optimizer_init.
31927         * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
31928         of mark_single_exit_loops.
31929         (loop_optimizer_finalize): Call release_recorded_exits.
31930         * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
31931         LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
31932         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
31933         update single exit information.
31934         * lambda-code.c (perfect_nestify): Ditto.
31935         * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
31936         (mark_single_exit_loops): Removed.
31937         (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
31938         get_exit_descriptions, rescan_loop_exit, record_loop_exits,
31939         dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
31940         functions.
31941         (get_loop_exit_edges, single_exit): Use recorded exit lists.
31942         (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
31943         (verify_loop_structure): Verify consistency of the exit lists.
31944         (flow_loops_find): Use alloc_loop.  Initialize exits hash.
31945         (set_single_exit): Removed.
31946         * cfgloop.h (struct loop_exit): New function.
31947         (struct loop): single_exit_ field replaced by exits field.
31948         (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
31949         LOOPS_HAVE_RECORDED_EXITS.
31950         (struct loops): Added exits hash.
31951         (mark_single_exit_loops, set_single_exit): Declaration removed.
31952         (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
31953
31954 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
31955
31956         * doc/invoke.texi: Avoid use of @headitem.
31957
31958 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
31959
31960         * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
31961
31962 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
31963
31964         * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
31965         list of targets.
31966
31967 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
31968             Richard Sandiford  <richard@codesourcery.com>
31969
31970         * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
31971         * config/m68k/m68k.opt: Resort options.
31972         (mbitfield, mrtd, mshort): Remove RejectNegative properties.
31973
31974 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
31975             Richard Sandiford  <richard@codesourcery.com>
31976
31977         * doc/invoke.texi: Document the macros that are defined by
31978         m68k's -mtune and -mhard-float options.
31979         * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
31980         (m68k_cpp_cpu_family): Likewise.
31981         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
31982         of __ucfv*__ macros.  Define __mcffpu__ if generating code for
31983         ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
31984         * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
31985         (m68k_cpp_cpu_family): Likewise.
31986
31987 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
31988
31989         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
31990         macros besides mc68000 as tuning macros.  Use a switch statement
31991         to set them and mcpu32.
31992
31993 2007-01-12  Julian Brown  <julian@codesourcery.com>
31994
31995         * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
31996         (TARGET_68040_ONLY): Rename to...
31997         (TARGET_68040): ...this.
31998         * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
31999         * config/m68k/m68k.md: Likewise.
32000
32001 2007-01-12  Julian Brown  <julian@codesourcery.com>
32002             Nathan Sidwell  <nathan@codesourcery.com>
32003             Richard Sandiford  <richard@codesourcery.com>
32004
32005         * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
32006         the -mcpu= argument associated with the --with-cpu setting.
32007         Define M68K_DEFAULT_TUNE to the default -mtune= option,
32008         if different from the one implied by the -mcpu setting.
32009         Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
32010         using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
32011         * doc/invoke.texi: Mention ColdFire in the introduction to the
32012         m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
32013         -mno-div and -mhard-float options.  Make -m68881 a synonym for
32014         -mhard-float.  Document the previously-undocumented -m5206e,
32015         -m528x, -m5307 and -m5407 options.  Tweak the existing option
32016         documentation for consistency.
32017         * doc/install.texi: Mention new --with-cpu arguments.
32018         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
32019         default CPU if neither -mcpu nor -march are specified.
32020         (ASM_CPU_SPEC): Pass down -mcpu and -march options.
32021         (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
32022         TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
32023         using m68k_tune to decide between families that implement the
32024         same ISA.  Use m68k_tune to set __mcfv4e__.
32025         (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
32026         (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
32027         (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
32028         (FL_ISA_C, FL_ISA_MMU): New macros.
32029         (MASK_COLDFIRE): Delete.
32030         (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
32031         (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
32032         (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
32033         (TARGET_HARD_FLOAT): Do not define here.
32034         (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
32035         (TUNE_68000): New macro.
32036         (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
32037         (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
32038         (TUNE_CFV2): Redefine in terms of m68k_tune.
32039         (uarch_type, target_device, fpu_type): New enums.
32040         (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
32041         * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
32042         (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
32043         (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
32044         (FL_FOR_isa_c): New macros.
32045         (m68k_isa): New enum.
32046         (m68k_target_selection): New structure.
32047         (all_devices, all_isas, all_microarchs): New tables.
32048         (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
32049         (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
32050         (MASK_ALL_CPU_BITS): Delete.
32051         (m68k_find_selection): New function.
32052         (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
32053         Map the legacy target options to a combination of the new ones.
32054         (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
32055         m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
32056         to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
32057         settings.
32058         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
32059         (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
32060         properties.
32061         (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
32062         (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
32063         * config/m68k/m68k-devices.def: New file.
32064
32065 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
32066             Nathan Sidwell  <nathan@codesourcery.com>
32067
32068         * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
32069         (SUBTARGET_EXTRA_SPECS): New macros.
32070         * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
32071         use %(asm_cpu_spec) instead.
32072         * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
32073         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
32074         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
32075         (EXTRA_SPECS): Rename to...
32076         (SUBTARGET_EXTRA_SPECS): ...this.
32077
32078 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
32079             Richard Sandiford  <richard@codesourcery.com>
32080             Julian Brown  <julian@codesourcery.com>
32081
32082         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
32083         (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
32084         to the configuration's default CPU.
32085         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
32086         Remove default masks.
32087         (m680[012]0-*-*): Set the default with_cpu to the first part of
32088         the target name.
32089         (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
32090         (m68k*-*-linux): Extend the --with-cpu handling to...
32091         (m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
32092         and m68010.  Don't set target_cpu_default2.
32093         * doc/install.texi: Document --with-cpu for m68k.
32094         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
32095         * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
32096         (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
32097         (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
32098         (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
32099         (ASM_SPEC): Remove use of %(asm_cpu_default).
32100         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
32101         * config/m68k/linux.h (TARGET_DEFAULT): Delete.
32102         (CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
32103         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
32104         __HAVE_FPU__ if TARGET_HARD_FLOAT.
32105         (TARGET_DEFAULT): Delete.
32106         (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
32107         cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
32108         (CPP_CPU_SPEC): Delete.
32109         (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
32110         the appropriate string.
32111         (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
32112         (CPP_SPEC): Define to NETBSD_CPP_SPEC.
32113         (ASM_SPEC): Don't use %(asm_default_spec).
32114         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
32115         TARGET_DEFAULT and add MASK_68881.
32116         * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
32117
32118 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
32119
32120         * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
32121         (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
32122         MASK_68010 alongside MASK_68020.
32123         * doc/invoke.texi: Document -m68010.
32124         * config/m68k/m68k.opt (m68010): New.
32125         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
32126         if TUNE_68010.
32127         (TUNE_68010): New macro.
32128         * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
32129         (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
32130         (M68K_CPU_m68332): Add MASK_68010.
32131         * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
32132         fallback definition.
32133         * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
32134         defines.
32135         * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
32136         (m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
32137         to all entries that use MASK_68020.
32138         (output_move_simode_const, output_move_himode, output_move_qimode)
32139         (output_move_stricthi, output_move_strictqi): Use TARGET_68010
32140         instead of TARGET_68020 to select clr behavior.  Remove comment
32141         about there being no TARGET_68010.
32142         * config/m68k/m68k.md: Likewise throughout.
32143
32144 2007-01-12  Julian Brown  <julian@codesourcery.com>
32145
32146         * config/m68k/m68k.h (TARGET_ISAB): New macro.
32147         * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
32148         * config/m68k/m68k.md: Likewise.
32149
32150 2007-01-12  Julian Brown  <julian@codesourcery.com>
32151
32152         * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
32153         TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
32154
32155 2007-01-12  Julian Brown  <julian@codesourcery.com>
32156
32157         * config/m68k/m68k.h (TUNE_68040_60): New macro.
32158         * config/m68k/m68k.c (standard_68881_constant_p): Use it.
32159         * config/m68k/m68k.md: Likewise.
32160
32161 2007-01-12  Julian Brown  <julian@codesourcery.com>
32162             Richard Sandiford  <richard@codesourcery.com>
32163
32164         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
32165         instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
32166         TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
32167         TARGET_CPU32.
32168         (TARGET_CPU32): Rename to...
32169         (TUNE_CPU32): ...this.
32170         (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
32171         (TUNE_CFV2): New macros.
32172         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
32173         remove conditions that are implied by TARGET_68020.
32174         * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
32175         instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
32176         (m68k_output_function_epilogue): Likewise.
32177         (m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
32178         and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
32179         "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
32180         non-68000 timings.  Refactor multiplication and division costs.
32181         (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
32182         TUNE_CPU32 instead of TARGET_CPU32.
32183         (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
32184         and TUNE_68060 instead of TARGET_68060.
32185         * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
32186         TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
32187         TARGET_CPU32.
32188         (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
32189         && !TARGET_COLDFIRE" to choose between moveq and clr.
32190         Likewise in the unnamed movsf pattern.
32191         (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
32192         "!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
32193         ashiftrt pattern.
32194
32195 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
32196
32197         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
32198         of tabbing before backslashes.
32199
32200 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32201
32202         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
32203         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
32204         (ASM_OUTPUT_INTERNAL_LABEL): Define.
32205
32206 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
32207
32208         * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
32209         find_interesting_uses_cond.
32210         (find_interesting_uses_cond): Use extract_cond_operands.
32211         (rewrite_use_compare): Use extract_cond_operands and
32212         force_gimple_operand_bsi.  Do not call update_stmt.
32213         (determine_use_iv_cost_condition): Use extract_cond_operands.
32214         Return cheaper of using original bound and changing the exit bound.
32215
32216 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
32217
32218         PR tree-optimization/29516
32219         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
32220         most_expensive_mult_to_index, addr_to_parts,
32221         create_mem_ref, maybe_fold_tmr): Make the type of
32222         fields of TARGET_MEM_REF sizetype.
32223         (move_fixed_address_to_symbol, move_pointer_to_base):
32224         New functions.
32225         * tree.def (TARGET_MEM_REF): Add comment on types of
32226         the operands.
32227
32228 2007-01-11  Joseph Myers  <joseph@codesourcery.com>
32229
32230         * c-common.c (vector_types_convertible_p): Treat opaque types as
32231         always convertible if they have the same size, but not otherwise.
32232
32233 2007-01-11  Steven Bosscher  <steven@gcc.gnu.org>
32234
32235         * ifcvt.c (struct noce_if_info): Add comments to the fields.
32236         Remove the b_unconditional field.
32237         (noce_try_sign_mask): Do not look at b_unconditional.
32238         (noce_process_if_block): Do not use merge_if_blocks.  Update
32239         the CFG here.  Do not set b_unconditional.
32240         (cond_move_process_if_block): Likewise.
32241         (find_cond_trap): Likewise.
32242         (check_cond_move_block): Require simple jump insns at the end
32243         of the basic block.
32244
32245 2007-01-11  Jan Hubicka  <jh@suse.cz>
32246
32247         PR tree-optimization/1046
32248         * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
32249         when alias info is not ready.
32250         (pass_tail_recursion): Do not require aliasing.
32251         * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
32252         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
32253         * tree-ssa-copy.c (pass_copy_prop): Likewise.
32254         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
32255         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
32256         * passes.c (init_optimization_passes): Execute rename_ssa_copies,
32257         ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
32258         before inlining.
32259         * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
32260         When aliasing is not build, mark statement as volatile.
32261
32262 2007-01-11  Tom Tromey  <tromey@redhat.com>
32263
32264         PR preprocessor/15185, PR preprocessor/20989:
32265         * doc/cppopts.texi <-MT>: Update description of algorithm for
32266         computing default target.
32267         <-M, -MD>: Reword "basename" text.
32268
32269 2007-01-11  Roger Sayle  <roger@eyesopen.com>
32270
32271         * builtins.c (expand_builtin_pow, expand_builtin_powi,
32272         fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
32273         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
32274         fold_builtin_int_int_roundingfn, fold_builtin_bitop,
32275         fold_builtin_bswap, real_constp, fold_builtin_pow,
32276         fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
32277         do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
32278         uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
32279         * convert.c (convert_to_pointer): Likewise.
32280         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
32281         * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
32282         const_binop, fold_convert_const_int_from_int,
32283         fold_convert_const_int_from_real,
32284         fold_convert_const_real_from_real, sign_bit_p,
32285         optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
32286         fold_sign_changed_comparison, fold_unary, fold_comparison,
32287         fold_binary, multiple_of_p, tree_Expr_non_zero_p,
32288         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
32289         * print-tree.c (print_node_brief, print_node): Likewise.
32290         * stor-layout.c (place_field, layout_type): Likewise.
32291         * tree-chrec.c (keep_cast): Likewise.
32292         * tree.c (build_vector, build_real, build_real_from_int_cst,
32293         build_complex): Likewise.
32294
32295 2007-01-11  Roger Sayle  <roger@eyesopen.com>
32296
32297         * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
32298         treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
32299
32300 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
32301
32302         * configure.ac (strict1_warn): Rename to strict_warn.
32303         (WERROR, --enable-werror, symlink hacks, stage1_cflags,
32304         cc_set_by_configure, quoted_cc_set_by_configure,
32305         stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
32306         all_boot_languages, all_stagestuff): Remove.
32307         (target_list): Remove bootstrap targets.
32308         * Makefile.in (quickstrap): Unconditionally make a synonym of all.
32309         (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
32310         REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
32311         SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
32312         VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
32313         STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
32314         stage1_copy, stage2_build, stage2_copy, stageprofile_build,
32315         stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
32316         stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
32317         bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
32318         bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
32319         unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
32320         restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
32321         cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
32322         *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
32323         stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
32324         stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
32325         risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
32326         (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
32327         (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
32328         (mostlyclean): Adjust.
32329         (clean, distclean): Don't mention bootstrap stuff.
32330         * configure: Regenerate.
32331         * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
32332         java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
32333         treelang/config-lang.in (stagestuff): Remove.
32334         * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
32335         stageprofile, stagefeedback, stagestuff): Remove mention.
32336
32337 2007-01-11  Nick Clifton  <nickc@redhat.com>
32338
32339         * config/mcore/predicates.md (mcore_general_movesrc_operand):
32340         Accept CONSTs.
32341         (mcore_general_movdst_operand): Do not accept CONST_INTs.
32342         (mcore_arith_K_S_operand): Run the test for the S constraint not
32343         the test for the M constraint.
32344         (mcore_addsub_operand): Do not accept integer values that are
32345         larger than 32 bits.
32346         * config/mcore/mcore.md: Remove unused constraints from split.
32347         (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
32348         (addsi3): Likewise.
32349         (allocate_stack): Likewise.
32350         * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
32351         operands to 32 bits.
32352         (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
32353         INTVAL.
32354         (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
32355         mcore_const_ok_for_inline, mcore_const_trick_uses_not,
32356         try_constant_tricks, mcore_num_ones, mcore_num_zeros,
32357         mcore_output_bclri, mcore_output_andn, output_inline_const,
32358         mcore_output_move, mcore_output_movedouble): Likewise.
32359         (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
32360         (output_inline_const): Likewise.
32361         (output_inline_const): Fix format strings used in sprintf
32362         statements.
32363         * config/mcore/mcore-protos.h: Update prototypes for changed
32364         functions in mcore.c.
32365         * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
32366         HOST_WIDE_INT and not int.
32367         (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
32368         CONST_OK_FOR_N): Likewise.
32369         (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
32370         (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
32371         an INTVAL.
32372
32373 2007-01-10  Jan Hubicka  <jh@suse.cz>
32374
32375         * tree-vrp.c (remove_range_assertions): Release defs.
32376         * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
32377         * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
32378
32379 2007-01-10  Paul Brook  <paul@codesourcery.com>
32380
32381         * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
32382         * config/arm/arm.md (mulsi3subsi): New insn.
32383
32384 2007-01-10  Zdenek Dvorak <dvorakz@suse.cz>
32385
32386         * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
32387         (tree_transform_and_unroll_loop): New.
32388         * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
32389         Declare.
32390
32391 2007-01-10  Robert Kennedy <jimbob@google.com>
32392
32393         * fold-const.c (fold_comparison): Fold comparisons like (x *
32394         1000 < 0) to (x < 0).
32395
32396 2007-01-10  Ian Lance Taylor  <iant@google.com>
32397
32398         * tree-pretty-print.c (dump_generic_node): Print parentheses when
32399         operands have the same priority.
32400
32401 2007-01-10  Tom Tromey  <tromey@redhat.com>
32402
32403         * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
32404         (fold_binary): Likewise.
32405         * langhooks.c (lhd_can_use_bit_fields_p): Removed.
32406         * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
32407         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
32408         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
32409         * langhooks.h (struct lang_hooks): Removed field
32410         'can_use_bit_fields_p'.
32411
32412 2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>
32413
32414         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
32415
32416 2007-01-10  Razya Ladelsky  <razya@il.ibm.com>
32417
32418         * function.c (get_last_funcdef_no): New function.
32419         * function.h (get_last_funcdef_no): Declare.
32420         * tree-inline.c (initialize_cfun): Add initialization.
32421         (tree_function_versioning): Cleanup.
32422
32423 2007-01-10  Jan Hubicka  <jh@suse.cz>
32424
32425         * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
32426         PHIs.
32427
32428 2007-01-10  Sa Liu  <saliu@de.ibm.com>
32429             Ben Elliston  <bje@au.ibm.com>
32430
32431         * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
32432         for SAVE_NONLOCAL and Pmode for any other save level.
32433         * spu-protos.h (spu_restore_stack_block): Declare.
32434         * spu.md (save_stack_block): Remove.
32435         (restore_stack_block): Call spu_restore_stack_block.
32436         * spu.c (spu_restore_stack_block): New function.
32437         (spu_expand_epilogue): Remove old comment.
32438
32439 2007-01-09  Zdenek Dvorak <dvorakz@suse.cz>
32440
32441         PR tree-optimization/30322
32442         * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
32443         (cand_value_at): Return the value as aff_tree.
32444         (may_eliminate_iv): Convert the bound from aff_tree to tree.
32445         * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
32446         aff_combination_mult): New functions.
32447         (aff_combination_add): Use aff_combination_add_cst.
32448         (aff_combination_convert): Allow conversions to a wider type.
32449         (tree_to_aff_combination): Handle BIT_NOT_EXPR.
32450         * tree-affine.h (aff_combination_mult): Declare.
32451
32452 2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>
32453
32454         * doc/tm.texi: Update documentation to reflect reality of exec
32455         and start file search behaviours. Update copyright year.
32456         * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
32457         header file directories.
32458
32459 2007-01-09  Uros Bizjak  <ubizjak@gmail.com>
32460
32461         * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
32462         (*cosxf2): Rename to cosxf2_i387.
32463         (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
32464         using X87MODEF12 mode macro. Rename patterns to
32465         *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
32466         for SSE math.
32467         (*cosdf2, *cossf2): Ditto.
32468         (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
32469         to match extended input operands.
32470         (sincos<mode>3): New expander.
32471         (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
32472         insn patterns and corresponding splitters.
32473
32474 2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>
32475
32476         * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
32477         (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
32478
32479 2007-01-09  Nicolas Pitre  <nico@cam.org>
32480
32481         PR target/30173
32482         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
32483
32484 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
32485
32486         * target.h (struct gcc_target): New field library_rtti_comdat.
32487         * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
32488         (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
32489         * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
32490         * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
32491
32492 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
32493
32494         * doc/invoke.texi (Optimize Options): Correct description of -O0.
32495
32496 2007-01-08  Richard Guenther  <rguenther@suse.de>
32497
32498         * tree.h (force_fit_type_double): Export.
32499         (force_fit_type): Remove.
32500         * fold-const.c (force_fit_type_double): New function.
32501         (force_fit_type): Remove.
32502         (int_const_binop): Use it.
32503         (fold_convert_const_int_from_int): Likewise.
32504         (fold_convert_const_int_from_real): Likewise.
32505         (fold_div_compare): Likewise.
32506         (fold_sign_changed_comparison): Likewise.
32507         (fold_unary): Likewise.
32508         (fold_negate_const): Likewise.
32509         (fold_abs_const): Likewise.
32510         (fold_not_const): Likewise.
32511         * c-common.c (shorten_compare): Use force_fit_type_double.
32512         * convert.c (convert_to_pointer): Likewise.
32513
32514 2007-01-08  Richard Guenther  <rguenther@suse.de>
32515
32516         * tree.h (build_int_cst_wide_type): Export.
32517         * tree.c (build_int_cst_wide_type): New function.
32518         (build_int_cst_wide): Fix comment.
32519         * builtins.c (fold_builtin_object_size): Use build_int_cst
32520         to build -1 or 0 of the correct type.  Use fit_double_type
32521         to check for overflow.
32522         * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
32523         to build the mask.
32524         (decode_field_reference): Likewise.
32525         (all_ones_mask_p): Likewise.
32526         (native_interpret_int): Use build_int_cst_wide_type.
32527         (fold_binary): Use build_int_cst_type to build an all-ones
32528         value.
32529         * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
32530
32531 2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>
32532
32533         * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
32534
32535 2007-01-09  Ben Elliston  <bje@au.ibm.com>
32536
32537         * genautomata.c (STATS_OPTION): New option.
32538         (stats_flag): New flag.
32539         (gen_automata_option): Handle it.
32540         (initiate_automaton_gen): Ditto.
32541         (write_automata): Output statistics only if stats_flag is
32542         set. Likewise, output time statistics only if time_flag is set.
32543         * doc/md.texi (Processor pipeline description): Document new flag.
32544
32545 2007-01-08  Richard Guenther  <rguenther@suse.de>
32546
32547         * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
32548         * tree.c (build_int_cst_type): Likewise.
32549         (size_in_bytes): Don't call force_fit_type on the result.
32550         (int_fits_type_p): Use fit_double_type.
32551         * fold-const.c (fit_double_type): New function.
32552         (force_fit_type): Use it.
32553         * tree.h (fit_double_type): Export.
32554
32555 2007-01-08  Jan Hubicka  <jh@suse.cz>
32556
32557         * tree-vectorizer.c (gate_increase_alignment): Fix return type.
32558         * ipa.c (function_and_variable_visibility): Fix return type.
32559
32560 2007-01-08  Richard Guenther  <rguenther@suse.de>
32561
32562         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
32563         of offset to build the index.
32564         * tree-pretty-print.c (dump_generic_node): Don't build negated
32565         const just for printing.
32566         * c-pretty-print.c (pp_c_integer_constant): Likewise.
32567         * builtins.c (fold_builtin_int_roundingfn): Check if result
32568         fits the type by using force_fit_type and comparing the result.
32569         * predict.c (predict_loops): Use compare_tree_int for comparison.
32570         * tree.c (build_int_cst): Fall back to integer_type_node for
32571         NULL_TREE type.
32572         (build_int_cst_wide): Assert type is non-null.
32573
32574 2007-01-08  Roberto Costa  <roberto.costa@st.com>
32575
32576         * tree-vrp.c (extract_range_from_cond_expr): New.
32577         (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
32578         * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
32579         as expressions.
32580         (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
32581         * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
32582         tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
32583         used as expressions.
32584         * tree-object-size.c (cond_expr_object_size): New.
32585         (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
32586
32587 2007-01-08  Jan Hubicka  <jh@suse.cz>
32588
32589         * tree-ssa-forwprop.c (forward_propagate_into_cond,
32590         tree_ssa_forward_propagate_single_use_va): Release defs of propagated
32591         statement.
32592
32593 2007-01-08  Richard Guenther  <rguenther@suse.de>
32594
32595         PR tree-optimization/23603
32596         * tree-vrp.c (set_value_range_to_truthvalue): New function.
32597         (extract_range_from_binary): Fall back to truthvalue instead of
32598         varying for TRUTH_*_EXPR.
32599         (extract_range_from_comparison): Fall back to truthvalue instead of
32600         varying.
32601         (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
32602         if all visited PHI values were constant.
32603
32604 2007-01-08  Jan Hubicka  <jh@suse.cz>
32605
32606         * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
32607         (cgraph_analyze_function): break out from ...
32608         (cgraph_finalize_compilation_unit): ... here.
32609         (cgraph_expand_function): Remove forgoten commented out line.
32610         (cgraph_optimize): Analyze functions.
32611
32612 2007-01-08  Jan Hubicka  <jh@suse.cz>
32613
32614         * tree-pas.h (TODO_remove_function): New flag.
32615         (TODO_update*): Renumber.
32616         (pass_ipa_increase_alignment,
32617         pass_ipa_function_and_variable_visibility): New passes.
32618         * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
32619         (cgraph_function_and_variable_visibility): Move to ipa.c
32620         (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
32621         cgraph_increase_alignment.
32622         * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
32623         (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
32624         calling tree-inline.
32625         (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
32626         (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
32627         * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
32628         (gate_increase_alignment): New function.
32629         (pass_ipa_increase_alignment): New pass.
32630         * ipa.c: Inline tree-pass.h and timevar.h
32631         (function_and_variable_visibility): Move here from cgraphunit.c
32632         * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
32633         * passes.c (init_optimization_passes): Add the two new passes.
32634         (execute_todo): Handle cgraph_remove_functions.
32635
32636 2007-01-08  Nick Clifton  <nickc@redhat.com>
32637
32638         * config/frv/predicates.md (reg_or_0_operand): Accept
32639         CONST_DOUBLEs.
32640
32641 2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
32642
32643         * config/bfin/rtems.h, config/bfin/t-rtems: New.
32644         * config.gcc: Add bfin*-rtems*.
32645
32646 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
32647
32648         * c.opt: Add -flax-vector-conversions.
32649         * c-typeck.c (convert_for_assignment): Pass flag to
32650         vector_types_convertible_p to allow emission of note.
32651         (digest_init): Likewise.
32652         * c-opts.c: Handle -flax-vector-conversions.
32653         * c-common.c (flag_lax_vector_conversions): New.
32654         (vector_types_convertible_p): Unless -flax-vector conversions
32655         has been passed, disallow conversions between vectors with
32656         differing numbers of subparts and/or element types.  If such
32657         a conversion is disallowed, possibly emit a note on the first
32658         occasion only to inform the user of -flax-vector-conversions.
32659         The new last argument specifies this.
32660         * c-common.h (flag_lax_vector_conversions): New.
32661         (vector_types_convertible_p): Add extra argument.
32662         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
32663         char_type_node for V*QI type vectors.
32664         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
32665         Update to satisfy new typechecking rules.
32666         * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
32667         C and C++ variants.
32668         * doc/invoke.texi (C Dialect Options): Document
32669         -flax-vector-conversions.
32670
32671 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
32672
32673         PR tree-optimization/29877
32674         * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
32675         a register variable on the RHS to not be replaceable.
32676
32677 2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
32678         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
32679         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
32680         const_simm15, const_pow2, const_npow2): Added.
32681         * config/score/misc.md (insv, extv, extzv, movmemsi,
32682         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
32683         * config/score/score.c (score_address_cost, score_select_cc_mode):
32684         Added.
32685         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
32686         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
32687         Update score_print_operand.
32688         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
32689         Adjust register allocate order and update some macro define.
32690         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
32691         mdx_block_move_straight, mdx_block_move_loop_head,
32692         mdx_block_move_loop_body, mdx_block_move_loop_foot,
32693         mdx_block_move_loop, mdx_block_move): Added.
32694         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
32695         mdp_limm): Updated and fix some bug and typo.
32696         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
32697         (movsf, movdf, doloop_end): Added.
32698
32699 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
32700
32701         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
32702         config/arm/thumb2.md: Fix comment typos.
32703         * doc/extend.texi: Fix a typo.
32704
32705 2007-01-07  Eric Christopher  <echristo@apple.com>
32706
32707         * configure.ac: Check for __stack_chk_fail for darwin.
32708         * configure: Regenerate.
32709
32710 2007-01-07  Richard Guenther  <rguenther@suse.de>
32711
32712         * tree-vrp.c (extract_range_from_assert): CSE calls to
32713         compare_values where possible.
32714         (extract_range_from_unary_expr): Likewise.
32715
32716 2007-01-07  Anatoly Sokolov <aesok@post.ru>
32717
32718         * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
32719         * config/avr/avr.c (call_insn_operand): Delete function.
32720         * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
32721         instead of register number. Use predicates.
32722         * config/avr/predicates.md (const0_operand, reg_or_0_operand,
32723         call_insn_operand): Add.
32724
32725 2007-01-06  Jan Hubicka  <jh@suse.cz>
32726
32727         * tree-pass.h (pass_build_cgraph_edges): Declare.
32728         * cgraphunit.c (record_refernece): Move to cgraphbuild.c
32729         (visited_nodes): Remove.
32730         (cgraph_create_edges): Move to cgraphbuild.c; rename to
32731         build_cgrpah_edges; make visited_nodes local.
32732         (cgraph_process_new_functions): DO not call initialize_inline_failed.
32733         (record_references_in_initializer): Move to cgraphbuild.c
32734         (initialize_inline_failed, rebuild_cgraph_edges,
32735         pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
32736         (verify_cgraph_node): Make visited_nodes local.
32737         (cgraph_analyze_function): Do not call cgraph_create_edges and
32738         initialize_inline_failed.
32739         (cgraph_expand_function): Do not call cgraph_lower_function;
32740         assert that function is already lowered.
32741         * Makefile.in (cgraphbuild.o): New.
32742         * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
32743         at the end of lowering passes.
32744
32745 2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>
32746
32747         * ifcvt.c (cond_move_convert_if_block): New function, code
32748         factored out from...
32749         (cond_move_process_if_block): ...here.  Call the new function
32750         on the THEN and ELSE blocks.
32751         (merge_if_block): Do not copy global_live_at_end, merge_blocks
32752         already takes care of this.
32753
32754 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
32755
32756         PR c/19978
32757         * tree.h (TREE_OVERFLOW_P): New.
32758         * c-typeck.c (parser_build_unary_op): Warn only if result
32759         overflowed and operands did not.
32760         (parser_build_binary_op): Likewise.
32761         (convert_for_assignment): Remove redundant overflow_warning.
32762         * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
32763
32764 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
32765
32766         * c-typeck.c (store_init_value): Split over two lines to follow
32767         the GNU coding style.
32768
32769 2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>
32770
32771         * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
32772         __GXX_EXPERIMENTAL_CXX0X__.
32773         * doc/cpp.texi: Same.
32774
32775 2007-01-05  Richard Guenther  <rguenther@suse.de>
32776
32777         PR middle-end/27826
32778         * tree.c (get_narrower): Do not construct COMPONENT_REFs
32779         with mismatched types.  Instead explicitly build a
32780         conversion NOP_EXPR.
32781
32782 2007-01-05  Ian Lance Taylor  <iant@google.com>
32783
32784         * c-common.c (decl_with_nonnull_addr_p): New function.
32785         (c_common_truthvalue_conversion): Call it.
32786         * c-typeck.c (build_binary_op): Likewise.
32787         * c-common.h (decl_with_nonnull_addr_p): Declare.
32788
32789 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
32790
32791         PR c/30360
32792         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
32793         denom against 0.0.
32794
32795 2007-01-05  Joel Brobecker  <brobecker@adacore.com>
32796
32797         * doc/install.texi (Final install): Document the fact that
32798         the GNAT runtime should not be stripped.
32799
32800 2007-01-04  Jan Hubicka  <jh@suse.cz>
32801
32802         * tree-inline.c (fold_marked_statements): Update operand caches
32803         and EH after folding
32804
32805 2007-01-04  Ian Lance Taylor  <iant@google.com>
32806
32807         * c-common.c (check_function_nonnull): Whitespace fix.
32808
32809 2007-01-04  Jan Hubicka  <jh@suse.cz>
32810
32811         * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
32812         comitted older version of patch.
32813         (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
32814         function, celanup cfg and collect garbage.
32815
32816 2007-01-04  Mike Stump  <mrs@apple.com>
32817
32818         * Makefile.in (mostlyclean): Don't remove libgcc anymore.
32819         (clean): Likewise.
32820
32821 2007-01-04  Eric Christopher  <echristo@apple.com>
32822
32823         * libgcc2.c (__bswapsi2): Use SItype.
32824         (__bswapdi2): Use DItype.
32825         * libgcc2.h: Update for above.
32826
32827 2007-01-04  Paul Brook  <paul@codesourcery.com>
32828
32829         * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
32830         mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
32831         mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
32832         umulsidi3, umulsidi3adddi, smulsi3_highpart,
32833         umulsi3_highpart): Make conditional on !arm_arch6.
32834         (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
32835         mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
32836         mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
32837         umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
32838         umulsi3_highpart_v6): New insns.
32839
32840 2007-01-04  Roger Sayle  <roger@eyesopen.com>
32841
32842         * fold-const.c (fold_convert): When casting an expression to void,
32843         fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
32844         have a type.  Instead of attempting to build a NOP_EXPR, return
32845         these "special" trees directly.
32846
32847 2007-01-04  Joseph Myers  <joseph@codesourcery.com>
32848
32849         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
32850         MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
32851         rs6000_cost->fp not 0 as adjustment for outer NEG.
32852
32853 2007-01-04  Jan Hubicka  <jh@suse.cz>
32854
32855         * cgraph.c (cgraph_release_function_body): New function.
32856         (cgraph_remove_node): Use it.
32857         * cgraph.h (cgraph_release_function_body): Declare.
32858         * cgraphunit.c (cgraph_expand_function): Use it.
32859         * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
32860         * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
32861         is initialized and while compilation of other function is running.
32862         * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
32863         statement CFG annotations from here to ...
32864         * tree-cfg.c (delete_tree_cfg_annotations): ... here.
32865
32866 2007-01-04  Zdenek Dvorak <dvorakz@suse.cz>
32867
32868         * cfgloop.h (enum li_flags): Make the constants powers of two.
32869
32870 2007-01-04  Jan Hubicka  <jh@suse.cz>
32871
32872         * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
32873         set.
32874         (fold_marked_statements): New function.
32875         (optimize_inline_calls, tree_function_versioning): Fold new statements.
32876         * tree-inline.h (copy_body_data): Add statements_to_fold.
32877
32878 2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>
32879
32880         * config.gcc: Mention libgcc/config.host.
32881         * Makefile.in: Update comments mentioning libgcc.
32882         (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
32883         (all.cross, start.encap, rest.encap, rest.cross): Update
32884         dependencies for libgcc move.
32885         (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
32886         (clean-target, clean-target-libgcc): Delete.
32887         (srcdirify, GCC_EXTRA_PARTS): New macros.
32888         (libgcc-support, libgcc.mvars): New rules.
32889         (distclean): Remove mention of mklibgcc.
32890         (install): Don't reference INSTALL_LIBGCC.
32891         (install-common): Don't reference EXTRA_PARTS.
32892         (install-libgcc, install-multilib): Delete rules.
32893         * mklibgcc.in: Delete file.
32894         * doc/configfiles.texi: Don't mention mklibgcc.
32895
32896         * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
32897         * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
32898         * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
32899         * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
32900         (mklibgcc, ldblspecs): Likewise.
32901
32902         * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
32903         (posixpre.def): Use $(T).
32904         (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
32905         (SHLIB_SRC, SHLIB_INSTALL): Delete.
32906         (SHLIB_LINK): Make dummy.
32907         * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
32908
32909         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
32910
32911         * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
32912         * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
32913         config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
32914         config/rs6000/t-newas, config/sparc/t-elf: Likewise.
32915
32916         * configure.ac (all_outputs): Remove mklibgcc.
32917         * configure: Regenerated.
32918
32919 2007-01-03  Josh Conner  <jconner@apple.com>
32920
32921         PR middle-end/29683
32922         * calls.c (compute_argument_addresses): Set stack and stack_slot
32923         for partial args, too.
32924         (store_one_arg): Use locate.size.constant for the size when
32925         generating a save_area.
32926
32927 2007-01-03  Robert Kennedy <jimbob@google.com>
32928
32929         * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
32930         whose definitions are deleted due to basic block merging.
32931
32932 2007-01-03  Paul Brook  <paul@codesourcery.com>
32933
32934         PR target/16634
32935         * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
32936         functions.
32937         (use_return_insn): Return 0 for Thumb interrupt functions.
32938         (print_multi_reg): Add rfe argument for IRQ returns.
32939         (arm_output_epilogue): Pop interrupt return address directly into PC.
32940         (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
32941
32942 2007-01-03  Paul Brook  <paul@codesourcery.com>
32943
32944         Merge from sourcerygxx-4_1.
32945         * config/arm/thumb2.md: New file.
32946         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
32947         Thumb-2.
32948         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
32949         * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
32950         (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
32951         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
32952         tables.
32953         (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
32954         * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
32955         comptibility.
32956         * config/arm/ieee754-sf.S: Ditto.
32957         * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
32958         (thumb1_base_register_rtx_p): ... to this.
32959         (thumb_index_register_rtx_p): Rename...
32960         (thumb1_index_register_rtx_p): ... to this.
32961         (thumb_output_function_prologue): Rename...
32962         (thumb1_output_function_prologue): ... to this.
32963         (thumb_legitimate_address_p): Rename...
32964         (thumb1_legitimate_address_p): ... to this.
32965         (thumb_rtx_costs): Rename...
32966         (thumb1_rtx_costs): ... to this.
32967         (thumb_compute_save_reg_mask): Rename...
32968         (thumb1_compute_save_reg_mask): ... to this.
32969         (thumb_final_prescan_insn): Rename...
32970         (thumb1_final_prescan_insn): ... to this.
32971         (thumb_expand_epilogue): Rename...
32972         (thumb1_expand_epilogue): ... to this.
32973         (arm_unwind_emit_stm): Rename...
32974         (arm_unwind_emit_sequence): ... to this.
32975         (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
32976         thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
32977         thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
32978         arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
32979         thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
32980         thumb2_output_casesi): New functions.
32981         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
32982         (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
32983         FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
32984         THUMB2_WORK_REGS): Define.
32985         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
32986         arm_condexec_mask, arm_condexec_masklen)): New variables.
32987         (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
32988         (arm_override_options): Check new CPU capabilities.
32989         Set new architecture flag variables.
32990         (arm_isr_value): Handle v7m interrupt functions.
32991         (user_return_insn): Return 0 for v7m interrupt functions.  Handle
32992         Thumb-2.
32993         (const_ok_for_arm): Handle Thumb-2 constants.
32994         (arm_gen_constant): Ditto.  Use movw when available.
32995         (arm_function_ok_for_sibcall): Return false for v7m interrupt
32996         functions.
32997         (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
32998         (thumb_find_work_register, arm_load_pic_register,
32999         legitimize_tls_address, arm_address_cost, load_multiple_sequence,
33000         emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
33001         print_multi_reg, output_mov_long_double_fpa_from_arm,
33002         output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
33003         output_mov_double_fpa_from_arm, output_move_double,
33004         arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
33005         output_return_instruction, arm_output_function_prologue,
33006         arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
33007         arm_output_mi_thunk, thumb_set_return_address): Ditto.
33008         (arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
33009         (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
33010         (arithmetic_instr, shift_op): Use arm_shift_nmem.
33011         (arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
33012         '!' and 'L'.
33013         (arm_final_prescan_insn): Use extract_constrain_insn_cached.
33014         (thumb_expand_prologue): Use thumb_set_frame_pointer.
33015         (arm_file_start): Output directive for unified syntax.
33016         (arm_unwind_emit_set): Handle stack alignment instruction.
33017         * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
33018         Add v6t2, v7, v7a, v7r and v7m.
33019         (RETLDM): Add Thumb-2 code.
33020         (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
33021         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
33022         (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
33023         TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
33024         THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
33025         ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
33026         THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
33027         CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
33028         ADJUST_INSN_LENGTH): Define.
33029         (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
33030         STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
33031         BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
33032         PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
33033         SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
33034         TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
33035         HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
33036         HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
33037         REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
33038         REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
33039         LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
33040         GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
33041         ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
33042         FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
33043         PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
33044         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
33045         * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
33046         cortex-m3.
33047         * config/arm/arm-tune.md: Regenerate.
33048         * config/arm/arm-protos.h: Update prototypes.
33049         * config/arm/vfp.md: Enable patterns for Thumb-2.
33050         (arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
33051         (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
33052         (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
33053         thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
33054         * config/arm/libunwind.S: Add Thumb-2 code.
33055         * config/arm/constraints.md: Update include Thumb-2.
33056         * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
33057         * config/arm/ieee754-df.S: Ditto.
33058         * config/arm/bpabi.S: Ditto.
33059         * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
33060         * config/arm/predicates.md (low_register_operand,
33061         low_reg_or_int_operand, thumb_16bit_operator): New.
33062         (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
33063         (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
33064         * config/arm/t-arm-elf: Add armv7 multilib.
33065         * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
33066         Include thumb2.md.
33067         (UNSPEC_STACK_ALIGN, ce_count): New.
33068         (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
33069         arm_zero_extendsidi2, arm_zero_extendqidi2): New
33070         insns/expanders.
33071         * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
33072         (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
33073         thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
33074         * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
33075         (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
33076         thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
33077         insns.
33078         * doc/extend.texi: Document ARMv7-M interrupt functions.
33079         * doc/invoke.texi: Document Thumb-2 new cores+architectures.
33080
33081 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
33082
33083         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
33084         (struct _Unwind_Context): Rename args_size to flags, remove
33085         signal_frame field, add a new args_size field and version field.
33086         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
33087         _Unwind_IsExtendedContext): New inline functions.
33088         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
33089         Assume by_value array is only present if _Unwind_IsExtendedContext.
33090         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
33091         _Unwind_IsSignalFrame.
33092         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
33093         (uw_update_context_1): Use _Unwind_SetSignalFrame.
33094         (uw_init_context_1): Initialize context->flags to
33095         EXTENDED_CONTEXT_BIT.
33096         * config/rs6000/linux-unwind.h (frob_update_context): Use
33097         _Unwind_SetSignalFrame.
33098
33099 2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
33100
33101         PR middle-end/30353
33102         * gimplify.c (gimplify_modify_expr_complex_part): Move below
33103         tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
33104         the value.
33105
33106 2007-01-03  Kazu Hirata  <kazu@codesourcery.com>
33107
33108         * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
33109         REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
33110         RET, AT_SP): Remove.
33111         * config/i386/i386.md (*sse_prologue_save_insn): Use return
33112         instead of RET.
33113
33114         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
33115         * cfgbuild.c (find_basic_blocks): Likewise.
33116         * cfgrtl.c (rtl_create_basic_block): Likewise.
33117         * function.c (temp_slots_at_level): Likewise.
33118         * reg-stack.c (stack_regs_mentioned): Likewise.
33119         * regclass.c (allocate_reg_info): Likewise.
33120         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
33121         set_bb_for_stmt, move_block_to_fn): Likewise.
33122         * tree-complex.c (tree_lower_complex): Likewise.
33123         * vec.h (VEC_safe_grow_cleared): New.
33124
33125         * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
33126
33127 2007-01-03  Zdenek Dvorak <dvorakz@suse.cz>
33128
33129         * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
33130         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
33131         to loop_version.
33132         * cfgloopmanip.c (scale_loop_frequencies): Export.
33133         (loopify): Scale the frequencies by prescribed coefficients.
33134         (set_zero_probability): New function.
33135         (duplicate_loop_to_header_edge): Improve updating of frequencies.
33136         (lv_adjust_loop_entry_edge, loop_version): Set probabilities
33137         and frequencies according to arguments.
33138         * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
33139         correctly.
33140         * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
33141         * modulo-sched.c (sms_schedule): Set probabilities for entering
33142         versioned loop correctly.
33143         * tree-vect-transform.c (vect_transform_loop): Ditto.
33144         * cfgloop.h (loopify, loop_version): Declaration changed.
33145         (scale_loop_frequencies): Declared.
33146
33147 2007-01-02  Jan Hubicka  <jh@suse.cz>
33148
33149         * cgraph.c: Include tree-flow.h
33150         (cgraph_add_new-function): Handle IPA_SSA mode; execute
33151         early_local_passes.
33152         * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
33153         * tree-pass.h (pass_all_early_optimizations): Declare.
33154         * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
33155         early_local_passes.
33156         (cgraph_analyze_function): Do early_local_passes.
33157         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
33158         Do not add referenced vars.
33159         * tree-optimize.c (gate_all_optimizations): Do not execute when not in
33160         SSA form.
33161         (gate_all_early_local_passes): New gate.
33162         (pass_early_local_passes): Use new gate.
33163         (execute_early_local_optimizations): New functions.
33164         (gate_all_early_optimizations): New gate.
33165         (pass_all_early_optimizations): New pass.
33166         (execute_free_datastructures): Free SSA only when initialized.
33167         (gate_init_datastructures): Init only when optimizing.
33168         (tree_lowering_passes): Do early local passes when called late.
33169         * tree-profile.c (do_tree_profiling): Don't profile functions added
33170         late.
33171         (do_early_tree_profiling, pass_early_tree_profile): Kill.
33172         * tree-cfg.c (update_modified_stmts): Do not update when operands are
33173         not active.
33174         * passes.c (init_optimizations_passes): Reorder so we go into SSA
33175         during early_local_passes.
33176         * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
33177
33178
33179 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
33180
33181         * Makefile.in: Update copyright year.
33182
33183 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
33184
33185         * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
33186         in $(lang_checks) and check-consistency targets.
33187
33188 2007-01-02  Jan Hubicka  <jh@suse.cz>
33189
33190         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
33191         Do not add referenced vars.
33192         * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
33193         are not active.
33194         * passes.c (init_optimization_passes): Put mudflap_2 after
33195         free_datastructures.
33196
33197 2007-01-02  Jan Hubicka  <jh@suse.cz>
33198
33199         * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
33200         Set NOTHROW flag on call statements proved to be nothrow.
33201         Update statement of local calls so new pure/const functions are
33202         updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
33203         goto receivers.
33204         (tree_rest_of_compilation): Register hooks and initialize bitmap
33205         early. Do not set after_inlining flag.
33206
33207 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
33208
33209         * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
33210         HOST_BITS_PER_LONGLONG
33211
33212 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
33213
33214         PR c/19977
33215         * c-typeck.c (store_init_value): Don't emit pedantic overflow
33216         warning for non-static initializers.
33217
33218 2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>
33219
33220         * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
33221         m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
33222         rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
33223         Always use set_unique_reg_note to add REG_EQUAL notes.
33224
33225 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
33226
33227         Revert:
33228         2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
33229
33230         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
33231         * cfgbuild.c (find_basic_blocks): Likewise.
33232         * cfgrtl.c (rtl_create_basic_block): Likewise.
33233         * function.c (temp_slots_at_level): Likewise.
33234         * reg-stack.c (stack_regs_mentioned): Likewise.
33235         * regclass.c (allocate_reg_info): Likewise.
33236         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
33237         set_bb_for_stmt, move_block_to_fn): Likewise.
33238         * tree-complex.c (tree_lower_complex): Likewise.
33239         * vec.h (VEC_safe_grow_cleared): New.
33240
33241 2007-01-02  Ian Lance Taylor  <iant@google.com>
33242
33243         * c-common.c (c_common_truthvalue_conversion): When warning about
33244         using an assignment as a truth value, set TREE_NO_WARNING.
33245
33246 2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
33247
33248         PR middle-end/7651
33249         * c.opt (Wold-style-declaration): New.
33250         * doc/invoke.texi (C-only Warning Options): New.
33251         (Wold-style-declaration): Document it.
33252         (Wextra): Enabled by -Wextra.
33253         * c-opts.c (c_common_post_options): Enabled by -Wextra.
33254         * c-decl.c (declspecs_add_scspec): Replace -Wextra with
33255         -Wold-style-declaration.
33256
33257 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
33258
33259         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
33260         * cfgbuild.c (find_basic_blocks): Likewise.
33261         * cfgrtl.c (rtl_create_basic_block): Likewise.
33262         * function.c (temp_slots_at_level): Likewise.
33263         * reg-stack.c (stack_regs_mentioned): Likewise.
33264         * regclass.c (allocate_reg_info): Likewise.
33265         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
33266         set_bb_for_stmt, move_block_to_fn): Likewise.
33267         * tree-complex.c (tree_lower_complex): Likewise.
33268         * vec.h (VEC_safe_grow_cleared): New.
33269
33270 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
33271
33272         * c-common.c (c_common_nodes_and_builtins): Since variants of
33273         void_type_node get built before it is given a name, we need to
33274         give those variants the name, too.
33275         (complete_array_type): We need to work with the canonical main
33276         type of the array, from which we will build the qualified version.
33277         * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
33278         * print-tree.c (print_node): Display canonical type information
33279         for each type.
33280         * stor-layout.c (layout_type): When we don't know the
33281         alignment of a type for which we're building an array, we end up
33282         guessing wrong, so make the type require structural equality.
33283         * tree.c (make_node_stat): When we build a new type, it is its
33284         own canonical type.
33285         (build_type_attribute_qual_variant): When building an attribute
33286         variant, its canonical type is the non-attribute variant. However,
33287         if the attributes are target-dependent and they differ, we need to
33288         use structural equality checks for this type.
33289         (build_qualified_type): A qualified type is not equivalent to its
33290         unqualified variant; set the canonical type appropriately.
33291         (build_distinct_type_copy): When building a distinct type from
33292         another type, the new type is its own canonical type.
33293         (build_variant_type_copy): When building a new type variant, we
33294         assume that it is equivalent to the original type.
33295         (build_pointer_type_for_mode): When building a pointer type, also
33296         build a canonical type pointer.
33297         (build_reference_type_for_mode): When building a reference type,
33298         also build a canonical type reference.
33299         (build_index_type): When we can't hash an index type (e.g.,
33300         because its maximum value is negative), the index type requires
33301         structural equality tests.
33302         (build_array_type): Build the canonical form of an array type.
33303         (build_function_type): Function types require structural equality,
33304         because they contain default arguments, attributes, etc.
33305         (build_method_type_directly): Ditto for method types.
33306         (build_offset_type): Build the canonical offset type.
33307         (build_complex_type): Build the canonical vector type.
33308         (make_vector_type): Build the canonical vector type.
33309         * tree.h (TYPE_CANONICAL): New.
33310         (TYPE_STRUCTURAL_EQUALITY_P): New.
33311         (SET_TYPE_STRUCTURAL_EQUALITY): New.
33312         (struct tree_type): Added "canonical" field.
33313         * params.h (VERIFY_CANONICAL_TYPES): New.
33314         * doc/c-tree.texi (TYPE_CANONICAL): Document.
33315         (TYPE_STRUCTURAL_EQUALITY_P): Document.
33316         (SET_TYPE_STRUCTURAL_EQUALITY): Document.
33317         * doc/invoke.texi (verify-canonical-types): Document --param
33318         parameter for verifying canonical types.
33319
33320 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
33321
33322         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
33323         powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
33324         powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
33325         powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
33326         tm_file.
33327         * config/rs6000/e500.h: New.
33328         * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
33329         TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
33330         Remove.
33331         * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
33332         TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
33333         TARGET_E500_DOUBLE): Remove.
33334         * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
33335         TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
33336         * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
33337         * config/rs6000/rs6000.c (rs6000_override_options): Use
33338         CHECK_E500_OPTIONS.
33339
33340 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
33341
33342         * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
33343         TARGET_E500_DOUBLE), not TARGET_E500, for %y.
33344         (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
33345         rs6000_emit_cmove): Don't check TARGET_E500.
33346         * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
33347         sordered): Don't check TARGET_E500.
33348
33349 2007-01-01  Eric Christopher  <echristo@apple.com>
33350
33351         * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
33352         HARD_REGISTER_NUM_P.
33353
33354 2007-01-01  Roger Sayle  <roger@eyesopen.com>
33355
33356         * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
33357         "X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
33358         has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
33359         eq/ne Y".
33360
33361 2007-01-01  Mike Stump  <mrs@apple.com>
33362
33363         * configure.ac: Remove support for building with Apple's gcc-3.1.
33364
33365 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
33366
33367         PR middle-end/30311
33368         * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
33369         REG is a hard register.  Do not modify REG before calling
33370         subreg_nregs.
33371         * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
33372         multiple of the size of YMODE for certain lowpart cases.
33373
33374 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
33375
33376         PR middle-end/30253
33377         * gimplify (voidify_wrapper_expr): Update for
33378         GIMPLE_MODIFY_STMT.
33379
33380 2007-01-01  Andreas Schwab  <schwab@suse.de>
33381
33382         PR target/29166
33383         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
33384         save of BR0 in extra_spill_size instead of spill_size.
33385         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
33386         area.
33387         (ia64_expand_epilogue): Restore BR0 from its new location.
33388
33389 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
33390
33391         * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
33392         Use a temporary variable if the left hand side is not a gimple
33393         register.
33394
33395 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
33396
33397         * gimplify.c (gimplify_return_expr): Make the temporary variable
33398         for the return expression, a gimple register variable.
33399
33400 2007-01-01  Jan Hubicka  <jh@suse.cz>
33401
33402         * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
33403         INSN_LIST.
33404
33405 2007-01-01  Mike Stump  <mrs@apple.com>
33406
33407         * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
33408         .literal16.
33409         * config/darwin.c (machopic_select_rtx_section): Use
33410         HAVE_GAS_LITERAL16.
33411         (darwin_mergeable_constant_section): Likewise.
33412         * configure: Regenerate.
33413         * config.in: Regenerate.
33414
33415 2007-01-01  Jan Hubicka  <jh@suse.cz>
33416             Andrew Pinski  <pinskia@gmail.com>
33417
33418         * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
33419         before starting IPA passes.