OSDN Git Service

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