OSDN Git Service

e726b58f5aae251ce9cdbff2b8c42eede23e2678
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
2
3         PR rtl-optimization/32481
4         * combine.c (adjust_for_new_dest): Rescan the changed insn.
5
6 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
7
8         * dce.c (deletable_insn_p_1): New function, split out from...
9         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
10         specially, not those inside PARALLELs.  Remove BODY argument
11         and adjust recursive call accordingly.
12         (prescan_insns_for_dce): Update call to delete_insn_p.
13
14 2007-06-27  Richard Guenther  <rguenther@suse.de>
15
16         PR middle-end/32492
17         * tree.h (fold_convertible_p): Declare.
18         * fold-const.c (fold_convertible_p): New function.
19         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
20         instead of lang_hooks.types_compatible_p.
21
22 2007-06-26  Jan Hubicka  <jh@suse.cz>
23
24         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
25         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
26         early use validate_unshare_change.
27         (reload_combine): Likewise.
28         * recog.c (change_t): New field unshare.
29         (validate_change_1): Rename from validate_change; add argument unshare.
30         (validate_change): Turn into wrapper of validate_change_1; update
31         prototype for bools.
32         (validate_unshare_change): New.
33         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
34         calls of df_insn_rescan.
35         * recog.h (validate_change): Replace ints by bools.
36         (validate_unshare_change): Declare.
37
38 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
39
40         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
41         
42 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
43
44         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
45
46 2007-06-25  Jan Hubicka  <jh@suse.cz>
47
48         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
49         uninlinable call.
50         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
51         cgraph_decide_inlining_incrementally): Move uninlinability checks to
52         places other call site specific checks are performed.
53
54 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
55
56         PR tree-opt/32421
57         * tree-vect-transform.c (vectorizable_operation): Convert
58         POINTER_PLUS_EXPR over to PLUS_EXPR.
59
60 2007-06-25  Chao-ying Fu  <fu@mips.com>
61
62         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
63         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
64         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
65         Document GET_MODE_IBIT, and GET_MODE_FBIT.
66
67         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
68         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
69         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
70         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
71         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
72         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
73         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
74         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
75         ALL_FIXED_POINT_MODE_P): New define.
76         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
77         MODE_UACCUM.
78         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
79
80         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
81         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
82         MODE_VECTOR_UACCUM): New mode classes.
83
84         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
85         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
86         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
87         USA, UDA, and UTA.
88
89         * genmodes.c (struct mode_data): Add ibit and fbit fields.
90         (blank_mode): Initialize ibit and fbit.
91         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
92         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
93         (new_adjust): Change required_class to required_class_from and
94         required_class_to for testing within a range.
95         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
96         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
97         MODE_VECTOR_UACCUM.
98         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
99         (make_fixed_point_mode): New.
100         (_ADD_ADJUST): Change C to C1 and C2.
101         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
102         use a range for machine classes.
103         (ADJUST_IBIT, ADJUST_FBIT): New.
104         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
105         CONST_MODE_FBIT.
106         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
107         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
108         Emit adjustment for ibit and fbit.
109         (emit_mode_ibit, emit_mode_fbit): New.
110         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
111
112 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
113
114         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
115         as the source of the set.
116
117 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
118
119         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
120         FP_REGNO_P): Use IN_RANGE.
121         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
122         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
123         (DATA_REG_P): Use DATA_REGNO_P.
124         (FP_REG_P): Use FP_REGNO_P.
125         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
126         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
127         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
128
129 2007-06-24  Jan Hubicka  <jh@suse.cz>
130
131         PR middle-end/30563
132         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
133
134 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
135
136         PR middle-end/32461
137         * fold-const.c (fold_binary): Strip nops of operand 0
138         of BIT_NOT_EXPR before calling operand_equal_p.
139         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
140         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
141
142 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
143
144         * doc/extend.texi: Document that dllimport and dllexport imply
145         default visibility.
146         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
147         imported or exported declaration, including type declarations.
148         * c-common.c (handle_visibility_attribute): Check for conflicts
149         with dllimport/dllexport.
150         (c_determine_visibility): Handle dllimport/dllexport as an
151         explicit visibility atttribute.
152
153 2007-06-23  Richard Guenther  <rguenther@suse.de>
154
155         PR tree-optimization/16876
156         PR middle-end/29478
157         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
158         for CALL_EXPRs.
159         * tree-inline.c (initialize_inlined_parameters): Do not call
160         lang_hooks.tree_inlining.convert_parm_for_inlining.
161         * cgraphbuild.c (initialize_inline_failed): Set inline failed
162         reason for mismatched types.
163         * gimplify.c (gimplify_call_expr): Verify the call expression
164         arguments match the called function type signature.  Otherwise
165         mark the call expression to be not considered for inlining
166         using CALL_CANNOT_INLINE_P flag.
167         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
168         edges call expression.
169         (cgraph_decide_inlining_of_small_function): Likewise.
170         (cgraph_decide_inlining): Likewise.
171         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
172         Remove define.
173         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
174         * c-typeck.c (c_convert_parm_for_inlining): Remove.
175         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
176         Remove declaration.
177         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
178         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
179         Remove.
180         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
181         convert_parm_for_inlining member.
182
183 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
184
185         PR target/31152
186         * arm.md (negscc): Match the correct operand for optimized LT0 test.
187         Remove optimization for GT.
188
189 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
190
191         PR middle-end/32437
192         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
193         is a PARALLEL.
194         (prescan_insns_for_dce): Add extra parameter.
195         
196 2007-06-23  Jan Hubicka  <jh@suse.cz>
197
198         PR middle-end/31541
199         * gimplify.c (mark_addressable): New function.
200         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
201
202 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
203
204         PR middle-end/32374
205         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
206
207 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
208
209         PR target/32413
210         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
211         moves between MMX/SSE registers to at least 8 units to prevent
212         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
213
214 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
215
216         * config/i386/i386.c (override_options): Correct x86_sahf
217         setting condition.
218
219 2007-06-21  David Daney  <ddaney@avtrex.com>
220
221         PR target/32406
222         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
223         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
224         (exception_receiver): Renamed to ...
225         (nonlocal_goto_receiver): ... this.
226
227 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
228
229         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
230         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
231         partial register accesses.
232
233 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
234
235         * fold-const.c (debug_fold_checksum): Move it under
236         ENABLE_FOLD_CHECKING.
237
238 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
239
240         PR middle-end/20623
241         * tree.h (debug_fold_checksum): Declared.
242         * fold-const.c (build_fold_addr_expr_with_type_1): New.
243         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
244         build_fold_addr_expr_with_type_1.
245         (fold_addr_expr, debug_fold_checksum): New.
246         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
247         (fold_unary, fold_comparison, split_address_to_core_and_offset):
248         Use fold_addr_expr.
249         
250 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
251
252         PR tree-optimization/19590
253         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
254         of scev is a constant.
255         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
256
257 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
258
259         * df-problems.c (df_note_bb_compute): Made computation of live
260         info consistent with df_lr.
261
262 2007-06-21  Richard Guenther  <rguenther@suse.de>
263
264         PR tree-optimization/32453
265         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
266         for pointer anti-range.
267
268 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
269
270         * config/i386/i386.c (processor_target_table): Increase maximum
271         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
272         default 64bit.
273
274         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
275         byte alignment if > 8 byte alignment is preferred.
276         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
277
278 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
279
280         PR tree-optimization/31866
281         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
282         if ASM_EXPR's input is not a SSA_NAME.
283
284         PR middle-end/32362
285         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
286         but decl is a global var, instead return decl.
287         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
288         even for is_global_var decls, if they are private in some outer
289         context.
290
291 2007-06-21  Richard Guenther  <rguenther@suse.de>
292
293         PR tree-optimization/32451
294         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
295
296 2007-06-21  Christian Bruel  <christian.bruel@st.com>
297
298         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
299         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
300         (push_regs): Changed saving order or banked registers.
301         (sh_expand_epilogue): Likewise.
302         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
303         (FIRST_BANKED_REG): Likewise.
304         (LAST_BANKED_REG): Likewise.
305         * config/sh/sh.md (banked) New attribute.
306         (in_delay_slot): Check banked attribute.
307         
308 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
309
310         PR tree-optimization/32075
311         * tree-data-ref.c (subscript_dependence_tester_1, 
312         analyze_miv_subscript, analyze_overlapping_iterations,
313         add_distance_for_zero_overlaps, build_classic_dist_vector,
314         subscript_dependence_tester_1, analyze_overlapping_iterations,
315         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
316         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
317         to evolution_function_is_affine_multivariate_p.
318
319 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
320
321         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
322
323 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
324
325         PR target/32335
326         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
327         for TARGET_A16.
328         * config/m32c/prologue.md (epilogue_exitd_16): New.
329         (epilogue_reit_16): New.
330         (epilogue_exitd): Rename to epilogue_exitd_24.
331         (epilogue_reit): Rename to epilogue_reit_24.
332
333 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
334             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
335
336         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
337         New counters.
338         * haifa-sched.c (queue_to_ready): Don't requeue next insn
339         if dbg_cnt (sched_insn) reaches the limit.
340         (choose_ready): New parameter INSN_PTR and new return value.
341         (schedule_block): Handle dbg_cnt (sched_insn). Handle
342         the new return value from choose_ready.
343         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
344         (rest_of_handle_global_alloc): New global_alloc_at_func.
345
346 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
347
348         PR tree-optimization/25737
349         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
350         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
351         * tree-flow.h (struct fieldoff): Add new field alias_set.
352         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
353         argument addressable_type.  Set alias_set of fieldoff.
354         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
355         (create_overlap_variables_for): Pass alias_set from fieldoff to
356         create_sft.
357         * alias.c (get_alias_set): Use alias_set from SFT if set.
358
359 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
360
361         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
362         of a variable as an unsigned HOST_WIDE_INT integer.
363
364 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
365
366         PR rtl-optimization/32405
367         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
368
369 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
370
371         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
372
373         PR middle-end/31959
374         * builtins.c: Include diagnostic.h.
375         (expand_builtin_expect): Make gcc_assert more permissive.
376         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
377
378         PR inline-asm/32109
379         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
380         and !allows_mem.
381
382         PR middle-end/32285
383         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
384         if ACCUMULATE_OUTGOING_ARGS.
385
386 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
387
388         * config/m68hc11/m68hc11.c: Include dataflow header file.
389         (m68hc11_reorg): Port to dataflow.
390
391 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
392
393         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
394         (struct df_problem.free_blocks_on_set_blocks): New field.
395         (struct dataflow.optional_p): New field.
396         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
397         (df_live_set_all_dirty): New function.
398         * df-scan.c (df_scan_alloc): Initialize optional_p.
399         (problem_SCAN): Initialize free_blocks_on_set_blocks.
400         * df-core.c (df_set_blocks): Removed use of
401         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
402         df_problem.free_blocks_on_set_blocks to determine which blocks are
403         recycled.
404         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
405         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
406         uses dataflow.optional_p to determine if problem should be
407         deleted.
408         (rest_of_handle_df_initialize): Only start live problem if 
409         -02 or above.
410         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
411         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
412         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
413         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
414         problem_NOTE):  Initialize free_blocks_on_set_blocks.
415         (df_lr_bb_local_compute): Recompute luids if df_live problem is
416         not active.
417         (df_live_set_all_dirty, df_note_alloc): New function.
418         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
419         df_get_live_*.
420         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
421         * postreload.c (reload_combine): Ditto.
422         * cse.c (cse_extended_basic_block): Ditto.
423         * regmove.c (mark_flags_life_zones): Ditto.
424         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
425         erase_matching_seqs): Ditto.
426         * bt-load.c (compute_defs_uses_and_gen): Ditto.
427         * integrate (allocate_initial_values): Ditto.
428         * combine.c (reg_dead_at_p): Ditto.
429         * resource.c (mark_target_live_regs): Ditto.
430         * sched-rgn.c (check_live_1, update_live_1): Ditto.
431         * config/sh/sh.c (find_r0_life_regions): Ditto.
432         * global.c (rest_of_handle_global_alloc): Only add back df_live
433         for -O > 1.
434         * local-alloc.c (rest_of_handle_local_alloc): Only remove
435         df_live for -O > 1.
436         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
437         df_get_live_*.
438         (if_convert): Make sure df_live is there at -O == 1.
439         (pass_if_after_combine): Cleanup flags.
440         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
441         is there at -O == 1.
442         
443 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
444
445         * config/arm/arm.c (arm_get_frame_offsets): Set
446         offsets->locals_base to avoid negative stack size.
447         (thumb1_expand_prologue): Assert on negative stack size.
448
449 2007-04-19  Sebastian Pop  <sebpop@gmail.com>
450
451         PR tree-optimization/32367
452         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
453         of the chrec has no evolution in that loop.
454         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
455
456 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
457
458         * config/xtensa/xtensa.c: Include "df.h".
459         (xtensa_builtin_saveregs): Use adjust_address instead of change_address.
460         (xtensa_va_start): Invoke make_tree with sizetype for
461         expand_builtin_saveregs and then convert the result to a pointer.
462         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
463         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
464         Subtract argument size from index value as integers and then use
465         POINTER_PLUS_EXPR to add the result to the array address.
466         
467 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
468
469         PR target/32335
470         * config/m32c/m32c.c: Include dataflow header file.
471         (m32c_emit_prologue): Adjust for prologue insn change.
472         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
473         once inside a PARALLEL. Assume frame size passed in operand 0
474         includes space to save the fb register.
475         (prologue_enter_24): Likewise.
476         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
477
478 2007-06-19  David Daney  <ddaney@avtrex.com
479
480         PR target/32313
481         * config/mips/mips.md (cprestore): Mark $gp as used.
482
483 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
484
485         PR target/32369
486         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
487         (frv_ifcvt_modify_insn): Likewise.
488
489 2007-06-19  Richard Guenther  <rguenther@suse.de>
490
491         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
492         only handle positive offsets that fit in a HOST_WIDE_INT.
493
494 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
495
496         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
497         result of rsqrt insn for zero input argument to avoid NaN.
498
499 2007-06-19  Richard Guenther  <rguenther@suse.de>
500
501         PR middle-end/31950
502         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
503
504 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
505
506         PR tree-optimization/32353
507         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
508
509 2007-06-19  Nick Clifton  <nickc@redhat.com>
510
511         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
512
513 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
514
515         PR target/32389
516         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
517         * config/i386/i386.c (assign_386_stack_local): Assert that
518         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
519         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
520         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
521         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
522
523 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
524
525         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
526
527 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
528
529         PR rtl-optimization/32321
530         * gcse.c (replace_store_insn): Update the note before
531         calling emit_insn_after.
532
533 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
534
535         PR middle-end/32355
536         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
537         cse_main.
538         * df-problems.c (df_note_bb_compute): Fix dumping info.
539         
540 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
541
542         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
543         insn with emit_jump_insn.
544
545 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
546
547         PR tree-optimization/32383
548         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
549         * targhooks.h (default_builtin_reciprocal): Update prototype.
550         * target.h (struct gcc_target): Update builtin_reciprocal.
551         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
552         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
553         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
554         when fndecl is in BUILT_IN_MD class.
555         (execute_convert_to_rsqrt): Ditto.
556
557         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
558         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
559         Convert BUILT_IN_SQRTF code only  when md_fn is false.
560
561 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
562
563         * bt-load.c (move_btr_def): Fix the order of arguments
564         to validate_replace_rtx.
565
566 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
567
568         * config/m68k/m68k-devices.def: Add 54450..54455.
569
570 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
571
572         PR rtl-optimization/32366
573         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
574         FLOAT_EXTEND]: Prevent non-scalar modes from entering
575         significand_size.
576
577 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
578
579         PR middle-end/32349
580         * modulo-sched (generate_reg_moves): Added rescan parameter and if
581         this is true, rescan insn being modified.
582         (sms_schedule): Added rescan parameter.
583         (rest_of_handle_sms): Moved freeing of dominance info to before
584         getting out of cfg_layout.
585         
586 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
587
588         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
589         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
590         appropriate.
591
592         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
593         FL_CF_EMAC from the entry for isac.
594
595         * config/m68k/predicates.md (const_call_operand): Adjust comment.
596         (const_sibcall_operand): New.
597         (sibcall_operand): Use it.
598         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
599         (m68k_isas): ISAC does not imply FPU or EMAC.
600         (override_options): Add ISA_C logic for symbolic jump & call.
601
602 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
603
604         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
605         return mode from the builtin itself.
606         (sparc_fold_builtin): Fix cast of zero constant.
607
608 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
609
610         * targhooks.c (default_builtin_reciprocal): New default target hook.
611         * targhooks.h (default_builtin_reciprocal): Add prototype.
612         * hooks.c (hook_tree_tree_bool_null): Remove hook.
613         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
614         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
615         default_builtin_reciprocal.
616
617 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
618
619         PR middle-end/31723
620         * hooks.c (hook_tree_tree_bool_null): New hook.
621         * hooks.h (hook_tree_tree_bool_null): Add prototype.
622         * tree-pass.h (pass_convert_to_rsqrt): Declare.
623         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
624         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
625         and convert it to reciprocal a*rfunc(b).
626         (execute_convert_to_rsqrt): New function.
627         (gate_convert_to_rsqrt): New function.
628         (pass_convert_to_rsqrt): New pass definition.
629         * target.h (struct gcc_target): Add builtin_reciprocal.
630         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
631         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
632         TARGET_BUILTIN_RECIPROCAL.
633         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
634
635         * config/i386/i386.h (TARGET_RECIP): New define.
636         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
637         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
638         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
639         and not optimizing for size.
640         (*rcpsf2_sse): New insn pattern.
641         (*rsqrtsf2_sse): Ditto.
642         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
643         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
644         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
645         and not optimizing for size.
646         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
647         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
648         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
649         and not optimizing for size.
650         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
651         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
652         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
653         and not optimizing for size.
654         (*sse_rsqrtv4sf2): Do not export.
655         (sqrtv4sf2): Ditto.
656         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
657         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
658         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
659         and not optimizing for size.
660         (sqrtv4sf2): Ditto.
661         * config/i386/i386.opt (mrecip): New option.
662         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
663         (ix86_emit_swsqrtsf): Ditto.
664         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
665         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
666         builtin definition.
667         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
668         ix86_expand_unop1_builtin.
669         (ix86_emit_swdivsf): New function.
670         (ix86_emit_swsqrtsf): Ditto.
671         (ix86_builtin_reciprocal): New function.
672         (TARGET_BUILTIN_RECIPROCAL): Use it.
673         (ix86_vectorize_builtin_conversion): Rename from
674         ix86_builtin_conversion.
675         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
676         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
677         "i386 and x86_64 Options" section.
678         (Intel 386 and AMD x86_64 Options): Document -mrecip.
679
680 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
681             Zdenek Dvorak <dvorakz@suse.cz>
682             Richard Guenther  <rguenther@suse.de>
683             Kaz Kojima  <kkojima@gcc.gnu.org>
684
685         * tree-vrp.c (compare_values_warnv): Convert val2 to
686         the type of val1.
687         (extract_range_from_assert): Create
688         POINTER_PLUS_EXPR for pointer types.
689         (extract_range_from_binary_expr): Handle
690         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
691         for pointer types.
692         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
693         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
694         POINTER_PLUS_EXPR as PLUS_EXPR.
695         (number_of_iterations_lt_to_ne):
696         For pointer types, use sizetype when
697         creating MINUS_EXPR/PLUS_EXPRs.
698         (assert_loop_rolls_lt): For pointer types, use sizetype when
699         creating MINUS_EXPR/PLUS_EXPRs.
700         (number_of_iterations_le): Likewise.
701         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
702         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
703         like PLUS_EXPR and MINUS_EXPR.
704         * tree-pretty-print.c (dump_generic_node): Handle
705         POINTER_PLUS_EXPR.
706         (op_prio): Likewise.
707         (op_symbol_1): Likewise.
708         * optabs.c (optab_for_tree_code): Likewise.
709         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
710         specially.
711         * tree-tailcall.c (process_assignment): Mention
712         POINTER_PLUS_EXPR in a TODO comment.
713         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
714         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
715         not used with a pointer and an integer type.
716         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
717         increment using chrec_convert_rhs instead of chrec_convert.
718         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
719         PLUS_EXPR except for the right hand side's type will be
720         sizetype.
721         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
722         (fold_used_pointer_cast): Kill.
723         (pointer_offset_p): Kill.
724         (fold_used_pointer): Kill.
725         (pointer_used_p): Kill.
726         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
727         call fold_used_pointer.
728         (instantiate_parameters_1): Convert the increment
729         using chrec_convert_rhs instead of chrec_convert.
730         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
731         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
732         instead of PLUS_EXPR.
733         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
734         PLUS_EXPR for pointers.
735         (std_gimplify_va_arg_expr): Likewise.
736         (fold_builtin_memory_op): Likewise.
737         (fold_builtin_strstr): Likewise.
738         (fold_builtin_strchr): Likewise.
739         (fold_builtin_strrchr): Likewise.
740         (fold_builtin_strpbrk): Likewise.
741         (expand_builtin_memory_chk): Likewise.
742         (fold_builtin_memory_chk): Likewise.
743         (std_expand_builtin_va_start): Use
744         sizetype for the call to make_tree and then convert
745         to the pointer type.
746         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
747         instead of PLUS_EXPR for adding to a pointer.
748         (std_gimplify_va_arg_expr): Use fold_build2 for
749         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
750         the operands to sizetype first and then cast the BIT_AND_EXPR
751         back to the pointer type.
752         * fold-const.c (build_range_check): Handle pointer types
753         specially.
754         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
755         of PLUS_EXPR's. Make sure the offset is converted to
756         sizetype.
757         (try_move_mult_to_index): Strip the NOPs from the offset.
758         Remove code argument and replace all uses with PLUS_EXPR.
759         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
760         specially. Don't use a pointer type for MINUS_EXPR.
761         (fold_unary): Handle for (T1)(X op Y),
762         only p+ as that is the only as that can be handled for
763         binary operators now.
764         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
765         POINTER_PLUS_EXPR.
766         <case PLUS_EXPR>: Add folding of PTR+INT into
767         PTR p+ INT.
768         Don't call try_move_mult_to_index.
769         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
770         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
771         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
772         Don't call try_move_mult_to_index.
773         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
774         (tree_expr_nonzero_p): Likewise.
775         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
776         of PLUS_EXPR for the complex expression folding.
777         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
778         first chrec is a pointer type, then the second should
779         be sizetype and not the first's type.
780         For POINTER_PLUS_EXPR, use a different right hand side type.
781         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
782         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
783         different right hand side type.
784         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
785         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
786         instead of PLUS_EXPR.
787         When either operand is zero, convert the other operand.
788         (chrec_apply): Use chrec_convert_rhs
789         on the argument x instead of chrec_convert.
790         (reset_evolution_in_loop): For pointer types, the new_evol
791         should be sizetype.
792         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
793         different right hand side type.
794         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
795         (chrec_convert_rhs): New function.
796         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
797         different right hand side type.
798         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
799         * tree-chrec.h (chrec_convert_rhs): New prototype.
800         (build_polynomial_chrec): For pointer types, the right hand
801         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
802         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
803         Remove subtraction case as it is always addition now.
804         Make sure the offset is converted to sizetype.
805         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
806         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
807         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
808         PLUS_EXPR in pointer type.
809         Handle POINTER_PLUS_EXPR.
810         (tree_to_aff_combination): Likewise.
811         (force_expr_to_var_cost): Likewise.
812         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
813         instead of PLUS_EXPR for pointers.
814         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
815         instead of PLUS_EXPR of pointer types.
816         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
817         as PLUS_EXPR.
818         (check_va_list_escapes): Likewise.
819         (check_all_va_list_escapes): Likewise.
820         * dwarf2out.c (loc_descriptor_from_tree_1):
821         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
822         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
823         (string_constant): Likewise.
824         * tree-ssa-address.c (tree_mem_ref_addr): When adding
825         the offset to the base, use POINTER_PLUS_EXPR.
826         (add_to_parts): Convert the index to sizetype.
827         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
828         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
829         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
830         Offset only holds something for PLUS_EXPR.
831         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
832         a PLUS_EXPR.
833         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
834         and not PLUS_EXPR.
835         (analyze_accesses_for_modify_stmt): Likewise.
836         Remove comment about the type being integral type as it is
837         wrong now.
838         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
839         PLUS_EXPR.
840         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
841         and not PLUS_EXPR.
842         Correct the type which the artimentic is done in (is now
843         sizetype).
844         Reindent one loop.
845         * tree-data-ref.c (split_constant_offset): Handle
846         POINTER_PLUS_EXPR
847         * tree-affine.c (tree_to_aff_combination): Likewise.
848         * c-typeck.c (build_unary_op): For pointers create the increment
849         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
850         for pointers.
851         * gimplify.c (gimplify_self_mod_expr): Create a
852         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
853         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
854         * tree.def (POINTER_PLUS_EXPR): New tree code.
855         * tree-predcom.c (ref_at_iteration): If we have a pointer
856         type do the multiplication in sizetype.
857         * tree-mudflap.c (mf_xform_derefs_1): Create a
858         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
859         * tree-ssa-forwprop.c 
860         (forward_propagate_addr_into_variable_array_index):
861         Don't expect there to be a cast for the index as that
862         does not exist anymore.
863         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
864         instead of PLUS_EXPR.
865         Don't check for the first operand of the POINTER_PLUS_EXPR
866         was the index as it cannot be.
867         Call forward_propagate_addr_into_variable_array_index with
868         the SSA_NAME instead of the statement.
869         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
870         (compare_constant): Likewise.
871         (copy_constant): Likewise.
872         (compute_reloc_for_constant): Likewise.
873         (output_addressed_constants): Likewise.
874         (initializer_constant_valid_p): Likewise.
875         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
876         Convert the MIN/MAX of the inner type to the outer
877         type before comparing them.
878         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
879         POINTER_PLUS_EXPR instead of PLUS_EXPR.
880         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
881         of PLUS_EXPR for pointers.
882         * tree-inline.c (estimate_num_insns_1): Handle
883         POINTER_PLUS_EXPR.
884         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
885         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
886         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
887         instead of PLUS_EXPR for the pointer increment statement.
888         (vect_update_ivs_after_vectorizer): For pointer types, create
889         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
890         MULT_EXPR in sizetype.
891         (vect_gen_niters_for_prolog_loop): Add a cast when creating
892         byte_misalign.
893         * tree-object-size.c (plus_expr_object_size): Handle
894         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
895         code which is trying to figure out which side is a pointer and 
896         is the index.
897         (check_for_plus_in_loops_1): Likewise.
898         (check_for_plus_in_loops): Likewise.
899         * c-common.c (pointer_int_sum): Create a
900         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
901         * tree-ssa-structalias.c (handle_ptr_arith): Handle
902         only POINTER_PLUS_EXPR.  Removing all the extra
903         code which is trying to figure out which side is a pointer and 
904         is the index.
905         * tree-cfg.c (verify_expr): Add extra checking for pointers and
906         PLUS_EXPR and MINUS_EXPR.
907         Also add checking to make sure the operands of POINTER_PLUS_EXPR
908         are correct.
909         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
910         with make_tree, instead of a pointer type.
911         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
912         for pointers instead of PLUS_EXPR.
913         (s390_gimplify_va_arg): Likewise.
914         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
915         instead of PLUS_EXPR when doing addition on pointer
916         types.  Use sizetype for the second operand.
917         (spu_gimplify_va_arg_expr): Likewise.
918         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
919         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
920         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
921         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
922         for the pointer addition and also use size_int/sizetype
923         for the offset.
924         (ix86_gimplify_va_arg): Likewise.
925         Perform BIT_AND_EXPR on sizetype arguments.
926         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
927         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
928         for the pointer additions and also use size_int for the offsets.
929         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
930         additions and also use size_int for the offsets.  Perform
931         BIT_AND_EXPR on sizetype arguments.
932         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
933         POINTER_PLUS_EXPR for pointers and create the
934         BIT_AND_EXPR in sizetype.
935         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
936         instead of PLUS_EXPR for pointer addition.
937         (rs6000_va_start): Likewise.
938         Also use sizetype for the offset.
939         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
940         as PLUS_EXPR/MINUS_EXPR.
941         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
942         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
943         Don't use BIT_AND_EXPR on a pointer type, convert the
944         expression to sizetype first.
945         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
946         for pointers.
947         (mips_gimplify_va_arg_expr): Likewise.
948         Don't create BIT_AND_EXPR in a pointer type.
949
950 2007-06-15  Eric Christopher  <echristo@apple.com>
951
952         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
953         (x86_64-*-darwin*): Ditto.
954         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
955         for above.
956
957 2007-06-15  Matthew Wilcox <matthew@wil.cx>
958
959         * doc/extend.texi: Document behavior of __attribute__((aligned))
960         on typedefs.
961
962 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
963
964         * rtlanal.c (note_stores): Improve documentation.
965
966 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
967
968         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
969         LOCAL_LABEL_PREFIX): Delete.
970         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
971         (bfin_internal_label): Delete.
972
973 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
974
975         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
976         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
977         otherwise define to LIBGCC2_TF_CEXT.
978         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
979         (LIBGCC_TF_CEXT): Ditto.
980         (TF_SIZE): Ditto.
981
982 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
983
984         PR rtl-optimization/32339
985         * df-scan.c (df_uses_record): Don't modify flags but just add to
986         it for df_ref_record.
987
988 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
989
990         * tree-mudflap.c: Fix whitespace issues.
991
992 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
993
994         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
995
996 2007-06-14  Eric Christopher  <echristo@apple.com>
997
998         * config/i386/sse.md (movdi_to_sse): Rewrite body.
999         (movv4sf): Use gcc_unreachable instead of abort.
1000
1001 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
1002
1003         PR target/32268
1004         * config/i386/sfp-machine.h (CMPtype): New define.
1005         (mach stubs): Use CMPtype instead of int as a return type.
1006
1007 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
1008
1009         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
1010         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
1011         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
1012         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
1013         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
1014         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
1015         config/soft-fp/soft-fp.h: Update from glibc CVS.
1016
1017 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
1018
1019         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
1020
1021 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1022
1023         PR target/32341
1024         * config/v850/v850.c: Include dataflow header file.
1025         (substitute_ep_register): Fix typo.
1026
1027 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1028
1029         * configure.ac: Fix earlier checkin.
1030         * configure: Regenerated.
1031
1032 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1033
1034         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
1035         * aclocal.m4: Regenerate.
1036         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
1037         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
1038         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
1039         * configure: Regenerate.
1040         * Makefile.in (LOOSE_WARN): Subst loose_warn.
1041
1042         * Makefile.in (quickstrap): Build libgcc too.
1043
1044 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1045
1046         * configure.ac: Add --enable-checking=df.  Explicitly mention that
1047         the variables are initialized as for "release".
1048         * df-core.c: Use it.
1049         * configure: Regenerate.
1050         * config.in: Regenerate.
1051
1052 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
1053
1054         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
1055         validate_replace_rtx instead of replace_rtx.
1056         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
1057
1058 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
1059
1060         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
1061         (DWARF2_UNWIND_INFO): Override default if configured with
1062         SJLJ EH disabled.
1063         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
1064         (ENDFILE_SPEC): Add crtend.o.
1065         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
1066         (ENDFILE_SPEC): Add crtend.o.
1067         (TARGET_USE_JCR_SECTION): Define.
1068         (MD_UNWIND_SUPPORT): Define for 32-bit target.
1069
1070         * config/i386/cygming-crtbegin.c: New file.
1071         * config/i386/cygming-crtend.c: New file.
1072
1073 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
1074
1075         * config/i386/w32-unwind.h: New file.
1076
1077 2007-06-13  Eric Christopher  <echristo@apple.com>
1078
1079         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
1080         the user set a value below STACK_BOUNDARY.
1081
1082 2007-06-13  Thiemo Seufer  <ths@networkno.de>
1083
1084         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
1085         imply -lpthread for -pthread.
1086
1087 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
1088
1089         * basic-block.h: Remove the prototype for
1090         free_basic_block_vars.
1091         * cfglayout.h: Remove the prototype for
1092         insn_locators_initialize.
1093         * tree.h: Remove the prototype for emit_line_note.
1094
1095         * tree-ssa-pre.c (mergephitemp): Remove.
1096         (init_pre): Don't use mergephitemp.
1097
1098 2007-06-13  Eric Christopher  <echristo@apple.com>
1099
1100         * config/i386/i386.c (override_options): If we've specified
1101         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
1102
1103 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
1104
1105         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
1106         is defined.
1107
1108 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1109
1110         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
1111         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
1112         (eh_store_handler): New pattern.
1113         (eh_return): Emit it instead of a plain move.
1114
1115 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
1116
1117         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
1118         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
1119         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
1120         def_builtin_const.
1121
1122 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1123
1124         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
1125         (find_next_insn_start, find_load): New functions.
1126         (bfin_reorg): Use them to deal with the fact that parallel insns are
1127         no longer represented as a SEQUENCE.
1128
1129 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1130
1131         * config/sparc/sparc.c (sparc_override_options): Initialize
1132         fpu mask correctly.
1133
1134 2007-06-13  Dave Korn  <dave.korn@artimi.com>
1135
1136         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
1137         df_get_live_out.
1138
1139 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
1140
1141         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
1142         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
1143         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
1144         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
1145         tree-vect-transform.c: Fix comment typos.  Follow spelling
1146         conventions.
1147
1148 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
1149
1150        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
1151        to the exit block use set.
1152        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
1153        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
1154        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
1155
1156 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
1157
1158         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
1159         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
1160         to indicate an error.
1161         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
1162         (dbg_cnt_process_opt): Print an error on a bad argument.
1163         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
1164         * common.opt (-fdbg-cnt-list): New.
1165         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
1166
1167 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1168
1169         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
1170         flag on ref-all pointers.
1171
1172 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1173
1174         PR middle-end/31579
1175         * expr.c (expand_expr_addr_expr_1): Call expand_expr
1176         for the offset with the modifier as EXPAND_INITIALIZER
1177         if the modifier is EXPAND_INITIALIZER.
1178         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
1179         a register if we had an overflow.
1180
1181 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1182
1183         * real.c (real_isfinite): New.
1184         (real_sqrt): Use it.
1185         * real.h (real_isfinite): New.
1186         * builtins.c: Use it.
1187
1188 2007-06-12  Ian Lance Taylor  <iant@google.com>
1189             Daniel Berlin  <dberlin@dberlin.org>
1190
1191         PR libstdc++/29286
1192         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
1193         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
1194         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
1195         (DECL_NO_TBAA_P): Define.
1196         (struct tree_decl_common): Add no_tbaa_flag field.
1197         * tree-ssa-structalias.c (struct variable_info): Add
1198         no_tbaa_pruning field.
1199         (new_var_info): Initialize no_tbaa_pruning field.
1200         (unify_nodes): Copy no_tbaa_pruning field.
1201         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
1202         (dump_solution_for_var): Print no_tbaa_pruning flag.
1203         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
1204         callers.
1205         (compute_tbaa_pruning): New static function.
1206         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
1207         Call compute_tbaa_pruning.
1208         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
1209         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
1210         * gimple-low.c (lower_stmt): Likewise.
1211         * tree-gimple.c (is_gimple_stmt): Likewise.
1212         * tree-ssa-operands.c (get_expr_operands): Likewise.
1213         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1214         * tree-inline.c (estimate_num_insns_1): Likewise.
1215         (copy_result_decl_to_var): Likewise.
1216         * expr.c (expand_expr_real_1): Likewise.
1217         * tree-pretty-print.c (dump_generic_node): Likewise.
1218         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
1219         * omp-low.c (omp_copy_decl_2): Likewise.
1220         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
1221         * doc/c-tree.texi (Expression trees): Document
1222         CHANGE_DYNAMIC_TYPE_EXPR.
1223
1224 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1225
1226         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
1227         with !HONOR_NANS and !HONOR_INFINITIES.
1228         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1229
1230 2007-06-12  Tristan Gingold  <gingold@adacore.com>
1231
1232         * gcov.c: Comments updated.
1233         (source_info): Add file_time field.
1234         (source_index): New variable.
1235         (mutiple_files): New variable.
1236         (generate_results): New function extracted from process_file.
1237         (process_file): Save and restore chain of functions, generate
1238         results and free structures only if not merging results.
1239         (release_structures): File names are now freed in create_file_names
1240         (create_file_names): Free previous file names.
1241         (find_source): File date is now read here and modifications in
1242         source files is checked here.
1243         (read_graph_file): Only reverse order of functions for the current
1244         object file.
1245         (make_gcov_file_name): Do not generate long names if input_name is
1246         NULL.
1247         (output_lines): If merging results do not display graph, data and
1248         runs informations.
1249         Checking source file modification is done in find_source.
1250
1251         * doc/gcov.texi: Append an s to sourcefile.
1252
1253 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
1254
1255         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
1256         (forced_nop): New pattern.
1257         * config/bfin/bfin.c: Include "df.h".
1258         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
1259         (bfin_discover_loop): Use df_get_live_in instead of
1260         global_live_at_start.
1261         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
1262         df_analyze when done.
1263         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
1264         the insns.  Use QImode for the final insn in a bundle.  Call
1265         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
1266         gen_nop.
1267         (reorder_var_tracking_notes): New function.
1268         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
1269         update_life_info.  Call df_analyze after scheduling and bundle
1270         generation.  Call reorder_var_tracking_notes if generating these notes.
1271         Call df_finish_pass at the end.
1272
1273 2007-06-12  Dirk Mueller  <dmueller@suse.de>
1274
1275         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
1276         a comparison, not an assignment.
1277
1278 2007-06-12  Olivier Hainque  <hainque@adacore.com>
1279
1280         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
1281         Request walking the subtrees only, leaving the current is_lhs/val_only
1282         untouched.
1283         (convert_non_local_reference): Likewise.
1284
1285 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1286
1287         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
1288
1289 2007-06-12  Richard Guenther  <rguenther@suse.de>
1290
1291         PR tree-optimization/15353
1292         PR tree-optimization/31657
1293         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
1294         * timevar.def: Add TV_TREE_IFCOMBINE.
1295         * tree-pass.h (pass_tree_ifcombine): Declare.
1296         * tree-ssa-ifcombine.c: New file.
1297         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
1298         * tree-flow.h (blocks_in_phiopt_order): Declare.
1299         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
1300         (tree-ssa-ifcombine.o): New dependencies.
1301
1302 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
1303
1304         PR rtl-optimization/32293
1305         * combine.c (simplify_if_then_else): Truncate return from
1306         nonzero_bits() to correct mode.
1307
1308 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
1309
1310         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
1311         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
1312
1313 2007-06-11  Diego Novillo  <dnovillo@google.com>
1314
1315         * Makefile.in (reload1.o-warn): Remove.
1316
1317 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
1318
1319         * combine.c (subst): Use reg_overlap_mentioned_p
1320         instead of comparing register numbers directly.
1321
1322 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1323
1324         * reload1.c (mark_home_live_1): Use the mode parameter.
1325
1326 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1327
1328         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
1329         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
1330         word "deferred".
1331         * df-core.c: Ditto.
1332
1333 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
1334
1335         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
1336
1337 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
1338
1339         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
1340         from integer registers.
1341         (FP mode splitters): Handle TFmode.
1342
1343 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1344
1345         * tree-ssa-structalias.c (find_what_p_points_to): Return false
1346         for ref-all pointers that point-to anything.
1347
1348 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
1349
1350         * config/arm/arm.c (arm_output_dwarf_dtprel,
1351         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
1352
1353 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1354
1355         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
1356         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
1357         to memory moves.
1358
1359 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
1360
1361         * gcc/tree.c (signed_or_unsigned_type_for): New.
1362         (unsigned_type_for): Use signed_or_unsigned_type_for.
1363         (signed_type_for): Use signed_or_unsigned_type_for.
1364         * gcc/tree.h (signed_or_unsigned_type_for): New.
1365         (get_signed_or_unsigned_type): Remove.
1366         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
1367         lang_hooks.types.signed_type
1368         (size_diffop): Likewise.
1369         (all_ones_mask_p): Likewise.
1370         (build_range_check): Likewise.
1371         (fold_cond_expr_with_comparison): Likewise.
1372         (fold_cond_expr_with_comparison): Likewise.
1373         (unextend): Likewise.
1374         (extract_muldiv_1): Likewise.
1375         (fold_single_bit_test_into_sign_test): Likewise.
1376         (fold_binary): Likewise.
1377         (fold_ternary): Likewise.
1378         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
1379         instead of get_signed_or_unsigned_type.
1380         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
1381         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
1382         * gcc/expr.c (signed_or_unsigned_type_for): Use
1383         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
1384         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
1385         (lhd_signed_or_unsigned_type): Remove.
1386         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
1387         signed_or_unsigned_type.
1388         (lhd_signed_or_unsigned_type): Remove.
1389         * gcc/expmed.c (make_tree): Use signed_type_for instead of
1390         lang_hooks.types.signed_type.
1391         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
1392         c_common_signed_type instead of lang_hooks.types.signed_type.
1393         (c_common_unsigned_type): New.
1394         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
1395         (shorten_compare): Use c_common_unsigned_type instead of
1396         c_common_signed_or_unsigned_type.
1397         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
1398         unsigned_type_for.
1399         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
1400         lang_hooks.types.signed_type.
1401         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
1402         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
1403         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
1404         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
1405         instead of unsigned_type_for.
1406         * gcc/c-decl.c (groakdeclarator): Likewise.
1407         * gcc/c-typeck.c (convert_for_assignment): Likewise.
1408         * gcc/c-common.h (c_common_unsigned_type): New.
1409
1410 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
1411
1412         PR target/32280
1413         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
1414         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
1415
1416 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
1417
1418         PR middle-end/32279
1419         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
1420         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
1421
1422 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
1423             Sebastian Pop  <sebpop@gmail.com>
1424
1425         * lambda-code.c (remove_iv): New.
1426         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
1427
1428 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
1429
1430         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
1431         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
1432         * tree-ssa-loop-prefetch.c: Include optabs.h.
1433         (FENCE_FOLLOWING_MOVNT): New macro.
1434         (struct mem_ref): Add independent_p and storent_p fields.
1435         (record_ref): Initalize the new fields.
1436         (gather_memory_references_ref): Return true if the reference
1437         could be analysed.
1438         (gather_memory_references): Check whether all memory accesses
1439         in loop were recorded.
1440         (should_issue_prefetch_p): Return false for nontemporal stores.
1441         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
1442         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
1443         (determine_loop_nest_reuse): Detect independent memory references.
1444         (loop_prefetch_arrays): Call mark_nontemporal_stores.
1445         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
1446         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
1447         * config/i386/i386.h (x86_mfence): Declare.
1448         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
1449         * config/i386/i386.c (x86_mfence): New variable.
1450         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
1451
1452         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
1453         * optabs.c (init_optabs): Initialize storent_optab.
1454         * optabs.h (enum optab_index): Add OTI_storent.
1455         (storent_optab): Declare.
1456         * genopinit.c (optabs): Add initialization for storent_optab.
1457         * tree.h (MOVE_NONTEMPORAL): New macro.
1458         * expr.c (expand_assignment, store_expr, store_constructor_field,
1459         store_constructor, store_field, expand_expr_real_1): Propagate
1460         nontemporality of the expanded store.
1461         (emit_storent_insn): New function.
1462         * expr.h (expand_assignment, store_expr): Declaration changed.
1463         * function.c (assign_parm_setup_reg): Pass false as nontemporality
1464         to expand_assignment.
1465         * stmt.c (expand_asm_expr): Ditto.
1466         * calls.c (initialize_argument_information): Pass false as
1467         nontemporality to store_expr.
1468         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
1469         storentsi): New.
1470
1471 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
1472
1473         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
1474         parameter, use it.
1475         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
1476
1477 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
1478
1479         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
1480         and allow DECL_P here.
1481
1482 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
1483
1484         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
1485         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
1486         track of the size of the expression.
1487         * cfghooks.c (merge_blocks): Remove block from loops structure only
1488         after call of the merge_blocks hook.
1489
1490 2007-06-09  Tom Tromey  <tromey@redhat.com>
1491
1492         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
1493         (deprecated_state): Removed.
1494         (start_decl): Update.
1495         (enum deprecated_states): Moved earlier.
1496         (groktypename): Update.
1497         (push_parm_decl): Likewise.
1498         (grokfield): Likewise.
1499         (start_function): Likewise.
1500
1501 2007-06-09  Ian Lance Taylor  <iant@google.com>
1502
1503         PR tree-optimization/32169
1504         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
1505         CONVERT_EXPR, check whether min and max both converted to an
1506         overflow infinity representation.
1507
1508 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
1509
1510         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
1511         not inserted on the edge.
1512
1513 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
1514
1515         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
1516         instructions if they are supported.
1517         (__divsi3, __umodsi3, __modsi3): Likewise.
1518         (__ashldi3, __ashrdi3, __lshrdi3): New.
1519         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
1520
1521 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
1522             Tony Linthicum <tony.linthicum@amd.com>
1523
1524         * doc/extend.texi: Add fvect-cost-model flag.
1525         * common.opt (fvect-cost-model): New flag.
1526         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
1527         cost fields in stmt_vec_info struct for STMT.
1528         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
1529         fields in stmt_vec_info struct and access functions for the same.
1530         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
1531         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
1532         load, store and vector to scalar operation.
1533         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
1534         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
1535         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
1536         (TARG_VEC_STORE_COST): Define cost of vector store.
1537         (vect_estimate_min_profitable_iters): Define new function.
1538         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
1539         check to evaluate if loop iterations are less than minimum profitable
1540         iterations determined by cost model or minimum vect loop bound defined
1541         by user, whichever is more conservative.
1542         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
1543         run-time check to evaluate if loop iterations are less than minimum
1544         profitable iterations determined by cost model or minimum vect loop
1545         bound defined by user, whichever is more conservative.
1546         (vect_estimate_min_profitable_iterations): New function to estimate
1547         mimimimum iterartions required for vector version of loop to be
1548         profitable over scalar version.
1549         (vect_model_reduction_cost): New function.
1550         (vect_model_induction_cost): New function.
1551         (vect_model_simple_cost): New function.
1552         (vect_cost_strided_group_size): New function.
1553         (vect_model_store_cost): New function.
1554         (vect_model_load_cost): New function.
1555         (vectorizable_reduction): Call vect_model_reduction_cost during
1556         analysis phase.
1557         (vectorizable_induction): Call vect_model_induction_cost during
1558         analysis phase.
1559         (vectorizable_load): Call vect_model_load_cost during analysis phase.
1560         (vectorizable_store): Call vect_model_store_cost during analysis phase.
1561         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
1562         vectorizable_promotion, vectorizable_demotion): Call
1563         vect_model_simple_cost during analysis phase.
1564
1565 2007-06-08  Simon Baldwin  <simonb@google.com>
1566
1567         * reg-stack.c (get_true_reg): Readability change.  Moved default case
1568         label into direct switch statement scope.
1569
1570 2007-06-08  Simon Baldwin  <simonb@google.com>
1571
1572         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
1573         in gcc_assert() with '==' comparison.
1574
1575 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
1576
1577         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
1578         TARGET_ABM handling of x86_popcnt variable.
1579
1580 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
1581
1582         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
1583         __builtin_copysignq and __builtin_infq built-in functions.
1584
1585 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
1586
1587         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
1588         SSE4.2 section.  Correct built-in function names in SSE4A section.
1589
1590 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
1591
1592         PR tree-optimization/32243
1593         * tree-vect-transform.c (vectorizable_type_promotion): Move check
1594         for ncopies after ratio check between nunits_out and nunits_in.
1595         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
1596
1597 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
1598
1599         PR tree-optimization/32224
1600         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
1601         vectorization upon a non GIMPLE_MODIFY_STMT.
1602
1603 2007-06-08  Christian Bruel  <christian.bruel@st.com>
1604
1605         PR target/29953
1606         * config/sh/sh.md (doloop_end): New pattern and splitter.
1607         * loop-iv.c (simple_rhs_p): Check for hardware registers.
1608
1609 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
1610
1611         PR middle-end/32209
1612         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
1613         functions.
1614         (verify_dominators): Do not change dominance tree.
1615
1616 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1617
1618         * config/sh/constraints.md: New file.
1619         * config/sh/sh.c: Include tm-constrs.h.
1620         (reg_class_from_letter): Remove.
1621         (prepare_cbranch_operands): Use satisfies_constraint_*
1622         function instead of macro.
1623         (andcosts, broken_move, sh_secondary_reload): Likewise.
1624         * config/sh/predicates.md (trapping_target_operand): Likewise.
1625         (and_operand, arith_operand, arith_reg_or_0_operand,
1626         cmp_operand, logical_operand, target_operand,
1627         ua_address_operand, ua_offset, xor_operand): Likewise.
1628         * config/sh/sh.md: Include constraints.md.
1629         (*movsicc_t_false): Use satisfies_constraint_* function
1630         instead of macro.
1631         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
1632         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
1633         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
1634         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
1635         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
1636         (REG_CLASS_FROM_CONSTRAINT): Remove.
1637         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
1638         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
1639         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
1640         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
1641         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1642         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
1643         function instead of macro.
1644         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1645         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
1646         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
1647         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
1648         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
1649         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
1650         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
1651         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
1652         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
1653         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
1654         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
1655         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
1656         EXTRA_CONSTRAINT_STR): Likewise.
1657         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
1658
1659 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
1660
1661         * config/i386/darwin.h (STACK_BOUNDARY): Define.
1662
1663 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
1664
1665         PR c++/30759
1666         * c-common.h (flag_cpp0x): Replaced by...
1667         (cxx_dialect): ... this new variable specifying the C++ dialect that
1668         is used.
1669         * c-common.c (flag_cpp0x): Removed.
1670         (cxx_dialect): Defined.
1671         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
1672         cxx_dialect.
1673         * c-opts.c (c_common_post_options): Likewise.
1674         (set_std_cxx98): Set cxx_dialect to cxx98.
1675         (set_std_cxx0x): Set cxx_dialect to cxx0x.
1676
1677 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
1678             Hui-May Chang <hm.chang@apple.com>
1679
1680         * doc/invoke.texi (Darwin Options): Update documentation for
1681         -mmacosx-version-min.
1682         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
1683         * config/darwin-driver.c: New file.
1684         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
1685         * config/t-darwin (darwin-driver.o): New rule.
1686
1687         * config/darwin-c.c (version_as_macro): Ignore low digit.
1688
1689 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
1690
1691         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
1692         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
1693         (CSGNMODE): New mode macro.
1694         (CSGNVMODE): New mode attribute.
1695         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
1696         expander using CSGNMODE mode macro.  Handle TFmode.
1697         (copysign<mode>3_const): Rename from copysignsf3_const and
1698         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
1699         Handle TFmode.
1700         (copysign<mode>3_var): Rename from copysignsf3_var and
1701         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
1702         Handle TFmode.
1703         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
1704         mode macro.  Handle TFmode.
1705         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
1706         (iortf3, *iortf3): Ditto.
1707         (xortf3, *xortf3): Ditto.
1708         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
1709         TFmode and TImode masks.
1710         (ix86_expand_copysign): Expand TFmode copysign insn.
1711         (IX86_BUILTIN_INFQ): New.
1712         (IX86_BUILTIN_FABSQ): Ditto.
1713         (IX86_BUILTIN_COPYSIGNQ): Ditto.
1714         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
1715         [__builtin_fabsq]: Ditto.
1716         [__builtin_copysignq]: Ditto.
1717         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
1718         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
1719         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
1720         ix86_expand_binop_builtin().
1721
1722 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
1723
1724         * config/xtensa/lib1funcs.asm: Clean up whitespace.
1725
1726 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
1727
1728         PR target/31850
1729         * rtl.h (push_to_sequence2): New.
1730         * emit-rtl.c (push_to_sequence2): New.
1731         * function.c (assign_parm_data_all): Add new fields.
1732         (assign_parm_setup_block): Call push_to_sequence2 instead of
1733         push_to_sequence.
1734         (assign_parm_setup_reg): Ditto.
1735         (assign_parm_setup_stack): Ditto.
1736         (assign_parms_unsplit_complex): Ditto.
1737         (assign_parms): Change field name.
1738
1739 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
1740
1741         PR tree-optimization/32220
1742         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
1743         phi node is reached before defining statement.
1744
1745 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1746
1747         PR tree-opt/32231
1748         * tree-vect-transform.c (vectorizable_call): Call update_stmt
1749         after changing the right hand side of the assignment.
1750
1751 2007-06-06  Eric Christopher  <echristo@apple.com>
1752
1753         * config.gcc (i?86-*-darwin*): Remove arch parameter.
1754         (x86_64-*-darwin*): Ditto.
1755         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
1756         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
1757
1758 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
1759
1760         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
1761         coding conventions.
1762         (add_key): Likewise.
1763         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
1764         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
1765         variable names.
1766         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
1767         (add_cost_one_coalesce): Likewise.
1768         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
1769         variable names. Rename orig to orig_name for consistency.
1770         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
1771         conventions.
1772         (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
1773         (record_equivalences_from_stmt): Likewise.
1774         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
1775         the coding conventions.
1776         (memory_ssa_name_same): Likewise.
1777         (dse_optimize_stmt): Likewise.
1778         (dse_record_phis): Likewise.
1779         (dse_finalize_block): Likewise.
1780         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
1781         keywords as variable names.
1782         (may_move_till): Cast according to the coding conventions.
1783         (force_move_till_expr): Avoid using C++ keywords as variable names.
1784         (force_move_till): Cast according to the coding conventions.
1785         (memref_hash): Likewise.
1786         (memref_eq): Likewise.
1787         (gather_mem_refs_stmt): Likewise.
1788         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
1789         keywords as variable names.
1790         (idx_find_step): Cast according to the coding conventions.
1791         (idx_record_use): Likewise.
1792         (find_depends): Likewise.
1793         (prepare_decl_rtl): Likewise.
1794         (mbc_entry_hash): Likewise.
1795         (mbc_entry_eq): Likewise.
1796         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
1797         (simplify_replace_tree): Avoid using C++ keywords as variable names.
1798         (idx_infer_loop_bounds): Cast according to the coding conventions.
1799         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1800         * tree-ssa-math-opts.c (occ_new ): Likwise.
1801         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
1802         macros.
1803         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
1804         names.
1805         (add_use_op): Likewise.
1806         (add_vop): Likewise.
1807         (add_vuse_op): Likewise.
1808         (add_vdef_op): Likewise.
1809         (get_expr_operands): Likewise.
1810         (push_stmt_changes): Use type safe memory macros.
1811         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
1812         keywords as variable names.
1813         (conditional_replacement): Likewise.
1814         (minmax_replacement): Likewise.
1815         (abs_replacement): Likewise.
1816         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
1817         coding conventions.
1818         (insert_fake_stores): Avoid using C++ keywords as variable names.
1819         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
1820         conventions.
1821         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
1822         (heapvar_insert): Use type safe memory macros.
1823         (new_var_info): Cast according to the coding conventions.
1824         (new_constraint): Likewise.
1825         (remove_preds_and_fake_succs): Use type safe memory macros.
1826         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
1827         conventions.
1828         (thread_single_edge): Likewise.
1829         (thread_through_loop_header): Likewise.
1830
1831 2007-06-06  Eric Christopher  <echristo@apple.com>
1832
1833         * config/i386/i386.c (override_options): Move handling
1834         of TARGET_SUBTARGET* earlier.
1835
1836 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
1837
1838         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
1839         use %n on printf.
1840
1841 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
1842
1843         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
1844         emited outside of basic block.
1845         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
1846         the created blocks.
1847         * rtl.h (delete_insn_chain): Declaration changed.
1848         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
1849         non-removed insns.
1850         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
1851         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
1852         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
1853         to delete_insn_chain.
1854         (rtl_verify_flow_info_1): Verify that the insns in header and footer
1855         do not have bb field set.
1856         (rtl_verify_flow_info): Verify that insns between basic blocks do not
1857         have bb field set.
1858         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
1859         * cfgcleanup.c (try_optimize_cfg): Ditto.
1860
1861 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
1862
1863         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
1864         (lambda_body_vector_new): Use type safe memory macros.
1865         (lambda_linear_expression_new): Likewise.
1866         (lambda_loopnest_new): Likewise.
1867         (lambda_lattice_new): Likewise.
1868         (replace_uses_equiv_to_x_with_y): Cast according to the coding
1869         conventions. Use type safe memory macros.
1870         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
1871         (lambda_body_vector_s): Likewise.
1872         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
1873         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
1874
1875 2007-06-06  Richard Guenther  <rguenther@suse.de>
1876
1877         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
1878         if we need to schedule cfg_cleanup.
1879         (tree_ssa_forward_propagate_single_use_vars): Do so.
1880
1881 2007-06-06  Ian Lance Taylor  <iant@google.com>
1882
1883         * fold-const.c (merge_ranges): If range_successor or
1884         range_predecessor fail, just return 0.
1885
1886 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
1887
1888         PR tree-optimization/32216
1889         * tree-vectorizer.c (supportable_widening_operation): Determine
1890         signedness of FIX_TRUNC_EXPR from output operand.
1891         (supportable_narrowing_operation): Ditto.
1892         * tree-vect-generic.c (expand_vector_operations_1): Determine
1893         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
1894         from input operand.
1895
1896 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
1897
1898         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
1899         (struct pta): ...from here. Change flags to unsigned to avoid
1900         excessive casting (as it is used as a bit mask).
1901         (override_options): Add casts according to the coding convenventions.
1902         (x86_64_elf_unique_section): Likewise.
1903         (examine_argument): Avoid using C++ keywords as variable names.
1904         (construct_container): Likewise.
1905         (legitimize_pic_address): Likewise.
1906         (get_dllimport_decl): Cast according to the coding conventions. Use
1907         type safe memory macros.
1908         (legitimize_address): Cast according to the coding conventions.
1909         (emit_i387_cw_initialization): Corrected the type of slot to enum
1910         ix86_stack_slot.
1911         (ix86_init_machine_status): Use type safe memory macros.
1912         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
1913         (bdesc_pcmpistr): Likewise.
1914         (bdesc_crc32): Likewise.
1915         (bdesc_sse_3arg): Likewise.
1916         (bdesc_2arg): Likewise.
1917         (bdesc_1arg): Likewise.
1918         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
1919         (ix86_expand_sse_pcmpistr): Likewise.
1920         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
1921         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
1922         int to match the langhook definition.
1923         (ix86_builtin_conversion): Change the type of code to unsigned init to
1924         match the langhook definition.
1925         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
1926         names.
1927         (ix86_preferred_output_reload_class): Likewise.
1928         (ix86_cannot_change_mode_class): Likewise.
1929         (ix86_memory_move_cost): Likewise.
1930         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
1931         avoid excessive casting later on.
1932         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
1933
1934 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
1935
1936         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
1937         as flags setting insn.
1938         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
1939
1940 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
1941
1942         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
1943         (UNSPEC_ROUND): New.
1944         ("sse4_1_round<mode>2"): New insn pattern.
1945         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
1946         SSE4.1 targets.
1947         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
1948         expander using SSEMODEF mode macro.  Expand using
1949         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
1950         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
1951         expander using SSEMODEF mode macro.  Expand using
1952         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
1953         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
1954         expander using SSEMODEF mode macro.  Expand using
1955         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
1956         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
1957         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
1958         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
1959         UNSPEC_ROUNDS.
1960
1961 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
1962             Sebastian Pop  <sebpop@gmail.com>
1963
1964         * lambda.h (build_linear_expr): New.
1965         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
1966         Use build_linear_expr, call fold and force_gimple_operand.
1967         (lambda_loopnest_to_gcc_loopnest): Check that there is
1968         something to insert.
1969         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
1970
1971 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
1972
1973         PR preprocessor/23479
1974         * doc/extend.texi: Document the 0b-prefixed binary integer
1975         constant extension.
1976
1977 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
1978
1979         PR tree-optimization/32215
1980         * tree-vectorizer.c (supportable_widening_operation): Return false
1981         for unsupported FIX_TRUNC_EXPR tree code.
1982         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
1983
1984 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1985
1986         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
1987         register on SPE targets.  Change documentation to reflect
1988         reality.
1989         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
1990         Change FIXED_SCRATCH to 14 and document why we're keeping r14
1991         out of the register allocation pool.
1992         (rs6000_reg_live_or_pic_offset_p): New function.
1993         (rs6000_emit_prologue): Move the actual saving of LR up to free
1994         r0 for holding r11.  Split saving of SPE 64-bit registers into
1995         its own case.  Ensure that offsets will always be in-range for
1996         'evstdd' by using r11 as a scratch register to point at the start
1997         of the SPE save area.  Save r11 if necessary, as it is the static
1998         chain register.
1999         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
2000         into its own case.  Ensure that offsets will always be in-range
2001         for 'evldd' by using r11 as a scratch register to point at the
2002         start of the SPE save area.  Also adjust r11 when restoring
2003         the stack pointer to compensate for pre-loading r11.
2004
2005 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
2006
2007         * cfg.c (init_flow): Use type safe memory macros.
2008         (alloc_block): Likewise.
2009         (unchecked_make_edge): Likewise.
2010         (dump_flow_info): Avoid using C++ keywords as variable names.
2011         (copy_original_table_clear): Cast according to the coding conventions.
2012         (copy_original_table_set): Likewise.
2013         * cfgexpand (label_rtx_for_bb): Likewise.
2014         (expand_gimple_basic_block): Likewise.
2015         * cfghooks.c (dump_bb): Likewise.
2016         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
2017         variable names.
2018         (lv_add_condition_to_bb): Likewise.
2019         * cfglayout (relink_block_chain): Cast according to the coding
2020         conventions.
2021         (fixup_reorder_chain): Likewise.
2022         (fixup_fallthru_exit_predecessor): Likewise.
2023         * cfgloop.c (glb_enum_p): Likewise.
2024         (get_exit_description): Likewise.
2025         (dump_recorded_exit): Likewise.
2026         * cfgloop.h (enum loop_estimation): Move out of struct scope...
2027         (struct loop): ... from here.
2028         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
2029         conventions.
2030         * cfgrtl.c (rtl_create_basic_block): Likewise.
2031         (rtl_split_block): Likewise.
2032         (rtl_dump_bb): Likewise.
2033         (cfg_layout_split_block): Likewise.
2034         (init_rtl_bb_info): Use typesafe memory macros.
2035
2036         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
2037         * graphds.h: Updated all usages of edge to graph_edge.
2038         * graphds.c: Likewise.
2039         * cfgloopanal.c: Likewise.
2040
2041 2007-06-05  Ian Lance Taylor  <iant@google.com>
2042
2043         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
2044         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
2045         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
2046         expression.
2047         (test_for_singularity): Likewise.
2048
2049 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
2050
2051         * config/i386/constraints.md ("Y2"): Replaced by ...
2052         ("Yt"): This.
2053         * config/i386/i386.md: Likewise.
2054         * config/i386/mmx.md: Likewise.
2055         * config/i386/sse.md: Likewise.
2056
2057 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
2058
2059         * config/i386/constraints.md ("z"): Replaced by ...
2060         ("Y0"): This.
2061         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
2062         (sse4_1_blendvps): Likewise.
2063         (sse4_1_pblendvb): Likewise.
2064         (sse4_2_pcmpestr): Likewise.
2065         (sse4_2_pcmpestrm): Likewise.
2066         (sse4_2_pcmpestr_cconly): Likewise.
2067         (sse4_2_pcmpistr): Likewise.
2068         (sse4_2_pcmpistrm): Likewise.
2069         (sse4_2_pcmpistr_cconly): Likewise.
2070
2071 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
2072
2073         * matrix-reorg.c (transform_access_sites): Fix computation.
2074         (transform_allocation_sites): Same.
2075
2076 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2077
2078         * config/i386/i386.c (override_options): Use
2079         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
2080
2081 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2082
2083         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
2084         (nonimm_not_xmm0_operand): Ditto.
2085         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
2086         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
2087         as operand[2] predicate.  Require "z" class XMM register for
2088         operand[3].  Adjust asm template.
2089         ("sse4_1_blendvpd"): Ditto.
2090         ("sse4_1_pblendvb"): Ditto.
2091         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
2092         force op2 into xmm0 register for variable blend instructions.
2093
2094 2007-06-04  Tom Tromey  <tromey@redhat.com>
2095
2096         * c-tree.h (start_enum): Update.
2097         (build_enumerator): Likewise.
2098         * c-decl.c (enum_next_value): Removed.
2099         (enum_overflow): Likewise.
2100         (start_enum): Add c_enum_contents argument.  Don't use globals.
2101         (build_enumerator): Likewise.
2102         * c-tree.h (struct c_enum_contents): New struct.
2103
2104 2007-06-04  Tom Tromey  <tromey@redhat.com>
2105
2106         * c-common.c (c_common_get_alias_set): Fix indentation.
2107
2108 2007-06-04  Ian Lance Taylor  <iant@google.com>
2109
2110         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
2111         to overflow, reduce overflow infinity to regular infinity.
2112         (vrp_var_may_overflow): New static function.
2113         (vrp_visit_phi_node): Check vrp_var_may_overflow.
2114
2115 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
2116
2117         * stor-layout.c (layout_type): Remove duplicate code.
2118
2119 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
2120
2121         PR c/32191
2122         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
2123         before build_common_builtin_nodes ().
2124
2125 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
2126
2127         PR target/31733
2128         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
2129
2130 2007-06-04  Jan Hubicka  <jh@suse.cz>
2131
2132         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
2133         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
2134         instead of _stat version.
2135
2136 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
2137
2138         PR tree-optimization/32194
2139         * tree-predcom.c (determine_offset): Check that both references have
2140         the same type.
2141
2142 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
2143
2144         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
2145         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
2146         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2147         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
2148         Add argument to iterate_fix_dominators call.
2149         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
2150         * gcse.c (hoist_code): Change domby to vector.
2151         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
2152         Add argument to iterate_fix_dominators call.
2153         * loop-doloop.c (doloop_modify): Changed recount_dominator to
2154         recompute_dominator.
2155         * lambda-code.c (perfect_nestify): Ditto.
2156         * cfgloopanal.c: Include graphds.h.
2157         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
2158         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
2159         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
2160         add_edge call.
2161         * graphds.c: New file.
2162         * graphds.h: New file.
2163         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
2164         (get_dominated_by, get_dominated_by_region): Change return type to
2165         vector.
2166         (verify_dominators): Recompute all dominators and compare the results.
2167         (recount_dominator): Renamed to ...
2168         (recompute_dominator): ... this.  Do not check that the block is
2169         dominated by entry.
2170         (iterate_fix_dominators): Reimplemented.
2171         (prune_bbs_to_update_dominators, root_of_dom_tree,
2172         determine_dominators_for_sons): New functions.
2173         * et-forest.c (et_root): New function.
2174         * et-forest.h (et_root): Declare.
2175         * Makefile.in (graphds.o): Add.
2176         (cfgloopanal.o): Add graphds.h dependency.
2177         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
2178         * basic-block.h (get_dominated_by, get_dominated_by_region,
2179         iterate_fix_dominators): Declaration changed.
2180         (recount_dominator): Renamed to ...
2181         (recompute_dominator): ... this.
2182         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
2183         (thread_through_all_blocks): Do not free dominance info.
2184
2185 2007-06-03  Andreas Schwab  <schwab@suse.de>
2186
2187         * config/m68k/m68k.c (override_options): Don't override
2188         REAL_MODE_FORMAT.
2189         * config/m68k/m68k-modes.def (SF, DF): Define to use
2190         motorola_single_format and motorola_double_format, resp.
2191         * real.c (motorola_single_format): Renamed from
2192         coldfire_single_format.
2193         (motorola_double_format): Renamed from coldfire_double_format.
2194         (encode_ieee_extended): Generate a proper canonical NaN image
2195         respecting canonical_nan_lsbs_set.
2196         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
2197         true.
2198         * real.h: Adjust declarations.
2199
2200 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2201
2202         PR target/32163
2203         * config/sh/sh.md (symGOT_load): Don't schedule insns when
2204         the symbol is generated with the stack protector.
2205
2206 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
2207
2208         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
2209         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
2210         "interrupt".
2211         * doc/extend.texi (interrupt): Mention m68k.
2212
2213 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
2214
2215         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
2216         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
2217         (ix86_expand_sse_pcmpestr): Do not check operands for
2218         "register_operand", when insn operand predicate is "register_operand".
2219         (ix86_expand_sse_pcmpistr): Ditto.
2220
2221 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2222             Uros Bizjak  <ubizjak@gmail.com>
2223
2224         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
2225         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
2226         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
2227         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
2228         * config/i386/constraints.md ("z"): New register constraint
2229         for members of SSE_FIRST_REG class.
2230         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
2231         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
2232         SSE_FIRST_REG class.
2233         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
2234         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
2235         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
2236         (IX86_BUILTIN_PCMPESTRM128): Likewise.
2237         (IX86_BUILTIN_PCMPESTRA128): Likewise.
2238         (IX86_BUILTIN_PCMPESTRC128): Likewise.
2239         (IX86_BUILTIN_PCMPESTRO128): Likewise.
2240         (IX86_BUILTIN_PCMPESTRS128): Likewise.
2241         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
2242         (IX86_BUILTIN_PCMPISTRI128): Likewise.
2243         (IX86_BUILTIN_PCMPISTRM128): Likewise.
2244         (IX86_BUILTIN_PCMPISTRA128): Likewise.
2245         (IX86_BUILTIN_PCMPISTRC128): Likewise.
2246         (IX86_BUILTIN_PCMPISTRO128): Likewise.
2247         (IX86_BUILTIN_PCMPISTRS128): Likewise.
2248         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
2249         (struct builtin_description): Change "flag" field to unsigned.
2250         (bdesc_pcmpestr): New builtin description table.
2251         (bdesc_pcmpistr): Likewise.
2252         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
2253         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
2254         Initialize pcmp[ei]str[im] insns for SSE4.2.
2255         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
2256         (ix86_expand_sse_pcmpistr): Likewise.
2257         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
2258         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
2259         (UNSPEC_PCMPISTR): Likewise.
2260         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
2261         (sse4_2_pcmpestri):New isns pattern.
2262         (sse4_2_pcmpestrm): Likewise.
2263         (sse4_2_pcmpestr_cconly): Likewise.
2264         (sse4_2_pcmpistr): New insn patern and splitter.
2265         (sse4_2_pcmpistri):New isns pattern.
2266         (sse4_2_pcmpistrm): Likewise.
2267         (sse4_2_pcmpistr_cconly): Likewise.
2268         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
2269         in SSE4.2.
2270
2271 2007-06-01  David Daney  <ddaney@avtrex.com>
2272
2273         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
2274         LOADGP_ABSOLUTE and not binds_local_p.
2275
2276 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
2277
2278         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
2279
2280 2007-06-01  Ian Lance Taylor  <iant@google.com>
2281
2282         * tree-vrp.c (compare_name_with_value): Always set
2283         used_strict_overflow if we get a result from the variable itself.
2284
2285 2007-06-01  Ian Lance Taylor  <iant@google.com>
2286
2287         PR rtl-optimization/31455
2288         * lower-subreg.c (find_decomposable_subregs): Don't decompose
2289         subregs which have a cast between modes which are not tieable.
2290
2291 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
2292
2293         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
2294         breaks after return statements.
2295
2296 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2297
2298         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
2299         only after no_new_pseudos.
2300
2301 2007-05-31  Eric Christopher  <echristo@apple.com>
2302
2303         * expr.c (convert_move): Assert that we don't have a BLKmode
2304         operand.
2305         (store_expr): Handle BLKmode moves by calling emit_block_move.
2306
2307 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
2308
2309         * c-typeck.c (build_indirect_ref): Include type in error message.
2310         (build_binary_op): Pass types to binary_op_error.
2311         * c-common.c (binary_op_error): Take two type arguments, print out
2312         types with error.
2313         * c-common.h (binary_op_error): Update prototype.
2314
2315 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
2316
2317         * config/i386/i386.c: Correct coments on -mno-sse4.
2318
2319 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
2320
2321         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
2322         (x86_64-*-*): Likewise.
2323         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
2324         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
2325         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
2326         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
2327         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
2328         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
2329         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
2330         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
2331         (OPTION_MASK_ISA_SSE4): Likewise.
2332         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
2333         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
2334         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
2335         (override_options): Support SSE4.2.
2336         (ix86_build_const_vector): Support SImode and DImode.
2337         (ix86_build_signbit_mask): Likewise.
2338         (ix86_expand_int_vcond): Support V2DImode.
2339         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
2340         (IX86_BUILTIN_CRC32HI): Likewise.
2341         (IX86_BUILTIN_CRC32SI): Likewise.
2342         (IX86_BUILTIN_CRC32DI): Likewise.
2343         (IX86_BUILTIN_PCMPGTQ): Likewise.
2344         (bdesc_crc32): Likewise.
2345         (bdesc_sse_3arg): Likewise.
2346         (ix86_expand_crc32): Likewise.
2347         (ix86_init_mmx_sse_builtins): Support SSE4.2.
2348         (ix86_expand_builtin): Likewise.
2349         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
2350         __SSE4_2__ for -msse4.2.
2351         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
2352         (CRC32MODE): Likewise.
2353         (crc32modesuffix): Likewise.
2354         (crc32modeconstraint): Likewise.
2355         (sse4_2_crc32<mode>): Likewise.
2356         (sse4_2_crc32di): Likewise.
2357         * config/i386/i386.opt (msse4.2): New for SSE4.2.
2358         (msse4): Likewise.
2359         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
2360         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
2361         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
2362         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
2363         (vcondu<mode>): Likewise.
2364         * doc/extend.texi: Document SSE4.2 built-in functions.
2365         * doc/invoke.texi: Document -msse4.2/-msse4.
2366
2367 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
2368
2369         PR tree-optimization/32160
2370         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
2371         variable as gimple reg.
2372         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
2373
2374 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
2375
2376         * gcc.c (main): Don't consider linker options when issuing the
2377         warning about a linker input file not being used.
2378
2379 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2380
2381         * tree-vrp.c (compare_names): Initialize sop.
2382
2383 2007-05-30  Dirk Mueller  <dmueller@suse.de>
2384
2385         * cgraphunit.c (cgraph_analyze_function): Remove
2386         computation of inline parameters.
2387
2388 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
2389
2390         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
2391
2392 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
2393
2394         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
2395         Add vx-common.h.  Include vxworks.h between vx-common.h and
2396         arm/vxworks.h.
2397         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
2398         redefining.
2399         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
2400         (TARGET_ASM_DESTRUCTOR): Likewise.
2401         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
2402         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
2403         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
2404         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
2405         (VXWORKS_ENDIAN_SPEC): Define.
2406         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
2407         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
2408         VXWORKS_* equivalents.
2409         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
2410         (ASM_FILE_START): Delete.
2411         (TARGET_VERSION): Reformat.
2412         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
2413         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
2414         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
2415         (FPBIT, DPBIT): Define.
2416         (fp-bit.c, dp-bit.c): New rules.
2417         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
2418         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
2419         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
2420         * config/arm/arm.h: Include vxworks-dummy.h.
2421         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
2422         Mark with ATTRIBUTE_UNUSED.
2423         (arm_override_options): Do not allow VxWorks RTP PIC to be used
2424         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
2425         make it incompatible with -msingle-pic-base.
2426         (arm_function_ok_for_sibcall): Return false for calls that might
2427         go through a VxWorks PIC PLT entry.
2428         (require_pic_register): New function, split out from...
2429         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
2430         for VxWorks RTPs.
2431         (arm_load_pic_register): Handle the VxWorks RTP initialization
2432         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
2433         (arm_emit_call_insn): New function.
2434         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
2435         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
2436         (pic_offset_arm): New pattern.
2437         (call, call_value): Use arm_emit_call_insn.
2438         (call_internal, call_value_internal): New expanders.
2439         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
2440         VxWorks unless __PIC__.
2441
2442 2007-05-30  Eric Christopher  <echristo@gmail.com>
2443
2444         * genrecog.c: Include regs.h in generated file.
2445         * genemit.c: Ditto. Fix up formatting.
2446         * config/mn10300/constraints.md: New.
2447         * config/mn10300/mn10300.md: Include.
2448         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
2449         Fix up for removed macro.
2450         * config/mn10300/predicates.md (call_address_operand):  Ditto.
2451         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
2452         (CONST_OK_FOR_I): Ditto.
2453         (CONST_OK_FOR_J): Ditto.
2454         (CONST_OK_FOR_K): Ditto.
2455         (CONST_OK_FOR_L): Ditto.
2456         (CONST_OK_FOR_M): Ditto.
2457         (CONST_OK_FOR_N): Ditto.
2458         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
2459         (OK_FOR_Q): Ditto.
2460         (OK_FOR_R): Ditto.
2461         (OK_FOR_T): Ditto.
2462         (EXTRA_CONSTRAINT): Ditto.
2463
2464 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
2465
2466         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
2467         Remove defines.
2468         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
2469         OPTION_MASK_ISA_64BIT.
2470         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
2471
2472 2007-05-30  Richard Guenther  <rguenther@suse.de>
2473
2474         PR middle-end/32152
2475         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
2476         types for comparison.
2477         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
2478         with original typed arguments.
2479         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
2480
2481 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
2482
2483         PR tree-optimization/31769
2484         * except.c (duplicate_eh_regions): Clear prev_try if
2485         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
2486
2487 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
2488
2489         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
2490         * tree-ssa-sink.c (statement_sink_location): Return basic block and
2491         bsi of the location where statements should be inserted.
2492         (sink_code_in_bb): Take bsi from statement_sink_location.
2493         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
2494         instead of bsi_start.
2495         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
2496         bsi_insert_after.
2497         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
2498         (bsi_move_before): Document inconsistency with bsi_move_after.
2499         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
2500
2501 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
2502
2503         * config/i386/i386.h (TARGET_ABM): New define.
2504         (TARGET_POPCNT): Ditto.
2505         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
2506         New temporary defines to redefine from OPTION_ISA_* defines.
2507         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
2508         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
2509         (ix86_isa_flags): New extern int declaration.
2510         (TARGET_SUBTARGET_DEFAULT): New define.
2511         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
2512         (TARGET_SUBTARGET32_DEFAULT): Ditto.
2513         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
2514         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
2515         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
2516         * config/i386/darwin.h: Change TARGET_64BIT define to
2517         OPTION_ISA_64BIT.
2518
2519         * config/i386/i386.opt (m3dnowa): Define as undocumented option
2520         using existing "ix86_isa_flags" varible.
2521         (m32, m64): Use existing "ix86_isa_flags" variable.
2522         (mmmx, m3dnow): Ditto.
2523         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
2524         (mabm): Define as non-negative option using "x86_abm" variable.
2525         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
2526
2527         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
2528         Rewrite feature test bitmap.
2529         (ix86_isa_flags): New initialized global int varible.
2530         (ix86_isa_flags_explicit): New static int variable.
2531         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
2532         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
2533         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
2534         target_flags_explicit.
2535         (override_options): Remove "target_enable" and "target_disable" fields
2536         from "struct ptt". Update processor_target_table accordingly. Remove
2537         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
2538         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
2539         "target_flags" and "ix86_isa_flags_explicit" instead of
2540         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
2541         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
2542         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
2543         to true when either of PTA_POPCNT or PTA_ABM is set in
2544         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
2545         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
2546         processor_alias_table flags entry.  Remove handling of
2547         "target_enable" and "target_disable" fields of processor_target_table.
2548         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
2549         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
2550         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
2551         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
2552         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
2553         "target_flags".
2554         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
2555
2556 2007-05-29  David Daney  <ddaney@avtrex.com>
2557
2558         PR gcc/31975
2559         * config/mips/mips.c (mips_output_mi_thunk): Emit
2560         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
2561
2562 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
2563         * config/i386/i386.c (ix86_function_regparm): Added checking of
2564         ix86_force_align_arg_pointer to determine the number of
2565         register parameters.
2566
2567 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
2568
2569         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
2570         (SET_DR_MISALIGNMENT): New.
2571         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
2572         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
2573         Use SET_DR_MISALIGNMENT.
2574         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
2575         pointer.
2576         * tree-data-ref.c (create_data_ref, compute_all_dependences,
2577         find_loop_nest): Export.
2578         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
2579         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
2580         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
2581         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
2582         New macros.
2583         (struct mem_ref): Add field reuse_distance.
2584         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
2585         Initialize reuse_distance field.
2586         (issue_prefetch_ref): Select temporality of prefetch according to
2587         reuse_distance.
2588         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
2589         self_reuse_distance, determine_loop_nest_reuse): New functions.
2590         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
2591         (tree_ssa_prefetch_arrays): Dump L2 cache size.
2592         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
2593         dependency.
2594
2595 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
2596
2597         * tree-ssa-alias.c: Add aliasing overview.
2598
2599 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
2600             Danny Smith  <dannysmith@users.sourceforge.net>
2601
2602         PR target/29498
2603         * config/i386/t-crtfm: Compile crtfastmath.o with
2604         -minline-all-stringops.
2605         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
2606         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
2607
2608 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2609
2610         * doc/md.texi: Document constraints on HP PA-RISC.
2611
2612         * pa/constraints.md: New file.
2613         * pa.md: Include constraints.md.
2614         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
2615         (integer_store_memory_operand, ldil_cint_p): New functions.
2616         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
2617         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
2618         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
2619         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
2620         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
2621
2622 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
2623
2624         PR c/31339
2625         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
2626         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
2627         case POSTDECREMENT_EXPR>): Return the error_mark_node
2628         if either the real or imaginary parts would an
2629         error_mark_node.
2630
2631 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
2632
2633         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
2634         name when we remove it from a call.
2635
2636 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
2637
2638         * targhooks.c (default_narrow_bitfield): Remove.
2639         * targhooks.h: Remove the prototype for
2640         default_narrow_bitfield.
2641
2642         * langhooks-def.h: Remove the prototype for
2643         hook_get_alias_set_0.
2644         * langhooks.c (hook_get_alias_set_0): Remove.
2645
2646         * global.c (EXECUTE_IF_CONFLICT): Remove.
2647
2648 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2649
2650         PR tree-opt/32100
2651         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
2652         return true when truth_value_p is true and the type
2653         is of signed:1.
2654
2655 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
2656
2657         * doc/install.texi (Prerequisites): We no longer require Autoconf
2658         2.13 for the top-level.
2659
2660 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
2661
2662         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
2663         memory access via x86_expand_vector_move_misalign() only for
2664         TImode values on 32-bit targets.
2665
2666 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
2667
2668         * matrix-reorg.c: New file. Implement matrix flattening and
2669         transposing optimization.
2670         * tree-pass.h: Add matrix reorg pass.
2671         * common.opt: Add fipa-mreorg flag.
2672         * Makefile.in: Add matrix-reorg.c.
2673         * passes.c: Add matrix reorg pass.
2674         * varpool.c (add_new_static_var): New function.
2675         * cgraph.h (add_new_static_var): Declare.
2676
2677 2007-05-27  Eric Christopher  <echristo@apple.com>
2678
2679         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
2680         sp_offset depending on stack size. Save r12 depending
2681         on registers we're saving later.
2682         (rs6000_emit_epilogue): Update sp_offset depending only
2683         on stack size.
2684
2685 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
2686
2687         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
2688         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
2689         * ifcvt.c (if_convert): Ditto.
2690         * tree-ssa-threadupdate.c (thread_block): Ditto.
2691         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
2692         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
2693         verify_loop_closed_ssa): Check number_of_loops instead of
2694         current_loops.
2695         * predict.c (tree_estimate_probability): Ditto.
2696         * tree-if-conv.c (main_tree_if_conversion): Ditto.
2697         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2698         * modulo-sched.c (sms_schedule): Ditto.
2699         * tree-scalar-evolution.c (scev_const_prop): Ditto.
2700         (scev_finalize): Do not do anything if scev analysis was not
2701         initialized.
2702         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
2703         current_loops == NULL.
2704         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
2705         * loop-init.c (loop_optimizer_init): Do not free current_loops when
2706         there are no loops.
2707         (loop_optimizer_finalize): Assert that loops were analyzed.
2708         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
2709         rtl_doloop): Check number_of_loops instead of current_loops.
2710         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
2711         current_loops == NULL.
2712         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
2713         gate_tree_vectorize tree_linear_transform, check_data_deps,
2714         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
2715         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
2716         Check number_of_loops instead of current_loops.
2717         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
2718         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
2719         free loops if available.
2720         (execute_pre): Do not pass do_fre to fini_pre.
2721
2722 2007-05-27  Tobias Burnus  <burnus@net-b.de>
2723
2724         PR middle-end/32083
2725         * real.c (mpfr_from_real): Fix sign of -Inf.
2726
2727 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2728
2729         * tree-vect-transform.c (vectorizable_conversion): Initialize
2730         tree_code variables to ERROR_MARK.
2731         (vectorizable_type_demotion): Likewise.
2732         (vectorizable_type_promotion): Likewise.
2733
2734 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
2735
2736         PR target/32065
2737         * config/i386/i386.md (movti): Handle push operands via
2738         ix86_expand_push().
2739
2740 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
2741
2742         * basic-block.h: Remove the prototype for merge_seq_blocks.
2743         * cfgcleanup.c (merge_seq_blocks): Remove.
2744
2745         * tree-flow.h: Remove the prototype for is_aliased_with.
2746         * tree-ssa-alias.c (is_aliased_with): Remove.
2747
2748 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2749
2750         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
2751
2752         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
2753
2754         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
2755         ix86_expand_sse4_unpack if SSE4.1 is enabled.
2756         (vec_unpacks_hi_v16qi): Likewise.
2757         (vec_unpacku_lo_v16qi): Likewise.
2758         (vec_unpacks_lo_v16qi): Likewise.
2759         (vec_unpacku_hi_v8hi): Likewise.
2760         (vec_unpacks_hi_v8hi): Likewise.
2761         (vec_unpacku_lo_v8hi): Likewise.
2762         (vec_unpacks_lo_v8hi): Likewise.
2763         (vec_unpacku_hi_v4si): Likewise.
2764         (vec_unpacks_hi_v4si): Likewise.
2765         (vec_unpacku_lo_v4si): Likewise.
2766         (vec_unpacks_lo_v4si): Likewise.
2767
2768 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
2769
2770         * c-typeck.c, config/arm/arm.c, config/darwin.c,
2771         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
2772         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
2773         follow spelling conventions in various
2774         warning/error/diagnostic messages.
2775
2776         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
2777         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
2778         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
2779         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
2780         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
2781         * doc/tm.texi: Follow spelling conventions.
2782
2783 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2784
2785         PR tree-opt/32090
2786         * tree-ssa-forwprop.c
2787         (forward_propagate_addr_into_variable_array_index): Remove
2788         the lhs argument.  Use the type of def_rhs instead of lhs.
2789         (forward_propagate_addr_expr_1): Update use of
2790         forward_propagate_addr_into_variable_array_index.
2791
2792 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
2793             Nigel Stephens  <nigel@mips.com>
2794
2795         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
2796         function attributes, "far" being an alias for "long_call".
2797         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
2798         (mips_near_type_p, mips_far_type_p): New.
2799         (mips_comp_type_attributes): New function to check that attributes
2800         attached to a function type are compatible.
2801         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
2802         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
2803         to the target function of the thunk.
2804         (mips_encode_section_info): Check for "near" and "far" function
2805         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
2806
2807         * config/mips/predicates.md (const_call_insn_operand): Test only
2808         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
2809
2810         * doc/extend.texi (Function Attributes): Document MIPS "near" and
2811         "far" attributes.
2812
2813         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
2814         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
2815         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
2816         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
2817
2818 2007-05-25  Eric Christopher  <echristo@apple.com>
2819
2820         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
2821         to x86-darwin configurations.
2822         * config/i386/t-darwin: Add softfp support.
2823         * config/i386/t-darwin64: Ditto.
2824         * config/i386/sfp-machine.h: If mach then don't use
2825         aliasing, emit a stub to call.
2826
2827 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
2828
2829         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
2830         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
2831         tree-predcom.c, tree-ssa-alias-warnings.c,
2832         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
2833         comment typos.  Follow spelling conventions.
2834         * doc/cpp.texi, doc/invoke.texi: Fix typos.
2835
2836 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
2837
2838         PR target/32065
2839         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
2840         constants into memory.  Expand unaligned memory references for
2841         SSE modes via x86_expand_vector_move_misalign() function.
2842
2843 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
2844
2845         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
2846         "memory" attribute for "sseishft" type insn without operands[2].
2847
2848 2007-05-25  Dirk Mueller  <dmueller@suse.de>
2849             Marcus Meissner <meissner@suse.de>
2850
2851         * doc/extend.texi (alloc_size): New attribute.
2852         * c-common.c (handle_alloc_size_attribute): New.
2853         * tree-object-size.c (alloc_object_size): Use alloc_size
2854         attribute, if available.
2855
2856 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2857
2858         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
2859         with MASK_SSE2.
2860         (__builtin_ia32_vec_ext_v2di): Likewise.
2861         (__builtin_ia32_vec_ext_v4si): Likewise.
2862         (__builtin_ia32_vec_ext_v8hi): Likewise.
2863         (__builtin_ia32_vec_ext_v16qi): Likewise.
2864         (__builtin_ia32_vec_set_v8hi): Likewise.
2865
2866 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2867
2868         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
2869
2870 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
2871
2872         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
2873         (arm_is_longcall_p): Rename to...
2874         (arm_is_long_call_p): ...this.  Take a single tree argument and
2875         return a bool.
2876         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
2877         (CUMULATIVE_ARGS): Remove call_cookie.
2878         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
2879         (ENCODED_LONG_CALL_ATTR_P): Delete.
2880         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
2881         LONG_CALL_FLAG_CHAR cases.
2882         (ARM_DECLARE_FUNCTION_SIZE): Delete.
2883         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
2884         ARM_DECLARE_FUNCTION_SIZE.
2885         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
2886         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
2887         (arm_encode_call_attribute, current_file_function_operand): Delete.
2888         (arm_function_in_section_p): New function.
2889         (arm_is_longcall_p): Rename to...
2890         (arm_is_long_call_p): ...this.  Take the target function as a single
2891         argument and return a bool.  Do not rely on call cookies.  Check
2892         whether the target symbol is in the same section as the current
2893         function, not just the same compilation unit.
2894         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
2895         (arm_encode_section_info): Don't encode a call type.
2896         * config/arm/arm.md (call, call_value): Update calls to
2897         arm_is_long(_)call_p.  Simplify logic.
2898         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
2899         Update calls to arm_is_long(_)call_p.
2900
2901 2007-05-25  Richard Guenther  <rguenther@suse.de>
2902
2903         PR tree-optimization/31982
2904         * tree-ssa-forwprop.c
2905         (forward_propagate_addr_into_variable_array_index): Handle arrays
2906         with element size one.
2907
2908 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2909
2910         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
2911         (umulsi3_highpart): Likewise.
2912
2913 2007-05-24  Ian Lance Taylor  <iant@google.com>
2914
2915         PR rtl-optimization/32069
2916         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
2917         is NULL.
2918
2919 2007-05-24  Ollie Wild  <aaw@google.com>
2920
2921         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
2922         description.
2923
2924 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
2925
2926         * postreload-gcse.c (reg_changed_after_insn_p): New function.
2927         (oprs_unchanged_p): Use it to check all registers in a REG.
2928         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
2929         (reg_set_between_after_reload_p): Delete.
2930         (reg_used_between_after_reload_p): Likewise.
2931         (reg_set_or_used_since_bb_start): Likewise.
2932         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
2933         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
2934         Use reg_set_between_p instead of reg_set_between_after_reload_p.
2935         * rtlanal.c (reg_set_p): Check whether REG overlaps
2936         regs_invalidated_by_call, rather than just checking the
2937         membership of REGNO (REG).
2938
2939 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
2940
2941         * doc/passes.texi: Document predictive commoning.
2942         * doc/invoke.texi (-fpredictive-commoning): Document.
2943         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
2944         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
2945         adding indices to the generated name.
2946         (schedule_sm): Pass 0 to get_lsm_tmp_name.
2947         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
2948         * tree-pretty-print.c (op_symbol_1): Renamed to ...
2949         (op_symbol_code): ... and exported.
2950         (dump_omp_clause, op_symbol): Use op_symbol_code
2951         instead of op_symbol_1.
2952         * tree-pass.h (pass_predcom): Declare.
2953         * timevar.def (TV_PREDCOM): New timevar.
2954         * tree-ssa-loop.c (run_tree_predictive_commoning,
2955         gate_tree_predictive_commoning, pass_predcom): New.
2956         * tree-data-ref.c (find_data_references_in_loop): Find the
2957         references in dominance order.
2958         (canonicalize_base_object_address): Ensure that the result has
2959         pointer type.
2960         (dr_analyze_innermost): Export.
2961         (create_data_ref): Code to fail for references with invariant
2962         address moved ...
2963         (find_data_references_in_stmt): ... here.
2964         * tree-data-ref.h (dr_analyze_innermost): Declare.
2965         * tree-affine.c: Include tree-gimple.h and hashtab.h.
2966         (aff_combination_find_elt, name_expansion_hash,
2967         name_expansion_eq, tree_to_aff_combination_expand,
2968         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
2969         New functions.
2970         * tree-affine.h (aff_combination_constant_multiple_p,
2971         tree_to_aff_combination_expand): Declare.
2972         * tree-predcom.c: New file.
2973         * common.opt (fpredictive-commoning): New option.
2974         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
2975         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
2976         * Makefile.in (tree-predcom.o): Add.
2977         (tree-affine.o): Add TREE_GIMPLE_H dependency.
2978         * passes.c (init_optimization_passes):  Add dceloop after
2979         copy propagation in loop optimizer.  Add predictive commoning
2980         to loop optimizer passes.
2981
2982 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2983
2984         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
2985         default hook.
2986
2987 2007-05-24  Jan Hubicka  <jh@suse.cz>
2988
2989         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
2990         statistics.
2991         (genheader): Include statistics.h.
2992
2993         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
2994         notes are gone.
2995         * print-rtl.c (flag_dump_unnumbered): Update comments.
2996         (print_rtl): Fix my previous change.
2997         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
2998         specific data.
2999
3000 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
3001
3002         PR middle-end/32018
3003         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
3004         set_loop_copy.
3005         (thread_through_all_blocks): Call initialize_original_copy_tables
3006         and free_original_copy_tables.
3007         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
3008         Use set_loop_copy.
3009         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
3010         * cfghooks.c (duplicate_block): Use get_loop_copy.
3011         * cfg.c: Include cfgloop.h.
3012         (loop_copy): New hash table.
3013         (initialize_original_copy_tables): Initialize loop_copy table.
3014         (free_original_copy_tables): Free loop_copy table.
3015         (copy_original_table_clear, copy_original_table_set,
3016         set_loop_copy, get_loop_copy): New functions.
3017         (set_bb_original, set_bb_copy): Use copy_original_table_set.
3018         * cfgloop.h (struct loop): Remove copy field.
3019         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
3020         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
3021
3022 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3023
3024         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
3025         -msse/-msse2/-msse3.
3026
3027 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3028
3029         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
3030         __builtin_ia32_vec_set_v2di with MASK_64BIT.
3031
3032 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
3033
3034         PR target/27067
3035         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
3036         * targhooks.h (default_mangle_decl_assembler_name): Declare
3037         default hook.
3038         * targhooks.c (default_mangle_decl_assembler_name): Define
3039         default hook.
3040         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
3041         default hook.
3042         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
3043         * langhooks.c (lhd_set_decl_assembler_name): Call
3044         targetm.mangle_decl_assembler_name for names with global scope.
3045
3046         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
3047         default.
3048         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
3049         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
3050         Declare.
3051         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
3052         New. Factored out of i386_pe_encode_section_info.
3053         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
3054         Move check for prior decoration of stdcall
3055         symbols to i386_pe_encode_section_info.
3056         (i386_pe_encode_section_info): Adjust call to
3057         gen_stdcall_or_fastcall_suffix.  Use
3058         i386_pe_maybe_mangle_decl_assembler_name, if needed.
3059         (i386_pe_mangle_decl_assembler_name): New. Wrap
3060         i386_pe_maybe_mangle_decl_assembler_name.
3061
3062 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
3063
3064         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
3065         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
3066         * langhooks.c (get_signed_or_unsigned_type): Don't check for
3067         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
3068         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
3069         TYPE_UNSIGNED.
3070
3071 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
3072             Nigel Stephens  <nigel@mips.com>
3073             Richard Sandiford  <richard@codesourcery.com>
3074
3075         Fix up MIPS16 hard float and add support for complex.
3076
3077         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
3078         (TARGET_SOFT_FLOAT_ABI): New.
3079         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
3080         __mips_soft_float to reflect the ABI in use, not whether the
3081         FPU is directly accessible (e.g., in MIPS16 mode).
3082         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
3083         (UNITS_PER_FPVALUE): Likewise.
3084
3085         * config/mips/mips.c (mips_expand_call): Remove redundant
3086         TARGET_MIPS16 check.
3087         (mips_arg_regno): New.
3088         (function_arg_advance): When setting bits in cum->fp_code for
3089         MIPS16, don't subtract 1 from cum->arg_number, since it is now
3090         zero-based.
3091         (function_arg): Use mips_arg_regno.
3092         (mips_return_mode_in_fpr_p): New.
3093         (mips16_call_stub_mode_suffix): New.
3094         (mips16_cfun_returns_in_fpr_p): New.
3095         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
3096         (mips_output_function_prologue): Test mips16_hard_float, not
3097         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
3098         (mips_expand_epilogue): Call MIPS16 helper routines to copy
3099         return value into a floating-point register.
3100         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
3101         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
3102         (mips16_fp_args): Handle MIPS32r2 ISA which supports
3103         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
3104         word of double arguments from or to the high bits of 64-bit
3105         floating point registers.
3106         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
3107         (mips16_fpret_double): New helper function.
3108         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
3109         support for complex modes.  Fill in DECL_RESULT for stubdecl.
3110         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
3111
3112         * config/mips/mips16.S
3113         (RET, ARG1, ARG2): New.
3114         (MERGE_GPRf, MERGE_GPRt): New.
3115         (DELAYt, DELAYf): New.
3116         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
3117         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
3118         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
3119         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
3120         (SFOP): Renamed to...
3121         (OPSF3): This, and macro-ified.  Updated all uses.
3122         (SFOP2): Renamed to...
3123         (OPSF2): This, and macro-ified.  Updated all uses.
3124         (SFCMP): Renamed to...
3125         (CMPSF): This, and macro-ified.  Updated all uses.
3126         (SFREVCMP): Renamed to...
3127         (REVCMPSF): This, and macro-ified.  Updated all uses.
3128         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
3129         (LDDBL1, LDDBL2, RETDBL): Deleted.
3130         (DFOP): Renamed to...
3131         (OPDF3): This, and macro-ified.  Updated all uses.
3132         (DFOP2): Renamed to...
3133         (OPDF2): This, and macro-ified.  Updated all uses.
3134         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
3135         (DFCMP): Renamed to...
3136         (CMPDF): This, and macro-ified.  Updated all uses.
3137         (DFREVCMP): Renamed to...
3138         (REVCMPDF): This, and macro-ified.  Updated all uses.
3139         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
3140         (RET_FUNCTION): New.
3141         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
3142         (__mips16_ret_sc, __mips16_ret_dc): New.
3143         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
3144         STUB_ARGS_6, STUB_ARGS_10): New.
3145         (CALL_STUB_NO_RET): New.
3146         (__mips16_call_stub_1): Macro-ified.
3147         (__mips16_call_stub_5): Macro-ified.
3148         (__mips16_call_stub_2): Macro-ified.
3149         (__mips16_call_stub_6): Macro-ified.
3150         (__mips16_call_stub_9): Macro-ified.
3151         (__mips16_call_stub_10): Macro-ified.
3152         (CALL_STUB_RET): New.
3153         (__mips16_call_stub_sf_0): Macro-ified.
3154         (__mips16_call_stub_sf_1): Macro-ified.
3155         (__mips16_call_stub_sf_5): Macro-ified.
3156         (__mips16_call_stub_sf_2): Macro-ified.
3157         (__mips16_call_stub_sf_6): Macro-ified.
3158         (__mips16_call_stub_sf_9): Macro-ified.
3159         (__mips16_call_stub_sf_10): Macro-ified.
3160         (__mips16_call_stub_df_0): Macro-ified.
3161         (__mips16_call_stub_df_1): Macro-ified.
3162         (__mips16_call_stub_df_5): Macro-ified.
3163         (__mips16_call_stub_df_2): Macro-ified.
3164         (__mips16_call_stub_df_6): Macro-ified.
3165         (__mips16_call_stub_df_9): Macro-ified.
3166         (__mips16_call_stub_df_10): Macro-ified.
3167         (__mips16_call_stub_sc_0): New.
3168         (__mips16_call_stub_sc_1): New.
3169         (__mips16_call_stub_sc_5): New.
3170         (__mips16_call_stub_sc_2): New.
3171         (__mips16_call_stub_sc_6): New.
3172         (__mips16_call_stub_sc_9): New.
3173         (__mips16_call_stub_sc_10): New.
3174         (__mips16_call_stub_dc_0): New.
3175         (__mips16_call_stub_dc_1): New.
3176         (__mips16_call_stub_dc_5): New.
3177         (__mips16_call_stub_dc_2): New.
3178         (__mips16_call_stub_dc_6): New.
3179         (__mips16_call_stub_dc_9): New.
3180         (__mips16_call_stub_dc_10): New.
3181
3182         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
3183         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
3184         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
3185
3186 2007-05-23  Ian Lance Taylor  <iant@google.com>
3187
3188         * doc/invoke.texi (Invoking GCC): Document that the order of the
3189         -l option matters.
3190
3191 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
3192
3193         PR target/30987
3194         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
3195         * config/score/predicate.md (const_pow2, const_npow2): Remove.
3196         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
3197         undef.
3198
3199         PR target/30474
3200         * config/score/score.c (score_print_operand): Make sure that only
3201         lower bits are used.
3202
3203 2007-05-22  Ian Lance Taylor  <iant@google.com>
3204
3205         * tree-vrp.c (avoid_overflow_infinity): New static function,
3206         broken out of set_value_range_to_value.
3207         (set_value_range_to_value): Call avoid_overflow_infinity.
3208         (extract_range_from_assert): Likewise.
3209
3210 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3211
3212         PR middle-end/31095
3213          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
3214         change the type before looking for a COMPOUND_EXPR.
3215
3216 2007-05-22  Ian Lance Taylor  <iant@google.com>
3217
3218         * lower-subreg.c (decompose_multiword_subregs): If we change an
3219         insn, call remove_retval_note on it.
3220
3221 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3222
3223         * regs.h (end_hard_regno): New function.
3224         (END_HARD_REGNO, END_REGNO): New macros.
3225         (add_to_hard_reg_set): New function.
3226         (remove_from_hard_reg_set): Likewise.
3227         (in_hard_reg_set_p): Likewise.
3228         (overlaps_hard_reg_set_p): Likewise.
3229         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
3230         (note_btr_set): Use END_HARD_REGNO.
3231         * caller-save.c (setup_save_areas): Use end_hard_regno.
3232         (mark_set_regs): Use END_HARD_REGNO.
3233         (add_stored_regs): Use end_hard_regno.
3234         (mark_referenced_regs): Use add_to_hard_reg_set.
3235         * combine.c (update_table_tick): Use END_REGNO.
3236         (record_value_for_reg): Likewise.
3237         (record_dead_and_set_regs): Likewise.
3238         (get_last_value_validate): Likewise.
3239         (use_crosses_set_p): Likewise.
3240         (reg_dead_at_p_1): Likewise.
3241         (reg_dead_at_p): Likewise.
3242         (mark_used_regs_combine): Use add_to_hard_reg_set.
3243         (move_deaths): Use END_HARD_REGNO.
3244         (reg_bitfield_target_p): Use end_hard_regno.
3245         (distribute_notes): Use END_HARD_REGNO.
3246         * cse.c (mention_regs): Use END_REGNO.
3247         (insert): Use add_to_hard_reg_set.
3248         (invalidate): Use END_HARD_REGNO.
3249         (invalidate_for_call): Likewise.
3250         (exp_equiv_p): Use END_REGNO.
3251         (cse_insn): Likewise.
3252         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
3253         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
3254         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
3255         * function.c (keep_stack_depressed): Use end_hard_regno.
3256         * global.c (global_alloc): Use end_hard_regno.
3257         (global_conflicts): Use add_to_hard_reg_set instead of
3258         mark_reg_live_nc.
3259         (find_reg): Likewise.
3260         (mark_reg_store): Likewise.
3261         (mark_reg_conflicts): Likewise.
3262         (mark_reg_death): Use remove_from_hard_reg_set.
3263         (mark_reg_live_nc): Delete.
3264         (set_preference): Use end_hard_regno.
3265         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
3266         remove_from_hard_reg_set.
3267         (post_mark_life): Use add_to_hard_reg_set.
3268         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
3269         (reg_becomes_live): Use add_to_hard_reg_set.
3270         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
3271         (peep2_find_free_register): Use add_to_hard_reg_set.
3272         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
3273         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
3274         * regrename.c (note_sets): Use add_to_hard_reg_set.
3275         (clear_dead_regs): Use remove_from_hard_reg_set.
3276         (regrename_optimize): Use add_to_hard_reg_set.
3277         (find_oldest_value_reg): Use in_hard_reg_set_p.
3278         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
3279         (hard_reg_set_here_p): Use end_hard_regno.
3280         (decompose): Likewise.
3281         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
3282         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
3283         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
3284         (mark_home_live): Use end_hard_regno.
3285         (spill_hard_reg): Likewise.
3286         (clear_reload_reg_in_use): Likewise.
3287         * reorg.c (delete_prior_computation): Use END_REGNO.
3288         * resource.c (update_live_status): Use END_HARD_REGNO.
3289         (mark_referenced_resources): Use add_to_hard_reg_set.
3290         (mark_set_resources): Likewise.
3291         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
3292         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
3293         (reg_overlap_mentioned_p): Likewise.
3294         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
3295         (covers_regno_no_parallel_p): Use END_REGNO.
3296         (find_regno_note): Likewise.
3297         (find_reg_fusage): Use END_HARD_REGNO.
3298         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
3299         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
3300
3301 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3302
3303         * mode-switching.c (reg_dies): Change type of second argument to
3304         "HARD_REG_SET *".
3305         (optimize_mode_switching): Update accordingly.
3306
3307 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
3308
3309         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
3310         in favor of...
3311         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
3312         (hard_reg_set_empty_p): ...these new functions.
3313         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
3314         GO_IF_HARD_REG_SUBSET.
3315         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
3316         instead of GO_IF_HARD_REG_EQUAL.
3317         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
3318         instead of GO_IF_HARD_REG_EQUAL.
3319         * global.c (find_reg): Use hard_reg_set_empty_p instead of
3320         GO_IF_HARD_REG_SUBSET.
3321         (modify_reg_pav): Use hard_reg_set_empty_p instead of
3322         GO_IF_HARD_REG_EQUAL.
3323         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
3324         of GO_IF_HARD_REG_SUBSET.
3325         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
3326         instead of GO_IF_HARD_REG_EQUAL.
3327         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
3328         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
3329         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
3330         of GO_IF_HARD_REG_SUBSET,
3331         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
3332         GO_IF_HARD_REG_SUBSET.
3333         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
3334         instead of GO_IF_HARD_REG_EQUAL.
3335         * config/sh/sh.c (push_regs, calc_live_regs): Use
3336         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
3337         (hard_regs_intersect_p): Delete.
3338
3339 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
3340
3341         * doc/sourcebuild.texi (Test Directives) Add dg-message.
3342
3343 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3344             Richard Henderson  <rth@redhat.com>
3345
3346         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
3347         extra_headers.
3348         (x86_64-*-*): Likewise.
3349
3350         * i386/i386-modes.def (V2QI): New.
3351
3352         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
3353         SSE4A.
3354         (override_options): Support SSE4.1.
3355         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
3356         (IX86_BUILTIN_BLENDPS): Likewise.
3357         (IX86_BUILTIN_BLENDVPD): Likewise.
3358         (IX86_BUILTIN_BLENDVPS): Likewise.
3359         (IX86_BUILTIN_PBLENDVB128): Likewise.
3360         (IX86_BUILTIN_PBLENDW128): Likewise.
3361         (IX86_BUILTIN_DPPD): Likewise.
3362         (IX86_BUILTIN_DPPS): Likewise.
3363         (IX86_BUILTIN_INSERTPS128): Likewise.
3364         (IX86_BUILTIN_MOVNTDQA): Likewise.
3365         (IX86_BUILTIN_MPSADBW128): Likewise.
3366         (IX86_BUILTIN_PACKUSDW128): Likewise.
3367         (IX86_BUILTIN_PCMPEQQ): Likewise.
3368         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
3369         (IX86_BUILTIN_PMAXSB128): Likewise.
3370         (IX86_BUILTIN_PMAXSD128): Likewise.
3371         (IX86_BUILTIN_PMAXUD128): Likewise.
3372         (IX86_BUILTIN_PMAXUW128): Likewise.
3373         (IX86_BUILTIN_PMINSB128): Likewise.
3374         (IX86_BUILTIN_PMINSD128): Likewise.
3375         (IX86_BUILTIN_PMINUD128): Likewise.
3376         (IX86_BUILTIN_PMINUW128): Likewise.
3377         (IX86_BUILTIN_PMOVSXBW128): Likewise.
3378         (IX86_BUILTIN_PMOVSXBD128): Likewise.
3379         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
3380         (IX86_BUILTIN_PMOVSXWD128): Likewise.
3381         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
3382         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
3383         (IX86_BUILTIN_PMOVZXBW128): Likewise.
3384         (IX86_BUILTIN_PMOVZXBD128): Likewise.
3385         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
3386         (IX86_BUILTIN_PMOVZXWD128): Likewise.
3387         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
3388         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
3389         (IX86_BUILTIN_PMULDQ128): Likewise.
3390         (IX86_BUILTIN_PMULLD128): Likewise.
3391         (IX86_BUILTIN_ROUNDPD): Likewise.
3392         (IX86_BUILTIN_ROUNDPS): Likewise.
3393         (IX86_BUILTIN_ROUNDSD): Likewise.
3394         (IX86_BUILTIN_ROUNDSS): Likewise.
3395         (IX86_BUILTIN_PTESTZ): Likewise.
3396         (IX86_BUILTIN_PTESTC): Likewise.
3397         (IX86_BUILTIN_PTESTNZC): Likewise.
3398         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
3399         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
3400         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
3401         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
3402         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
3403         (bdesc_ptest): New.
3404         (bdesc_sse_3arg): Likewise.
3405         (bdesc_2arg): Likewise.
3406         (bdesc_1arg): Likewise.
3407         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
3408         with 3 args.
3409         (ix86_expand_sse_4_operands_builtin): New.
3410         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
3411         smaller than 8 bits as the 2nd arg.
3412         (ix86_expand_sse_ptest): New.
3413         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
3414         (ix86_expand_vector_set): Support SSE4.1.
3415         (ix86_expand_vector_extract): Likewise.
3416
3417         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
3418         __SSE4_1__ for -msse4.1.
3419
3420         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
3421         (UNSPEC_INSERTPS): Likewise.
3422         (UNSPEC_DP): Likewise.
3423         (UNSPEC_MOVNTDQA): Likewise.
3424         (UNSPEC_MPSADBW): Likewise.
3425         (UNSPEC_PHMINPOSUW): Likewise.
3426         (UNSPEC_PTEST): Likewise.
3427         (UNSPEC_ROUNDP): Likewise.
3428         (UNSPEC_ROUNDS): Likewise.
3429
3430         * config/i386/i386.opt (msse4.1): New for SSE4.1.
3431
3432         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
3433         (const_pow2_1_to_32768_operand): Likewise.
3434
3435         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
3436         file.
3437
3438         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
3439         SSE4.1.
3440         (sse4_1_insertps): Likewise.
3441         (*sse4_1_extractps): Likewise.
3442         (sse4_1_ptest): Likewise.
3443         (sse4_1_mulv2siv2di3): Likewise.
3444         (*sse4_1_mulv4si3): Likewise.
3445         (*sse4_1_smax<mode>3): Likewise.
3446         (*sse4_1_umax<mode>3): Likewise.
3447         (*sse4_1_smin<mode>3): Likewise.
3448         (*sse4_1_umin<mode>3): Likewise.
3449         (sse4_1_eqv2di3): Likewise.
3450         (*sse4_1_pinsrb): Likewise.
3451         (*sse4_1_pinsrd): Likewise.
3452         (*sse4_1_pinsrq): Likewise.
3453         (*sse4_1_pextrb): Likewise.
3454         (*sse4_1_pextrb_memory): Likewise.
3455         (*sse4_1_pextrw_memory): Likewise.
3456         (*sse4_1_pextrq): Likewise.
3457         (sse4_1_blendpd): Likewise.
3458         (sse4_1_blendps): Likewise.
3459         (sse4_1_blendvpd): Likewise.
3460         (sse4_1_blendvps): Likewise.
3461         (sse4_1_dppd): Likewise.
3462         (sse4_1_dpps): Likewise.
3463         (sse4_1_movntdqa): Likewise.
3464         (sse4_1_mpsadbw): Likewise.
3465         (sse4_1_packusdw): Likewise.
3466         (sse4_1_pblendvb): Likewise.
3467         (sse4_1_pblendw): Likewise.
3468         (sse4_1_phminposuw): Likewise.
3469         (sse4_1_extendv8qiv8hi2): Likewise.
3470         (*sse4_1_extendv8qiv8hi2): Likewise.
3471         (sse4_1_extendv4qiv4si2): Likewise.
3472         (*sse4_1_extendv4qiv4si2): Likewise.
3473         (sse4_1_extendv2qiv2di2): Likewise.
3474         (*sse4_1_extendv2qiv2di2): Likewise.
3475         (sse4_1_extendv4hiv4si2): Likewise.
3476         (*sse4_1_extendv4hiv4si2): Likewise.
3477         (sse4_1_extendv2hiv2di2): Likewise.
3478         (*sse4_1_extendv2hiv2di2): Likewise.
3479         (sse4_1_extendv2siv2di2): Likewise.
3480         (*sse4_1_extendv2siv2di2): Likewise.
3481         (sse4_1_zero_extendv8qiv8hi2): Likewise.
3482         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
3483         (sse4_1_zero_extendv4qiv4si2): Likewise.
3484         (*sse4_1_zero_extendv4qiv4si2): Likewise.
3485         (sse4_1_zero_extendv2qiv2di2): Likewise.
3486         (*sse4_1_zero_extendv2qiv2di2): Likewise.
3487         (sse4_1_zero_extendv4hiv4si2): Likewise.
3488         (*sse4_1_zero_extendv4hiv4si2): Likewise.
3489         (sse4_1_zero_extendv2hiv2di2): Likewise.
3490         (*sse4_1_zero_extendv2hiv2di2): Likewise.
3491         (sse4_1_zero_extendv2siv2di2): Likewise.
3492         (*sse4_1_zero_extendv2siv2di2): Likewise.
3493         (sse4_1_roundpd): Likewise.
3494         (sse4_1_roundps): Likewise.
3495         (sse4_1_roundsd): Likewise.
3496         (sse4_1_roundss): Likewise.
3497         (mulv4si3): Don't expand for SSE4.1.
3498         (smax<mode>3): Likewise.
3499         (umaxv4si3): Likewise.
3500         (uminv16qi3): Likewise.
3501         (umin<mode>3): Likewise.
3502         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
3503
3504         * doc/extend.texi: Document SSE4.1 built-in functions.
3505
3506         * doc/invoke.texi: Document -msse4.1.
3507
3508 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
3509
3510         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
3511         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
3512         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
3513         (ASM_SPEC): Add asm_pcrel_spec.
3514         (EXTRA_SPECS): Add asm_pcrel_spec.
3515
3516 2007-05-21  David Daney  <ddaney@avtrex.com>
3517
3518         * doc/install.texi (Building a cross compiler): Add requirements
3519         for Java cross compiler.
3520
3521 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3522
3523         PR middle-end/31995
3524         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
3525         Add loopno argument.  Use evolution_function_is_invariant_rec_p
3526         instead of evolution_function_is_constant_p.
3527         Update calls to evolution_function_is_affine_multivariate_p.
3528         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
3529         Add loopno argument.
3530         * tree-scalar-evolution.c (gather_chrec_stats): Call
3531         evolution_function_is_affine_multivariate_p with a loop
3532         number of 0.
3533         * tree-data-ref.c (analyze_miv_subscript): Likewise.
3534         (analyze_overlapping_iterations): Likewise.
3535         (access_functions_are_affine_or_constant_p): Likewise.
3536         (build_classic_dist_vector_1): If the access functions
3537         are equal, don't do anything.
3538
3539 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
3540             Paolo Carlini  <pcarlini@suse.de>
3541             Uros Bizjak  <ubizjak@gmail.com>
3542
3543         * c-cppbuiltin.c (c_cpp_builtins): Define
3544         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
3545         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
3546         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
3547         * doc/cpp.texi ([Standard Predefined Macros]): Document.
3548
3549 2007-05-21  Mike Stump  <mrs@apple.com>
3550
3551         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
3552         handling as well.
3553         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
3554
3555 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
3556
3557         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
3558         implementation if __OPTIMIZE__ is not defined.
3559         (_mm_alignr_pi8): Ditto.
3560         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
3561         (_mm_inserti_si64): Ditto.
3562         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
3563         (_mm_slli_epi16): Ditto.
3564         (_mm_slli_epi32): Ditto.
3565         (_mm_slli_epi64): Ditto.
3566         (_mm_srai_epi16): Ditto.
3567         (_mm_srai_epi32): Ditto.
3568         (_mm_srli_si128): Ditto.
3569         (_mm_slli_si128): Ditto.
3570         (_mm_srli_epi16): Ditto.
3571         (_mm_srli_epi32): Ditto.
3572         (_mm_srli_epi64): Ditto.
3573         (_mm_extract_epi16): Ditto.
3574         (_mm_insert_epi16): Ditto.
3575         (_mm_shufflehi_epi16): Ditto.
3576         (_mm_shufflelo_epi16): Ditto.
3577         (_mm_shuffle_epi32): Ditto.
3578         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
3579         (_m_pextrw): Ditto.
3580         (_mm_insert_pi16): Ditto.
3581         (_m_pinsrw): Ditto.
3582         (_mm_shuffle_pi16): Ditto.
3583         (_m_pshufw): Ditto.
3584         (_mm_shufle_ps): Ditto.
3585         (_mm_prefetch): Ditto.
3586
3587 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
3588
3589         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
3590         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
3591         * real.c (encode_i370_single, decode_i370_single,
3592         encode_i370_double, decode_i370_double): Functions removed.
3593         (i370_single_format, i370_double_format): Initializations removed.
3594         (real_maxval, round_for_format, exact_real_truncate, significand_size):
3595         Consider the log2_b field to always be one.
3596         (ieee_single_format, mips_single_format, coldfire_single_format,
3597         ieee_double_format, mips_double_format, coldfire_double_format,
3598         ieee_extended_motorola_format, ieee_extended_intel_96_format,
3599         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
3600         ibm_extended_format, mips_extended_format, ieee_quad_format,
3601         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
3602         decimal_single_format, decimal_double_format, decimal_quad_format,
3603         c4x_single_format, c4x_extended_format, real_internal_format): Remove
3604         initialization of log2_b.
3605         * real.h (i370_single_format, i370_double_format): Declarations removed.
3606         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
3607         field to always be one.
3608
3609 2007-05-21  Andreas Schwab  <schwab@suse.de>
3610
3611         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
3612         NOTE_INSN_BASIC_BLOCK_P.
3613         (process_for_unwind_directive): Likewise.
3614
3615 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
3616
3617         * builtins.c (expand_builtin_setjmp_setup): Update comment.
3618         * function.h (struct function): Move va_list_gpr_size,
3619         va_list_fpr_size, function_frequency to front of bitfields.  Add
3620         calls_unwind_init.
3621         (current_function_calls_unwind_init): New.
3622         * except.c (expand_builtin_unwind_init): Set
3623         current_function_calls_unwind_init not
3624         current_function_has_nonlocal_label.
3625         * reload1.c (has_nonexceptional_receiver): New.
3626         (reload): Use it and current_function_calls_unwind_init to
3627         determine whether call-saved regs must be saved.
3628
3629 2007-05-20  Jan Hubicka  <jh@suse.cz>
3630
3631         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
3632         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
3633         * ddg.c (create_ddg): LIkewise.
3634         * final.c (final): Remove hunk moving line numbernotes around since
3635         they are no longer present at this stage.
3636         (final_scan_insn): Use NOTE_KIND instead of
3637         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
3638         (output_asm_label): Likewise.
3639         * reorg.c (dbr_schedule): Likewise.
3640         * haifa-sched.c (unlink_other_notes): Likewise.
3641         * mode-switching.c (optimize_mode_switching): Likewise.
3642         * graph.c (start_bb): Likewise.
3643         * rtl.def (NOTE): Update description.
3644         * jump.c (squeeze_notes): Delete.
3645         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
3646         NOTE_INSN_BASIC_BLOCK_P when possible.
3647         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
3648         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
3649         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
3650         (dwarf2out_var_location): Likewise.
3651         * cfgbuild.c (make_edges): Likewise.
3652         (find_basic_blocks_1): Likewise.
3653         * function.c (reorder_blocks_1): Likewise.
3654         (epilogue_done): Likewise.
3655         (reposition_prologue_and_epilogue_notes): Likewise.
3656         * print-rtl.c (print_rtx): Likewise; drop code for printing line number
3657         notes.
3658         (print_rtl): Likewise.
3659         (print_rtl_single): Likewise.
3660         * gcse.c (insert_insn_start_bb): Likewise.
3661         * alias.c (init_alias_analysis): Likewise.
3662         * calls.c (fixup_tail_calls): Likewise.
3663         * except.c (sjlj_emit_function_enter): Likewise.
3664         * emit-rtl.c (add_insn_after): Likeiwse.
3665         (emit_label_before): Likewise.
3666         (emit_label_after): Likewise.
3667         (emit_note_before, emit_note_after, emit_note): Update
3668         parameter to be enum insn_note; do not deal with source
3669         files.
3670         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
3671         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
3672         when possible.
3673         (merge_blocks_move_successor_nojumps): Simplify now when
3674         we don't have BLOCK notes.
3675         (try_optimize_cfg): Likewise.
3676         * cfglayout.c (skip_insns_after_block): Likewise.
3677         (record_effective_endpoints): Likewise.
3678         (duplicate_insn_chain): Likewise.
3679         * varasm.c (output_constant_pool_1): Likewise.
3680         * sched-deps.c (sched_analyze): Likewise.
3681         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
3682         Exterminate.
3683         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
3684         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
3685         (SET_INSN_DELETED): Simplify.
3686         (NOTE_LINE_NUMBER): Exterminate.
3687         (NOTE_LINE_KIND): New.
3688         (NOTE_INSN_BASIC_BLOCK_P): Update.
3689         (enum insn_note): Simplify.
3690         (GET_NOTE_INSN_NAME) Simplify.
3691         (emit_note_before, emit_note_after, emit_note): Update prototype.
3692         (squeeze_notes): Remove.
3693         * sched-int.h (NOTE_NOT_BB_P): Update.
3694         * resource.c (mark_target_live_regs): Update.
3695         * sched-rgn.c (debug_dependencies): Update.
3696         * sched-vis.c (print_insn): Update.
3697         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
3698         * config/i386/i386.c (ix86_output_function_epilogue): Update.
3699         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
3700         (TARGET_ADJUST_UNROLL_MAX): Likewise.
3701         (split_branches): Update.
3702         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
3703         4.0.0.
3704         (sh_adjust_unroll_max): Exterminate.
3705         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
3706         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
3707         (m68hc11_reorg): Likewise.
3708         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
3709         (emit_predicate_relation_info): Update.
3710         (process_for_unwind_directive): Update.
3711         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
3712         (output_call): Update.
3713         * config/pa/pa.c (output_lbranch): Update.
3714         (output_millicode_call): Update.
3715         (output_call): Update.
3716         (pa_combine_instructions): Update.
3717         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
3718         * config/bfin/bfin.c (gen_one_bundle): Update.
3719         * cfgrtl.c (can_delete_note_p): Update.
3720         (delete_insn): Update.
3721         (rtl_merge_blocks): Update.
3722         (commit_one_edge_insertion): Update.
3723         (rtl_verify_flow_info): Update.
3724         * stmt.c (expand_case): Do not call squeeze_notes.
3725
3726 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3727
3728         PR middle-end/7651
3729         PR c++/11856
3730         PR c/12963
3731         PR c/23587
3732         PR other/29694
3733         * c.opt (Wtype-limits): New.
3734         * doc/invoke.texi (Wtype-limits): Document it.
3735         (Wextra): Enabled by -Wextra.
3736         * c-opts.c (c_common_post_options): Enabled by -Wextra.
3737         * c-common.c (shorten_compare): Warn with Wtype-limits.
3738
3739 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
3740
3741         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
3742         inlined function, not as a macro.
3743         (_mm_alignr_pi8): Ditto.
3744         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
3745         (_mm_inserti_si64): Ditto.
3746         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
3747         (_mm_extract_epi16): Ditto.
3748         (_mm_insert_epi16): Ditto.
3749         (_mm_shufflehi_epi16): Ditto.
3750         (_mm_shufflelo_epi16): Ditto.
3751         (_mm_shuffle_epi32): Ditto.
3752         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
3753         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
3754         all functions.
3755         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
3756         float constant.
3757         (_m_to_float): Use C89 compatible assignment.
3758
3759 2007-04-20  Martin Michlmayr  <tbm@cyrius.com>
3760
3761         PR target/32007
3762         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
3763
3764 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3765
3766         PR middle-end/7651
3767         * doc/invoke.texi (Wreturn-type): Complete description.
3768         (Wextra): Delete item about return-type warning.
3769         * c-decl.c: Delete redundant Wextra warning.
3770
3771 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
3772
3773         PR target/31585
3774         * config/i386/pmmintrin.h: Do not include xmmintrin.h
3775         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
3776         inlined function, not as a macro.
3777         (_mm_prefetch): Ditto.
3778         (_m_pextrw): Ditto.
3779         (_mm_insert_pi16): Ditto.
3780         (_m_pinsrw): Ditto.
3781         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
3782         (_m_pshufw): Ditto. Add const to __N argument.
3783         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
3784         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
3785         (_mm_slli_epi32): Ditto.
3786         (_mm_srli_si128): Implement as always inlined function, not as a macro.
3787         Add __inline to function declaration.
3788         (_mm_slli_si128): Ditto.
3789
3790 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
3791
3792         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
3793         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
3794         New constants.
3795         (struct fenv): New structure.
3796         (FP_HANDLE_EXCEPTIONS): New define.
3797         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
3798         (_FP_DECL_EXP): New define.
3799         (FP_INIT_ROUNDMODE): New define.
3800         (FP_ROUNDMODE): New define.
3801
3802 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3803
3804         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
3805         (Wconversion): Update description.
3806         (Wconversion-sign): New.
3807         * c.opt (Wconversion-sign): New.
3808         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
3809         means disabled for C++. Otherwise, take the status of Wconversion.
3810         * c-common.c (conversion_warning): Warn with either Wconversion or
3811         Wconversion-sign.
3812         (warnings_for_convert_and_check): Conditions are already checked by
3813         conversion_warning.
3814         (convert_and_check): Don't check warnings if the conversion failed.
3815
3816 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
3817            Anatoly Sokolov <aesok@dol.ru>
3818
3819         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
3820         avr_epilogue_uses) : Add declaration.
3821         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
3822         * config/avr/constraints.md (R): New constraint.
3823         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
3824         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
3825         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
3826         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
3827         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
3828         call_prologue_saves, epilogue_restores, return_from_epilogue,
3829         return_from_main_epilogue, return_from_interrupt_epilogue,
3830         return_from_naked_epilogue, prologue, epilogue): New patterns.
3831         (jump): Handle symbol reference.
3832         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
3833         avr_output_function_prologue, avr_output_function_epilogue): Remove
3834         functions.
3835         (avr_init_machine_status, expand_prologue, expand_epilogue,
3836         avr_asm_function_end_prologue, avr_epilogue_uses,
3837         avr_asm_function_begin_epilogue): New functions.
3838         (prologue_size, epilogue_size, jump_tables_size): Remove global
3839         variables.
3840         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
3841         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
3842         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
3843         (avr_override_options): Initialise init_machine_status.
3844         (output_movhi): Handle all stack pointer loads.
3845         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
3846         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
3847         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
3848         (EPILOGUE_USES) Redefine.
3849         (machine_function) Declare.
3850
3851 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
3852
3853         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
3854         Use a single return statement.
3855
3856 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3857
3858         PR middle-end/30250
3859         * builtins.c (do_mpfr_lgamma_r): New.
3860         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
3861         * tree.h (CASE_FLT_FN_REENT): New.
3862
3863 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
3864
3865         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
3866         (output_die): Use 'unsigned long' with %x.
3867         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
3868         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
3869         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
3870
3871         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
3872
3873 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
3874
3875         PR target/31989
3876         PR target/31681
3877         PR target/31666
3878         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
3879         true if function has no argument.
3880
3881 2007-05-18  DJ Delorie  <dj@redhat.com>
3882
3883         * config/mips/mips.c (mips_offset_within_alignment_p): New.
3884         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
3885
3886 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
3887
3888         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
3889         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
3890         count_trailing_zeros.
3891         (__i386__): Implement count_leading_zeros using __builtin_clz().
3892         Implement count_trailing_zeros usign __builtin_ctz().
3893
3894 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
3895
3896         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
3897
3898 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
3899
3900         PR middle-end/31344
3901         * expr.c (emit_move_change_mode): Change mode of push operands here.
3902
3903 2007-05-17  Ian Lance Taylor  <iant@google.com>
3904
3905         PR tree-optimization/31953
3906         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
3907         Change all callers.
3908         (set_value_range_to_null): Call set_value_range_to_value.
3909         (extract_range_from_comparison): Likewise.
3910
3911 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3912
3913         * toplev.c (print_version): Output GMP/MPFR version info.
3914
3915         * builtins.c (CASE_MATHFN_REENT): New macro.
3916         (mathfn_built_in): Use it.
3917         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
3918         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
3919         BUILT_IN_LGAMMAL_R): New.
3920         * doc/extend.texi: Document new builtins.
3921
3922         PR middle-end/31796
3923         * builtins.c (do_mpfr_remquo): New.
3924         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
3925         (fold_builtin_3): Handle BUILT_IN_REMQUO.
3926
3927         PR middle-end/30251
3928         * builtins.c (fold_builtin_1): Handle y0, y1.
3929         (fold_builtin_2): Handle yn.
3930
3931         PR middle-end/30251
3932         * builtins.c (do_mpfr_bessel_n): New.
3933         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
3934         (fold_builtin_2): Handle BUILT_IN_JN.
3935
3936 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
3937
3938         PR target/31965
3939         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
3940         TYPE_PRECISION (intmax_type_node).
3941
3942 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
3943
3944         PR target/31850
3945         * reload.c (subst_reloads): Remove checking.
3946
3947 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
3948
3949         PR rtl-optimization/31691
3950         * combine.c (simplify_set): Build a new src pattern instead of
3951         substituting its operands in the COMPARE case.
3952
3953 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
3954
3955         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
3956         (execute_vrp): Preserve loops through jump threading.
3957         * tree-ssa-threadupdate.c (thread_single_edge,
3958         dbds_continue_enumeration_p, determine_bb_domination_status,
3959         thread_through_loop_header): New functions.
3960         (create_edge_and_update_destination_phis,