OSDN Git Service

PR tree-optimization/32681
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2
3         PR tree-optimization/32681
4         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
5         saved in second_edge->aux when first_bb is a loop header.
6
7 2007-07-09  Jan HUbicka  <jh@suse.cz>
8
9         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
10
11 2007-07-09  Richard Guenther  <rguenther@suse.de>
12
13         * c-decl.c (start_function): Do not promote return type.
14
15 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
16
17         * function.c (do_warn_unused_parameter): Do not warn if
18         TREE_NO_WARNING is set.
19
20 2007-07-08  Andreas Schwab  <schwab@suse.de>
21
22         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
23
24 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
25
26         Revert this patch:
27         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
28
29         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
30         apply to assembly language, too.
31         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
32
33 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
34
35         Revert (note the sccvn portions are *not* reverted)
36         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
37
38         Fix PR tree-optimization/23488
39
40         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
41         handles.
42         * tree-flow-inline.h (get_value_handle): Ditto.
43         * tree-ssa-pre.c (decl_vh_map): New.
44         (decl_node_pool): New.
45         (can_value_number_operation): Support DECL_P.
46         (can_PRE_operation): Ditto.
47         (create_expression_by_pieces): Ditto.
48         (find_existing_value_expr): Modify to differnetiate between
49         addressing and top level.
50         (create_value_handle_for_expr): Handle DECL's.
51         (poolify_tree): Ditto.
52         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
53         (make_values_for_stmt): Handle DECL's properly.
54         (init_pre): Reorg to not init useless things during FRE.
55         (fini_pre): Ditto.
56         * tree-flow.h: Include pointer-set.h.
57         (decl_vh_map): Declare.
58         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
59
60 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
61
62         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
63         the constraint description.
64         * doc/md.texi: Update documentation of AVR constraints.
65
66 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
67
68         * auto-inc-dec.c, config/arm/arm.c,
69         config/m32r/constraints.md, config/mips/mips.md,
70         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
71         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
72         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
73         typos.  Follow spelling conventions.
74         * doc/invoke.texi, doc/rtl.texi: Fix typos.
75
76         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
77         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
78
79         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
80         realloc_vuse): Remove.
81         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
82         and realloc_vuse.
83
84 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
85
86         Fix PR tree-optimization/23488
87
88         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
89         (try_to_simplify): Ditto.
90         (visit_use): Ditto.
91         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
92         handles.
93         * tree-flow-inline.h (get_value_handle): Ditto.
94         * tree-ssa-pre.c (decl_vh_map): New.
95         (decl_node_pool): New.
96         (can_value_number_operation): Support DECL_P.
97         (can_PRE_operation): Ditto.
98         (create_expression_by_pieces): Ditto.
99         (find_existing_value_expr): Modify to differnetiate between
100         addressing and top level.
101         (create_value_handle_for_expr): Handle DECL's.
102         (poolify_tree): Ditto.
103         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
104         (make_values_for_stmt): Handle DECL's properly.
105         (init_pre): Reorg to not init useless things during FRE.
106         (fini_pre): Ditto.
107         * tree-flow.h: Include pointer-set.h.
108         (decl_vh_map): Declare.
109         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
110                 
111 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
112
113         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
114         apply to assembly language, too.
115         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
116
117 2007-07-06  Ian Lance Taylor  <iant@google.com>
118             Zack Weinberg  <zackw@panix.com>
119
120         PR middle-end/32441
121         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
122
123 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
124
125         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
126         (prefetch): Likewise if "pref" would be used.
127
128 2007-07-06  Josh Conner  <jconner@apple.com>
129
130         PR middle-end/32602
131         PR middle-end/32603
132         * calls.c (store_one_arg): Handle arguments which are partially
133         on the stack when detecting argument overlap.
134
135 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
136
137         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
138         chosen during find_reloads.
139
140 2007-07-06  Richard Guenther  <rguenther@suse.de>
141
142         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
143         TYPE_ARG_TYPES for verification of argument types.  Use
144         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
145         parameters as variable arguments.
146
147 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
148
149         * libgcc2.h (word_type): Type definition removed.
150         (cmp_return_type, shift_count_type): Type definitions added.
151         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
152         replaced with shift_count_type.
153         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
154         cmp_return_type.
155         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
156         changed from word_type to Wtype.
157         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
158         replaced with shift_count_type.
159         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
160         cmp_return_type.
161         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
162         and libgcc_shift_count attribute added.
163         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
164         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
165         (TARGET_INITIALIZER): New target hooks added.
166         * targhooks.c (default_libgcc_cmp_return_mode,
167         default_libgcc_shift_count_mode): Default implementations for the new
168         target hooks added.
169         * targhooks.h (default_libgcc_cmp_return_mode,
170         default_libgcc_shift_count_mode): Function prototypes added.
171         * target.h (struct gcc_target): Fields for the new target hooks added.
172         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
173         as library call.
174         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
175         library call.
176
177         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
178         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
179
180         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
181         s390_libgcc_shift_count_mode): Functions added.
182         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
183         Target hooks defined.
184
185 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
186
187         * config/mips/mips.c (compute_frame_size): Restore the original
188         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
189         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
190         Document why the difference is needed.
191
192 2007-07-06  Richard Guenther  <rguenther@suse.de>
193
194         * c-common.c (boolean_increment): Use correctly typed
195         constant.
196
197 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
198
199         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
200         the topmost argument register is not also included in the save mask.
201         (mips16e_collect_argument_save_p): Take a pointer to the argument
202         register, rather than a pointer to the number of arguments.
203         (mips16e_collect_argument_saves): Only include argument saves
204         that aren't in the register mask.
205
206 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
207
208         PR rtl-optimization/32450
209         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
210         to ensure that instructions are not moved into the prologue when
211         profiling is on.  Remove unused prologue_end variable.
212         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
213         as a scheduling barrier.
214
215 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
216
217         PR debug/23551
218         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
219         Disregard DECL_FROM_INLINE.
220
221 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
222
223         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
224         IORing with a constant.
225
226 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
227
228         PR rtl-optimization/32475
229         * df-scan.c (df_def_record_1): Add a use of the stack pointer
230         for every definition of the stack pointer.
231
232 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
233
234         * arm.c (vfp3_const_double_index): Copy signed results of
235         REAL_VALUE_TO_INT into unsigned vars.
236
237 2007-07-05  Richard Guenther  <rguenther@suse.de>
238
239         PR middle-end/32639
240         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
241         FUNCTION_TYPE.
242         * tree-ssa.c (useless_type_conversion_p): Check canonical
243         types early.
244
245 2007-07-05 Anatoly Sokolov <aesok@post.ru>
246
247         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
248         zero_extendhisi2): Change to define_insn_and_split. 
249         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
250
251 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
252
253         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
254         pass_match_asm_constraints): New.
255         * passes.c (init_optimization_passes): Add new pass.
256         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
257         * function.h (struct function): Add has_asm_statement bit.
258         (current_function_has_asm_statement): New.
259         * tree-pass.h (pass_match_asm_constraints): New.
260
261 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
262
263         * config/mips/mips.c (mips_file_start): Avoid declaration
264         after code.
265
266 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
267
268         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
269
270 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
271
272         * rtl.def (NOTE): Change print format string to print
273         operand 5 as a note insn name.
274
275 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
276             David Ung  <davidu@mips.com>
277
278         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
279         * doc/invoke.texi: (MIPS Options): Document them.
280
281 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
282             David Ung  <davidu@mips.com>
283
284         Add support for SmartMIPS ASE.
285
286         * optabs.c (expand_binop_directly): New, broken out from...
287         (expand_binop): Here.  Make it try rotating in the other
288         direction even when the second operand isn't constant.
289         * config/mips/mips.md (*lwxs): New.
290         * config/mips/mips.opt (msmartmips): New.
291         * config/mips/mips.c (mips_lwxs_address_p): New.
292         (mips_rtx_costs): Make it recognize scaled indexed addressing.
293         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
294         __mips_smartmips when compiling for TARGET_SMARTMIPS.
295         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
296         (ISA_HAS_LWXS): New.
297         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
298         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
299         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
300         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
301         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
302         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
303         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
304
305 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
306
307         * tree-vectorizer.c (new_loop_vec_info): Initialize
308         LOOP_VINFO_COST_MODEL_MIN_ITERS.
309         * tree-vectorizer.h (_loop_vec_info): Added new filed
310         min_profitable_iters.
311         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
312         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
313         * tree-vect-analyze.c (vect_analyze_operations): Set
314         LOOP_VINFO_COST_MODEL_MIN_ITERS.
315         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
316         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
317         Fix calculation of peel_iters_prologue. Move consideration of epilogue
318         and prologue cost to after they are computed.
319         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
320         TARG_VEC_STMT_COST.
321         (vect_model_simple_cost): Takes additional argument dt. Consider cost
322         of creating vectors from scalars according to dt.
323         (vect_model_store_cost): Likewise.
324         (vectorizable_call): Use dt array instead of scalar dt. Call
325         vect_model_simple_cost with additional argument dt.
326         (vectorizable_assignment): Likewise.
327         (vectorizable_operation): Likewise.
328         (vectorizable_type_demotion): Likewise.
329         (vectorizable_type_promotion): Likewise.
330         (vectorizable_store): Use dt array instead of scalar dt. Call
331         vect_model_store_cost with additional argument dt.
332         (vect_do_peeling_for_loop_bound): Don't call
333         vect_estimate_min_profitable_iters. Instead, lookup
334         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
335         "may not be profitable".
336
337 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
338
339         PR testsuite/32014
340         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
341         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
342         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
343         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
344
345 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
346
347         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
348         addressing modes cheaper.
349
350 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
351
352         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
353         (dw_ranges_struct): Rename block_num to num.  Adjust.
354         (dw_ranges_by_label_struct): New.
355         (ranges_by_label, ranges_by_label_allocated,
356         ranges_by_label_in_use): New variables.
357         (add_ranges_num): Factored most of the code out of...
358         (add_ranges): ... this one.  Rewrite in terms of the former.
359         (add_ranges_by_labels): New.
360         (output_ranges): Output by-label ranges.
361         (dwarf2out_finish): Output range for multiple-section
362         compile_unit.  Output standard DW_AT_low_pc in addition to
363         unexpected DW_AT_entry_pc.
364
365 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
366
367         PR tree-optimization/32604
368         PR tree-optimization/32606
369
370         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
371         (compute_antic_safe): Removed.
372         (ANTIC_SAFE_LOADS): Ditto.
373         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
374         (execute_pre): Don't call compute_antic_safe.
375         (vuse_equiv): New function.
376         (make_values_for_stmt): Use it
377         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
378         not always true.
379
380 2007-07-04 Anatoly Sokolov <aesok@post.ru>
381
382         PR target/31331
383         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
384         rather than a decl. 
385         (avr_attribute_table): Make "naked" attribute apply to function types
386         rather than to decls.
387         (avr_handle_fntype_attribute): New function.
388
389 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
390
391         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
392         after \.
393
394 2007-07-04  David Ung  <davidu@mips.com>
395             Joseph Myers  <joseph@codesourcery.com>
396
397         * config/mips/mips.md (type): Add logical, signext and move.
398         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
399         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
400         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
401         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
402         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
403         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
404         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
405         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
406         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
407         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
408         movv2sf_hardfloat_64bit): Use the new types.
409         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
410         *movdf_softfloat, *movdf_mips16): Use "multi".
411         (extendqihi2): Replace with a define_expand.
412         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
413         Based on extend<SHORT:mode><GPR:mode>2 patterns.
414         * config/mips/74k.md (r74k_int_logical): New reservation and
415         bypasses.
416         (r74k_int_arith): Remove "slt".
417         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
418         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
419         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
420         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
421         reservations for "arith".
422
423 2007-07-04  Richard Guenther  <rguenther@suse.de>
424
425         * tree-ssa.c (useless_type_conversion_p): Add handling for
426         scalar float and vector types.  Only call the types_compatible_p
427         langhook for aggregate types as last resort.  Follow the
428         rules.
429
430 2007-07-04  Richard Guenther  <rguenther@suse.de>
431
432         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
433         the same as NOP_EXPR.
434
435 2007-07-04  Nick Clifton  <nickc@redhat.com>
436
437         * target.h (struct gcc_target): Add target_help field.
438         * target-def.h (TARGET_HELP): New.
439         (TARGET_INITIALIZER): Use TARGET_HELP.
440         * opts.c (command_handle_option): Invoke target_help function, if
441         defined, when the user has specified --target-help on the command
442         line.
443         * doc/invoke.texi: Mention that --target-help might print
444         additional information.
445         * doc/tm.texi: Document TARGET_HELP hook.
446
447         * arm.c (TARGET_HELP): Override default definition.
448         (arm_target_help): New - display a wrapped list of cores and
449         architectures supported.
450
451 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
452
453         * config/gcc/v850/v850.c (expand_prologue): Make sure
454         GEN_INT() argument is sign extended rather than zero extended.
455         (expand_epilogue): Likewise.
456         (output_move_double): Delete.
457         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
458         * config/gcc/v850/v850.md (movdi): Delete.
459         (*movdi_internal): Delete.
460         (movdf): Delete.
461         (*movdf_internal): Delete.
462
463 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
464
465         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
466         unless compiling RTP PIC.
467
468 2007-07-04  Richard Guenther  <rguenther@suse.de>
469
470         PR tree-optimization/32482
471         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
472         original ssa name if we didn't find a shift expression.
473         Fix shift constant for bit zero test.
474
475 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
476
477         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
478
479 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
480
481         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
482         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
483         * config/arm/vxworks.h (ASM_SPEC): Delete.
484         (SUBTARGET_EXTRA_ASM_SPEC): Define.
485
486 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
487
488         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
489         (DDR_REVERSED_P): New.
490         * tree-data-ref.c (initialize_data_dependence_relation,
491         build_classic_dist_vector): Set DDR_REVERSED_P.
492
493 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
494
495         PR middle-end/32457
496         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
497         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
498         init_omega_for_ddr_1): Use non conservative number of iterations
499         estimations.
500         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
501         (analyze_siv_subscript): Remove FIXME and reinitialization of 
502         last_conflicts to chrec_dont_know.
503         * testsuite/gfortran.dg/vect/pr32457.f90: New.
504
505 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
506
507         * tree.c (maybe_canonicalize_argtypes): Improve description.
508
509 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
510
511         * tree.c (maybe_canonicalize_argtypes): New.
512         (build_function_type): Set canonical type.
513         (build_method_type_directly): Ditto.
514         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
515         properly.
516
517 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
518
519         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
520         like PLUS_EXPR.
521         (rewrite_use_nonlinear_expr): Likewise.
522
523 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
524
525         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
526
527 2007-07-04  Ben Elliston  <bje@au.ibm.com>
528
529         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
530         of this file.
531
532         * c-objc-common.c (c_types_compatible_p): Fix indentation.
533
534         * doc/tm.texi (Run-time Target): Capitalise "CPU".
535         (Exception Handling): Likewise.
536
537 2007-07-03  Jan Hubicka  <jh@suse.cz>
538
539         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
540
541 2007-07-03  Eric Christopher  <echristo@apple.com>
542
543         * doc/cppopts.texi: Add conflicting option note to -dM.
544         * doc/invoke.texi: Add note about possible conflicts with
545         -E for -dCHARS and note that -dM will not produce
546         any results if there is no machine dependent reorg.
547         
548 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
549
550         * tree.h (DECL_ALIGN): Back out previous change.
551
552 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
553
554         * configure.ac: Test for .dtprelword support on MIPS.
555         * configure, config.in: Regenerate.
556         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
557         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
558
559 2007-07-03  Julian Brown  <julian@codesourcery.com>
560
561         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
562         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
563         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
564         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
565         capability.
566         (all_fpus): Add FPUTYPE_VFP3.
567         (fp_model_for_fpu): Add VFPv3 field.
568         (arm_rtx_costs_1): Give cost to VFPv3 constants.
569         (vfp3_const_double_index): New function. Return integer index of
570         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
571         isn't suitable.
572         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
573         and argument represents a valid RTX for a VFPv3 constant.
574         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
575         two instructions.
576         (vfp_emit_fstmd): Similar, for fstmd.
577         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
578         constants, represented as integer indices.
579         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
580         VFP_REGNO_OK_FOR_DOUBLE macros.
581         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
582         (arm_file_start): Set float-abi attribute for VFPv3, and output
583         correct ".fpu" assembler directive.
584         (arm_dbx_register_numbering): Add FIXME.
585         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
586         (fputype): Add FPUTYPE_VFP3.
587         (FIXED_REGISTERS): Add 32 registers for D16-D31.
588         (CALL_USED_REGISTERS): Likewise.
589         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
590         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
591         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
592         (D7_VFP_REGNUM): New.
593         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
594         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
595         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
596         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
597         (REG_ALLOC_ORDER): Adjust for VFPv3.
598         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
599         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
600         VFP_LO_REGS, VFP_HI_REGS.
601         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
602         (IS_VFP_CLASS): Define macro.
603         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
604         IS_VFP_CLASS.
605         (REGISTER_MOVE_COST): Likewise.
606         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
607         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
608         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
609         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
610         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
611         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
612         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
613         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
614         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
615         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
616         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
617         where appropriate for single-word registers.
618         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
619         As above. Fix type attributes.
620         * config/arm/constraints.md (register_contraint "t"): Define.
621         (register_constraint "w"): Change to D0-D15, or D0-D31 for
622         VFPv3/NEON.
623         (register_constraint "x"): Define.
624         (constraint "Dv"): Define.
625
626 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
627
628         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
629
630 2007-07-03  Tom Tromey  <tromey@redhat.com>
631
632         * c-parser.c (objc_pq_context): Removed.
633         (objc_need_raw_identifier): Likewise.
634         (c_parser) <objc_pq_context>: New field.
635         <objc_need_raw_identifier>: Likewise.
636         (OBJC_NEED_RAW_IDENTIFIER): Removed.
637         (c_lex_one_token): Update.
638         (c_parser_objc_protocol_definition): Update.
639         (c_parser_objc_method_definition): Update.
640         (c_parser_objc_methodproto): Update.
641         (c_parser_declspecs): Update.
642
643 2007-07-03  David Ung  <davidu@mips.com>
644
645         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
646
647 2007-07-03  David Ung  <davidu@mips.com>
648             Richard Sandiford  <richard@codesourcery.com>
649
650         * doc/invoke.texi: Document -march=74kf3_2.
651         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
652         (TUNE_74K): Check for it.
653         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
654         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
655         * config/mips/mips.md (cpu): Add 74kf3_2.
656         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
657         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
658         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
659         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
660         74kf3_2 to the CPU list.
661         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
662         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
663         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
664         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
665         (r74kf3_2_fxfer_from_c1): New insn reservations.
666
667 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
668             David Ung  <davidu@mips.com>
669
670         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
671         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
672         and 74k[fx].  Document aliases for the new options.
673         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
674         (PROCESSOR_24KF2_1): ...this.
675         (PROCESSOR_24KX): Rename to...
676         (PROCESSOR_24KF1_1): ...this.
677         (PROCESSOR_74KF): Rename to...
678         (PROCESSOR_74KF2_1): ...this.
679         (PROCESSOR_74KX): Rename to...
680         (PROCESSOR_74KF1_1): ...this.
681         (TUNE_74K): Update PROCESSOR_* names.
682         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
683         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
684         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
685         (mips_rtx_cost_data): Update processor names in comments.
686         (mips_issue_rate): Update PROCESSOR_* names.
687         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
688         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
689         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
690         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
691         Update cpu attribute names.
692         (r24k_fpu_iss): Rename this reservation to...
693         (r24kf2_1_fpu_iss): ...this and update all uses.
694         (r24kx_fpu_iss): Rename this reservation to...
695         (r24kf1_1_fpu_iss): ...this and update all uses.
696         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
697         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
698         Update cpu attribute names.
699
700 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
701
702         * config/m32r/constraints.md: New file.
703         * config/m32r/m32r.c: Include tm-constrs.h.
704         (small_data_operand): Use satisfies_constraint_* instead of macro.
705         (addr24_operand, gen_compare): Likewise.
706         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
707         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
708         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
709         EXTRA_CONSTRAINT): Likewise.
710         * config/m32r/m32r.md: Include constraints.md.
711         (*movsi_insn): Use satisfies_constraint_* instead of macro.
712         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
713         * config/m32r/predicates.md (conditional_move_operand): Likewise.
714         (two_insn_const_operand, int8_operand, uint16_operand,
715         reg_or_int16_operand, reg_or_uint16_operand,
716         reg_or_cmp_int16_operand, cmp_int16_operand,
717         seth_add3_operand): Likewise.
718
719 2007-07-03  Eric Christopher  <echristo@gmail.com>
720
721         * libgcc2.h: Conditionally declare __bswapsi2 and
722         __bswapdi2.
723         
724 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
725
726         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
727         defined.
728
729 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
730
731         PR target/28307
732         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
733         (__gthrw_pragma): Provide default definition.
734         (__gthrw2): Use it.
735         * gthr-posix.c (__gthrw_pragma): Define.
736
737 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
738
739         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
740         before declaring inequality.
741
742 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
743
744         * combine.c (recog_for_combine): Log the success or failure of
745           matching new insn patterns against the machine description in
746           detailed dumps.
747
748 2007-07-03  Revital Eres  <eres@il.ibm.com>
749
750         * ddg.c (print_sccs): New function.
751         (check_sccs): New function.
752         (create_ddg_all_sccs): Use it.
753         * ddg.h (print_sccs): Declare.
754         * modulo-sched.c (sms_order_nodes): Call print_sccs.
755
756 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
757
758         * targhooks.h (default_mode_for_suffix): New function declaration.
759         * targhooks.c (default_mode_for_suffix): New default target hook.
760         * target.h (struct c): New structure in the targetm struct.
761         (mode_for_suffix): New target hook as part of struct c.
762         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
763         default_mode_for_suffix.
764         (TARGET_C): New define.
765         * c-lex.c: Include "target.h".
766         (interpret_float): Use targetm.c.mode_for_suffix to determine
767         the mode for a given non-standard suffix.
768         Makefile.in (c-lex.o): Depend on $(TARGET_H).
769
770         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
771         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
772
773         * doc/extend.texi (Floating Types): New node.  Document __float80 and
774         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
775
776 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
777
778         PR target/32506
779         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
780         predicate instead of target_operand.
781         (divsi3_i1_media, divsi3_media_2): Likewise.
782
783 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
784
785         * tree.h (alias_sets_might_conflict_p): Rename into
786         alias_sets_must_conflict_p.
787         * alias.c (alias_sets_might_conflict_p): Likewise.
788         (alias_sets_conflict_p): Use it.
789         (objects_must_conflict_p): Likewise.
790         * c-common.c (strict_aliasing_warning): Adjust.
791
792 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
793
794         * rtlhooks.c (gen_lowpart_if_possible): Check for
795         invalid subreg before calling gen_lowpart_SUBREG.
796
797 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
798
799         * config/darwin9.h: Add copyright notice.
800         (LINK_COMMAND_SPEC): Add comment.
801         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
802         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
803         DARWIN_LIBSYSTEM_HAS_UNWIND.
804
805 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
806
807         PR libgomp/32468
808         * omp-low.c (check_combined_parallel): New function.
809         (lower_omp_parallel): Call it via walk_stmts, set
810         OMP_PARALLEL_COMBINED if appropriate.
811         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
812         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
813         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
814         don't consider it as combined parallel.
815
816 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
817
818         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
819         (gcc_tooldir): Likewise.
820         * configure: Regenerate.
821         * Makefile.in (libsubdir_to_prefix): New variable, based on the
822         old configure.ac gcc_tooldir setting.
823         (prefix_to_exec_prefix): New variable.
824         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
825         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
826
827 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
828
829         Fix PR tree-optimization/32583
830         Fix PR tree-optimization/32584
831         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
832         (phi_translate_set): Use phi_translate directly now.
833         (make_values_for_stmt): Don't value number RHS if we already know
834         it is constant.
835
836 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
837             Jim Wilson <wilson@specifix.com>
838
839         PR target/31684
840         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
841         copy_insn.
842
843 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
844             Richard Sandiford  <richard@codesourcery.com>
845             Nigel Stephens  <nigel@mips.com>
846
847         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
848         (mips16e_output_save_restore): Declare.
849         (mips16e_save_restore_pattern_p): Likewise.
850         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
851         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
852         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
853         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
854         (BITSET_P): New global macro, extracted from...
855         (mips_for_each_saved_reg): ...here.
856         (mips16e_save_restore_info): New struct.
857         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
858         (mips16e_save_restore_regs): New variable.
859         (mips_split_plus, mips16e_find_first_register): New functions.
860         (mips16e_mask_registers): New function.
861         (compute_frame_size): Expand the commentary before the function.
862         Enforce the MIPS16e save and restore register range restrictions.
863         Pad the general register save area at the low end.
864         (mips16e_save_restore_reg, mips16e_build_save_restore)
865         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
866         (mips16e_output_save_restore, mips16e_collect_propagate_value)
867         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
868         New functions.
869         (mips_expand_prologue, mips_expand_epilogue): Handle
870         GENERATE_MIPS16E_SAVE_RESTORE.
871         * config/mips/mips.md (*mips16e_save_restore): New pattern.
872
873 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
874
875         PR tree-optimization/31966
876         PR tree-optimization/32533
877         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
878         "basic_block" description as its third argument.  Update function
879         calls to get destination bb from "edge" argument.  Save "cond" into
880         aux field of the edge.  Update prototype for changed arguments.
881         (if_convertible_loop_p): Clear aux field of incoming edges if bb
882         contains phi node.
883         (find_phi_replacement_condition): Operate on incoming edges, not
884         on predecessor blocks.  If there is a condition saved in the
885         incoming edge aux field, AND it with incoming bb predicate.
886         Return source bb of the first edge.
887         (clean_predicate_lists): Clean aux field of outgoing node edges.
888         (tree_if_conversion): Do not initialize cond variable. Move
889         variable declaration into the loop.
890         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
891         initializations of new_stmt, arg0 and arg1 variables.
892
893 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
894
895         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
896         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
897
898 2007-07-02  Richard Guenther  <rguenther@suse.de>
899
900         * tree-ssa.c (useless_type_conversion_p): Document
901         future intent as defining the middle-end type system.
902         Re-structure to call langhook last, group by type class,
903         mark questionable parts.
904
905 2007-07-02  Richard Guenther  <rguenther@suse.de>
906
907         * tree-flow.h (types_compatible_p): Declare.
908         * tree-ssa.c (types_compatible_p): New function.
909         * ipa-type-escape.c (discover_unique_type): Use
910         types_compatible_p instead of lang_hooks.types_compatible_p.
911         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
912         * tree-vn.c (expressions_equal_p): Likewise.
913         * tree.c (fields_compatible_p): Likewise.
914         * tree-ssa-dom.c (avail_expr_eq): Likewise.
915         (cprop_operand): Use useless_type_conversion_p instead of
916         lang_hooks.types_compatible_p.
917         * tree-inline.c (setup_one_parameter): Likewise.
918         (declare_return_variable): Likewise.
919         * tree-nrv.c (tree_nrv): Likewise.
920         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
921         (maybe_fold_offset_to_component_ref): Likewise.
922         (maybe_fold_offset_to_reference): Likewise.
923         * tree-ssa-copy.c (may_propagate_copy): Likewise.
924         (merge_alias_info): Likewise.
925         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
926         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
927         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
928         * tree-tailcall.c (find_tail_calls): Likewise.
929         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
930         * gimplify.c (canonicalize_addr_expr): Likewise.
931         (fold_indirect_ref_rhs): Likewise.
932         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
933         (cpt_same_type): Likewise.
934         (check_pointer_types_r): Swap parameters to cpt_same_type
935         where appropriate.
936         * fold-const.c (fold_convert): Revert fix for PR15988.
937         * tree-inline.c (setup_one_parameter): Instead fix it here by
938         using fold_build1 instead of fold_convert and checking for
939         error_mark_node.  Convert only if the conversion is necessary.
940
941 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
942
943         * configure.ac: Check for .gnu_attribute on Power.
944         * configure: Regenerate.
945         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
946         attribute for floating-point ABI.
947
948 2007-07-02  Ira Rosen  <irar@il.ibm.com>
949
950         PR tree-optimization/32230
951         PR tree-optimization/32477
952         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
953         address is a constant.
954
955 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
956
957         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
958         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
959         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
960         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
961         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
962         64-bit targets.  Add support for *-elfoabi*.
963         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
964         different settings if $(tm_defines) does not select the EABI.
965         (MULTILIB_EXCLUSIONS): Define in those circumstances.
966         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
967         (MIPS_ARCH_OPTION_SPEC): Likewise.
968         (MIPS_ISA_LEVEL_SPEC): Likewise.
969         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
970         * config/mips/elfoabi.h: New file.
971
972 2007-07-02  Richard Guenther  <rguenther@suse.de>
973
974         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
975         (useless_type_conversion_p): ... this.
976         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
977         (useless_type_conversion_p): ... this.
978         * builtins.c (fold_builtin_memory_op): Rename
979         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
980         * tree-cfg.c (verify_expr): Likewise.
981         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
982         * tree-ssa-ccp.c (ccp_fold): Likewise.
983         * tree-ssa-copy.c (may_propagate_copy): Likewise.
984         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
985         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
986         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
987         * tree-ssa-pre.c (eliminate): Likewise.
988         * tree-ssa.c (delete_tree_ssa): Likewise.
989         (tree_ssa_useless_type_conversion): Likewise.
990         * tree.c (build2_stat): Likewise.
991
992 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
993
994         Fix PR tree-optimization/32571
995         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
996         simplifying them.
997
998 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
999
1000         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
1001         and other expected operations explicitly, change default to
1002         gcc_unreachable. 
1003
1004 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
1005
1006         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
1007         PARALLEL.
1008         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
1009         (tls_load_dot_plus_eight): Move the label number into the unspec.
1010         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
1011
1012 2007-07-01  Andreas Schwab  <schwab@suse.de>
1013
1014         * dwarf2out.c (initial_return_save): Define only if used.
1015
1016 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
1017
1018         Unreverting Richard's Revert of:
1019
1020         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1021
1022         * dce.c (deletable_insn_p_1): New function, split out from...
1023         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1024         specially, not those inside PARALLELs.  Remove BODY argument
1025         and adjust recursive call accordingly.
1026         (prescan_insns_for_dce): Update call to delete_insn_p.
1027
1028 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
1029             Revital Eres  <eres@il.ibm.com>
1030
1031         * ddg.c (create_ddg_all_sccs): Fix missed
1032         initialization of scc_nodes.
1033
1034 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
1035
1036         PR middle-end/32559
1037         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
1038         X + ~X to 1 only for INTEGRAL_TYPE_P type.
1039
1040 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
1041
1042         * configure.ac: Check for .gnu_attribute on MIPS.
1043         * configure, config.in: Regenerate.
1044         * config/mips/mips.c (mips_file_start): If supported, output
1045         attribute for floating-point ABI.
1046
1047 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
1048
1049         PR target/32433
1050         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
1051         (ffs_cmove): New expander to expand using ctz pattern.
1052         (*ffs_cmove): Remove pattern.
1053         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
1054         (ffsdi2): Expand using ctz pattern.
1055         (*ffs_rex64): Remove pattern.
1056
1057 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1058
1059         PR rtl-optimization/32296
1060         * pa.md (return): Delete pattern.
1061         (return_internal): Remove "(const_int 1)" from pattern.
1062         (epilogue): Use return_internal pattern for trivial returns.
1063         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
1064         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
1065
1066 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
1067
1068         * tree-ssa-pre.c (is_exception_related): New function
1069         (can_value_number_operation): Use it.
1070
1071 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
1072         
1073         Fix PR tree-optimization/32540
1074         Fix PR tree-optimization/31651
1075
1076         * tree-ssa-sccvn.c: New file.
1077
1078         * tree-ssa-sccvn.h: Ditto.
1079         
1080         * tree-vn.c: Include tree-ssa-sccvn.h
1081         (val_expr_paid_d): Removed.
1082         (value_table): Ditto.
1083         (vn_compute): Ditto.
1084         (val_expr_pair_hash): Ditto.
1085         (val_expr_pair_expr_eq): Ditto.
1086         (copy_vuses_from_stmt): Ditto.
1087         (vn_delete): Ditto.
1088         (vn_init): Ditto.
1089         (shared_vuses_from_stmt): Ditto.
1090         (print_creation_to_file): Moved up.
1091         (sort_vuses): Ditto.
1092         (sort_vuses_heap): Ditto.
1093         (set_value_handle): Make non-static.
1094         (make_value_handle): Ditto.
1095         (vn_add): Rewritten to use sccvn lookups.
1096         (vn_add_with_vuses): Ditto.
1097         (vn_lookup): Ditto (and second argument removed).
1098         (vn_lookup_with_vuses): Ditto.
1099         (vn_lookup_or_add): Ditto (and second argument removed);
1100         (vn_lookup_or_add_with_vuses): Ditto.
1101         (vn_lookup_with_stmt): New.
1102         (vn_lookup_or_add_with_stmt): Ditto.
1103         (create_value_handle_for_expr): Ditto.
1104
1105         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
1106         (seen_during_translate): New function.
1107         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
1108         (phi_trans_add): Ditto.
1109         (constant_expr_p): FIELD_DECL is always constant.
1110         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
1111         Use constant_expr_p.
1112         Avoid infinite recursion on mutually valued expressions.
1113         Change callers of vn_lookup_or_add.
1114         (phi_translate): New function.
1115         (compute_antic_safe): Allow phi nodes.
1116         (create_component_ref_by_pieces): Update for FIELD_DECL change.
1117         (find_or_generate_expression): Rewrite slightly.
1118         (create_expression_by_pieces): Updated for vn_lookup_or_add
1119         change.
1120         Update VN_INFO for new names.
1121         (insert_into_preds_of_block): Update for new names.
1122         (add_to_exp_gen): New function.
1123         (add_to_sets): Use vn_lookup_or_add_with_stmt.
1124         (find_existing_value_expr): Rewrite to changed vn_lookup.
1125         (create_value_expr_from): Ditto, and use add_to_exp_gen.
1126         (try_look_through_load): Removed.
1127         (try_combine_conversion): Ditto.
1128         (get_sccvn_value): New function.
1129         (make_values_for_phi): Ditto.
1130         (make_values_for_stmt): Ditto.
1131         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
1132         SCCVN.
1133         (init_pre): Update for SCCVN changes.
1134         (fini_pre): Ditto.
1135         (execute_pre): Ditto.
1136
1137         * tree-flow.h (make_value_handle): Declare.
1138         (set_value_handle): Ditto.
1139         (sort_vuses_heap): Ditto.
1140         (vn_lookup_or_add_with_stmt): Ditto.
1141         (vn_lookup_with_stmt): Ditto.
1142         (vn_compute): Remove.
1143         (vn_init): Ditto.
1144         (vn_delete): Ditto.
1145         (vn_lookup): Update arguments.
1146
1147         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
1148         (tree-vn.o): Ditto.
1149         (tree-ssa-sccvn.o): New.
1150         (OBJS-common): Add tree-ssa-sccvn.o
1151         
1152 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1153
1154         PR c/4076
1155         * c-typeck.c (build_external_ref): Don't mark as used if called
1156         from itself.
1157         * calls.c (rtx_for_function_call): Likewise.
1158         
1159 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
1160
1161         Revert:
1162
1163         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1164
1165         * dce.c (deletable_insn_p_1): New function, split out from...
1166         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1167         specially, not those inside PARALLELs.  Remove BODY argument
1168         and adjust recursive call accordingly.
1169         (prescan_insns_for_dce): Update call to delete_insn_p.
1170
1171 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
1172
1173         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
1174         (try_combine): Move potential calls to undo_all() so they happen
1175         before we commit to using the combined insns.
1176
1177 2006-06-30  Jan Hubicka  <jh@suse.cz>
1178
1179         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
1180         code.
1181
1182 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
1183
1184         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
1185         (cgraph_remove_unreachable_nodes): Likewise.
1186         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
1187         * ipa-inline.c (update_caller_keys): Cast according to the coding
1188         conventions.
1189         (cgraph_decide_recursive_inlining): Likewise.
1190         (cgraph_decide_inlining_of_small_function): Likewise.
1191         (try_inline): Likewise.
1192         (cgraph_decide_inlining_incrementally): Likewise.
1193         * ipa-pure-const.c (get_function_state): Likewise.
1194         (scan_function): Likewise.
1195         (analyze_function): Likewise.
1196         (static_execute): Likewise.
1197         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
1198         (merge_callee_local_info): Likewise.
1199         (analyze_function): Use type safe memory macros.
1200         (static_execute): Likewise. Cast according to the coding conventions.
1201         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
1202         conventions.
1203         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
1204         names.
1205         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
1206         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
1207         variable names.
1208
1209 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1210
1211         PR middle-end/30024
1212         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
1213         for complex modes (both int and real).
1214
1215 2007-06-29  Jan Hubicka  <jh@suse.cz>
1216
1217         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
1218
1219 2007-06-29  Jan Hubicka  <jh@suse.cz>
1220
1221         PR middle-end/32372
1222         * cse.c (cse_insn): Avoid invalid sharing in between register note and
1223         the insn pattern.
1224
1225 2007-06-29  Anatoly Sokolov <aesok@post.ru>
1226
1227         PR target/32335
1228         * config/avr/avr.c: Include dataflow header file.
1229         (expand_prologue): Adjust for prologue insn change.
1230         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
1231         inside a insn.
1232
1233 2007-06-29  Richard Guenther  <rguenther@suse.de>
1234
1235         PR middle-end/32493
1236         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
1237         during type verification.
1238
1239 2007-06-29  Jan Hubicka  <jh@suse.cz>
1240
1241         * recog.c (validate_change_rtx_1): Unshare TO argument.
1242
1243 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
1244
1245         PR tree-optimization/24659
1246         * tree-vect-transform.c (vectorizable_call): Handle
1247         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
1248
1249         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
1250         * config/i386/i386.c (enum ix86_builtins)
1251         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
1252         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
1253         description.
1254         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
1255         const using def_builtin_const.
1256         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
1257         input operands in the same modes as the result.
1258         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
1259
1260 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
1261
1262         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
1263         (df_set_dead_notes_for_mw): Likewise.
1264
1265 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1266
1267         * c-common.c (pointer_int_sum): Do the negation in sizetype.
1268
1269 2007-06-28  DJ Delorie  <dj@redhat.com>
1270
1271         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
1272
1273 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
1274
1275         * doc/invoke.texi (C++ Dialect Options): Document
1276         fvisibility-ms-compat.
1277         * c.opt (fvisibility-ms-compat): New.
1278
1279 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1280
1281         PR tree-opt/32417
1282         * tree-affine.c (aff_combination_add_elt): Handle
1283         pointer addition specially.
1284
1285 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
1286
1287         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
1288         decl is non-external for AIX ABI.
1289
1290 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
1291
1292         * config/rs6000/predicates.md (current_file_function_operand):
1293         Ensure the symbol is non-external for AIX ABI.
1294
1295 2007-06-28  Nick Clifton  <nickc@redhat.com>
1296
1297         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
1298         (fdce, fdse, fpredictive-commoning): Likewise.
1299
1300 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1301
1302         PR other/31400
1303         * gcc.c (process_command): Recognize the new -static-libgfortran
1304         option.
1305
1306 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1307
1308         PR target/32418
1309         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
1310         Use a call clobbered hard reg instead of a pseudo reg.
1311
1312 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1313
1314         * config/sh/sh.md (load_gbr): Use correct operand constraint.
1315
1316 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1317
1318         PR target/32479
1319         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
1320         REG_LIBCALL and REG_RETVAL notes.
1321         (divsi3, mulsi3): Likewise.
1322         (mulhisi3): Likewise.  Use emit_libcall_block.
1323         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
1324
1325 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
1326
1327         PR rtl-optimization/32481
1328         * combine.c (adjust_for_new_dest): Rescan the changed insn.
1329
1330 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1331
1332         * dce.c (deletable_insn_p_1): New function, split out from...
1333         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1334         specially, not those inside PARALLELs.  Remove BODY argument
1335         and adjust recursive call accordingly.
1336         (prescan_insns_for_dce): Update call to delete_insn_p.
1337
1338 2007-06-27  Richard Guenther  <rguenther@suse.de>
1339
1340         PR middle-end/32492
1341         * tree.h (fold_convertible_p): Declare.
1342         * fold-const.c (fold_convertible_p): New function.
1343         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
1344         instead of lang_hooks.types_compatible_p.
1345
1346 2007-06-26  Jan Hubicka  <jh@suse.cz>
1347
1348         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
1349         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
1350         early use validate_unshare_change.
1351         (reload_combine): Likewise.
1352         * recog.c (change_t): New field unshare.
1353         (validate_change_1): Rename from validate_change; add argument unshare.
1354         (validate_change): Turn into wrapper of validate_change_1; update
1355         prototype for bools.
1356         (validate_unshare_change): New.
1357         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
1358         calls of df_insn_rescan.
1359         * recog.h (validate_change): Replace ints by bools.
1360         (validate_unshare_change): Declare.
1361
1362 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
1363
1364         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
1365         
1366 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
1367
1368         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
1369
1370 2007-06-25  Jan Hubicka  <jh@suse.cz>
1371
1372         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
1373         uninlinable call.
1374         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
1375         cgraph_decide_inlining_incrementally): Move uninlinability checks to
1376         places other call site specific checks are performed.
1377
1378 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1379
1380         PR tree-opt/32421
1381         * tree-vect-transform.c (vectorizable_operation): Convert
1382         POINTER_PLUS_EXPR over to PLUS_EXPR.
1383
1384 2007-06-25  Chao-ying Fu  <fu@mips.com>
1385
1386         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
1387         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
1388         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1389         Document GET_MODE_IBIT, and GET_MODE_FBIT.
1390
1391         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
1392         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1393         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
1394         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
1395         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
1396         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
1397         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
1398         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
1399         ALL_FIXED_POINT_MODE_P): New define.
1400         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1401         MODE_UACCUM.
1402         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
1403
1404         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
1405         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1406         MODE_VECTOR_UACCUM): New mode classes.
1407
1408         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
1409         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
1410         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
1411         USA, UDA, and UTA.
1412
1413         * genmodes.c (struct mode_data): Add ibit and fbit fields.
1414         (blank_mode): Initialize ibit and fbit.
1415         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
1416         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1417         MODE_UACCUM.
1418         (new_adjust): Change required_class to required_class_from and
1419         required_class_to for testing within a range.
1420         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1421         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1422         MODE_VECTOR_UACCUM.
1423         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
1424         (make_fixed_point_mode): New.
1425         (_ADD_ADJUST): Change C to C1 and C2.
1426         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
1427         use a range for machine classes.
1428         (ADJUST_IBIT, ADJUST_FBIT): New.
1429         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
1430         CONST_MODE_FBIT.
1431         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
1432         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1433         Emit adjustment for ibit and fbit.
1434         (emit_mode_ibit, emit_mode_fbit): New.
1435         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
1436
1437 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
1438
1439         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
1440         as the source of the set.
1441
1442 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
1443
1444         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
1445         FP_REGNO_P): Use IN_RANGE.
1446         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
1447         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
1448         (DATA_REG_P): Use DATA_REGNO_P.
1449         (FP_REG_P): Use FP_REGNO_P.
1450         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
1451         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
1452         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
1453
1454 2007-06-24  Jan Hubicka  <jh@suse.cz>
1455
1456         PR middle-end/30563
1457         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
1458
1459 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
1460
1461         PR middle-end/32461
1462         * fold-const.c (fold_binary): Strip nops of operand 0
1463         of BIT_NOT_EXPR before calling operand_equal_p.
1464         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
1465         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
1466
1467 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
1468
1469         * doc/extend.texi: Document that dllimport and dllexport imply
1470         default visibility.
1471         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
1472         imported or exported declaration, including type declarations.
1473         * c-common.c (handle_visibility_attribute): Check for conflicts
1474         with dllimport/dllexport.
1475         (c_determine_visibility): Handle dllimport/dllexport as an
1476         explicit visibility atttribute.
1477
1478 2007-06-23  Richard Guenther  <rguenther@suse.de>
1479
1480         PR tree-optimization/16876
1481         PR middle-end/29478
1482         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
1483         for CALL_EXPRs.
1484         * tree-inline.c (initialize_inlined_parameters): Do not call
1485         lang_hooks.tree_inlining.convert_parm_for_inlining.
1486         * cgraphbuild.c (initialize_inline_failed): Set inline failed
1487         reason for mismatched types.
1488         * gimplify.c (gimplify_call_expr): Verify the call expression
1489         arguments match the called function type signature.  Otherwise
1490         mark the call expression to be not considered for inlining
1491         using CALL_CANNOT_INLINE_P flag.
1492         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
1493         edges call expression.
1494         (cgraph_decide_inlining_of_small_function): Likewise.
1495         (cgraph_decide_inlining): Likewise.
1496         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
1497         Remove define.
1498         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
1499         * c-typeck.c (c_convert_parm_for_inlining): Remove.
1500         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
1501         Remove declaration.
1502         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
1503         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
1504         Remove.
1505         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1506         convert_parm_for_inlining member.
1507
1508 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
1509
1510         PR target/31152
1511         * arm.md (negscc): Match the correct operand for optimized LT0 test.
1512         Remove optimization for GT.
1513
1514 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1515
1516         PR middle-end/32437
1517         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
1518         is a PARALLEL.
1519         (prescan_insns_for_dce): Add extra parameter.
1520         
1521 2007-06-23  Jan Hubicka  <jh@suse.cz>
1522
1523         PR middle-end/31541
1524         * gimplify.c (mark_addressable): New function.
1525         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
1526
1527 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1528
1529         PR middle-end/32374
1530         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
1531
1532 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1533
1534         PR target/32413
1535         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
1536         moves between MMX/SSE registers to at least 8 units to prevent
1537         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
1538
1539 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1540
1541         * config/i386/i386.c (override_options): Correct x86_sahf
1542         setting condition.
1543
1544 2007-06-21  David Daney  <ddaney@avtrex.com>
1545
1546         PR target/32406
1547         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1548         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1549         (exception_receiver): Renamed to ...
1550         (nonlocal_goto_receiver): ... this.
1551
1552 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
1553
1554         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
1555         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
1556         partial register accesses.
1557
1558 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
1559
1560         * fold-const.c (debug_fold_checksum): Move it under
1561         ENABLE_FOLD_CHECKING.
1562
1563 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1564
1565         PR middle-end/20623
1566         * tree.h (debug_fold_checksum): Declared.
1567         * fold-const.c (build_fold_addr_expr_with_type_1): New.
1568         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
1569         build_fold_addr_expr_with_type_1.
1570         (fold_addr_expr, debug_fold_checksum): New.
1571         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
1572         (fold_unary, fold_comparison, split_address_to_core_and_offset):
1573         Use fold_addr_expr.
1574         
1575 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1576
1577         PR tree-optimization/19590
1578         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
1579         of scev is a constant.
1580         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
1581
1582 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
1583
1584         * df-problems.c (df_note_bb_compute): Made computation of live
1585         info consistent with df_lr.
1586
1587 2007-06-21  Richard Guenther  <rguenther@suse.de>
1588
1589         PR tree-optimization/32453
1590         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
1591         for pointer anti-range.
1592
1593 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1594
1595         * config/i386/i386.c (processor_target_table): Increase maximum
1596         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
1597         default 64bit.
1598
1599         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
1600         byte alignment if > 8 byte alignment is preferred.
1601         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1602
1603 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
1604
1605         PR tree-optimization/31866
1606         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
1607         if ASM_EXPR's input is not a SSA_NAME.
1608
1609         PR middle-end/32362
1610         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
1611         but decl is a global var, instead return decl.
1612         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
1613         even for is_global_var decls, if they are private in some outer
1614         context.
1615
1616 2007-06-21  Richard Guenther  <rguenther@suse.de>
1617
1618         PR tree-optimization/32451
1619         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
1620
1621 2007-06-21  Christian Bruel  <christian.bruel@st.com>
1622
1623         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
1624         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
1625         (push_regs): Changed saving order or banked registers.
1626         (sh_expand_epilogue): Likewise.
1627         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
1628         (FIRST_BANKED_REG): Likewise.
1629         (LAST_BANKED_REG): Likewise.
1630         * config/sh/sh.md (banked) New attribute.
1631         (in_delay_slot): Check banked attribute.
1632         
1633 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
1634
1635         PR tree-optimization/32075
1636         * tree-data-ref.c (subscript_dependence_tester_1, 
1637         analyze_miv_subscript, analyze_overlapping_iterations,
1638         add_distance_for_zero_overlaps, build_classic_dist_vector,
1639         subscript_dependence_tester_1, analyze_overlapping_iterations,
1640         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
1641         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
1642         to evolution_function_is_affine_multivariate_p.
1643
1644 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1645
1646         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
1647
1648 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1649
1650         PR target/32335
1651         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
1652         for TARGET_A16.
1653         * config/m32c/prologue.md (epilogue_exitd_16): New.
1654         (epilogue_reit_16): New.
1655         (epilogue_exitd): Rename to epilogue_exitd_24.
1656         (epilogue_reit): Rename to epilogue_reit_24.
1657
1658 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
1659             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1660
1661         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
1662         New counters.
1663         * haifa-sched.c (queue_to_ready): Don't requeue next insn
1664         if dbg_cnt (sched_insn) reaches the limit.
1665         (choose_ready): New parameter INSN_PTR and new return value.
1666         (schedule_block): Handle dbg_cnt (sched_insn). Handle
1667         the new return value from choose_ready.
1668         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
1669         (rest_of_handle_global_alloc): New global_alloc_at_func.
1670
1671 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
1672
1673         PR tree-optimization/25737
1674         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
1675         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
1676         * tree-flow.h (struct fieldoff): Add new field alias_set.
1677         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
1678         argument addressable_type.  Set alias_set of fieldoff.
1679         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
1680         (create_overlap_variables_for): Pass alias_set from fieldoff to
1681         create_sft.
1682         * alias.c (get_alias_set): Use alias_set from SFT if set.
1683
1684 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
1685
1686         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
1687         of a variable as an unsigned HOST_WIDE_INT integer.
1688
1689 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
1690
1691         PR rtl-optimization/32405
1692         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
1693
1694 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
1695
1696         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
1697
1698         PR middle-end/31959
1699         * builtins.c: Include diagnostic.h.
1700         (expand_builtin_expect): Make gcc_assert more permissive.
1701         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
1702
1703         PR inline-asm/32109
1704         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
1705         and !allows_mem.
1706
1707         PR middle-end/32285
1708         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
1709         if ACCUMULATE_OUTGOING_ARGS.
1710
1711 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1712
1713         * config/m68hc11/m68hc11.c: Include dataflow header file.
1714         (m68hc11_reorg): Port to dataflow.
1715
1716 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1717
1718         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
1719         (struct df_problem.free_blocks_on_set_blocks): New field.
1720         (struct dataflow.optional_p): New field.
1721         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1722         (df_live_set_all_dirty): New function.
1723         * df-scan.c (df_scan_alloc): Initialize optional_p.
1724         (problem_SCAN): Initialize free_blocks_on_set_blocks.
1725         * df-core.c (df_set_blocks): Removed use of
1726         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
1727         df_problem.free_blocks_on_set_blocks to determine which blocks are
1728         recycled.
1729         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
1730         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
1731         uses dataflow.optional_p to determine if problem should be
1732         deleted.
1733         (rest_of_handle_df_initialize): Only start live problem if 
1734         -02 or above.
1735         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1736         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
1737         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
1738         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
1739         problem_NOTE):  Initialize free_blocks_on_set_blocks.
1740         (df_lr_bb_local_compute): Recompute luids if df_live problem is
1741         not active.
1742         (df_live_set_all_dirty, df_note_alloc): New function.
1743         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
1744         df_get_live_*.
1745         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
1746         * postreload.c (reload_combine): Ditto.
1747         * cse.c (cse_extended_basic_block): Ditto.
1748         * regmove.c (mark_flags_life_zones): Ditto.
1749         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
1750         erase_matching_seqs): Ditto.
1751         * bt-load.c (compute_defs_uses_and_gen): Ditto.
1752         * integrate (allocate_initial_values): Ditto.
1753         * combine.c (reg_dead_at_p): Ditto.
1754         * resource.c (mark_target_live_regs): Ditto.
1755         * sched-rgn.c (check_live_1, update_live_1): Ditto.
1756         * config/sh/sh.c (find_r0_life_regions): Ditto.
1757         * global.c (rest_of_handle_global_alloc): Only add back df_live
1758         for -O > 1.
1759         * local-alloc.c (rest_of_handle_local_alloc): Only remove
1760         df_live for -O > 1.
1761         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
1762         df_get_live_*.
1763         (if_convert): Make sure df_live is there at -O == 1.
1764         (pass_if_after_combine): Cleanup flags.
1765         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
1766         is there at -O == 1.
1767         
1768 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
1769
1770         * config/arm/arm.c (arm_get_frame_offsets): Set
1771         offsets->locals_base to avoid negative stack size.
1772         (thumb1_expand_prologue): Assert on negative stack size.
1773
1774 2007-04-19  Sebastian Pop  <sebpop@gmail.com>
1775
1776         PR tree-optimization/32367
1777         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
1778         of the chrec has no evolution in that loop.
1779         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
1780
1781 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
1782
1783         * config/xtensa/xtensa.c: Include "df.h".
1784         (xtensa_builtin_saveregs): Use adjust_address instead of
1785         change_address.
1786         (xtensa_va_start): Invoke make_tree with sizetype for
1787         expand_builtin_saveregs and then convert the result to a pointer.
1788         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
1789         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
1790         Subtract argument size from index value as integers and then use
1791         POINTER_PLUS_EXPR to add the result to the array address.
1792         
1793 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1794
1795         PR target/32335
1796         * config/m32c/m32c.c: Include dataflow header file.
1797         (m32c_emit_prologue): Adjust for prologue insn change.
1798         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
1799         once inside a PARALLEL. Assume frame size passed in operand 0
1800         includes space to save the fb register.
1801         (prologue_enter_24): Likewise.
1802         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
1803
1804 2007-06-19  David Daney  <ddaney@avtrex.com
1805
1806         PR target/32313
1807         * config/mips/mips.md (cprestore): Mark $gp as used.
1808
1809 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1810
1811         PR target/32369
1812         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
1813         (frv_ifcvt_modify_insn): Likewise.
1814
1815 2007-06-19  Richard Guenther  <rguenther@suse.de>
1816
1817         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
1818         only handle positive offsets that fit in a HOST_WIDE_INT.
1819
1820 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
1821
1822         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
1823         result of rsqrt insn for zero input argument to avoid NaN.
1824
1825 2007-06-19  Richard Guenther  <rguenther@suse.de>
1826
1827         PR middle-end/31950
1828         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
1829
1830 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
1831
1832         PR tree-optimization/32353
1833         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
1834
1835 2007-06-19  Nick Clifton  <nickc@redhat.com>
1836
1837         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
1838
1839 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1840
1841         PR target/32389
1842         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
1843         * config/i386/i386.c (assign_386_stack_local): Assert that
1844         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
1845         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
1846         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
1847         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
1848
1849 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
1850
1851         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
1852
1853 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
1854
1855         PR rtl-optimization/32321
1856         * gcse.c (replace_store_insn): Update the note before
1857         calling emit_insn_after.
1858
1859 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
1860
1861         PR middle-end/32355
1862         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
1863         cse_main.
1864         * df-problems.c (df_note_bb_compute): Fix dumping info.
1865         
1866 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
1867
1868         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
1869         insn with emit_jump_insn.
1870
1871 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1872
1873         PR tree-optimization/32383
1874         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
1875         * targhooks.h (default_builtin_reciprocal): Update prototype.
1876         * target.h (struct gcc_target): Update builtin_reciprocal.
1877         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
1878         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
1879         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
1880         when fndecl is in BUILT_IN_MD class.
1881         (execute_convert_to_rsqrt): Ditto.
1882
1883         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
1884         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
1885         Convert BUILT_IN_SQRTF code only  when md_fn is false.
1886
1887 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1888
1889         * bt-load.c (move_btr_def): Fix the order of arguments
1890         to validate_replace_rtx.
1891
1892 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
1893
1894         * config/m68k/m68k-devices.def: Add 54450..54455.
1895
1896 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
1897
1898         PR rtl-optimization/32366
1899         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
1900         FLOAT_EXTEND]: Prevent non-scalar modes from entering
1901         significand_size.
1902
1903 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1904
1905         PR middle-end/32349
1906         * modulo-sched (generate_reg_moves): Added rescan parameter and if
1907         this is true, rescan insn being modified.
1908         (sms_schedule): Added rescan parameter.
1909         (rest_of_handle_sms): Moved freeing of dominance info to before
1910         getting out of cfg_layout.
1911         
1912 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
1913
1914         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
1915         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
1916         appropriate.
1917
1918         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
1919         FL_CF_EMAC from the entry for isac.
1920
1921         * config/m68k/predicates.md (const_call_operand): Adjust comment.
1922         (const_sibcall_operand): New.
1923         (sibcall_operand): Use it.
1924         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
1925         (m68k_isas): ISAC does not imply FPU or EMAC.
1926         (override_options): Add ISA_C logic for symbolic jump & call.
1927
1928 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1929
1930         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
1931         return mode from the builtin itself.
1932         (sparc_fold_builtin): Fix cast of zero constant.
1933
1934 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1935
1936         * targhooks.c (default_builtin_reciprocal): New default target hook.
1937         * targhooks.h (default_builtin_reciprocal): Add prototype.
1938         * hooks.c (hook_tree_tree_bool_null): Remove hook.
1939         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
1940         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
1941         default_builtin_reciprocal.
1942
1943 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1944
1945         PR middle-end/31723
1946         * hooks.c (hook_tree_tree_bool_null): New hook.
1947         * hooks.h (hook_tree_tree_bool_null): Add prototype.
1948         * tree-pass.h (pass_convert_to_rsqrt): Declare.
1949         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
1950         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
1951         and convert it to reciprocal a*rfunc(b).
1952         (execute_convert_to_rsqrt): New function.
1953         (gate_convert_to_rsqrt): New function.
1954         (pass_convert_to_rsqrt): New pass definition.
1955         * target.h (struct gcc_target): Add builtin_reciprocal.
1956         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
1957         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
1958         TARGET_BUILTIN_RECIPROCAL.
1959         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
1960
1961         * config/i386/i386.h (TARGET_RECIP): New define.
1962         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
1963         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1964         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1965         and not optimizing for size.
1966         (*rcpsf2_sse): New insn pattern.
1967         (*rsqrtsf2_sse): Ditto.
1968         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1969         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1970         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1971         and not optimizing for size.
1972         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
1973         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1974         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1975         and not optimizing for size.
1976         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
1977         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1978         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1979         and not optimizing for size.
1980         (*sse_rsqrtv4sf2): Do not export.
1981         (sqrtv4sf2): Ditto.
1982         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1983         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1984         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1985         and not optimizing for size.
1986         (sqrtv4sf2): Ditto.
1987         * config/i386/i386.opt (mrecip): New option.
1988         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
1989         (ix86_emit_swsqrtsf): Ditto.
1990         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
1991         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
1992         builtin definition.
1993         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
1994         ix86_expand_unop1_builtin.
1995         (ix86_emit_swdivsf): New function.
1996         (ix86_emit_swsqrtsf): Ditto.
1997         (ix86_builtin_reciprocal): New function.
1998         (TARGET_BUILTIN_RECIPROCAL): Use it.
1999         (ix86_vectorize_builtin_conversion): Rename from
2000         ix86_builtin_conversion.
2001         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
2002         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
2003         "i386 and x86_64 Options" section.
2004         (Intel 386 and AMD x86_64 Options): Document -mrecip.
2005
2006 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
2007             Zdenek Dvorak <dvorakz@suse.cz>
2008             Richard Guenther  <rguenther@suse.de>
2009             Kaz Kojima  <kkojima@gcc.gnu.org>
2010
2011         * tree-vrp.c (compare_values_warnv): Convert val2 to
2012         the type of val1.
2013         (extract_range_from_assert): Create
2014         POINTER_PLUS_EXPR for pointer types.
2015         (extract_range_from_binary_expr): Handle
2016         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
2017         for pointer types.
2018         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
2019         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
2020         POINTER_PLUS_EXPR as PLUS_EXPR.
2021         (number_of_iterations_lt_to_ne):
2022         For pointer types, use sizetype when
2023         creating MINUS_EXPR/PLUS_EXPRs.
2024         (assert_loop_rolls_lt): For pointer types, use sizetype when
2025         creating MINUS_EXPR/PLUS_EXPRs.
2026         (number_of_iterations_le): Likewise.
2027         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
2028         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
2029         like PLUS_EXPR and MINUS_EXPR.
2030         * tree-pretty-print.c (dump_generic_node): Handle
2031         POINTER_PLUS_EXPR.
2032         (op_prio): Likewise.
2033         (op_symbol_1): Likewise.
2034         * optabs.c (optab_for_tree_code): Likewise.
2035         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
2036         specially.
2037         * tree-tailcall.c (process_assignment): Mention
2038         POINTER_PLUS_EXPR in a TODO comment.
2039         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
2040         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
2041         not used with a pointer and an integer type.
2042         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
2043         increment using chrec_convert_rhs instead of chrec_convert.
2044         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
2045         PLUS_EXPR except for the right hand side's type will be
2046         sizetype.
2047         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
2048         (fold_used_pointer_cast): Kill.
2049         (pointer_offset_p): Kill.
2050         (fold_used_pointer): Kill.
2051         (pointer_used_p): Kill.
2052         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
2053         call fold_used_pointer.
2054         (instantiate_parameters_1): Convert the increment
2055         using chrec_convert_rhs instead of chrec_convert.
2056         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
2057         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
2058         instead of PLUS_EXPR.
2059         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
2060         PLUS_EXPR for pointers.
2061         (std_gimplify_va_arg_expr): Likewise.
2062         (fold_builtin_memory_op): Likewise.
2063         (fold_builtin_strstr): Likewise.
2064         (fold_builtin_strchr): Likewise.
2065         (fold_builtin_strrchr): Likewise.
2066         (fold_builtin_strpbrk): Likewise.
2067         (expand_builtin_memory_chk): Likewise.
2068         (fold_builtin_memory_chk): Likewise.
2069         (std_expand_builtin_va_start): Use
2070         sizetype for the call to make_tree and then convert
2071         to the pointer type.
2072         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
2073         instead of PLUS_EXPR for adding to a pointer.
2074         (std_gimplify_va_arg_expr): Use fold_build2 for
2075         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
2076         the operands to sizetype first and then cast the BIT_AND_EXPR
2077         back to the pointer type.
2078         * fold-const.c (build_range_check): Handle pointer types
2079         specially.
2080         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
2081         of PLUS_EXPR's. Make sure the offset is converted to
2082         sizetype.
2083         (try_move_mult_to_index): Strip the NOPs from the offset.
2084         Remove code argument and replace all uses with PLUS_EXPR.
2085         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
2086         specially. Don't use a pointer type for MINUS_EXPR.
2087         (fold_unary): Handle for (T1)(X op Y),
2088         only p+ as that is the only as that can be handled for
2089         binary operators now.
2090         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
2091         POINTER_PLUS_EXPR.
2092         <case PLUS_EXPR>: Add folding of PTR+INT into
2093         PTR p+ INT.
2094         Don't call try_move_mult_to_index.
2095         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
2096         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
2097         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
2098         Don't call try_move_mult_to_index.
2099         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
2100         (tree_expr_nonzero_p): Likewise.
2101         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
2102         of PLUS_EXPR for the complex expression folding.
2103         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
2104         first chrec is a pointer type, then the second should
2105         be sizetype and not the first's type.
2106         For POINTER_PLUS_EXPR, use a different right hand side type.
2107         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2108         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
2109         different right hand side type.
2110         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2111         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
2112         instead of PLUS_EXPR.
2113         When either operand is zero, convert the other operand.
2114         (chrec_apply): Use chrec_convert_rhs
2115         on the argument x instead of chrec_convert.
2116         (reset_evolution_in_loop): For pointer types, the new_evol
2117         should be sizetype.
2118         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
2119         different right hand side type.
2120         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2121         (chrec_convert_rhs): New function.
2122         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
2123         different right hand side type.
2124         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2125         * tree-chrec.h (chrec_convert_rhs): New prototype.
2126         (build_polynomial_chrec): For pointer types, the right hand
2127         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
2128         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
2129         Remove subtraction case as it is always addition now.
2130         Make sure the offset is converted to sizetype.
2131         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
2132         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
2133         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
2134         PLUS_EXPR in pointer type.
2135         Handle POINTER_PLUS_EXPR.
2136         (tree_to_aff_combination): Likewise.
2137         (force_expr_to_var_cost): Likewise.
2138         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
2139         instead of PLUS_EXPR for pointers.
2140         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
2141         instead of PLUS_EXPR of pointer types.
2142         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
2143         as PLUS_EXPR.
2144         (check_va_list_escapes): Likewise.
2145         (check_all_va_list_escapes): Likewise.
2146         * dwarf2out.c (loc_descriptor_from_tree_1):
2147         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
2148         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
2149         (string_constant): Likewise.
2150         * tree-ssa-address.c (tree_mem_ref_addr): When adding
2151         the offset to the base, use POINTER_PLUS_EXPR.
2152         (add_to_parts): Convert the index to sizetype.
2153         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
2154         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
2155         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
2156         Offset only holds something for PLUS_EXPR.
2157         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
2158         a PLUS_EXPR.
2159         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
2160         and not PLUS_EXPR.
2161         (analyze_accesses_for_modify_stmt): Likewise.
2162         Remove comment about the type being integral type as it is
2163         wrong now.
2164         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
2165         PLUS_EXPR.
2166         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
2167         and not PLUS_EXPR.
2168         Correct the type which the artimentic is done in (is now
2169         sizetype).
2170         Reindent one loop.
2171         * tree-data-ref.c (split_constant_offset): Handle
2172         POINTER_PLUS_EXPR
2173         * tree-affine.c (tree_to_aff_combination): Likewise.
2174         * c-typeck.c (build_unary_op): For pointers create the increment
2175         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
2176         for pointers.
2177         * gimplify.c (gimplify_self_mod_expr): Create a
2178         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2179         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
2180         * tree.def (POINTER_PLUS_EXPR): New tree code.
2181         * tree-predcom.c (ref_at_iteration): If we have a pointer
2182         type do the multiplication in sizetype.
2183         * tree-mudflap.c (mf_xform_derefs_1): Create a
2184         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2185         * tree-ssa-forwprop.c 
2186         (forward_propagate_addr_into_variable_array_index):
2187         Don't expect there to be a cast for the index as that
2188         does not exist anymore.
2189         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
2190         instead of PLUS_EXPR.
2191         Don't check for the first operand of the POINTER_PLUS_EXPR
2192         was the index as it cannot be.
2193         Call forward_propagate_addr_into_variable_array_index with
2194         the SSA_NAME instead of the statement.
2195         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
2196         (compare_constant): Likewise.
2197         (copy_constant): Likewise.
2198         (compute_reloc_for_constant): Likewise.
2199         (output_addressed_constants): Likewise.
2200         (initializer_constant_valid_p): Likewise.
2201         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2202         Convert the MIN/MAX of the inner type to the outer
2203         type before comparing them.
2204         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
2205         POINTER_PLUS_EXPR instead of PLUS_EXPR.
2206         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
2207         of PLUS_EXPR for pointers.
2208         * tree-inline.c (estimate_num_insns_1): Handle
2209         POINTER_PLUS_EXPR.
2210         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
2211         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2212         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
2213         instead of PLUS_EXPR for the pointer increment statement.
2214         (vect_update_ivs_after_vectorizer): For pointer types, create
2215         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
2216         MULT_EXPR in sizetype.
2217         (vect_gen_niters_for_prolog_loop): Add a cast when creating
2218         byte_misalign.
2219         * tree-object-size.c (plus_expr_object_size): Handle
2220         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
2221         code which is trying to figure out which side is a pointer and 
2222         is the index.
2223         (check_for_plus_in_loops_1): Likewise.
2224         (check_for_plus_in_loops): Likewise.
2225         * c-common.c (pointer_int_sum): Create a
2226         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2227         * tree-ssa-structalias.c (handle_ptr_arith): Handle
2228         only POINTER_PLUS_EXPR.  Removing all the extra
2229         code which is trying to figure out which side is a pointer and 
2230         is the index.
2231         * tree-cfg.c (verify_expr): Add extra checking for pointers and
2232         PLUS_EXPR and MINUS_EXPR.
2233         Also add checking to make sure the operands of POINTER_PLUS_EXPR
2234         are correct.
2235         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
2236         with make_tree, instead of a pointer type.
2237         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
2238         for pointers instead of PLUS_EXPR.
2239         (s390_gimplify_va_arg): Likewise.
2240         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
2241         instead of PLUS_EXPR when doing addition on pointer
2242         types.  Use sizetype for the second operand.
2243         (spu_gimplify_va_arg_expr): Likewise.
2244         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
2245         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
2246         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
2247         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
2248         for the pointer addition and also use size_int/sizetype
2249         for the offset.
2250         (ix86_gimplify_va_arg): Likewise.
2251         Perform BIT_AND_EXPR on sizetype arguments.
2252         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
2253         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
2254         for the pointer additions and also use size_int for the offsets.
2255         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
2256         additions and also use size_int for the offsets.  Perform
2257         BIT_AND_EXPR on sizetype arguments.
2258         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
2259         POINTER_PLUS_EXPR for pointers and create the
2260         BIT_AND_EXPR in sizetype.
2261         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
2262         instead of PLUS_EXPR for pointer addition.
2263         (rs6000_va_start): Likewise.
2264         Also use sizetype for the offset.
2265         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
2266         as PLUS_EXPR/MINUS_EXPR.
2267         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
2268         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
2269         Don't use BIT_AND_EXPR on a pointer type, convert the
2270         expression to sizetype first.
2271         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
2272         for pointers.
2273         (mips_gimplify_va_arg_expr): Likewise.
2274         Don't create BIT_AND_EXPR in a pointer type.
2275
2276 2007-06-15  Eric Christopher  <echristo@apple.com>
2277
2278         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
2279         (x86_64-*-darwin*): Ditto.
2280         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
2281         for above.
2282
2283 2007-06-15  Matthew Wilcox <matthew@wil.cx>
2284
2285         * doc/extend.texi: Document behavior of __attribute__((aligned))
2286         on typedefs.
2287
2288 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
2289
2290         * rtlanal.c (note_stores): Improve documentation.
2291
2292 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2293
2294         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
2295         LOCAL_LABEL_PREFIX): Delete.
2296         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
2297         (bfin_internal_label): Delete.
2298
2299 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
2300
2301         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
2302         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
2303         otherwise define to LIBGCC2_TF_CEXT.
2304         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
2305         (LIBGCC_TF_CEXT): Ditto.
2306         (TF_SIZE): Ditto.
2307
2308 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
2309
2310         PR rtl-optimization/32339
2311         * df-scan.c (df_uses_record): Don't modify flags but just add to
2312         it for df_ref_record.
2313
2314 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2315
2316         * tree-mudflap.c: Fix whitespace issues.
2317
2318 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
2319
2320         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
2321
2322 2007-06-14  Eric Christopher  <echristo@apple.com>
2323
2324         * config/i386/sse.md (movdi_to_sse): Rewrite body.
2325         (movv4sf): Use gcc_unreachable instead of abort.
2326
2327 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2328
2329         PR target/32268
2330         * config/i386/sfp-machine.h (CMPtype): New define.
2331         (mach stubs): Use CMPtype instead of int as a return type.
2332
2333 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2334
2335         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
2336         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
2337         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
2338         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
2339         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
2340         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
2341         config/soft-fp/soft-fp.h: Update from glibc CVS.
2342
2343 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
2344
2345         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
2346
2347 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2348
2349         PR target/32341
2350         * config/v850/v850.c: Include dataflow header file.
2351         (substitute_ep_register): Fix typo.
2352
2353 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2354
2355         * configure.ac: Fix earlier checkin.
2356         * configure: Regenerated.
2357
2358 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2359
2360         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
2361         * aclocal.m4: Regenerate.
2362         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
2363         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
2364         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
2365         * configure: Regenerate.
2366         * Makefile.in (LOOSE_WARN): Subst loose_warn.
2367
2368         * Makefile.in (quickstrap): Build libgcc too.
2369
2370 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2371
2372         * configure.ac: Add --enable-checking=df.  Explicitly mention that
2373         the variables are initialized as for "release".
2374         * df-core.c: Use it.
2375         * configure: Regenerate.
2376         * config.in: Regenerate.
2377
2378 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
2379
2380         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
2381         validate_replace_rtx instead of replace_rtx.
2382         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
2383
2384 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
2385
2386         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
2387         (DWARF2_UNWIND_INFO): Override default if configured with
2388         SJLJ EH disabled.
2389         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
2390         (ENDFILE_SPEC): Add crtend.o.
2391         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
2392         (ENDFILE_SPEC): Add crtend.o.
2393         (TARGET_USE_JCR_SECTION): Define.
2394         (MD_UNWIND_SUPPORT): Define for 32-bit target.
2395
2396         * config/i386/cygming-crtbegin.c: New file.
2397         * config/i386/cygming-crtend.c: New file.
2398
2399 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
2400
2401         * config/i386/w32-unwind.h: New file.
2402
2403 2007-06-13  Eric Christopher  <echristo@apple.com>
2404
2405         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
2406         the user set a value below STACK_BOUNDARY.
2407
2408 2007-06-13  Thiemo Seufer  <ths@networkno.de>
2409
2410         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
2411         imply -lpthread for -pthread.
2412
2413 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2414
2415         * basic-block.h: Remove the prototype for
2416         free_basic_block_vars.
2417         * cfglayout.h: Remove the prototype for
2418         insn_locators_initialize.
2419         * tree.h: Remove the prototype for emit_line_note.
2420
2421         * tree-ssa-pre.c (mergephitemp): Remove.
2422         (init_pre): Don't use mergephitemp.
2423
2424 2007-06-13  Eric Christopher  <echristo@apple.com>
2425
2426         * config/i386/i386.c (override_options): If we've specified
2427         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
2428
2429 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
2430
2431         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
2432         is defined.
2433
2434 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2435
2436         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
2437         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
2438         (eh_store_handler): New pattern.
2439         (eh_return): Emit it instead of a plain move.
2440
2441 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
2442
2443         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
2444         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
2445         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
2446         def_builtin_const.
2447
2448 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2449
2450         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
2451         (find_next_insn_start, find_load): New functions.
2452         (bfin_reorg): Use them to deal with the fact that parallel insns are
2453         no longer represented as a SEQUENCE.
2454
2455 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2456
2457         * config/sparc/sparc.c (sparc_override_options): Initialize
2458         fpu mask correctly.
2459
2460 2007-06-13  Dave Korn  <dave.korn@artimi.com>
2461
2462         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
2463         df_get_live_out.
2464
2465 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2466
2467         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
2468         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
2469         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
2470         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
2471         tree-vect-transform.c: Fix comment typos.  Follow spelling
2472         conventions.
2473
2474 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2475
2476        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
2477        to the exit block use set.
2478        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
2479        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
2480        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
2481
2482 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2483
2484         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
2485         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
2486         to indicate an error.
2487         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
2488         New functions.
2489         (dbg_cnt_process_opt): Print an error on a bad argument.
2490         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
2491         * common.opt (-fdbg-cnt-list): New.
2492         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
2493
2494 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2495
2496         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
2497         flag on ref-all pointers.
2498
2499 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2500
2501         PR middle-end/31579
2502         * expr.c (expand_expr_addr_expr_1): Call expand_expr
2503         for the offset with the modifier as EXPAND_INITIALIZER
2504         if the modifier is EXPAND_INITIALIZER.
2505         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
2506         a register if we had an overflow.
2507
2508 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2509
2510         * real.c (real_isfinite): New.
2511         (real_sqrt): Use it.
2512         * real.h (real_isfinite): New.
2513         * builtins.c: Use it.
2514
2515 2007-06-12  Ian Lance Taylor  <iant@google.com>
2516             Daniel Berlin  <dberlin@dberlin.org>
2517
2518         PR libstdc++/29286
2519         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
2520         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
2521         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
2522         (DECL_NO_TBAA_P): Define.
2523         (struct tree_decl_common): Add no_tbaa_flag field.
2524         * tree-ssa-structalias.c (struct variable_info): Add
2525         no_tbaa_pruning field.
2526         (new_var_info): Initialize no_tbaa_pruning field.
2527         (unify_nodes): Copy no_tbaa_pruning field.
2528         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2529         (dump_solution_for_var): Print no_tbaa_pruning flag.
2530         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
2531         callers.
2532         (compute_tbaa_pruning): New static function.
2533         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
2534         Call compute_tbaa_pruning.
2535         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
2536         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2537         * gimple-low.c (lower_stmt): Likewise.
2538         * tree-gimple.c (is_gimple_stmt): Likewise.
2539         * tree-ssa-operands.c (get_expr_operands): Likewise.
2540         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2541         * tree-inline.c (estimate_num_insns_1): Likewise.
2542         (copy_result_decl_to_var): Likewise.
2543         * expr.c (expand_expr_real_1): Likewise.
2544         * tree-pretty-print.c (dump_generic_node): Likewise.
2545         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
2546         * omp-low.c (omp_copy_decl_2): Likewise.
2547         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
2548         * doc/c-tree.texi (Expression trees): Document
2549         CHANGE_DYNAMIC_TYPE_EXPR.
2550
2551 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2552
2553         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
2554         with !HONOR_NANS and !HONOR_INFINITIES.
2555         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2556
2557 2007-06-12  Tristan Gingold  <gingold@adacore.com>
2558
2559         * gcov.c: Comments updated.
2560         (source_info): Add file_time field.
2561         (source_index): New variable.
2562         (mutiple_files): New variable.
2563         (generate_results): New function extracted from process_file.
2564         (process_file): Save and restore chain of functions, generate
2565         results and free structures only if not merging results.
2566         (release_structures): File names are now freed in create_file_names
2567         (create_file_names): Free previous file names.
2568         (find_source): File date is now read here and modifications in
2569         source files is checked here.
2570         (read_graph_file): Only reverse order of functions for the current
2571         object file.
2572         (make_gcov_file_name): Do not generate long names if input_name is
2573         NULL.
2574         (output_lines): If merging results do not display graph, data and
2575         runs informations.
2576         Checking source file modification is done in find_source.
2577
2578         * doc/gcov.texi: Append an s to sourcefile.
2579
2580 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2581
2582         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
2583         (forced_nop): New pattern.
2584         * config/bfin/bfin.c: Include "df.h".
2585         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
2586         (bfin_discover_loop): Use df_get_live_in instead of
2587         global_live_at_start.
2588         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
2589         df_analyze when done.
2590         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
2591         the insns.  Use QImode for the final insn in a bundle.  Call
2592         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
2593         gen_nop.
2594         (reorder_var_tracking_notes): New function.
2595         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
2596         update_life_info.  Call df_analyze after scheduling and bundle
2597         generation.  Call reorder_var_tracking_notes if generating these
2598         notes.  Call df_finish_pass at the end.
2599
2600 2007-06-12  Dirk Mueller  <dmueller@suse.de>
2601
2602         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
2603         a comparison, not an assignment.
2604
2605 2007-06-12  Olivier Hainque  <hainque@adacore.com>
2606
2607         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
2608         Request walking the subtrees only, leaving the current is_lhs/val_only
2609         untouched.
2610         (convert_non_local_reference): Likewise.
2611
2612 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
2613
2614         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
2615
2616 2007-06-12  Richard Guenther  <rguenther@suse.de>
2617
2618         PR tree-optimization/15353
2619         PR tree-optimization/31657
2620         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
2621         * timevar.def: Add TV_TREE_IFCOMBINE.
2622         * tree-pass.h (pass_tree_ifcombine): Declare.
2623         * tree-ssa-ifcombine.c: New file.
2624         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
2625         * tree-flow.h (blocks_in_phiopt_order): Declare.
2626         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
2627         (tree-ssa-ifcombine.o): New dependencies.
2628
2629 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2630
2631         PR rtl-optimization/32293
2632         * combine.c (simplify_if_then_else): Truncate return from
2633         nonzero_bits() to correct mode.
2634
2635 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2636
2637         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
2638         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
2639
2640 2007-06-11  Diego Novillo  <dnovillo@google.com>
2641
2642         * Makefile.in (reload1.o-warn): Remove.
2643
2644 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
2645
2646         * combine.c (subst): Use reg_overlap_mentioned_p
2647         instead of comparing register numbers directly.
2648
2649 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2650
2651         * reload1.c (mark_home_live_1): Use the mode parameter.
2652
2653 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2654
2655         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
2656         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
2657         word "deferred".
2658         * df-core.c: Ditto.
2659
2660 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
2661
2662         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
2663
2664 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2665
2666         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
2667         from integer registers.
2668         (FP mode splitters): Handle TFmode.
2669
2670 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
2671
2672         * tree-ssa-structalias.c (find_what_p_points_to): Return false
2673         for ref-all pointers that point-to anything.
2674
2675 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
2676
2677         * config/arm/arm.c (arm_output_dwarf_dtprel,
2678         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
2679
2680 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2681
2682         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
2683         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
2684         to memory moves.
2685
2686 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
2687
2688         * gcc/tree.c (signed_or_unsigned_type_for): New.
2689         (unsigned_type_for): Use signed_or_unsigned_type_for.
2690         (signed_type_for): Use signed_or_unsigned_type_for.
2691         * gcc/tree.h (signed_or_unsigned_type_for): New.
2692         (get_signed_or_unsigned_type): Remove.
2693         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
2694         lang_hooks.types.signed_type
2695         (size_diffop): Likewise.
2696         (all_ones_mask_p): Likewise.
2697         (build_range_check): Likewise.
2698         (fold_cond_expr_with_comparison): Likewise.
2699         (fold_cond_expr_with_comparison): Likewise.
2700         (unextend): Likewise.
2701         (extract_muldiv_1): Likewise.
2702         (fold_single_bit_test_into_sign_test): Likewise.
2703         (fold_binary): Likewise.
2704         (fold_ternary): Likewise.
2705         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
2706         instead of get_signed_or_unsigned_type.
2707         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
2708         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2709         * gcc/expr.c (signed_or_unsigned_type_for): Use
2710         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
2711         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
2712         (lhd_signed_or_unsigned_type): Remove.
2713         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
2714         signed_or_unsigned_type.
2715         (lhd_signed_or_unsigned_type): Remove.
2716         * gcc/expmed.c (make_tree): Use signed_type_for instead of
2717         lang_hooks.types.signed_type.
2718         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
2719         c_common_signed_type instead of lang_hooks.types.signed_type.
2720         (c_common_unsigned_type): New.
2721         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
2722         (shorten_compare): Use c_common_unsigned_type instead of
2723         c_common_signed_or_unsigned_type.
2724         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
2725         unsigned_type_for.
2726         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
2727         lang_hooks.types.signed_type.
2728         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2729         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
2730         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
2731         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
2732         instead of unsigned_type_for.
2733         * gcc/c-decl.c (groakdeclarator): Likewise.
2734         * gcc/c-typeck.c (convert_for_assignment): Likewise.
2735         * gcc/c-common.h (c_common_unsigned_type): New.
2736
2737 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2738
2739         PR target/32280
2740         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
2741         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
2742
2743 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2744
2745         PR middle-end/32279
2746         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
2747         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
2748
2749 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
2750             Sebastian Pop  <sebpop@gmail.com>
2751
2752         * lambda-code.c (remove_iv): New.
2753         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
2754
2755 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
2756
2757         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
2758         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
2759         * tree-ssa-loop-prefetch.c: Include optabs.h.
2760         (FENCE_FOLLOWING_MOVNT): New macro.
2761         (struct mem_ref): Add independent_p and storent_p fields.
2762         (record_ref): Initalize the new fields.
2763         (gather_memory_references_ref): Return true if the reference
2764         could be analysed.
2765         (gather_memory_references): Check whether all memory accesses
2766         in loop were recorded.
2767         (should_issue_prefetch_p): Return false for nontemporal stores.
2768         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
2769         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
2770         (determine_loop_nest_reuse): Detect independent memory references.
2771         (loop_prefetch_arrays): Call mark_nontemporal_stores.
2772         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
2773         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
2774         * config/i386/i386.h (x86_mfence): Declare.
2775         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
2776         * config/i386/i386.c (x86_mfence): New variable.
2777         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
2778
2779         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
2780         * optabs.c (init_optabs): Initialize storent_optab.
2781         * optabs.h (enum optab_index): Add OTI_storent.
2782         (storent_optab): Declare.
2783         * genopinit.c (optabs): Add initialization for storent_optab.
2784         * tree.h (MOVE_NONTEMPORAL): New macro.
2785         * expr.c (expand_assignment, store_expr, store_constructor_field,
2786         store_constructor, store_field, expand_expr_real_1): Propagate
2787         nontemporality of the expanded store.
2788         (emit_storent_insn): New function.
2789         * expr.h (expand_assignment, store_expr): Declaration changed.
2790         * function.c (assign_parm_setup_reg): Pass false as nontemporality
2791         to expand_assignment.
2792         * stmt.c (expand_asm_expr): Ditto.
2793         * calls.c (initialize_argument_information): Pass false as
2794         nontemporality to store_expr.
2795         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
2796         storentsi): New.
2797
2798 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2799
2800         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
2801         parameter, use it.
2802         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
2803
2804 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2805
2806         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
2807         and allow DECL_P here.
2808
2809 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
2810
2811         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
2812         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
2813         track of the size of the expression.
2814         * cfghooks.c (merge_blocks): Remove block from loops structure only
2815         after call of the merge_blocks hook.
2816
2817 2007-06-09  Tom Tromey  <tromey@redhat.com>
2818
2819         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
2820         (deprecated_state): Removed.
2821         (start_decl): Update.
2822         (enum deprecated_states): Moved earlier.
2823         (groktypename): Update.
2824         (push_parm_decl): Likewise.
2825         (grokfield): Likewise.
2826         (start_function): Likewise.
2827
2828 2007-06-09  Ian Lance Taylor  <iant@google.com>
2829
2830         PR tree-optimization/32169
2831         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
2832         CONVERT_EXPR, check whether min and max both converted to an
2833         overflow infinity representation.
2834
2835 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
2836
2837         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
2838         not inserted on the edge.
2839
2840 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
2841
2842         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
2843         instructions if they are supported.
2844         (__divsi3, __umodsi3, __modsi3): Likewise.
2845         (__ashldi3, __ashrdi3, __lshrdi3): New.
2846         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
2847
2848 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
2849             Tony Linthicum <tony.linthicum@amd.com>
2850
2851         * doc/extend.texi: Add fvect-cost-model flag.
2852         * common.opt (fvect-cost-model): New flag.
2853         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
2854         cost fields in stmt_vec_info struct for STMT.
2855         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
2856         fields in stmt_vec_info struct and access functions for the same.
2857         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
2858         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
2859         load, store and vector to scalar operation.
2860         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
2861         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
2862         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
2863         (TARG_VEC_STORE_COST): Define cost of vector store.
2864         (vect_estimate_min_profitable_iters): Define new function.
2865         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
2866         check to evaluate if loop iterations are less than minimum profitable
2867         iterations determined by cost model or minimum vect loop bound defined
2868         by user, whichever is more conservative.
2869         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
2870         run-time check to evaluate if loop iterations are less than minimum
2871         profitable iterations determined by cost model or minimum vect loop
2872         bound defined by user, whichever is more conservative.
2873         (vect_estimate_min_profitable_iterations): New function to estimate
2874         mimimimum iterartions required for vector version of loop to be
2875         profitable over scalar version.
2876         (vect_model_reduction_cost): New function.
2877         (vect_model_induction_cost): New function.
2878         (vect_model_simple_cost): New function.
2879         (vect_cost_strided_group_size): New function.
2880         (vect_model_store_cost): New function.
2881         (vect_model_load_cost): New function.
2882         (vectorizable_reduction): Call vect_model_reduction_cost during
2883         analysis phase.
2884         (vectorizable_induction): Call vect_model_induction_cost during
2885         analysis phase.
2886         (vectorizable_load): Call vect_model_load_cost during analysis phase.
2887         (vectorizable_store): Call vect_model_store_cost during analysis phase.
2888         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
2889         vectorizable_promotion, vectorizable_demotion): Call
2890         vect_model_simple_cost during analysis phase.
2891
2892 2007-06-08  Simon Baldwin  <simonb@google.com>
2893
2894         * reg-stack.c (get_true_reg): Readability change.  Moved default case
2895         label into direct switch statement scope.
2896
2897 2007-06-08  Simon Baldwin  <simonb@google.com>
2898
2899         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
2900         in gcc_assert() with '==' comparison.
2901
2902 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2903
2904         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
2905         TARGET_ABM handling of x86_popcnt variable.
2906
2907 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2908
2909         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
2910         __builtin_copysignq and __builtin_infq built-in functions.
2911
2912 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2913
2914         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
2915         SSE4.2 section.  Correct built-in function names in SSE4A section.
2916
2917 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2918
2919         PR tree-optimization/32243
2920         * tree-vect-transform.c (vectorizable_type_promotion): Move check
2921         for ncopies after ratio check between nunits_out and nunits_in.
2922         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
2923
2924 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
2925
2926         PR tree-optimization/32224
2927         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
2928         vectorization upon a non GIMPLE_MODIFY_STMT.
2929
2930 2007-06-08  Christian Bruel  <christian.bruel@st.com>
2931
2932         PR target/29953
2933         * config/sh/sh.md (doloop_end): New pattern and splitter.
2934         * loop-iv.c (simple_rhs_p): Check for hardware registers.
2935
2936 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2937
2938         PR middle-end/32209
2939         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
2940         functions.
2941         (verify_dominators): Do not change dominance tree.
2942
2943 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2944
2945         * config/sh/constraints.md: New file.
2946         * config/sh/sh.c: Include tm-constrs.h.
2947         (reg_class_from_letter): Remove.
2948         (prepare_cbranch_operands): Use satisfies_constraint_*
2949         function instead of macro.
2950         (andcosts, broken_move, sh_secondary_reload): Likewise.
2951         * config/sh/predicates.md (trapping_target_operand): Likewise.
2952         (and_operand, arith_operand, arith_reg_or_0_operand,
2953         cmp_operand, logical_operand, target_operand,
2954         ua_address_operand, ua_offset, xor_operand): Likewise.
2955         * config/sh/sh.md: Include constraints.md.
2956         (*movsicc_t_false): Use satisfies_constraint_* function
2957         instead of macro.
2958         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
2959         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
2960         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
2961         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
2962         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
2963         (REG_CLASS_FROM_CONSTRAINT): Remove.
2964         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
2965         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
2966         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
2967         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
2968         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2969         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
2970         function instead of macro.
2971         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2972         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
2973         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
2974         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
2975         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
2976         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
2977         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
2978         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
2979         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
2980         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
2981         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
2982         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
2983         EXTRA_CONSTRAINT_STR): Likewise.
2984         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
2985
2986 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2987
2988         * config/i386/darwin.h (STACK_BOUNDARY): Define.
2989
2990 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
2991
2992         PR c++/30759
2993         * c-common.h (flag_cpp0x): Replaced by...
2994         (cxx_dialect): ... this new variable specifying the C++ dialect that
2995         is used.
2996         * c-common.c (flag_cpp0x): Removed.
2997         (cxx_dialect): Defined.
2998         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
2999         cxx_dialect.
3000         * c-opts.c (c_common_post_options): Likewise.
3001         (set_std_cxx98): Set cxx_dialect to cxx98.
3002         (set_std_cxx0x): Set cxx_dialect to cxx0x.
3003
3004 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
3005             Hui-May Chang <hm.chang@apple.com>
3006
3007         * doc/invoke.texi (Darwin Options): Update documentation for
3008         -mmacosx-version-min.
3009         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
3010         * config/darwin-driver.c: New file.
3011         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
3012         * config/t-darwin (darwin-driver.o): New rule.
3013
3014         * config/darwin-c.c (version_as_macro): Ignore low digit.
3015
3016 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
3017
3018         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
3019         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
3020         (CSGNMODE): New mode macro.
3021         (CSGNVMODE): New mode attribute.
3022         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
3023         expander using CSGNMODE mode macro.  Handle TFmode.
3024         (copysign<mode>3_const): Rename from copysignsf3_const and
3025         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
3026         Handle TFmode.
3027         (copysign<mode>3_var): Rename from copysignsf3_var and
3028         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
3029         Handle TFmode.
3030         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
3031         mode macro.  Handle TFmode.
3032         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
3033         (iortf3, *iortf3): Ditto.
3034         (xortf3, *xortf3): Ditto.
3035         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
3036         TFmode and TImode masks.
3037         (ix86_expand_copysign): Expand TFmode copysign insn.
3038         (IX86_BUILTIN_INFQ): New.
3039         (IX86_BUILTIN_FABSQ): Ditto.
3040         (IX86_BUILTIN_COPYSIGNQ): Ditto.
3041         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
3042         [__builtin_fabsq]: Ditto.
3043         [__builtin_copysignq]: Ditto.
3044         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
3045         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
3046         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
3047         ix86_expand_binop_builtin().
3048
3049 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
3050
3051         * config/xtensa/lib1funcs.asm: Clean up whitespace.
3052
3053 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
3054
3055         PR target/31850
3056         * rtl.h (push_to_sequence2): New.
3057         * emit-rtl.c (push_to_sequence2): New.
3058         * function.c (assign_parm_data_all): Add new fields.
3059         (assign_parm_setup_block): Call push_to_sequence2 instead of
3060         push_to_sequence.
3061         (assign_parm_setup_reg): Ditto.
3062         (assign_parm_setup_stack): Ditto.
3063         (assign_parms_unsplit_complex): Ditto.
3064         (assign_parms): Change field name.
3065
3066 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
3067
3068         PR tree-optimization/32220
3069         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
3070         phi node is reached before defining statement.
3071
3072 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3073
3074         PR tree-opt/32231
3075         * tree-vect-transform.c (vectorizable_call): Call update_stmt
3076         after changing the right hand side of the assignment.
3077
3078 2007-06-06  Eric Christopher  <echristo@apple.com>
3079
3080         * config.gcc (i?86-*-darwin*): Remove arch parameter.
3081         (x86_64-*-darwin*): Ditto.
3082         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
3083         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
3084
3085 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
3086
3087         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
3088         coding conventions.
3089         (add_key): Likewise.
3090         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
3091         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
3092         variable names.
3093         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
3094         macros.
3095         (add_cost_one_coalesce): Likewise.
3096         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
3097         variable names. Rename orig to orig_name for consistency.
3098         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
3099         coding conventions.
3100         (cprop_into_successor_phis): Avoid using C++ keywords as variable
3101         names.
3102         (record_equivalences_from_stmt): Likewise.
3103         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
3104         the coding conventions.
3105         (memory_ssa_name_same): Likewise.
3106         (dse_optimize_stmt): Likewise.
3107         (dse_record_phis): Likewise.
3108         (dse_finalize_block): Likewise.
3109         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
3110         keywords as variable names.
3111         (may_move_till): Cast according to the coding conventions.
3112         (force_move_till_expr): Avoid using C++ keywords as variable names.
3113         (force_move_till): Cast according to the coding conventions.
3114         (memref_hash): Likewise.
3115         (memref_eq): Likewise.
3116         (gather_mem_refs_stmt): Likewise.
3117         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
3118         using C++ keywords as variable names.
3119         (idx_find_step): Cast according to the coding conventions.
3120         (idx_record_use): Likewise.
3121         (find_depends): Likewise.
3122         (prepare_decl_rtl): Likewise.
3123         (mbc_entry_hash): Likewise.
3124         (mbc_entry_eq): Likewise.
3125         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
3126         (simplify_replace_tree): Avoid using C++ keywords as variable names.
3127         (idx_infer_loop_bounds): Cast according to the coding conventions.
3128         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3129         * tree-ssa-math-opts.c (occ_new ): Likwise.
3130         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
3131         macros.
3132         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
3133         variable names.
3134         (add_use_op): Likewise.
3135         (add_vop): Likewise.
3136         (add_vuse_op): Likewise.
3137         (add_vdef_op): Likewise.
3138         (get_expr_operands): Likewise.
3139         (push_stmt_changes): Use type safe memory macros.
3140         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
3141         keywords as variable names.
3142         (conditional_replacement): Likewise.
3143         (minmax_replacement): Likewise.
3144         (abs_replacement): Likewise.
3145         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
3146         coding conventions.
3147         (insert_fake_stores): Avoid using C++ keywords as variable names.
3148         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
3149         conventions.
3150         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
3151         (heapvar_insert): Use type safe memory macros.
3152         (new_var_info): Cast according to the coding conventions.
3153         (new_constraint): Likewise.
3154         (remove_preds_and_fake_succs): Use type safe memory macros.
3155         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
3156         conventions.
3157         (thread_single_edge): Likewise.
3158         (thread_through_loop_header): Likewise.
3159
3160 2007-06-06  Eric Christopher  <echristo@apple.com>
3161
3162         * config/i386/i386.c (override_options): Move handling
3163         of TARGET_SUBTARGET* earlier.
3164
3165 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
3166
3167         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
3168         use %n on printf.
3169
3170 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
3171
3172         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
3173         emited outside of basic block.
3174         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
3175         the created blocks.
3176         * rtl.h (delete_insn_chain): Declaration changed.
3177         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
3178         non-removed insns.
3179         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
3180         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
3181         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
3182         to delete_insn_chain.
3183         (rtl_verify_flow_info_1): Verify that the insns in header and footer
3184         do not have bb field set.
3185         (rtl_verify_flow_info): Verify that insns between basic blocks do not
3186         have bb field set.
3187         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
3188         * cfgcleanup.c (try_optimize_cfg): Ditto.
3189
3190 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
3191
3192         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
3193         (lambda_body_vector_new): Use type safe memory macros.
3194         (lambda_linear_expression_new): Likewise.
3195         (lambda_loopnest_new): Likewise.
3196         (lambda_lattice_new): Likewise.
3197         (replace_uses_equiv_to_x_with_y): Cast according to the coding
3198         conventions. Use type safe memory macros.
3199         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
3200         (lambda_body_vector_s): Likewise.
3201         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
3202         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
3203
3204 2007-06-06  Richard Guenther  <rguenther@suse.de>
3205
3206         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
3207         if we need to schedule cfg_cleanup.
3208         (tree_ssa_forward_propagate_single_use_vars): Do so.
3209
3210 2007-06-06  Ian Lance Taylor  <iant@google.com>
3211
3212         * fold-const.c (merge_ranges): If range_successor or
3213         range_predecessor fail, just return 0.
3214
3215 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
3216
3217         PR tree-optimization/32216
3218         * tree-vectorizer.c (supportable_widening_operation): Determine
3219         signedness of FIX_TRUNC_EXPR from output operand.
3220         (supportable_narrowing_operation): Ditto.
3221         * tree-vect-generic.c (expand_vector_operations_1): Determine
3222         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
3223         from input operand.
3224
3225 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
3226
3227         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
3228         (struct pta): ...from here. Change flags to unsigned to avoid
3229         excessive casting (as it is used as a bit mask).
3230         (override_options): Add casts according to the coding convenventions.
3231         (x86_64_elf_unique_section): Likewise.
3232         (examine_argument): Avoid using C++ keywords as variable names.
3233         (construct_container): Likewise.
3234         (legitimize_pic_address): Likewise.
3235         (get_dllimport_decl): Cast according to the coding conventions. Use
3236         type safe memory macros.
3237         (legitimize_address): Cast according to the coding conventions.
3238         (emit_i387_cw_initialization): Corrected the type of slot to enum
3239         ix86_stack_slot.
3240         (ix86_init_machine_status): Use type safe memory macros.
3241         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
3242         (bdesc_pcmpistr): Likewise.
3243         (bdesc_crc32): Likewise.
3244         (bdesc_sse_3arg): Likewise.
3245         (bdesc_2arg): Likewise.
3246         (bdesc_1arg): Likewise.
3247         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
3248         (ix86_expand_sse_pcmpistr): Likewise.
3249         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
3250         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
3251         int to match the langhook definition.
3252         (ix86_builtin_conversion): Change the type of code to unsigned init to
3253         match the langhook definition.
3254         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
3255         names.
3256         (ix86_preferred_output_reload_class): Likewise.
3257         (ix86_cannot_change_mode_class): Likewise.
3258         (ix86_memory_move_cost): Likewise.
3259         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
3260         avoid excessive casting later on.
3261         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
3262
3263 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
3264
3265         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
3266         as flags setting insn.
3267         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
3268
3269 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
3270
3271         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
3272         (UNSPEC_ROUND): New.
3273         ("sse4_1_round<mode>2"): New insn pattern.
3274         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
3275         SSE4.1 targets.
3276         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
3277         expander using SSEMODEF mode macro.  Expand using
3278         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3279         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
3280         expander using SSEMODEF mode macro.  Expand using
3281         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3282         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
3283         expander using SSEMODEF mode macro.  Expand using
3284         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3285         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
3286         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
3287         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
3288         UNSPEC_ROUNDS.
3289
3290 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
3291             Sebastian Pop  <sebpop@gmail.com>
3292
3293         * lambda.h (build_linear_expr): New.
3294         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
3295         Use build_linear_expr, call fold and force_gimple_operand.
3296         (lambda_loopnest_to_gcc_loopnest): Check that there is
3297         something to insert.
3298         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
3299
3300 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
3301
3302         PR preprocessor/23479
3303         * doc/extend.texi: Document the 0b-prefixed binary integer
3304         constant extension.
3305
3306 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3307
3308         PR tree-optimization/32215
3309         * tree-vectorizer.c (supportable_widening_operation): Return false
3310         for unsupported FIX_TRUNC_EXPR tree code.
3311         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
3312
3313 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
3314
3315         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
3316         register on SPE targets.  Change documentation to reflect
3317         reality.
3318         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3319         Change FIXED_SCRATCH to 14 and document why we're keeping r14
3320         out of the register allocation pool.
3321         (rs6000_reg_live_or_pic_offset_p): New function.
3322         (rs6000_emit_prologue): Move the actual saving of LR up to free
3323         r0 for holding r11.  Split saving of SPE 64-bit registers into
3324         its own case.  Ensure that offsets will always be in-range for
3325         'evstdd' by using r11 as a scratch register to point at the start
3326         of the SPE save area.  Save r11 if necessary, as it is the static
3327         chain register.
3328         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
3329         into its own case.  Ensure that offsets will always be in-range
3330         for 'evldd' by using r11 as a scratch register to point at the
3331         start of the SPE save area.  Also adjust r11 when restoring
3332         the stack pointer to compensate for pre-loading r11.
3333
3334 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
3335
3336         * cfg.c (init_flow): Use type safe memory macros.
3337         (alloc_block): Likewise.
3338         (unchecked_make_edge): Likewise.
3339         (dump_flow_info): Avoid using C++ keywords as variable names.
3340         (copy_original_table_clear): Cast according to the coding conventions.
3341         (copy_original_table_set): Likewise.
3342         * cfgexpand (label_rtx_for_bb): Likewise.
3343         (expand_gimple_basic_block): Likewise.
3344         * cfghooks.c (dump_bb): Likewise.
3345         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
3346         variable names.
3347         (lv_add_condition_to_bb): Likewise.
3348         * cfglayout (relink_block_chain): Cast according to the coding
3349         conventions.
3350         (fixup_reorder_chain): Likewise.
3351         (fixup_fallthru_exit_predecessor): Likewise.
3352         * cfgloop.c (glb_enum_p): Likewise.
3353         (get_exit_description): Likewise.
3354         (dump_recorded_exit): Likewise.
3355         * cfgloop.h (enum loop_estimation): Move out of struct scope...
3356         (struct loop): ... from here.
3357         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
3358         conventions.
3359         * cfgrtl.c (rtl_create_basic_block): Likewise.
3360         (rtl_split_block): Likewise.
3361         (rtl_dump_bb): Likewise.
3362         (cfg_layout_split_block): Likewise.
3363         (init_rtl_bb_info): Use typesafe memory macros.
3364
3365         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
3366         * graphds.h: Updated all usages of edge to graph_edge.
3367         * graphds.c: Likewise.
3368         * cfgloopanal.c: Likewise.
3369
3370 2007-06-05  Ian Lance Taylor  <iant@google.com>
3371
3372         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
3373         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
3374         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
3375         expression.
3376         (test_for_singularity): Likewise.
3377
3378 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
3379
3380         * config/i386/constraints.md ("Y2"): Replaced by ...
3381         ("Yt"): This.
3382         * config/i386/i386.md: Likewise.
3383         * config/i386/mmx.md: Likewise.
3384         * config/i386/sse.md: Likewise.
3385
3386 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
3387
3388         * config/i386/constraints.md ("z"): Replaced by ...
3389         ("Y0"): This.
3390         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
3391         (sse4_1_blendvps): Likewise.
3392         (sse4_1_pblendvb): Likewise.
3393         (sse4_2_pcmpestr): Likewise.
3394         (sse4_2_pcmpestrm): Likewise.
3395         (sse4_2_pcmpestr_cconly): Likewise.
3396         (sse4_2_pcmpistr): Likewise.
3397         (sse4_2_pcmpistrm): Likewise.
3398         (sse4_2_pcmpistr_cconly): Likewise.
3399
3400 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
3401
3402         * matrix-reorg.c (transform_access_sites): Fix computation.
3403         (transform_allocation_sites): Same.
3404
3405 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3406
3407         * config/i386/i386.c (override_options): Use
3408         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.