OSDN Git Service

* c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-06-09  Tom Tromey  <tromey@redhat.com>
2
3         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
4         (deprecated_state): Removed.
5         (start_decl): Update.
6         (enum deprecated_states): Moved earlier.
7         (groktypename): Update.
8         (push_parm_decl): Likewise.
9         (grokfield): Likewise.
10         (start_function): Likewise.
11
12 2007-06-09  Ian Lance Taylor  <iant@google.com>
13
14         PR tree-optimization/32169
15         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
16         CONVERT_EXPR, check whether min and max both converted to an
17         overflow infinity representation.
18
19 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
20
21         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
22         not inserted on the edge.
23
24 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
25
26         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
27         instructions if they are supported.
28         (__divsi3, __umodsi3, __modsi3): Likewise.
29         (__ashldi3, __ashrdi3, __lshrdi3): New.
30         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
31         
32 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
33             Tony Linthicum <tony.linthicum@amd.com>
34
35         * doc/extend.texi: Add fvect-cost-model flag.
36         * common.opt (fvect-cost-model): New flag.
37         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
38         cost fields in stmt_vec_info struct for STMT.
39         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
40         fields in stmt_vec_info struct and access functions for the same.
41         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
42         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
43         load, store and vector to scalar operation.
44         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
45         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
46         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
47         (TARG_VEC_STORE_COST): Define cost of vector store.
48         (vect_estimate_min_profitable_iters): Define new function.
49         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
50         check to evaluate if loop iterations are less than minimum profitable
51         iterations determined by cost model or minimum vect loop bound defined
52         by user, whichever is more conservative.
53         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
54         run-time check to evaluate if loop iterations are less than minimum
55         profitable iterations determined by cost model or minimum vect loop
56         bound defined by user, whichever is more conservative.
57         (vect_estimate_min_profitable_iterations): New function to estimate
58         mimimimum iterartions required for vector version of loop to be
59         profitable over scalar version.
60         (vect_model_reduction_cost): New function.
61         (vect_model_induction_cost): New function.
62         (vect_model_simple_cost): New function.
63         (vect_cost_strided_group_size): New function.
64         (vect_model_store_cost): New function.
65         (vect_model_load_cost): New function.
66         (vectorizable_reduction): Call vect_model_reduction_cost during
67         analysis phase.
68         (vectorizable_induction): Call vect_model_induction_cost during
69         analysis phase.
70         (vectorizable_load): Call vect_model_load_cost during analysis phase.
71         (vectorizable_store): Call vect_model_store_cost during analysis phase.
72         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
73         vectorizable_promotion, vectorizable_demotion): Call 
74         vect_model_simple_cost during analysis phase.
75
76 2007-06-08  Simon Baldwin  <simonb@google.com>
77
78         * reg-stack.c (get_true_reg): Readability change.  Moved default case
79         label into direct switch statement scope.
80
81 2007-06-08  Simon Baldwin  <simonb@google.com>
82
83         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
84         in gcc_assert() with '==' comparison.
85
86 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
87
88         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
89         TARGET_ABM handling of x86_popcnt variable.
90
91 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
92
93         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
94         __builtin_copysignq and __builtin_infq built-in functions.
95
96 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
97
98         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
99         SSE4.2 section.  Correct built-in function names in SSE4A section.
100
101 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
102
103         PR tree-optimization/32243
104         * tree-vect-transform.c (vectorizable_type_promotion): Move check
105         for ncopies after ratio check between nunits_out and nunits_in.
106         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
107
108 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
109
110         PR tree-optimization/32224
111         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
112         vectorization upon a non GIMPLE_MODIFY_STMT.
113
114 2007-06-08  Christian Bruel  <christian.bruel@st.com>
115
116         PR target/29953
117         * config/sh/sh.md (doloop_end): New pattern and splitter.
118         * loop-iv.c (simple_rhs_p): Check for hardware registers.
119         
120 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
121
122         PR middle-end/32209
123         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
124         functions.
125         (verify_dominators): Do not change dominance tree.
126
127 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
128
129         * config/sh/constraints.md: New file.
130         * config/sh/sh.c: Include tm-constrs.h.
131         (reg_class_from_letter): Remove.
132         (prepare_cbranch_operands): Use satisfies_constraint_*
133         function instead of macro.
134         (andcosts, broken_move, sh_secondary_reload): Likewise.
135         * config/sh/predicates.md (trapping_target_operand): Likewise.
136         (and_operand, arith_operand, arith_reg_or_0_operand,
137         cmp_operand, logical_operand, target_operand,
138         ua_address_operand, ua_offset, xor_operand): Likewise.
139         * config/sh/sh.md: Include constraints.md.
140         (*movsicc_t_false): Use satisfies_constraint_* function
141         instead of macro.
142         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
143         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
144         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
145         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
146         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
147         (REG_CLASS_FROM_CONSTRAINT): Remove.
148         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
149         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
150         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
151         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
152         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
153         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
154         function instead of macro.
155         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
156         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
157         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
158         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
159         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
160         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
161         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
162         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
163         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
164         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
165         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
166         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
167         EXTRA_CONSTRAINT_STR): Likewise.
168         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
169
170 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
171
172         * config/i386/darwin.h (STACK_BOUNDARY): Define.
173
174 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
175
176         PR c++/30759
177         * c-common.h (flag_cpp0x): Replaced by...
178         (cxx_dialect): ... this new variable specifying the C++ dialect that
179         is used.
180         * c-common.c (flag_cpp0x): Removed.
181         (cxx_dialect): Defined.
182         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
183         cxx_dialect.
184         * c-opts.c (c_common_post_options): Likewise.
185         (set_std_cxx98): Set cxx_dialect to cxx98.
186         (set_std_cxx0x): Set cxx_dialect to cxx0x.
187
188 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
189             Hui-May Chang <hm.chang@apple.com>
190
191         * doc/invoke.texi (Darwin Options): Update documentation for
192         -mmacosx-version-min.
193         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
194         * config/darwin-driver.c: New file.
195         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
196         * config/t-darwin (darwin-driver.o): New rule.
197
198         * config/darwin-c.c (version_as_macro): Ignore low digit.
199
200 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
201
202         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
203         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
204         (CSGNMODE): New mode macro.
205         (CSGNVMODE): New mode attribute.
206         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
207         expander using CSGNMODE mode macro.  Handle TFmode.
208         (copysign<mode>3_const): Rename from copysignsf3_const and
209         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
210         Handle TFmode.
211         (copysign<mode>3_var): Rename from copysignsf3_var and
212         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
213         Handle TFmode.
214         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
215         mode macro.  Handle TFmode.
216         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
217         (iortf3, *iortf3): Ditto.
218         (xortf3, *xortf3): Ditto.
219         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
220         TFmode and TImode masks.
221         (ix86_expand_copysign): Expand TFmode copysign insn.
222         (IX86_BUILTIN_INFQ): New.
223         (IX86_BUILTIN_FABSQ): Ditto.
224         (IX86_BUILTIN_COPYSIGNQ): Ditto.
225         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
226         [__builtin_fabsq]: Ditto.
227         [__builtin_copysignq]: Ditto.
228         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
229         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
230         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
231         ix86_expand_binop_builtin().
232
233 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
234
235         * config/xtensa/lib1funcs.asm: Clean up whitespace.
236
237 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
238
239         PR target/31850
240         * rtl.h (push_to_sequence2): New.
241         * emit-rtl.c (push_to_sequence2): New.
242         * function.c (assign_parm_data_all): Add new fields.
243         (assign_parm_setup_block): Call push_to_sequence2 instead of 
244         push_to_sequence.
245         (assign_parm_setup_reg): Ditto.
246         (assign_parm_setup_stack): Ditto.
247         (assign_parms_unsplit_complex): Ditto.
248         (assign_parms): Change field name.
249
250 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
251
252         PR tree-optimization/32220
253         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
254         phi node is reached before defining statement.
255
256 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
257
258         PR tree-opt/32231
259         * tree-vect-transform.c (vectorizable_call): Call update_stmt
260         after changing the right hand side of the assignment.
261
262 2007-06-06  Eric Christopher  <echristo@apple.com>
263
264         * config.gcc (i?86-*-darwin*): Remove arch parameter.
265         (x86_64-*-darwin*): Ditto.
266         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
267         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
268
269 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
270
271         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
272         coding conventions.
273         (add_key): Likewise.
274         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
275         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
276         variable names.
277         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
278         (add_cost_one_coalesce): Likewise.
279         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
280         variable names. Rename orig to orig_name for consistency.
281         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
282         conventions.
283         (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
284         (record_equivalences_from_stmt): Likewise.
285         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
286         the coding conventions.
287         (memory_ssa_name_same): Likewise.
288         (dse_optimize_stmt): Likewise.
289         (dse_record_phis): Likewise.
290         (dse_finalize_block): Likewise.
291         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
292         keywords as variable names.
293         (may_move_till): Cast according to the coding conventions.
294         (force_move_till_expr): Avoid using C++ keywords as variable names.
295         (force_move_till): Cast according to the coding conventions.
296         (memref_hash): Likewise.
297         (memref_eq): Likewise.
298         (gather_mem_refs_stmt): Likewise.
299         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
300         keywords as variable names.
301         (idx_find_step): Cast according to the coding conventions.
302         (idx_record_use): Likewise.
303         (find_depends): Likewise.
304         (prepare_decl_rtl): Likewise.
305         (mbc_entry_hash): Likewise.
306         (mbc_entry_eq): Likewise.
307         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
308         (simplify_replace_tree): Avoid using C++ keywords as variable names.
309         (idx_infer_loop_bounds): Cast according to the coding conventions.
310         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
311         * tree-ssa-math-opts.c (occ_new ): Likwise.
312         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
313         macros.
314         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
315         names.
316         (add_use_op): Likewise.
317         (add_vop): Likewise.
318         (add_vuse_op): Likewise.
319         (add_vdef_op): Likewise.
320         (get_expr_operands): Likewise.
321         (push_stmt_changes): Use type safe memory macros.
322         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
323         keywords as variable names.
324         (conditional_replacement): Likewise.
325         (minmax_replacement): Likewise.
326         (abs_replacement): Likewise.
327         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
328         coding conventions.
329         (insert_fake_stores): Avoid using C++ keywords as variable names.
330         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
331         conventions.
332         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
333         (heapvar_insert): Use type safe memory macros.
334         (new_var_info): Cast according to the coding conventions.
335         (new_constraint): Likewise.
336         (remove_preds_and_fake_succs): Use type safe memory macros.
337         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
338         conventions.
339         (thread_single_edge): Likewise.
340         (thread_through_loop_header): Likewise.
341
342 2007-06-06  Eric Christopher  <echristo@apple.com>
343
344         * config/i386/i386.c (override_options): Move handling
345         of TARGET_SUBTARGET* earlier.
346
347 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
348
349         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
350         use %n on printf.
351
352 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
353
354         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
355         emited outside of basic block.
356         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
357         the created blocks.
358         * rtl.h (delete_insn_chain): Declaration changed.
359         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
360         non-removed insns.
361         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
362         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
363         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
364         to delete_insn_chain.
365         (rtl_verify_flow_info_1): Verify that the insns in header and footer
366         do not have bb field set.
367         (rtl_verify_flow_info): Verify that insns between basic blocks do not
368         have bb field set.
369         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
370         * cfgcleanup.c (try_optimize_cfg): Ditto.
371
372 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
373
374         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
375         (lambda_body_vector_new): Use type safe memory macros.
376         (lambda_linear_expression_new): Likewise.
377         (lambda_loopnest_new): Likewise.
378         (lambda_lattice_new): Likewise.
379         (replace_uses_equiv_to_x_with_y): Cast according to the coding
380         conventions. Use type safe memory macros.
381         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
382         (lambda_body_vector_s): Likewise.
383         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
384         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
385
386 2007-06-06  Richard Guenther  <rguenther@suse.de>
387
388         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
389         if we need to schedule cfg_cleanup.
390         (tree_ssa_forward_propagate_single_use_vars): Do so.
391
392 2007-06-06  Ian Lance Taylor  <iant@google.com>
393
394         * fold-const.c (merge_ranges): If range_successor or
395         range_predecessor fail, just return 0.
396
397 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
398
399         PR tree-optimization/32216
400         * tree-vectorizer.c (supportable_widening_operation): Determine
401         signedness of FIX_TRUNC_EXPR from output operand.
402         (supportable_narrowing_operation): Ditto.
403         * tree-vect-generic.c (expand_vector_operations_1): Determine
404         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
405         from input operand.
406
407 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
408
409         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
410         (struct pta): ...from here. Change flags to unsigned to avoid
411         excessive casting (as it is used as a bit mask).
412         (override_options): Add casts according to the coding convenventions.
413         (x86_64_elf_unique_section): Likewise.
414         (examine_argument): Avoid using C++ keywords as variable names.
415         (construct_container): Likewise.
416         (legitimize_pic_address): Likewise.
417         (get_dllimport_decl): Cast according to the coding conventions. Use
418         type safe memory macros.
419         (legitimize_address): Cast according to the coding conventions.
420         (emit_i387_cw_initialization): Corrected the type of slot to enum
421         ix86_stack_slot.
422         (ix86_init_machine_status): Use type safe memory macros.
423         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
424         (bdesc_pcmpistr): Likewise.
425         (bdesc_crc32): Likewise.
426         (bdesc_sse_3arg): Likewise.
427         (bdesc_2arg): Likewise.
428         (bdesc_1arg): Likewise.
429         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
430         (ix86_expand_sse_pcmpistr): Likewise.
431         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
432         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
433         int to match the langhook definition.
434         (ix86_builtin_conversion): Change the type of code to unsigned init to
435         match the langhook definition.
436         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
437         names.
438         (ix86_preferred_output_reload_class): Likewise.
439         (ix86_cannot_change_mode_class): Likewise.
440         (ix86_memory_move_cost): Likewise.
441         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
442         avoid excessive casting later on.
443         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
444
445 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
446
447         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
448         as flags setting insn.
449         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
450
451 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
452
453         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
454         (UNSPEC_ROUND): New.
455         ("sse4_1_round<mode>2"): New insn pattern.
456         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
457         SSE4.1 targets.
458         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
459         expander using SSEMODEF mode macro.  Expand using
460         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
461         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
462         expander using SSEMODEF mode macro.  Expand using
463         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
464         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
465         expander using SSEMODEF mode macro.  Expand using
466         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
467         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
468         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
469         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
470         UNSPEC_ROUNDS.
471
472 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
473             Sebastian Pop  <sebpop@gmail.com>
474
475         * lambda.h (build_linear_expr): New.
476         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
477         Use build_linear_expr, call fold and force_gimple_operand.
478         (lambda_loopnest_to_gcc_loopnest): Check that there is
479         something to insert.
480         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
481
482 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
483
484         PR preprocessor/23479
485         * doc/extend.texi: Document the 0b-prefixed binary integer
486         constant extension.
487
488 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
489
490         PR tree-optimization/32215
491         * tree-vectorizer.c (supportable_widening_operation): Return false
492         for unsupported FIX_TRUNC_EXPR tree code.
493         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
494
495 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
496
497         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
498         register on SPE targets.  Change documentation to reflect
499         reality.
500         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
501         Change FIXED_SCRATCH to 14 and document why we're keeping r14
502         out of the register allocation pool.
503         (rs6000_reg_live_or_pic_offset_p): New function.
504         (rs6000_emit_prologue): Move the actual saving of LR up to free
505         r0 for holding r11.  Split saving of SPE 64-bit registers into
506         its own case.  Ensure that offsets will always be in-range for
507         'evstdd' by using r11 as a scratch register to point at the start
508         of the SPE save area.  Save r11 if necessary, as it is the static
509         chain register.
510         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
511         into its own case.  Ensure that offsets will always be in-range
512         for 'evldd' by using r11 as a scratch register to point at the
513         start of the SPE save area.  Also adjust r11 when restoring
514         the stack pointer to compensate for pre-loading r11.
515
516 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
517
518         * cfg.c (init_flow): Use type safe memory macros.
519         (alloc_block): Likewise.
520         (unchecked_make_edge): Likewise.
521         (dump_flow_info): Avoid using C++ keywords as variable names.
522         (copy_original_table_clear): Cast according to the coding conventions.
523         (copy_original_table_set): Likewise.
524         * cfgexpand (label_rtx_for_bb): Likewise.
525         (expand_gimple_basic_block): Likewise.
526         * cfghooks.c (dump_bb): Likewise.
527         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
528         variable names.
529         (lv_add_condition_to_bb): Likewise.
530         * cfglayout (relink_block_chain): Cast according to the coding
531         conventions.
532         (fixup_reorder_chain): Likewise.
533         (fixup_fallthru_exit_predecessor): Likewise.
534         * cfgloop.c (glb_enum_p): Likewise.
535         (get_exit_description): Likewise.
536         (dump_recorded_exit): Likewise.
537         * cfgloop.h (enum loop_estimation): Move out of struct scope...
538         (struct loop): ... from here.
539         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
540         conventions.
541         * cfgrtl.c (rtl_create_basic_block): Likewise.
542         (rtl_split_block): Likewise.
543         (rtl_dump_bb): Likewise.
544         (cfg_layout_split_block): Likewise.
545         (init_rtl_bb_info): Use typesafe memory macros.
546
547         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
548         * graphds.h: Updated all usages of edge to graph_edge.
549         * graphds.c: Likewise.
550         * cfgloopanal.c: Likewise.
551
552 2007-06-05  Ian Lance Taylor  <iant@google.com>
553
554         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
555         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
556         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
557         expression.
558         (test_for_singularity): Likewise.
559
560 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
561
562         * config/i386/constraints.md ("Y2"): Replaced by ...
563         ("Yt"): This.
564         * config/i386/i386.md: Likewise.
565         * config/i386/mmx.md: Likewise.
566         * config/i386/sse.md: Likewise.
567
568 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
569
570         * config/i386/constraints.md ("z"): Replaced by ...
571         ("Y0"): This.
572         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
573         (sse4_1_blendvps): Likewise.
574         (sse4_1_pblendvb): Likewise.
575         (sse4_2_pcmpestr): Likewise.
576         (sse4_2_pcmpestrm): Likewise.
577         (sse4_2_pcmpestr_cconly): Likewise.
578         (sse4_2_pcmpistr): Likewise.
579         (sse4_2_pcmpistrm): Likewise.
580         (sse4_2_pcmpistr_cconly): Likewise.
581
582 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
583
584         * matrix-reorg.c (transform_access_sites): Fix computation.
585         (transform_allocation_sites): Same.
586
587 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
588
589         * config/i386/i386.c (override_options): Use
590         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
591
592 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
593
594         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
595         (nonimm_not_xmm0_operand): Ditto.
596         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
597         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
598         as operand[2] predicate.  Require "z" class XMM register for
599         operand[3].  Adjust asm template.
600         ("sse4_1_blendvpd"): Ditto.
601         ("sse4_1_pblendvb"): Ditto.
602         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
603         force op2 into xmm0 register for variable blend instructions.
604
605 2007-06-04  Tom Tromey  <tromey@redhat.com>
606
607         * c-tree.h (start_enum): Update.
608         (build_enumerator): Likewise.
609         * c-decl.c (enum_next_value): Removed.
610         (enum_overflow): Likewise.
611         (start_enum): Add c_enum_contents argument.  Don't use globals.
612         (build_enumerator): Likewise.
613         * c-tree.h (struct c_enum_contents): New struct.
614
615 2007-06-04  Tom Tromey  <tromey@redhat.com>
616
617         * c-common.c (c_common_get_alias_set): Fix indentation.
618
619 2007-06-04  Ian Lance Taylor  <iant@google.com>
620
621         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
622         to overflow, reduce overflow infinity to regular infinity.
623         (vrp_var_may_overflow): New static function.
624         (vrp_visit_phi_node): Check vrp_var_may_overflow.
625
626 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
627
628         * stor-layout.c (layout_type): Remove duplicate code.
629
630 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
631
632         PR c/32191
633         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
634         before build_common_builtin_nodes ().
635
636 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
637
638         PR target/31733
639         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
640
641 2007-06-04  Jan Hubicka  <jh@suse.cz>
642
643         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
644         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
645         instead of _stat version.
646
647 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
648
649         PR tree-optimization/32194
650         * tree-predcom.c (determine_offset): Check that both references have
651         the same type.
652
653 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
654
655         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
656         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
657         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
658         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
659         Add argument to iterate_fix_dominators call.
660         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
661         * gcse.c (hoist_code): Change domby to vector.
662         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
663         Add argument to iterate_fix_dominators call.
664         * loop-doloop.c (doloop_modify): Changed recount_dominator to
665         recompute_dominator.
666         * lambda-code.c (perfect_nestify): Ditto.
667         * cfgloopanal.c: Include graphds.h.
668         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
669         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
670         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
671         add_edge call.
672         * graphds.c: New file.
673         * graphds.h: New file.
674         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
675         (get_dominated_by, get_dominated_by_region): Change return type to
676         vector.
677         (verify_dominators): Recompute all dominators and compare the results.
678         (recount_dominator): Renamed to ...
679         (recompute_dominator): ... this.  Do not check that the block is
680         dominated by entry.
681         (iterate_fix_dominators): Reimplemented.
682         (prune_bbs_to_update_dominators, root_of_dom_tree,
683         determine_dominators_for_sons): New functions.
684         * et-forest.c (et_root): New function.
685         * et-forest.h (et_root): Declare.
686         * Makefile.in (graphds.o): Add.
687         (cfgloopanal.o): Add graphds.h dependency.
688         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
689         * basic-block.h (get_dominated_by, get_dominated_by_region,
690         iterate_fix_dominators): Declaration changed.
691         (recount_dominator): Renamed to ...
692         (recompute_dominator): ... this.
693         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
694         (thread_through_all_blocks): Do not free dominance info.
695
696 2007-06-03  Andreas Schwab  <schwab@suse.de>
697
698         * config/m68k/m68k.c (override_options): Don't override
699         REAL_MODE_FORMAT.
700         * config/m68k/m68k-modes.def (SF, DF): Define to use
701         motorola_single_format and motorola_double_format, resp.
702         * real.c (motorola_single_format): Renamed from
703         coldfire_single_format.
704         (motorola_double_format): Renamed from coldfire_double_format.
705         (encode_ieee_extended): Generate a proper canonical NaN image
706         respecting canonical_nan_lsbs_set.
707         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
708         true.
709         * real.h: Adjust declarations.
710
711 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
712
713         PR target/32163
714         * config/sh/sh.md (symGOT_load): Don't schedule insns when
715         the symbol is generated with the stack protector.
716
717 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
718
719         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
720         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
721         "interrupt".
722         * doc/extend.texi (interrupt): Mention m68k.
723
724 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
725
726         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
727         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
728         (ix86_expand_sse_pcmpestr): Do not check operands for
729         "register_operand", when insn operand predicate is "register_operand".
730         (ix86_expand_sse_pcmpistr): Ditto.
731
732 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
733             Uros Bizjak  <ubizjak@gmail.com>
734
735         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
736         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
737         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
738         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
739         * config/i386/constraints.md ("z"): New register constraint
740         for members of SSE_FIRST_REG class.
741         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
742         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
743         SSE_FIRST_REG class.
744         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
745         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
746         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
747         (IX86_BUILTIN_PCMPESTRM128): Likewise.
748         (IX86_BUILTIN_PCMPESTRA128): Likewise.
749         (IX86_BUILTIN_PCMPESTRC128): Likewise.
750         (IX86_BUILTIN_PCMPESTRO128): Likewise.
751         (IX86_BUILTIN_PCMPESTRS128): Likewise.
752         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
753         (IX86_BUILTIN_PCMPISTRI128): Likewise.
754         (IX86_BUILTIN_PCMPISTRM128): Likewise.
755         (IX86_BUILTIN_PCMPISTRA128): Likewise.
756         (IX86_BUILTIN_PCMPISTRC128): Likewise.
757         (IX86_BUILTIN_PCMPISTRO128): Likewise.
758         (IX86_BUILTIN_PCMPISTRS128): Likewise.
759         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
760         (struct builtin_description): Change "flag" field to unsigned.
761         (bdesc_pcmpestr): New builtin description table.
762         (bdesc_pcmpistr): Likewise.
763         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
764         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
765         Initialize pcmp[ei]str[im] insns for SSE4.2.
766         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
767         (ix86_expand_sse_pcmpistr): Likewise.
768         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
769         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
770         (UNSPEC_PCMPISTR): Likewise.
771         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
772         (sse4_2_pcmpestri):New isns pattern.
773         (sse4_2_pcmpestrm): Likewise.
774         (sse4_2_pcmpestr_cconly): Likewise.
775         (sse4_2_pcmpistr): New insn patern and splitter.
776         (sse4_2_pcmpistri):New isns pattern.
777         (sse4_2_pcmpistrm): Likewise.
778         (sse4_2_pcmpistr_cconly): Likewise.
779         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
780         in SSE4.2.
781
782 2007-06-01  David Daney  <ddaney@avtrex.com>
783
784         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
785         LOADGP_ABSOLUTE and not binds_local_p.
786
787 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
788
789         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
790
791 2007-06-01  Ian Lance Taylor  <iant@google.com>
792
793         * tree-vrp.c (compare_name_with_value): Always set
794         used_strict_overflow if we get a result from the variable itself.
795
796 2007-06-01  Ian Lance Taylor  <iant@google.com>
797
798         PR rtl-optimization/31455
799         * lower-subreg.c (find_decomposable_subregs): Don't decompose
800         subregs which have a cast between modes which are not tieable.
801
802 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
803
804         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
805         breaks after return statements.
806
807 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
808
809         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
810         only after no_new_pseudos.
811
812 2007-05-31  Eric Christopher  <echristo@apple.com>
813
814         * expr.c (convert_move): Assert that we don't have a BLKmode
815         operand.
816         (store_expr): Handle BLKmode moves by calling emit_block_move.
817
818 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
819
820         * c-typeck.c (build_indirect_ref): Include type in error message.
821         (build_binary_op): Pass types to binary_op_error.
822         * c-common.c (binary_op_error): Take two type arguments, print out
823         types with error.
824         * c-common.h (binary_op_error): Update prototype.
825
826 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
827
828         * config/i386/i386.c: Correct coments on -mno-sse4.
829
830 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
831
832         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
833         (x86_64-*-*): Likewise.
834         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
835         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
836         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
837         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
838         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
839         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
840         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
841         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
842         (OPTION_MASK_ISA_SSE4): Likewise.
843         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
844         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
845         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
846         (override_options): Support SSE4.2.
847         (ix86_build_const_vector): Support SImode and DImode.
848         (ix86_build_signbit_mask): Likewise.
849         (ix86_expand_int_vcond): Support V2DImode.
850         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
851         (IX86_BUILTIN_CRC32HI): Likewise.
852         (IX86_BUILTIN_CRC32SI): Likewise.
853         (IX86_BUILTIN_CRC32DI): Likewise.
854         (IX86_BUILTIN_PCMPGTQ): Likewise.
855         (bdesc_crc32): Likewise.
856         (bdesc_sse_3arg): Likewise.
857         (ix86_expand_crc32): Likewise.
858         (ix86_init_mmx_sse_builtins): Support SSE4.2.
859         (ix86_expand_builtin): Likewise.
860         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
861         __SSE4_2__ for -msse4.2.
862         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
863         (CRC32MODE): Likewise.
864         (crc32modesuffix): Likewise.
865         (crc32modeconstraint): Likewise.
866         (sse4_2_crc32<mode>): Likewise.
867         (sse4_2_crc32di): Likewise.
868         * config/i386/i386.opt (msse4.2): New for SSE4.2.
869         (msse4): Likewise.
870         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
871         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
872         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
873         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
874         (vcondu<mode>): Likewise.
875         * doc/extend.texi: Document SSE4.2 built-in functions.
876         * doc/invoke.texi: Document -msse4.2/-msse4.
877
878 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
879
880         PR tree-optimization/32160
881         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
882         variable as gimple reg.
883         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
884
885 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
886
887         * gcc.c (main): Don't consider linker options when issuing the
888         warning about a linker input file not being used.
889
890 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
891
892         * tree-vrp.c (compare_names): Initialize sop.
893
894 2007-05-30  Dirk Mueller  <dmueller@suse.de>
895
896         * cgraphunit.c (cgraph_analyze_function): Remove
897         computation of inline parameters.
898
899 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
900
901         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
902
903 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
904
905         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
906         Add vx-common.h.  Include vxworks.h between vx-common.h and
907         arm/vxworks.h.
908         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
909         redefining.
910         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
911         (TARGET_ASM_DESTRUCTOR): Likewise.
912         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
913         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
914         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
915         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
916         (VXWORKS_ENDIAN_SPEC): Define.
917         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
918         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
919         VXWORKS_* equivalents.
920         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
921         (ASM_FILE_START): Delete.
922         (TARGET_VERSION): Reformat.
923         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
924         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
925         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
926         (FPBIT, DPBIT): Define.
927         (fp-bit.c, dp-bit.c): New rules.
928         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
929         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
930         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
931         * config/arm/arm.h: Include vxworks-dummy.h.
932         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
933         Mark with ATTRIBUTE_UNUSED.
934         (arm_override_options): Do not allow VxWorks RTP PIC to be used
935         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
936         make it incompatible with -msingle-pic-base.
937         (arm_function_ok_for_sibcall): Return false for calls that might
938         go through a VxWorks PIC PLT entry.
939         (require_pic_register): New function, split out from...
940         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
941         for VxWorks RTPs.
942         (arm_load_pic_register): Handle the VxWorks RTP initialization
943         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
944         (arm_emit_call_insn): New function.
945         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
946         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
947         (pic_offset_arm): New pattern.
948         (call, call_value): Use arm_emit_call_insn.
949         (call_internal, call_value_internal): New expanders.
950         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
951         VxWorks unless __PIC__.
952
953 2007-05-30  Eric Christopher  <echristo@gmail.com>
954
955         * genrecog.c: Include regs.h in generated file.
956         * genemit.c: Ditto. Fix up formatting.
957         * config/mn10300/constraints.md: New.
958         * config/mn10300/mn10300.md: Include.
959         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
960         Fix up for removed macro.
961         * config/mn10300/predicates.md (call_address_operand):  Ditto.
962         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
963         (CONST_OK_FOR_I): Ditto.
964         (CONST_OK_FOR_J): Ditto.
965         (CONST_OK_FOR_K): Ditto.
966         (CONST_OK_FOR_L): Ditto.
967         (CONST_OK_FOR_M): Ditto.
968         (CONST_OK_FOR_N): Ditto.
969         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
970         (OK_FOR_Q): Ditto.
971         (OK_FOR_R): Ditto.
972         (OK_FOR_T): Ditto.
973         (EXTRA_CONSTRAINT): Ditto.
974
975 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
976
977         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
978         Remove defines.
979         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
980         OPTION_MASK_ISA_64BIT.
981         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
982
983 2007-05-30  Richard Guenther  <rguenther@suse.de>
984
985         PR middle-end/32152
986         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
987         types for comparison.
988         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
989         with original typed arguments.
990         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
991
992 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
993
994         PR tree-optimization/31769
995         * except.c (duplicate_eh_regions): Clear prev_try if
996         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
997
998 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
999
1000         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
1001         * tree-ssa-sink.c (statement_sink_location): Return basic block and
1002         bsi of the location where statements should be inserted.
1003         (sink_code_in_bb): Take bsi from statement_sink_location.
1004         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
1005         instead of bsi_start.
1006         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
1007         bsi_insert_after.
1008         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
1009         (bsi_move_before): Document inconsistency with bsi_move_after.
1010         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
1011
1012 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1013
1014         * config/i386/i386.h (TARGET_ABM): New define.
1015         (TARGET_POPCNT): Ditto.
1016         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
1017         New temporary defines to redefine from OPTION_ISA_* defines.
1018         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
1019         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
1020         (ix86_isa_flags): New extern int declaration.
1021         (TARGET_SUBTARGET_DEFAULT): New define.
1022         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
1023         (TARGET_SUBTARGET32_DEFAULT): Ditto.
1024         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
1025         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
1026         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
1027         * config/i386/darwin.h: Change TARGET_64BIT define to
1028         OPTION_ISA_64BIT.
1029
1030         * config/i386/i386.opt (m3dnowa): Define as undocumented option
1031         using existing "ix86_isa_flags" varible.
1032         (m32, m64): Use existing "ix86_isa_flags" variable.
1033         (mmmx, m3dnow): Ditto.
1034         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
1035         (mabm): Define as non-negative option using "x86_abm" variable.
1036         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
1037
1038         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
1039         Rewrite feature test bitmap.
1040         (ix86_isa_flags): New initialized global int varible.
1041         (ix86_isa_flags_explicit): New static int variable.
1042         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
1043         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
1044         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
1045         target_flags_explicit.
1046         (override_options): Remove "target_enable" and "target_disable" fields
1047         from "struct ptt". Update processor_target_table accordingly. Remove
1048         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
1049         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
1050         "target_flags" and "ix86_isa_flags_explicit" instead of
1051         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
1052         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
1053         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
1054         to true when either of PTA_POPCNT or PTA_ABM is set in
1055         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
1056         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
1057         processor_alias_table flags entry.  Remove handling of
1058         "target_enable" and "target_disable" fields of processor_target_table.
1059         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
1060         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
1061         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
1062         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
1063         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
1064         "target_flags".
1065         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
1066
1067 2007-05-29  David Daney  <ddaney@avtrex.com>
1068
1069         PR gcc/31975
1070         * config/mips/mips.c (mips_output_mi_thunk): Emit
1071         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
1072
1073 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
1074         * config/i386/i386.c (ix86_function_regparm): Added checking of
1075         ix86_force_align_arg_pointer to determine the number of
1076         register parameters.
1077
1078 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
1079
1080         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
1081         (SET_DR_MISALIGNMENT): New.
1082         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
1083         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
1084         Use SET_DR_MISALIGNMENT.
1085         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
1086         pointer.
1087         * tree-data-ref.c (create_data_ref, compute_all_dependences,
1088         find_loop_nest): Export.
1089         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
1090         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
1091         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
1092         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
1093         New macros.
1094         (struct mem_ref): Add field reuse_distance.
1095         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
1096         Initialize reuse_distance field.
1097         (issue_prefetch_ref): Select temporality of prefetch according to
1098         reuse_distance.
1099         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
1100         self_reuse_distance, determine_loop_nest_reuse): New functions.
1101         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
1102         (tree_ssa_prefetch_arrays): Dump L2 cache size.
1103         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
1104         dependency.
1105
1106 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
1107
1108         * tree-ssa-alias.c: Add aliasing overview.
1109
1110 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
1111             Danny Smith  <dannysmith@users.sourceforge.net>
1112
1113         PR target/29498
1114         * config/i386/t-crtfm: Compile crtfastmath.o with
1115         -minline-all-stringops.
1116         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
1117         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
1118
1119 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1120
1121         * doc/md.texi: Document constraints on HP PA-RISC.
1122
1123         * pa/constraints.md: New file.
1124         * pa.md: Include constraints.md.
1125         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
1126         (integer_store_memory_operand, ldil_cint_p): New functions.
1127         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
1128         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1129         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
1130         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
1131         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
1132
1133 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
1134
1135         PR c/31339
1136         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
1137         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
1138         case POSTDECREMENT_EXPR>): Return the error_mark_node
1139         if either the real or imaginary parts would an
1140         error_mark_node.
1141
1142 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
1143
1144         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
1145         name when we remove it from a call.
1146
1147 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
1148
1149         * targhooks.c (default_narrow_bitfield): Remove.
1150         * targhooks.h: Remove the prototype for
1151         default_narrow_bitfield.
1152
1153         * langhooks-def.h: Remove the prototype for
1154         hook_get_alias_set_0.
1155         * langhooks.c (hook_get_alias_set_0): Remove.
1156
1157         * global.c (EXECUTE_IF_CONFLICT): Remove.
1158
1159 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1160
1161         PR tree-opt/32100
1162         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
1163         return true when truth_value_p is true and the type
1164         is of signed:1.
1165
1166 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
1167
1168         * doc/install.texi (Prerequisites): We no longer require Autoconf
1169         2.13 for the top-level.
1170
1171 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
1172
1173         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
1174         memory access via x86_expand_vector_move_misalign() only for
1175         TImode values on 32-bit targets.
1176
1177 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
1178
1179         * matrix-reorg.c: New file. Implement matrix flattening and
1180         transposing optimization.
1181         * tree-pass.h: Add matrix reorg pass.
1182         * common.opt: Add fipa-mreorg flag.
1183         * Makefile.in: Add matrix-reorg.c.
1184         * passes.c: Add matrix reorg pass.
1185         * varpool.c (add_new_static_var): New function.
1186         * cgraph.h (add_new_static_var): Declare.
1187
1188 2007-05-27  Eric Christopher  <echristo@apple.com>
1189
1190         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
1191         sp_offset depending on stack size. Save r12 depending
1192         on registers we're saving later.
1193         (rs6000_emit_epilogue): Update sp_offset depending only
1194         on stack size.
1195
1196 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
1197
1198         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
1199         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
1200         * ifcvt.c (if_convert): Ditto.
1201         * tree-ssa-threadupdate.c (thread_block): Ditto.
1202         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
1203         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1204         verify_loop_closed_ssa): Check number_of_loops instead of
1205         current_loops.
1206         * predict.c (tree_estimate_probability): Ditto.
1207         * tree-if-conv.c (main_tree_if_conversion): Ditto.
1208         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1209         * modulo-sched.c (sms_schedule): Ditto.
1210         * tree-scalar-evolution.c (scev_const_prop): Ditto.
1211         (scev_finalize): Do not do anything if scev analysis was not
1212         initialized.
1213         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
1214         current_loops == NULL.
1215         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
1216         * loop-init.c (loop_optimizer_init): Do not free current_loops when
1217         there are no loops.
1218         (loop_optimizer_finalize): Assert that loops were analyzed.
1219         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
1220         rtl_doloop): Check number_of_loops instead of current_loops.
1221         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
1222         current_loops == NULL.
1223         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
1224         gate_tree_vectorize tree_linear_transform, check_data_deps,
1225         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
1226         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
1227         Check number_of_loops instead of current_loops.
1228         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
1229         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
1230         free loops if available.
1231         (execute_pre): Do not pass do_fre to fini_pre.
1232
1233 2007-05-27  Tobias Burnus  <burnus@net-b.de>
1234
1235         PR middle-end/32083
1236         * real.c (mpfr_from_real): Fix sign of -Inf.
1237
1238 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1239
1240         * tree-vect-transform.c (vectorizable_conversion): Initialize
1241         tree_code variables to ERROR_MARK.
1242         (vectorizable_type_demotion): Likewise.
1243         (vectorizable_type_promotion): Likewise.
1244
1245 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
1246
1247         PR target/32065
1248         * config/i386/i386.md (movti): Handle push operands via
1249         ix86_expand_push().
1250
1251 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
1252
1253         * basic-block.h: Remove the prototype for merge_seq_blocks.
1254         * cfgcleanup.c (merge_seq_blocks): Remove.
1255
1256         * tree-flow.h: Remove the prototype for is_aliased_with.
1257         * tree-ssa-alias.c (is_aliased_with): Remove.
1258
1259 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1260
1261         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
1262
1263         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
1264
1265         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
1266         ix86_expand_sse4_unpack if SSE4.1 is enabled.
1267         (vec_unpacks_hi_v16qi): Likewise.
1268         (vec_unpacku_lo_v16qi): Likewise.
1269         (vec_unpacks_lo_v16qi): Likewise.
1270         (vec_unpacku_hi_v8hi): Likewise.
1271         (vec_unpacks_hi_v8hi): Likewise.
1272         (vec_unpacku_lo_v8hi): Likewise.
1273         (vec_unpacks_lo_v8hi): Likewise.
1274         (vec_unpacku_hi_v4si): Likewise.
1275         (vec_unpacks_hi_v4si): Likewise.
1276         (vec_unpacku_lo_v4si): Likewise.
1277         (vec_unpacks_lo_v4si): Likewise.
1278
1279 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
1280
1281         * c-typeck.c, config/arm/arm.c, config/darwin.c,
1282         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
1283         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
1284         follow spelling conventions in various
1285         warning/error/diagnostic messages.
1286
1287         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
1288         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
1289         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
1290         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
1291         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
1292         * doc/tm.texi: Follow spelling conventions.
1293
1294 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1295
1296         PR tree-opt/32090
1297         * tree-ssa-forwprop.c
1298         (forward_propagate_addr_into_variable_array_index): Remove
1299         the lhs argument.  Use the type of def_rhs instead of lhs.
1300         (forward_propagate_addr_expr_1): Update use of
1301         forward_propagate_addr_into_variable_array_index.
1302
1303 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
1304             Nigel Stephens  <nigel@mips.com>
1305
1306         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
1307         function attributes, "far" being an alias for "long_call".
1308         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
1309         (mips_near_type_p, mips_far_type_p): New.
1310         (mips_comp_type_attributes): New function to check that attributes
1311         attached to a function type are compatible.
1312         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
1313         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
1314         to the target function of the thunk.
1315         (mips_encode_section_info): Check for "near" and "far" function
1316         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
1317
1318         * config/mips/predicates.md (const_call_insn_operand): Test only
1319         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
1320
1321         * doc/extend.texi (Function Attributes): Document MIPS "near" and
1322         "far" attributes.
1323
1324         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
1325         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
1326         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
1327         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
1328
1329 2007-05-25  Eric Christopher  <echristo@apple.com>
1330
1331         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
1332         to x86-darwin configurations.
1333         * config/i386/t-darwin: Add softfp support.
1334         * config/i386/t-darwin64: Ditto.
1335         * config/i386/sfp-machine.h: If mach then don't use
1336         aliasing, emit a stub to call.
1337
1338 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
1339
1340         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
1341         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
1342         tree-predcom.c, tree-ssa-alias-warnings.c,
1343         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
1344         comment typos.  Follow spelling conventions.
1345         * doc/cpp.texi, doc/invoke.texi: Fix typos.
1346
1347 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
1348
1349         PR target/32065
1350         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
1351         constants into memory.  Expand unaligned memory references for
1352         SSE modes via x86_expand_vector_move_misalign() function.
1353
1354 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
1355
1356         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
1357         "memory" attribute for "sseishft" type insn without operands[2].
1358
1359 2007-05-25  Dirk Mueller  <dmueller@suse.de>
1360             Marcus Meissner <meissner@suse.de>
1361
1362         * doc/extend.texi (alloc_size): New attribute.
1363         * c-common.c (handle_alloc_size_attribute): New.
1364         * tree-object-size.c (alloc_object_size): Use alloc_size
1365         attribute, if available.
1366
1367 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1368
1369         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
1370         with MASK_SSE2.
1371         (__builtin_ia32_vec_ext_v2di): Likewise.
1372         (__builtin_ia32_vec_ext_v4si): Likewise.
1373         (__builtin_ia32_vec_ext_v8hi): Likewise.
1374         (__builtin_ia32_vec_ext_v16qi): Likewise.
1375         (__builtin_ia32_vec_set_v8hi): Likewise.
1376
1377 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1378
1379         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
1380
1381 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
1382
1383         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
1384         (arm_is_longcall_p): Rename to...
1385         (arm_is_long_call_p): ...this.  Take a single tree argument and
1386         return a bool.
1387         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
1388         (CUMULATIVE_ARGS): Remove call_cookie.
1389         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
1390         (ENCODED_LONG_CALL_ATTR_P): Delete.
1391         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
1392         LONG_CALL_FLAG_CHAR cases.
1393         (ARM_DECLARE_FUNCTION_SIZE): Delete.
1394         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
1395         ARM_DECLARE_FUNCTION_SIZE.
1396         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
1397         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
1398         (arm_encode_call_attribute, current_file_function_operand): Delete.
1399         (arm_function_in_section_p): New function.
1400         (arm_is_longcall_p): Rename to...
1401         (arm_is_long_call_p): ...this.  Take the target function as a single
1402         argument and return a bool.  Do not rely on call cookies.  Check
1403         whether the target symbol is in the same section as the current
1404         function, not just the same compilation unit.
1405         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
1406         (arm_encode_section_info): Don't encode a call type.
1407         * config/arm/arm.md (call, call_value): Update calls to
1408         arm_is_long(_)call_p.  Simplify logic.
1409         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
1410         Update calls to arm_is_long(_)call_p.
1411
1412 2007-05-25  Richard Guenther  <rguenther@suse.de>
1413
1414         PR tree-optimization/31982
1415         * tree-ssa-forwprop.c
1416         (forward_propagate_addr_into_variable_array_index): Handle arrays
1417         with element size one.
1418
1419 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1420
1421         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
1422         (umulsi3_highpart): Likewise.
1423
1424 2007-05-24  Ian Lance Taylor  <iant@google.com>
1425
1426         PR rtl-optimization/32069
1427         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
1428         is NULL.
1429
1430 2007-05-24  Ollie Wild  <aaw@google.com>
1431
1432         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
1433         description.
1434
1435 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
1436
1437         * postreload-gcse.c (reg_changed_after_insn_p): New function.
1438         (oprs_unchanged_p): Use it to check all registers in a REG.
1439         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
1440         (reg_set_between_after_reload_p): Delete.
1441         (reg_used_between_after_reload_p): Likewise.
1442         (reg_set_or_used_since_bb_start): Likewise.
1443         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
1444         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
1445         Use reg_set_between_p instead of reg_set_between_after_reload_p.
1446         * rtlanal.c (reg_set_p): Check whether REG overlaps
1447         regs_invalidated_by_call, rather than just checking the
1448         membership of REGNO (REG).
1449
1450 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
1451
1452         * doc/passes.texi: Document predictive commoning.
1453         * doc/invoke.texi (-fpredictive-commoning): Document.
1454         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
1455         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
1456         adding indices to the generated name.
1457         (schedule_sm): Pass 0 to get_lsm_tmp_name.
1458         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
1459         * tree-pretty-print.c (op_symbol_1): Renamed to ...
1460         (op_symbol_code): ... and exported.
1461         (dump_omp_clause, op_symbol): Use op_symbol_code
1462         instead of op_symbol_1.
1463         * tree-pass.h (pass_predcom): Declare.
1464         * timevar.def (TV_PREDCOM): New timevar.
1465         * tree-ssa-loop.c (run_tree_predictive_commoning,
1466         gate_tree_predictive_commoning, pass_predcom): New.
1467         * tree-data-ref.c (find_data_references_in_loop): Find the
1468         references in dominance order.
1469         (canonicalize_base_object_address): Ensure that the result has
1470         pointer type.
1471         (dr_analyze_innermost): Export.
1472         (create_data_ref): Code to fail for references with invariant
1473         address moved ...
1474         (find_data_references_in_stmt): ... here.
1475         * tree-data-ref.h (dr_analyze_innermost): Declare.
1476         * tree-affine.c: Include tree-gimple.h and hashtab.h.
1477         (aff_combination_find_elt, name_expansion_hash,
1478         name_expansion_eq, tree_to_aff_combination_expand,
1479         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
1480         New functions.
1481         * tree-affine.h (aff_combination_constant_multiple_p,
1482         tree_to_aff_combination_expand): Declare.
1483         * tree-predcom.c: New file.
1484         * common.opt (fpredictive-commoning): New option.
1485         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
1486         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
1487         * Makefile.in (tree-predcom.o): Add.
1488         (tree-affine.o): Add TREE_GIMPLE_H dependency.
1489         * passes.c (init_optimization_passes):  Add dceloop after
1490         copy propagation in loop optimizer.  Add predictive commoning
1491         to loop optimizer passes.
1492
1493 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1494
1495         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
1496         default hook.
1497
1498 2007-05-24  Jan Hubicka  <jh@suse.cz>
1499
1500         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
1501         statistics.
1502         (genheader): Include statistics.h.
1503
1504         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
1505         notes are gone.
1506         * print-rtl.c (flag_dump_unnumbered): Update comments.
1507         (print_rtl): Fix my previous change.
1508         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
1509         specific data.
1510
1511 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
1512
1513         PR middle-end/32018
1514         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
1515         set_loop_copy.
1516         (thread_through_all_blocks): Call initialize_original_copy_tables
1517         and free_original_copy_tables.
1518         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
1519         Use set_loop_copy.
1520         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
1521         * cfghooks.c (duplicate_block): Use get_loop_copy.
1522         * cfg.c: Include cfgloop.h.
1523         (loop_copy): New hash table.
1524         (initialize_original_copy_tables): Initialize loop_copy table.
1525         (free_original_copy_tables): Free loop_copy table.
1526         (copy_original_table_clear, copy_original_table_set,
1527         set_loop_copy, get_loop_copy): New functions.
1528         (set_bb_original, set_bb_copy): Use copy_original_table_set.
1529         * cfgloop.h (struct loop): Remove copy field.
1530         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
1531         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
1532
1533 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1534
1535         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
1536         -msse/-msse2/-msse3.
1537
1538 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1539
1540         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
1541         __builtin_ia32_vec_set_v2di with MASK_64BIT.
1542
1543 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
1544
1545         PR target/27067
1546         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
1547         * targhooks.h (default_mangle_decl_assembler_name): Declare
1548         default hook.
1549         * targhooks.c (default_mangle_decl_assembler_name): Define
1550         default hook.
1551         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
1552         default hook.
1553         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
1554         * langhooks.c (lhd_set_decl_assembler_name): Call
1555         targetm.mangle_decl_assembler_name for names with global scope.
1556
1557         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
1558         default.
1559         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
1560         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
1561         Declare.
1562         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1563         New. Factored out of i386_pe_encode_section_info.
1564         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
1565         Move check for prior decoration of stdcall
1566         symbols to i386_pe_encode_section_info.
1567         (i386_pe_encode_section_info): Adjust call to
1568         gen_stdcall_or_fastcall_suffix.  Use
1569         i386_pe_maybe_mangle_decl_assembler_name, if needed.
1570         (i386_pe_mangle_decl_assembler_name): New. Wrap
1571         i386_pe_maybe_mangle_decl_assembler_name.
1572
1573 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
1574
1575         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
1576         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
1577         * langhooks.c (get_signed_or_unsigned_type): Don't check for
1578         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
1579         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
1580         TYPE_UNSIGNED.
1581
1582 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
1583             Nigel Stephens  <nigel@mips.com>
1584             Richard Sandiford  <richard@codesourcery.com>
1585
1586         Fix up MIPS16 hard float and add support for complex.
1587
1588         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
1589         (TARGET_SOFT_FLOAT_ABI): New.
1590         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
1591         __mips_soft_float to reflect the ABI in use, not whether the
1592         FPU is directly accessible (e.g., in MIPS16 mode).
1593         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
1594         (UNITS_PER_FPVALUE): Likewise.
1595
1596         * config/mips/mips.c (mips_expand_call): Remove redundant
1597         TARGET_MIPS16 check.
1598         (mips_arg_regno): New.
1599         (function_arg_advance): When setting bits in cum->fp_code for
1600         MIPS16, don't subtract 1 from cum->arg_number, since it is now
1601         zero-based.
1602         (function_arg): Use mips_arg_regno.
1603         (mips_return_mode_in_fpr_p): New.
1604         (mips16_call_stub_mode_suffix): New.
1605         (mips16_cfun_returns_in_fpr_p): New.
1606         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
1607         (mips_output_function_prologue): Test mips16_hard_float, not
1608         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
1609         (mips_expand_epilogue): Call MIPS16 helper routines to copy
1610         return value into a floating-point register.
1611         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
1612         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
1613         (mips16_fp_args): Handle MIPS32r2 ISA which supports
1614         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
1615         word of double arguments from or to the high bits of 64-bit
1616         floating point registers.
1617         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
1618         (mips16_fpret_double): New helper function.
1619         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
1620         support for complex modes.  Fill in DECL_RESULT for stubdecl.
1621         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
1622
1623         * config/mips/mips16.S
1624         (RET, ARG1, ARG2): New.
1625         (MERGE_GPRf, MERGE_GPRt): New.
1626         (DELAYt, DELAYf): New.
1627         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
1628         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
1629         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
1630         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
1631         (SFOP): Renamed to...
1632         (OPSF3): This, and macro-ified.  Updated all uses.
1633         (SFOP2): Renamed to...
1634         (OPSF2): This, and macro-ified.  Updated all uses.
1635         (SFCMP): Renamed to...
1636         (CMPSF): This, and macro-ified.  Updated all uses.
1637         (SFREVCMP): Renamed to...
1638         (REVCMPSF): This, and macro-ified.  Updated all uses.
1639         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
1640         (LDDBL1, LDDBL2, RETDBL): Deleted.
1641         (DFOP): Renamed to...
1642         (OPDF3): This, and macro-ified.  Updated all uses.
1643         (DFOP2): Renamed to...
1644         (OPDF2): This, and macro-ified.  Updated all uses.
1645         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
1646         (DFCMP): Renamed to...
1647         (CMPDF): This, and macro-ified.  Updated all uses.
1648         (DFREVCMP): Renamed to...
1649         (REVCMPDF): This, and macro-ified.  Updated all uses.
1650         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
1651         (RET_FUNCTION): New.
1652         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
1653         (__mips16_ret_sc, __mips16_ret_dc): New.
1654         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
1655         STUB_ARGS_6, STUB_ARGS_10): New.
1656         (CALL_STUB_NO_RET): New.
1657         (__mips16_call_stub_1): Macro-ified.
1658         (__mips16_call_stub_5): Macro-ified.
1659         (__mips16_call_stub_2): Macro-ified.
1660         (__mips16_call_stub_6): Macro-ified.
1661         (__mips16_call_stub_9): Macro-ified.
1662         (__mips16_call_stub_10): Macro-ified.
1663         (CALL_STUB_RET): New.
1664         (__mips16_call_stub_sf_0): Macro-ified.
1665         (__mips16_call_stub_sf_1): Macro-ified.
1666         (__mips16_call_stub_sf_5): Macro-ified.
1667         (__mips16_call_stub_sf_2): Macro-ified.
1668         (__mips16_call_stub_sf_6): Macro-ified.
1669         (__mips16_call_stub_sf_9): Macro-ified.
1670         (__mips16_call_stub_sf_10): Macro-ified.
1671         (__mips16_call_stub_df_0): Macro-ified.
1672         (__mips16_call_stub_df_1): Macro-ified.
1673         (__mips16_call_stub_df_5): Macro-ified.
1674         (__mips16_call_stub_df_2): Macro-ified.
1675         (__mips16_call_stub_df_6): Macro-ified.
1676         (__mips16_call_stub_df_9): Macro-ified.
1677         (__mips16_call_stub_df_10): Macro-ified.
1678         (__mips16_call_stub_sc_0): New.
1679         (__mips16_call_stub_sc_1): New.
1680         (__mips16_call_stub_sc_5): New.
1681         (__mips16_call_stub_sc_2): New.
1682         (__mips16_call_stub_sc_6): New.
1683         (__mips16_call_stub_sc_9): New.
1684         (__mips16_call_stub_sc_10): New.
1685         (__mips16_call_stub_dc_0): New.
1686         (__mips16_call_stub_dc_1): New.
1687         (__mips16_call_stub_dc_5): New.
1688         (__mips16_call_stub_dc_2): New.
1689         (__mips16_call_stub_dc_6): New.
1690         (__mips16_call_stub_dc_9): New.
1691         (__mips16_call_stub_dc_10): New.
1692
1693         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
1694         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
1695         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
1696
1697 2007-05-23  Ian Lance Taylor  <iant@google.com>
1698
1699         * doc/invoke.texi (Invoking GCC): Document that the order of the
1700         -l option matters.
1701
1702 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
1703
1704         PR target/30987
1705         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
1706         * config/score/predicate.md (const_pow2, const_npow2): Remove.
1707         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
1708         undef.
1709
1710         PR target/30474
1711         * config/score/score.c (score_print_operand): Make sure that only
1712         lower bits are used.
1713
1714 2007-05-22  Ian Lance Taylor  <iant@google.com>
1715
1716         * tree-vrp.c (avoid_overflow_infinity): New static function,
1717         broken out of set_value_range_to_value.
1718         (set_value_range_to_value): Call avoid_overflow_infinity.
1719         (extract_range_from_assert): Likewise.
1720
1721 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1722
1723         PR middle-end/31095
1724          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
1725         change the type before looking for a COMPOUND_EXPR.
1726
1727 2007-05-22  Ian Lance Taylor  <iant@google.com>
1728
1729         * lower-subreg.c (decompose_multiword_subregs): If we change an
1730         insn, call remove_retval_note on it.
1731
1732 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
1733
1734         * regs.h (end_hard_regno): New function.
1735         (END_HARD_REGNO, END_REGNO): New macros.
1736         (add_to_hard_reg_set): New function.
1737         (remove_from_hard_reg_set): Likewise.
1738         (in_hard_reg_set_p): Likewise.
1739         (overlaps_hard_reg_set_p): Likewise.
1740         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
1741         (note_btr_set): Use END_HARD_REGNO.
1742         * caller-save.c (setup_save_areas): Use end_hard_regno.
1743         (mark_set_regs): Use END_HARD_REGNO.
1744         (add_stored_regs): Use end_hard_regno.
1745         (mark_referenced_regs): Use add_to_hard_reg_set.
1746         * combine.c (update_table_tick): Use END_REGNO.
1747         (record_value_for_reg): Likewise.
1748         (record_dead_and_set_regs): Likewise.
1749         (get_last_value_validate): Likewise.
1750         (use_crosses_set_p): Likewise.
1751         (reg_dead_at_p_1): Likewise.
1752         (reg_dead_at_p): Likewise.
1753         (mark_used_regs_combine): Use add_to_hard_reg_set.
1754         (move_deaths): Use END_HARD_REGNO.
1755         (reg_bitfield_target_p): Use end_hard_regno.
1756         (distribute_notes): Use END_HARD_REGNO.
1757         * cse.c (mention_regs): Use END_REGNO.
1758         (insert): Use add_to_hard_reg_set.
1759         (invalidate): Use END_HARD_REGNO.
1760         (invalidate_for_call): Likewise.
1761         (exp_equiv_p): Use END_REGNO.
1762         (cse_insn): Likewise.
1763         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
1764         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
1765         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
1766         * function.c (keep_stack_depressed): Use end_hard_regno.
1767         * global.c (global_alloc): Use end_hard_regno.
1768         (global_conflicts): Use add_to_hard_reg_set instead of
1769         mark_reg_live_nc.
1770         (find_reg): Likewise.
1771         (mark_reg_store): Likewise.
1772         (mark_reg_conflicts): Likewise.
1773         (mark_reg_death): Use remove_from_hard_reg_set.
1774         (mark_reg_live_nc): Delete.
1775         (set_preference): Use end_hard_regno.
1776         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
1777         remove_from_hard_reg_set.
1778         (post_mark_life): Use add_to_hard_reg_set.
1779         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
1780         (reg_becomes_live): Use add_to_hard_reg_set.
1781         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
1782         (peep2_find_free_register): Use add_to_hard_reg_set.
1783         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
1784         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
1785         * regrename.c (note_sets): Use add_to_hard_reg_set.
1786         (clear_dead_regs): Use remove_from_hard_reg_set.
1787         (regrename_optimize): Use add_to_hard_reg_set.
1788         (find_oldest_value_reg): Use in_hard_reg_set_p.
1789         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
1790         (hard_reg_set_here_p): Use end_hard_regno.
1791         (decompose): Likewise.
1792         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
1793         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
1794         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
1795         (mark_home_live): Use end_hard_regno.
1796         (spill_hard_reg): Likewise.
1797         (clear_reload_reg_in_use): Likewise.
1798         * reorg.c (delete_prior_computation): Use END_REGNO.
1799         * resource.c (update_live_status): Use END_HARD_REGNO.
1800         (mark_referenced_resources): Use add_to_hard_reg_set.
1801         (mark_set_resources): Likewise.
1802         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
1803         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
1804         (reg_overlap_mentioned_p): Likewise.
1805         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
1806         (covers_regno_no_parallel_p): Use END_REGNO.
1807         (find_regno_note): Likewise.
1808         (find_reg_fusage): Use END_HARD_REGNO.
1809         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
1810         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
1811
1812 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
1813
1814         * mode-switching.c (reg_dies): Change type of second argument to
1815         "HARD_REG_SET *".
1816         (optimize_mode_switching): Update accordingly.
1817
1818 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
1819
1820         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
1821         in favor of...
1822         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
1823         (hard_reg_set_empty_p): ...these new functions.
1824         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
1825         GO_IF_HARD_REG_SUBSET.
1826         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
1827         instead of GO_IF_HARD_REG_EQUAL.
1828         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
1829         instead of GO_IF_HARD_REG_EQUAL.
1830         * global.c (find_reg): Use hard_reg_set_empty_p instead of
1831         GO_IF_HARD_REG_SUBSET.
1832         (modify_reg_pav): Use hard_reg_set_empty_p instead of
1833         GO_IF_HARD_REG_EQUAL.
1834         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
1835         of GO_IF_HARD_REG_SUBSET.
1836         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
1837         instead of GO_IF_HARD_REG_EQUAL.
1838         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
1839         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
1840         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
1841         of GO_IF_HARD_REG_SUBSET,
1842         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
1843         GO_IF_HARD_REG_SUBSET.
1844         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
1845         instead of GO_IF_HARD_REG_EQUAL.
1846         * config/sh/sh.c (push_regs, calc_live_regs): Use
1847         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
1848         (hard_regs_intersect_p): Delete.
1849
1850 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
1851
1852         * doc/sourcebuild.texi (Test Directives) Add dg-message.
1853
1854 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1855             Richard Henderson  <rth@redhat.com>
1856
1857         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
1858         extra_headers.
1859         (x86_64-*-*): Likewise.
1860
1861         * i386/i386-modes.def (V2QI): New.
1862
1863         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
1864         SSE4A.
1865         (override_options): Support SSE4.1.
1866         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
1867         (IX86_BUILTIN_BLENDPS): Likewise.
1868         (IX86_BUILTIN_BLENDVPD): Likewise.
1869         (IX86_BUILTIN_BLENDVPS): Likewise.
1870         (IX86_BUILTIN_PBLENDVB128): Likewise.
1871         (IX86_BUILTIN_PBLENDW128): Likewise.
1872         (IX86_BUILTIN_DPPD): Likewise.
1873         (IX86_BUILTIN_DPPS): Likewise.
1874         (IX86_BUILTIN_INSERTPS128): Likewise.
1875         (IX86_BUILTIN_MOVNTDQA): Likewise.
1876         (IX86_BUILTIN_MPSADBW128): Likewise.
1877         (IX86_BUILTIN_PACKUSDW128): Likewise.
1878         (IX86_BUILTIN_PCMPEQQ): Likewise.
1879         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
1880         (IX86_BUILTIN_PMAXSB128): Likewise.
1881         (IX86_BUILTIN_PMAXSD128): Likewise.
1882         (IX86_BUILTIN_PMAXUD128): Likewise.
1883         (IX86_BUILTIN_PMAXUW128): Likewise.
1884         (IX86_BUILTIN_PMINSB128): Likewise.
1885         (IX86_BUILTIN_PMINSD128): Likewise.
1886         (IX86_BUILTIN_PMINUD128): Likewise.
1887         (IX86_BUILTIN_PMINUW128): Likewise.
1888         (IX86_BUILTIN_PMOVSXBW128): Likewise.
1889         (IX86_BUILTIN_PMOVSXBD128): Likewise.
1890         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
1891         (IX86_BUILTIN_PMOVSXWD128): Likewise.
1892         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
1893         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
1894         (IX86_BUILTIN_PMOVZXBW128): Likewise.
1895         (IX86_BUILTIN_PMOVZXBD128): Likewise.
1896         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
1897         (IX86_BUILTIN_PMOVZXWD128): Likewise.
1898         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
1899         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
1900         (IX86_BUILTIN_PMULDQ128): Likewise.
1901         (IX86_BUILTIN_PMULLD128): Likewise.
1902         (IX86_BUILTIN_ROUNDPD): Likewise.
1903         (IX86_BUILTIN_ROUNDPS): Likewise.
1904         (IX86_BUILTIN_ROUNDSD): Likewise.
1905         (IX86_BUILTIN_ROUNDSS): Likewise.
1906         (IX86_BUILTIN_PTESTZ): Likewise.
1907         (IX86_BUILTIN_PTESTC): Likewise.
1908         (IX86_BUILTIN_PTESTNZC): Likewise.
1909         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
1910         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
1911         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
1912         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
1913         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
1914         (bdesc_ptest): New.
1915         (bdesc_sse_3arg): Likewise.
1916         (bdesc_2arg): Likewise.
1917         (bdesc_1arg): Likewise.
1918         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
1919         with 3 args.
1920         (ix86_expand_sse_4_operands_builtin): New.
1921         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
1922         smaller than 8 bits as the 2nd arg.
1923         (ix86_expand_sse_ptest): New.
1924         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
1925         (ix86_expand_vector_set): Support SSE4.1.
1926         (ix86_expand_vector_extract): Likewise.
1927
1928         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
1929         __SSE4_1__ for -msse4.1.
1930
1931         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
1932         (UNSPEC_INSERTPS): Likewise.
1933         (UNSPEC_DP): Likewise.
1934         (UNSPEC_MOVNTDQA): Likewise.
1935         (UNSPEC_MPSADBW): Likewise.
1936         (UNSPEC_PHMINPOSUW): Likewise.
1937         (UNSPEC_PTEST): Likewise.
1938         (UNSPEC_ROUNDP): Likewise.
1939         (UNSPEC_ROUNDS): Likewise.
1940
1941         * config/i386/i386.opt (msse4.1): New for SSE4.1.
1942
1943         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
1944         (const_pow2_1_to_32768_operand): Likewise.
1945
1946         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
1947         file.
1948
1949         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
1950         SSE4.1.
1951         (sse4_1_insertps): Likewise.
1952         (*sse4_1_extractps): Likewise.
1953         (sse4_1_ptest): Likewise.
1954         (sse4_1_mulv2siv2di3): Likewise.
1955         (*sse4_1_mulv4si3): Likewise.
1956         (*sse4_1_smax<mode>3): Likewise.
1957         (*sse4_1_umax<mode>3): Likewise.
1958         (*sse4_1_smin<mode>3): Likewise.
1959         (*sse4_1_umin<mode>3): Likewise.
1960         (sse4_1_eqv2di3): Likewise.
1961         (*sse4_1_pinsrb): Likewise.
1962         (*sse4_1_pinsrd): Likewise.
1963         (*sse4_1_pinsrq): Likewise.
1964         (*sse4_1_pextrb): Likewise.
1965         (*sse4_1_pextrb_memory): Likewise.
1966         (*sse4_1_pextrw_memory): Likewise.
1967         (*sse4_1_pextrq): Likewise.
1968         (sse4_1_blendpd): Likewise.
1969         (sse4_1_blendps): Likewise.
1970         (sse4_1_blendvpd): Likewise.
1971         (sse4_1_blendvps): Likewise.
1972         (sse4_1_dppd): Likewise.
1973         (sse4_1_dpps): Likewise.
1974         (sse4_1_movntdqa): Likewise.
1975         (sse4_1_mpsadbw): Likewise.
1976         (sse4_1_packusdw): Likewise.
1977         (sse4_1_pblendvb): Likewise.
1978         (sse4_1_pblendw): Likewise.
1979         (sse4_1_phminposuw): Likewise.
1980         (sse4_1_extendv8qiv8hi2): Likewise.
1981         (*sse4_1_extendv8qiv8hi2): Likewise.
1982         (sse4_1_extendv4qiv4si2): Likewise.
1983         (*sse4_1_extendv4qiv4si2): Likewise.
1984         (sse4_1_extendv2qiv2di2): Likewise.
1985         (*sse4_1_extendv2qiv2di2): Likewise.
1986         (sse4_1_extendv4hiv4si2): Likewise.
1987         (*sse4_1_extendv4hiv4si2): Likewise.
1988         (sse4_1_extendv2hiv2di2): Likewise.
1989         (*sse4_1_extendv2hiv2di2): Likewise.
1990         (sse4_1_extendv2siv2di2): Likewise.
1991         (*sse4_1_extendv2siv2di2): Likewise.
1992         (sse4_1_zero_extendv8qiv8hi2): Likewise.
1993         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
1994         (sse4_1_zero_extendv4qiv4si2): Likewise.
1995         (*sse4_1_zero_extendv4qiv4si2): Likewise.
1996         (sse4_1_zero_extendv2qiv2di2): Likewise.
1997         (*sse4_1_zero_extendv2qiv2di2): Likewise.
1998         (sse4_1_zero_extendv4hiv4si2): Likewise.
1999         (*sse4_1_zero_extendv4hiv4si2): Likewise.
2000         (sse4_1_zero_extendv2hiv2di2): Likewise.
2001         (*sse4_1_zero_extendv2hiv2di2): Likewise.
2002         (sse4_1_zero_extendv2siv2di2): Likewise.
2003         (*sse4_1_zero_extendv2siv2di2): Likewise.
2004         (sse4_1_roundpd): Likewise.
2005         (sse4_1_roundps): Likewise.
2006         (sse4_1_roundsd): Likewise.
2007         (sse4_1_roundss): Likewise.
2008         (mulv4si3): Don't expand for SSE4.1.
2009         (smax<mode>3): Likewise.
2010         (umaxv4si3): Likewise.
2011         (uminv16qi3): Likewise.
2012         (umin<mode>3): Likewise.
2013         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
2014
2015         * doc/extend.texi: Document SSE4.1 built-in functions.
2016
2017         * doc/invoke.texi: Document -msse4.1.
2018
2019 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
2020
2021         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
2022         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
2023         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
2024         (ASM_SPEC): Add asm_pcrel_spec.
2025         (EXTRA_SPECS): Add asm_pcrel_spec.
2026
2027 2007-05-21  David Daney  <ddaney@avtrex.com>
2028
2029         * doc/install.texi (Building a cross compiler): Add requirements
2030         for Java cross compiler.
2031
2032 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2033
2034         PR middle-end/31995
2035         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
2036         Add loopno argument.  Use evolution_function_is_invariant_rec_p
2037         instead of evolution_function_is_constant_p.
2038         Update calls to evolution_function_is_affine_multivariate_p.
2039         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
2040         Add loopno argument.
2041         * tree-scalar-evolution.c (gather_chrec_stats): Call
2042         evolution_function_is_affine_multivariate_p with a loop
2043         number of 0.
2044         * tree-data-ref.c (analyze_miv_subscript): Likewise.
2045         (analyze_overlapping_iterations): Likewise.
2046         (access_functions_are_affine_or_constant_p): Likewise.
2047         (build_classic_dist_vector_1): If the access functions
2048         are equal, don't do anything.
2049
2050 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
2051             Paolo Carlini  <pcarlini@suse.de>
2052             Uros Bizjak  <ubizjak@gmail.com>
2053
2054         * c-cppbuiltin.c (c_cpp_builtins): Define
2055         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
2056         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
2057         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
2058         * doc/cpp.texi ([Standard Predefined Macros]): Document.
2059
2060 2007-05-21  Mike Stump  <mrs@apple.com>
2061
2062         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
2063         handling as well.
2064         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2065
2066 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
2067
2068         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
2069         implementation if __OPTIMIZE__ is not defined.
2070         (_mm_alignr_pi8): Ditto.
2071         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2072         (_mm_inserti_si64): Ditto.
2073         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2074         (_mm_slli_epi16): Ditto.
2075         (_mm_slli_epi32): Ditto.
2076         (_mm_slli_epi64): Ditto.
2077         (_mm_srai_epi16): Ditto.
2078         (_mm_srai_epi32): Ditto.
2079         (_mm_srli_si128): Ditto.
2080         (_mm_slli_si128): Ditto.
2081         (_mm_srli_epi16): Ditto.
2082         (_mm_srli_epi32): Ditto.
2083         (_mm_srli_epi64): Ditto.
2084         (_mm_extract_epi16): Ditto.
2085         (_mm_insert_epi16): Ditto.
2086         (_mm_shufflehi_epi16): Ditto.
2087         (_mm_shufflelo_epi16): Ditto.
2088         (_mm_shuffle_epi32): Ditto.
2089         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
2090         (_m_pextrw): Ditto.
2091         (_mm_insert_pi16): Ditto.
2092         (_m_pinsrw): Ditto.
2093         (_mm_shuffle_pi16): Ditto.
2094         (_m_pshufw): Ditto.
2095         (_mm_shufle_ps): Ditto.
2096         (_mm_prefetch): Ditto.
2097
2098 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
2099
2100         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
2101         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
2102         * real.c (encode_i370_single, decode_i370_single,
2103         encode_i370_double, decode_i370_double): Functions removed.
2104         (i370_single_format, i370_double_format): Initializations removed.
2105         (real_maxval, round_for_format, exact_real_truncate, significand_size):
2106         Consider the log2_b field to always be one.
2107         (ieee_single_format, mips_single_format, coldfire_single_format,
2108         ieee_double_format, mips_double_format, coldfire_double_format,
2109         ieee_extended_motorola_format, ieee_extended_intel_96_format,
2110         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
2111         ibm_extended_format, mips_extended_format, ieee_quad_format,
2112         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
2113         decimal_single_format, decimal_double_format, decimal_quad_format,
2114         c4x_single_format, c4x_extended_format, real_internal_format): Remove
2115         initialization of log2_b.
2116         * real.h (i370_single_format, i370_double_format): Declarations removed.
2117         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
2118         field to always be one.
2119
2120 2007-05-21  Andreas Schwab  <schwab@suse.de>
2121
2122         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
2123         NOTE_INSN_BASIC_BLOCK_P.
2124         (process_for_unwind_directive): Likewise.
2125
2126 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
2127
2128         * builtins.c (expand_builtin_setjmp_setup): Update comment.
2129         * function.h (struct function): Move va_list_gpr_size,
2130         va_list_fpr_size, function_frequency to front of bitfields.  Add
2131         calls_unwind_init.
2132         (current_function_calls_unwind_init): New.
2133         * except.c (expand_builtin_unwind_init): Set
2134         current_function_calls_unwind_init not
2135         current_function_has_nonlocal_label.
2136         * reload1.c (has_nonexceptional_receiver): New.
2137         (reload): Use it and current_function_calls_unwind_init to
2138         determine whether call-saved regs must be saved.
2139
2140 2007-05-20  Jan Hubicka  <jh@suse.cz>
2141
2142         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
2143         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2144         * ddg.c (create_ddg): LIkewise.
2145         * final.c (final): Remove hunk moving line numbernotes around since
2146         they are no longer present at this stage.
2147         (final_scan_insn): Use NOTE_KIND instead of
2148         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2149         (output_asm_label): Likewise.
2150         * reorg.c (dbr_schedule): Likewise.
2151         * haifa-sched.c (unlink_other_notes): Likewise.
2152         * mode-switching.c (optimize_mode_switching): Likewise.
2153         * graph.c (start_bb): Likewise.
2154         * rtl.def (NOTE): Update description.
2155         * jump.c (squeeze_notes): Delete.
2156         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
2157         NOTE_INSN_BASIC_BLOCK_P when possible.
2158         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
2159         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
2160         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2161         (dwarf2out_var_location): Likewise.
2162         * cfgbuild.c (make_edges): Likewise.
2163         (find_basic_blocks_1): Likewise.
2164         * function.c (reorder_blocks_1): Likewise.
2165         (epilogue_done): Likewise.
2166         (reposition_prologue_and_epilogue_notes): Likewise.
2167         * print-rtl.c (print_rtx): Likewise; drop code for printing line number
2168         notes.
2169         (print_rtl): Likewise.
2170         (print_rtl_single): Likewise.
2171         * gcse.c (insert_insn_start_bb): Likewise.
2172         * alias.c (init_alias_analysis): Likewise.
2173         * calls.c (fixup_tail_calls): Likewise.
2174         * except.c (sjlj_emit_function_enter): Likewise.
2175         * emit-rtl.c (add_insn_after): Likeiwse.
2176         (emit_label_before): Likewise.
2177         (emit_label_after): Likewise.
2178         (emit_note_before, emit_note_after, emit_note): Update
2179         parameter to be enum insn_note; do not deal with source
2180         files.
2181         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
2182         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
2183         when possible.
2184         (merge_blocks_move_successor_nojumps): Simplify now when
2185         we don't have BLOCK notes.
2186         (try_optimize_cfg): Likewise.
2187         * cfglayout.c (skip_insns_after_block): Likewise.
2188         (record_effective_endpoints): Likewise.
2189         (duplicate_insn_chain): Likewise.
2190         * varasm.c (output_constant_pool_1): Likewise.
2191         * sched-deps.c (sched_analyze): Likewise.
2192         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
2193         Exterminate.
2194         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
2195         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
2196         (SET_INSN_DELETED): Simplify.
2197         (NOTE_LINE_NUMBER): Exterminate.
2198         (NOTE_LINE_KIND): New.
2199         (NOTE_INSN_BASIC_BLOCK_P): Update.
2200         (enum insn_note): Simplify.
2201         (GET_NOTE_INSN_NAME) Simplify.
2202         (emit_note_before, emit_note_after, emit_note): Update prototype.
2203         (squeeze_notes): Remove.
2204         * sched-int.h (NOTE_NOT_BB_P): Update.
2205         * resource.c (mark_target_live_regs): Update.
2206         * sched-rgn.c (debug_dependencies): Update.
2207         * sched-vis.c (print_insn): Update.
2208         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
2209         * config/i386/i386.c (ix86_output_function_epilogue): Update.
2210         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
2211         (TARGET_ADJUST_UNROLL_MAX): Likewise.
2212         (split_branches): Update.
2213         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
2214         4.0.0.
2215         (sh_adjust_unroll_max): Exterminate.
2216         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
2217         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
2218         (m68hc11_reorg): Likewise.
2219         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
2220         (emit_predicate_relation_info): Update.
2221         (process_for_unwind_directive): Update.
2222         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
2223         (output_call): Update.
2224         * config/pa/pa.c (output_lbranch): Update.
2225         (output_millicode_call): Update.
2226         (output_call): Update.
2227         (pa_combine_instructions): Update.
2228         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
2229         * config/bfin/bfin.c (gen_one_bundle): Update.
2230         * cfgrtl.c (can_delete_note_p): Update.
2231         (delete_insn): Update.
2232         (rtl_merge_blocks): Update.
2233         (commit_one_edge_insertion): Update.
2234         (rtl_verify_flow_info): Update.
2235         * stmt.c (expand_case): Do not call squeeze_notes.
2236
2237 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2238
2239         PR middle-end/7651
2240         PR c++/11856
2241         PR c/12963
2242         PR c/23587
2243         PR other/29694
2244         * c.opt (Wtype-limits): New.
2245         * doc/invoke.texi (Wtype-limits): Document it.
2246         (Wextra): Enabled by -Wextra.
2247         * c-opts.c (c_common_post_options): Enabled by -Wextra.
2248         * c-common.c (shorten_compare): Warn with Wtype-limits.
2249
2250 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
2251
2252         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
2253         inlined function, not as a macro.
2254         (_mm_alignr_pi8): Ditto.
2255         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2256         (_mm_inserti_si64): Ditto.
2257         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2258         (_mm_extract_epi16): Ditto.
2259         (_mm_insert_epi16): Ditto.
2260         (_mm_shufflehi_epi16): Ditto.
2261         (_mm_shufflelo_epi16): Ditto.
2262         (_mm_shuffle_epi32): Ditto.
2263         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
2264         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
2265         all functions.
2266         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
2267         float constant.
2268         (_m_to_float): Use C89 compatible assignment.
2269
2270 2007-04-20  Martin Michlmayr  <tbm@cyrius.com>
2271
2272         PR target/32007
2273         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
2274
2275 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2276
2277         PR middle-end/7651
2278         * doc/invoke.texi (Wreturn-type): Complete description.
2279         (Wextra): Delete item about return-type warning.
2280         * c-decl.c: Delete redundant Wextra warning.
2281
2282 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
2283
2284         PR target/31585
2285         * config/i386/pmmintrin.h: Do not include xmmintrin.h
2286         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
2287         inlined function, not as a macro.
2288         (_mm_prefetch): Ditto.
2289         (_m_pextrw): Ditto.
2290         (_mm_insert_pi16): Ditto.
2291         (_m_pinsrw): Ditto.
2292         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
2293         (_m_pshufw): Ditto. Add const to __N argument.
2294         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
2295         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
2296         (_mm_slli_epi32): Ditto.
2297         (_mm_srli_si128): Implement as always inlined function, not as a macro.
2298         Add __inline to function declaration.
2299         (_mm_slli_si128): Ditto.
2300
2301 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
2302
2303         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
2304         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
2305         New constants.
2306         (struct fenv): New structure.
2307         (FP_HANDLE_EXCEPTIONS): New define.
2308         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
2309         (_FP_DECL_EXP): New define.
2310         (FP_INIT_ROUNDMODE): New define.
2311         (FP_ROUNDMODE): New define.
2312
2313 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2314
2315         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
2316         (Wconversion): Update description.
2317         (Wconversion-sign): New.
2318         * c.opt (Wconversion-sign): New.
2319         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
2320         means disabled for C++. Otherwise, take the status of Wconversion.
2321         * c-common.c (conversion_warning): Warn with either Wconversion or
2322         Wconversion-sign.
2323         (warnings_for_convert_and_check): Conditions are already checked by
2324         conversion_warning.
2325         (convert_and_check): Don't check warnings if the conversion failed.
2326
2327 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
2328            Anatoly Sokolov <aesok@dol.ru>
2329
2330         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
2331         avr_epilogue_uses) : Add declaration.
2332         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
2333         * config/avr/constraints.md (R): New constraint.
2334         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
2335         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
2336         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
2337         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
2338         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
2339         call_prologue_saves, epilogue_restores, return_from_epilogue,
2340         return_from_main_epilogue, return_from_interrupt_epilogue,
2341         return_from_naked_epilogue, prologue, epilogue): New patterns.
2342         (jump): Handle symbol reference.
2343         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
2344         avr_output_function_prologue, avr_output_function_epilogue): Remove
2345         functions.
2346         (avr_init_machine_status, expand_prologue, expand_epilogue,
2347         avr_asm_function_end_prologue, avr_epilogue_uses,
2348         avr_asm_function_begin_epilogue): New functions.
2349         (prologue_size, epilogue_size, jump_tables_size): Remove global
2350         variables.
2351         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2352         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
2353         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
2354         (avr_override_options): Initialise init_machine_status.
2355         (output_movhi): Handle all stack pointer loads.
2356         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
2357         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
2358         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
2359         (EPILOGUE_USES) Redefine.
2360         (machine_function) Declare.
2361
2362 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
2363
2364         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
2365         Use a single return statement.
2366
2367 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2368
2369         PR middle-end/30250
2370         * builtins.c (do_mpfr_lgamma_r): New.
2371         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
2372         * tree.h (CASE_FLT_FN_REENT): New.
2373
2374 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
2375
2376         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
2377         (output_die): Use 'unsigned long' with %x.
2378         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
2379         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
2380         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
2381
2382         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
2383
2384 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
2385
2386         PR target/31989
2387         PR target/31681
2388         PR target/31666
2389         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
2390         true if function has no argument.
2391
2392 2007-05-18  DJ Delorie  <dj@redhat.com>
2393
2394         * config/mips/mips.c (mips_offset_within_alignment_p): New.
2395         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
2396
2397 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
2398
2399         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
2400         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
2401         count_trailing_zeros.
2402         (__i386__): Implement count_leading_zeros using __builtin_clz().
2403         Implement count_trailing_zeros usign __builtin_ctz().
2404
2405 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
2406
2407         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
2408
2409 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
2410
2411         PR middle-end/31344
2412         * expr.c (emit_move_change_mode): Change mode of push operands here.
2413
2414 2007-05-17  Ian Lance Taylor  <iant@google.com>
2415
2416         PR tree-optimization/31953
2417         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
2418         Change all callers.
2419         (set_value_range_to_null): Call set_value_range_to_value.
2420         (extract_range_from_comparison): Likewise.
2421
2422 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2423
2424         * toplev.c (print_version): Output GMP/MPFR version info.
2425
2426         * builtins.c (CASE_MATHFN_REENT): New macro.
2427         (mathfn_built_in): Use it.
2428         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
2429         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
2430         BUILT_IN_LGAMMAL_R): New.
2431         * doc/extend.texi: Document new builtins.
2432
2433         PR middle-end/31796
2434         * builtins.c (do_mpfr_remquo): New.
2435         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
2436         (fold_builtin_3): Handle BUILT_IN_REMQUO.
2437
2438         PR middle-end/30251
2439         * builtins.c (fold_builtin_1): Handle y0, y1.
2440         (fold_builtin_2): Handle yn.
2441
2442         PR middle-end/30251
2443         * builtins.c (do_mpfr_bessel_n): New.
2444         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
2445         (fold_builtin_2): Handle BUILT_IN_JN.
2446
2447 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
2448
2449         PR target/31965
2450         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
2451         TYPE_PRECISION (intmax_type_node).
2452
2453 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
2454
2455         PR target/31850
2456         * reload.c (subst_reloads): Remove checking.
2457
2458 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2459
2460         PR rtl-optimization/31691
2461         * combine.c (simplify_set): Build a new src pattern instead of
2462         substituting its operands in the COMPARE case.
2463
2464 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2465
2466         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
2467         (execute_vrp): Preserve loops through jump threading.
2468         * tree-ssa-threadupdate.c (thread_single_edge,
2469         dbds_continue_enumeration_p, determine_bb_domination_status,
2470         thread_through_loop_header): New functions.
2471         (create_edge_and_update_destination_phis,
2472         create_edge_and_update_destination_phis): Set loops for the new blocks.
2473         (prune_undesirable_thread_requests): Removed.
2474         (redirect_edges): Do not pretend that redirect_edge_and_branch can
2475         create new blocks.
2476         (thread_block): Do not call prune_undesirable_thread_requests.
2477         Update loops.
2478         (mark_threaded_blocks): Select edges to thread here.
2479         (thread_through_all_blocks): Take may_peel_loop_headers argument.
2480         Thread edges through loop headers independently.
2481         * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
2482         * tree-pass.h (TODO_mark_first_instance): New.
2483         (first_pass_instance): Declare.
2484         * cfghooks.c (duplicate_block): Put the block to the original loop
2485         if copy is not specified.
2486         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
2487         jump threading.  Pass may_peel_loop_headers to
2488         thread_through_all_blocks according to first_pass_instance.
2489         * cfgloop.h (create_preheader): Declare.
2490         * tree-flow.h (thread_through_all_blocks): Declaration changed.
2491         * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
2492         * passes.c (first_pass_instance): New variable.
2493         (next_pass_1): Set TODO_mark_first_instance.
2494         (execute_todo): Set first_pass_instance.
2495
2496 2007-05-17  Uros Bizjak  <ubizjak@gmail.com>
2497
2498         PR tree-optimization/24659
2499         * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
2500         OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
2501         OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
2502         OTI_vec_pack_ufix_trunc.
2503         (vec_unpacks_float_hi_optab): Define new macro.
2504         (vec_unpacks_float_lo_optab): Ditto.
2505         (vec_unpacku_float_hi_optab): Ditto.
2506         (vec_unpacku_float_lo_optab): Ditto.
2507         (vec_pack_sfix_trunc_optab): Ditto.
2508         (vec_pack_ufix_trunc_optab): Ditto.
2509         * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
2510         and vec_pack_[s|u]fix_trunc_optab using
2511         vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
2512         * tree-vectorizer.c (supportable_widening_operation): Handle
2513         FLOAT_EXPR and CONVERT_EXPR.  Update comment.
2514         (supportable_narrowing_operation): New function.
2515         * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
2516         * tree-vect-transform.c (vectorizable_conversion): Handle
2517         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
2518         (vect_gen_widened_results_half): Move before vectorizable_conversion.
2519         (vectorizable_type_demotion): Call supportable_narrowing_operation()
2520         to check for target support.
2521         * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
2522         for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
2523         for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
2524         for VEC_PACK_FIX_TRUNC_EXPR.
2525         (expand_binop): Special case mode of the result for
2526         vec_pack_[u|s]fix_trunc_optab.
2527         (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
2528         vec_pack_[u|s]fix_trunc_optab.
2529
2530         * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
2531         VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
2532         * tree-pretty-print.c (dump_generic_node): Handle
2533         VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
2534         VEC_PACK_FIX_TRUNC_EXPR.
2535         (op_prio): Ditto.
2536         * expr.c (expand_expr_real_1): Ditto.
2537         * tree-inline.c (estimate_num_insns_1): Ditto.
2538         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2539
2540         * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
2541         (vec_unpacks_float_lo_v8hi): Ditto.
2542         (vec_unpacku_float_hi_v8hi): Ditto.
2543         (vec_unpacku_float_lo_v8hi): Ditto.
2544         (vec_unpacks_float_hi_v4si): Ditto.
2545         (vec_unpacks_float_lo_v4si): Ditto.
2546         (vec_pack_sfix_trunc_v2df): Ditto.
2547
2548         * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
2549         Document.
2550         [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
2551         [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
2552         * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
2553         [vec_pack_ufix_trunc]: Ditto.
2554         [vec_unpacks_float_hi]: Ditto.
2555         [vec_unpacks_float_lo]: Ditto.
2556         [vec_unpacku_float_hi]: Ditto.
2557         [vec_unpacku_float_lo]: Ditto.
2558
2559 2007-05-16  Uros Bizjak  <ubizjak@gmail.com>
2560
2561         * soft-fp/README: Update for new files.
2562         * soft-fp/floattisf.c: New file.
2563         * soft-fp/floattidf.c: New file.
2564         * soft-fp/floattitf.c: New file.
2565         * soft-fp/floatuntisf.c: New file.
2566         * soft-fp/floatuntidf.c: New file.
2567         * soft-fp/floatuntitf.c: New file.
2568         * soft-fp/fixsfti.c: New file.
2569         * soft-fp/fixdfti.c: New file.
2570         * soft-fp/fixtfti.c: New file.
2571         * soft-fp/fixunssfti.c: New file.
2572         * soft-fp/fixunsdfti.c: New file.
2573         * soft-fp/fixunstfti.c: New file.
2574         * soft-fp/extendxftf.c: New file.
2575         * soft-fp/trunctfxf.c: New file.
2576
2577         * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
2578         (__trunctfxf2): Ditto.
2579
2580         * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
2581         __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
2582         __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
2583         __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
2584         __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
2585         __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
2586
2587         * config/i386/t-fprules-softfp64: New file.
2588         * config/i386/sfp-machine.h: New file.
2589         * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
2590         x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
2591         and soft-fp/t-softfp to tmake_file.
2592         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2593         i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
2594
2595         * config/i386/t-linux64 (softfp_wrap_start): New.
2596         (softfp_wrap_end): New.
2597         * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
2598         supported for TARGET_64BIT.
2599
2600 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
2601
2602         * c-common.c (c_common_signed_or_unsigned_type): Emulate
2603         c_common_unsigned_type behavior.
2604
2605 2007-05-16  Paolo Bonzini  <bonzini@gnu.org>
2606
2607         * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
2608         calls as pure.
2609
2610 2007-05-16  Eric Christopher  <echristo@apple.com>
2611
2612         * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
2613         saving after stack push. Set sp_offset whenever we push.
2614         (rs6000_emit_epilogue): Move altivec register restore before
2615         stack push.
2616
2617 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
2618
2619         * configure.ac: Allow sysroots to be relocated under $prefix as
2620         well as $exec_prefix.
2621         * configure: Regenerate.
2622
2623 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
2624
2625         Revert:
2626
2627         2007-05-12  Richard Sandiford  <richard@codesourcery.com>
2628
2629         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
2630         (gcc_tooldir): Likewise.
2631         * configure: Regenerate.
2632         * Makefile.in (libsubdir_to_prefix): New variable, based on the
2633         old configure.ac gcc_tooldir setting.
2634         (prefix_to_exec_prefix): New variable.
2635         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
2636         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
2637
2638 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
2639
2640         * c-typeck.c (build_binary_op): Return early for error.
2641
2642 2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>
2643
2644         * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
2645         struct nb_iter_bound.
2646         (free_numbers_of_iterations_estimates_loop): Use ggc_free.
2647         * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
2648         * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
2649         * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
2650         (struct scev_info_str, scalar_evolution_info): Add GTY markers.
2651         (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
2652         (del_scev_info): Use ggc_free.
2653         (scev_initialize): Allocate scalar_evolution_info in gc memory.
2654         * loop-init.c: Include ggc.h.
2655         (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
2656         (loop_optimizer_finalize): Use ggc_free.
2657         * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
2658         pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
2659         pass_iv_optimize): Add TODO_ggc_collect.
2660         * function.h (struct function): Remove skip marker from x_current_loops.
2661         * cfgloop.c: Include ggc.h.
2662         (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
2663         memory.
2664         (establish_preds): Vector superloops is gc allocated.
2665         (alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
2666         loop->exits list.
2667         (flow_loops_find): Vector larray is gc allocated.
2668         (loop_exit_free): Use ggc_free.
2669         (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
2670         that head of exits list is now not a part of struct loop.
2671         (record_loop_exits): Allocate exits table in gc memory.
2672         (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
2673         head of exits list is now not a part of struct loop.
2674         * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
2675         struct loop_exit): Add GTY marker.
2676         (struct loop): Add GTY marker.  Make superloops vector gc allocated.
2677         Add skip marker to aux field.  Make head of exits list a separate
2678         object.
2679         (struct loops): Add GTY marker.  Make larray vector gc allocated.
2680         Add param marker to exits table.
2681         (get_loops): Type changed.
2682         * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
2683         dependency.
2684         (cfgloop.o, loop-init.o): Add ggc.h dependency.
2685         (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
2686         * basic-block.h (struct basic_block_def): Remove skip marker from
2687         loop_father field.
2688
2689 2007-05-14  Uros Bizjak  <ubizjak@gmail.com>
2690
2691         * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
2692         of 0 in the call to expand_expr().
2693         (expand_builtin_mathfn_3): Ditto.
2694         (expand_builtin_interclass_mathfn): Ditto.
2695         (expand_builtin_cexpi): Ditto.
2696         (expand_builtin_int_roundingfn): Ditto.
2697         (expand_builtin_int_roundingfn_2): Ditto.
2698         (expand_builtin_pow): Ditto.
2699         (expand_builtin_powi): Ditto.
2700         (expand_builtin_bswap): Ditto.
2701         (expand_builtin_unop): Ditto.
2702         (expand_builtin_fabs): Ditto.
2703         (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
2704         the call to expand_expr().
2705         (expand_builtin_sync_operation): Ditto.
2706         (expand_builtin_compare_and_swap): Ditto.
2707         (expand_builtin_lock_test_and_set): Ditto.
2708         * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
2709         instead of 0 in the call to expand_expr().
2710         (expand_builtin_extract_return_addr): Ditto.
2711         (expand_builtin_eh_return): Ditto.
2712         (expand_eh_return): Ditto.
2713         * explow.c (expr_size): Ditto.
2714         * expr.c (optimize_bitfield_assignment_op): Ditto.
2715         (expand_assignement): Ditto.
2716         (store_expr): Ditto.
2717         (store_field): Ditto.
2718         (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
2719         the call to expand_expr().
2720         (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
2721         in the call to expand_expr().
2722         [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
2723         BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
2724         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
2725         of expand_expr().
2726         * optabs.c (expand_vec_shift_expr): Ditto.
2727         (expand_vec_cond_expr): Ditto.
2728         (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
2729         call to expand_expr().
2730         * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
2731         in the call to expand_expr().
2732
2733 2007-05-14  Dave Korn  <dave.korn@artimi.com>
2734
2735         * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
2736
2737 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
2738
2739         * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
2740         instead of c_common_unsigned_type.
2741         (c_common_unsigned_type): Remove.
2742         (shorten_compare): Use c_common_signed_or_unsigned_type instead of
2743         c_common_unsigned_type.
2744         (c_common_nodes_and_builtins): Use unsigned_type_for instead of
2745         c_common_unsigned_type.
2746         * c-common.h (c_common_unsigned_type): Remove.
2747         * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
2748         c_common_unsigned_type.
2749         * c-format.c (check_format_types): Use unsigned_type_for instead of
2750         c_common_unsigned_type.
2751         * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
2752         * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
2753         c_common_unsigned_type.
2754         * convert.c (convert_to_integer): Use unsigned_type_for instead of
2755         lang_hooks.types.unsigned_type.
2756         * expmed.c (make_tree): Use unsigned_type_for instead of
2757         lang_hooks.types.unsigned_type.
2758         * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
2759         lang_hooks.types.unsigned_type.
2760         (build_range_check): Likewise.
2761         (fold_unary): Likewise.
2762         (fold_binary): Likewise.
2763         (fold_ternary): Likewise.
2764         * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
2765         * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
2766         * tree.c (get_unsigned_type): New.
2767         (unsigned_type_for): Use get_unsigned_type instead of
2768         lang_hooks.types.unsigned_type.
2769
2770 2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
2771
2772         * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
2773         to m68k_get_function_kind.  Update its prototype.
2774         * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
2775         interrupt_thread.
2776         (m68k_interrupt_function_p): Return enum m68k_function_type
2777         instead of bool.  Rename to m68k_get_function_kind.
2778         (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
2779         target is not fido.
2780         (m68k_compute_frame_layout): Don't mark any register for save
2781         if an interrupt_thread attribute is specified.
2782         (m68k_hard_regno_rename_ok): Update a use of
2783         m68k_interrupt_function_p.
2784         * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
2785         m68k_interrupt_function_p.
2786         (m68k_function_type): New.
2787         * config/m68k/m68k.md (*return): Output a 'sleep' instruction
2788         for a function with an interrupt_thread attribute.
2789         * doc/extend.texi: Document the interrupt_thread attribute.
2790
2791 2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
2792
2793         Fix PR tree-optimization/31911
2794         * tree-ssa-pre.c (phi_translate): Make sure to cache results even
2795         if they didn't change the expression.
2796
2797 2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
2798
2799         * tree-scalar-evolution.c (resolve_mixers): Exported.
2800         * tree-scalar-evolution.h (resolve_mixers): Declare.
2801         * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
2802         ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
2803         record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
2804         base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
2805         init_array_ref, init_pointer_ref, analyze_indirect_ref,
2806         strip_conversion, analyze_offset_expr, address_analysis,
2807         object_analysis, analyze_offset): Removed.
2808         (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
2809         split_constant_offset, canonicalize_base_object_address,
2810         object_address_invariant_in_loop_p, disjoint_objects_p,
2811         dr_may_alias_p, dr_address_invariant_p): New functions.
2812         (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
2813         and dr_analyze_alias.
2814         (initialize_data_dependence_relation): Use dr_may_alias_p
2815         and object_address_invariant_in_loop_p.
2816         (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
2817         is chrec_dont_know.
2818         (find_data_references_in_stmt): Restrict the analysis of data references
2819         to the given loop nest.
2820         (find_data_references_in_loop): Made static.  Pass loop nest to
2821         find_data_references_in_stmt.
2822         (compute_data_dependences_for_loop): Use DR_VOPS.
2823         (free_data_ref): Free DR_VOPS.
2824         * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
2825         (struct innermost_loop_behavior): ... new.
2826         (struct base_object_info): Replaced by ...
2827         (struct indices): ... new.
2828         (struct dr_alias): New.
2829         (enum data_ref_type): Removed.
2830         (struct data_reference): Consist of struct innermost_loop_behavior,
2831         struct indices and struct dr_alias.
2832         (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
2833         (DR_MEMTAG): Renamed to ...
2834         (DR_SYMBOL_TAG): ... this.
2835         (find_data_references_in_loop): Declaration removed.
2836         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
2837         instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
2838         (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
2839         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2840
2841 2007-05-13  Revital Eres  <eres@il.ibm.com>
2842
2843         * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
2844         which walks virtual def-use chains to find redundant stores.
2845         (dse_optimize_stmt): Call it.
2846
2847 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
2848
2849         * gcse.c (gcse_main): Do jump bypassing in CPROP2.
2850         * passes.c (init_optimization_passes): Move pass_jump_bypass
2851         after loop2.
2852
2853         * basic-block.h (bb_has_eh_pred): Fix style issue.
2854
2855 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
2856
2857         PR rtl-optimization/31848
2858         * loop-invariant.c (move_invariant_reg): If we move an insn
2859         with a REG_EQUAL note, and that insn is not always executed,
2860         remove the REG_EQUAL note.
2861
2862 2007-05-12  Richard Guenther  <rguenther@suse.de>
2863
2864         PR tree-optimization/31797
2865         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
2866         propagate into a stmt that has volatile ops.
2867
2868 2007-05-12  Richard Sandiford  <richard@codesourcery.com>
2869
2870         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
2871         (gcc_tooldir): Likewise.
2872         * configure: Regenerate.
2873         * Makefile.in (libsubdir_to_prefix): New variable, based on the
2874         old configure.ac gcc_tooldir setting.
2875         (prefix_to_exec_prefix): New variable.
2876         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
2877         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
2878
2879 2007-05-11  Silvius Rus  <rus@google.com>
2880
2881         * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
2882         * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
2883         * c-common.h (strict_aliasing_warning): Change return type.
2884         * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
2885         * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
2886         (build_c_cast): Condition call to strict_aliasing_warning.
2887         * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
2888         * flags.h (set_Wstrict_aliasing): Declare.
2889         * opts.c (set_Wstrict_alising): Define, add call to.
2890         * tree-flow.h (strict_aliasing_warning_backend): Declare.
2891         * tree-ssa-alias-warnings.c: New file.
2892         * tree-ssa-alias.c (compute_may_aliases): Add call to
2893         strict_aliasing_warning_backend.
2894
2895 2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
2896
2897         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
2898         Use loop_depth and loop_outer accessor functions.
2899         * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
2900         determine_invariantness_stmt, move_computations_stmt): Ditto.
2901         * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
2902         add_loop, loopify, unloop, fix_loop_structure): Ditto.
2903         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
2904         * tree-scalar-evolution.c (interpret_loop_phi,
2905         compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
2906         instantiate_parameters_1, scev_const_prop): Ditto.
2907         * cfghooks.c (make_forwarder_block): Ditto.
2908         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
2909         * modulo-sched.c (loop_canon_p): Ditto.
2910         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
2911         slpeel_can_duplicate_loop_p): Ditto.
2912         * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
2913         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
2914         * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
2915         cancel_loop, verify_loop_structure): Ditto.
2916         (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
2917         add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
2918         superloops vector instead of "pred" array.
2919         (establish_preds): Take father loop as an argument.  Initialize the
2920         superloops vector.
2921         (flow_loop_tree_node_add): Pass father loop to establish_preds.  Do not
2922         initialize loop->outer.
2923         (flow_loop_tree_node_remove): Truncate the superloops vector.
2924         * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
2925         "pred" merged to "superloops" vector.
2926         (loop_depth, loop_outer): New.
2927         (fel_init): Use loop_outer.
2928
2929 2007-05-11  Jan Hubicka  <jh@suse.cz>
2930
2931         * cgraphunit.c: Include gt-cgraphunit.h
2932         (static_ctors, static_dtors): New static vars.
2933         (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
2934         based on implementation in c-common.c
2935         (cgraph_finalize_function): Call record_cdtor_fn.
2936         (cgraph_optimize): Call cgraph_build_cdtor_fns.
2937         * decl.c (finish_function): Do not call c_record_cdtor_fn.
2938         (c_write_global_declarations): Do not call c_build_cdtor_fns.
2939         * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
2940         build_cdtor, c_build_cdtor_fns): Remove.
2941         * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
2942         c_build_cdtor_fns): Remove prototype.
2943
2944 2007-05-11  Paolo Carlini  <pcarlini@suse.de>
2945
2946         PR other/31852
2947         * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
2948         * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
2949         * builtins.c (fold_builtin_memchr): New.
2950         (expand_builtin_memchr): Call the latter.
2951         (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
2952         * doc/extend.texi ([Other built-in functions provided by GCC]):
2953         Document memchr.
2954
2955 2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>
2956
2957         * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
2958         PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
2959         PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
2960         PFPO_OP1_TYPE_SHIFT): Constants added.
2961         (DFP_ALL): Mode macro defined.
2962         ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
2963         "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
2964         Insn definitions added.
2965         ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
2966         "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
2967         Expanders added.
2968
2969 2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
2970
2971         PR tree-optimization/31885
2972         * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
2973         to be undetermined.
2974         (automatically_generated_chrec_p): Return false for NULL.
2975
2976 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
2977
2978         * config/bfin/bfin.h (MOVE_RATIO): Define.
2979
2980 2007-05-10  Richard Sandiford  <richard@codesourcery.com>
2981
2982         * config.gcc (sparc-wrs-vxworks): New target.
2983         * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
2984         * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
2985         * config/sparc/sparc.h: Include vxworks-dummy.h.
2986         (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
2987         include LABEL_REFs too.
2988         * config/sparc/sparc.c (sparc_expand_move): Don't assume that
2989         _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
2990         VxWorks.
2991         (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
2992         on VxWorks.
2993         (load_pic_register): Use gen_vxworks_load_got for VxWorks.
2994         (sparc_emit_call_insn): New function.
2995         (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
2996         functions when generating VxWorks PIC.
2997         * config/sparc/sparc.md (vxworks_load_got): New pattern.
2998         (call, call_value): Use sparc_emit_call_insn instead of
2999         emit_call_insn.
3000
3001 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
3002
3003         * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
3004
3005 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
3006
3007         * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
3008         for floating-point values if HOST_BITS_PER_LONG > 32.  Use split_double
3009         instead of operand_subword.
3010
3011 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
3012
3013         * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
3014         * config/bfin/bfin.c (bfin_local_alignment): New function.
3015         * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
3016
3017 2007-05-08  Chao-ying Fu  <fu@mips.com>
3018
3019         * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
3020         * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
3021         (smsub_widen_optab, umsub_widen_optab): Define.
3022         * optabs.c (init_optabs): Initialize smsub_widen_optab and
3023         umsub_widen_optab.
3024         * genopinit.c (optabs): Fill in smsub_widen_optab and
3025         umsub_widen_optab.
3026         * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
3027         and umsub_widen_optab to implement multiply-subtract sequences.
3028         * config/mips/mips.md (*msac<u>_di): Rename to...
3029         (<u>msubsidi4): ...this.  Extend condition to include
3030         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
3031         of operand 0 to "ka" and use the three-operand form of msub<u>
3032         for TARGET_DSPR2.
3033         * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
3034         to define_expands.
3035
3036 2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3037
3038         PR rtl-optimization/28011
3039         * reload.c (push_reload): Set dont_share if IN appears in OUT
3040         also when IN is a PLUS rtx.
3041         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
3042         are same PLUS rtx.
3043
3044 2007-05-08  Kazu Hirata  <kazu@codesourcery.com>
3045
3046         * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
3047         call unshare_all_decls.
3048         (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
3049         (unshare_all_decls): Remove.
3050
3051 2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
3052
3053         PR 31847
3054         * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
3055         dumps.
3056
3057 2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
3058             Nigel Stephens  <nigel@mips.com>
3059
3060         * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
3061         Update comments and all uses.
3062         (MIN_FPRS_PER_FMT): Define.
3063         * config/mips/mips.c (function_arg): Fix to correctly handle
3064         the -mips32r2 -mfp64 -mabi=32 case.
3065         (override_options): Enable use of odd-numbered registers for
3066         SFmode values on MIPS32.
3067         (mips_save_reg_p): Save whole floating-point register pair if
3068         either half is used.
3069         (compute_frame_size): Fix comment.
3070
3071 2007-05-08  Jie Zhang  <jie.zhang@analog.com>
3072
3073         * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
3074         argument of type bool.
3075         * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
3076         argument. Safely select temporary P register according to it.
3077         (do_link): Change call site of add_to_reg accordingly.
3078         (do_unlink): Add epilogue_p as a fourth argument and pass it
3079         to add_to_reg.
3080         (expand_interrupt_handler_epilogue): Change call of do_unlink
3081         accordingly.
3082         (bfin_expand_prologue): Add a third argument sibcall_p.
3083         * config/bfin/bfin.md (epilogue): Change call of
3084         bfin_expand_epilogue accordingly.
3085         (sibcall_epilogue): Likewise.
3086         (eh_return_internal): Likewise.
3087
3088         * config/bfin/bfin-protos.h (enum bfin_cpu): Add
3089         BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
3090         * config/bfin/bfin.c (bfin_handle_option): Handle
3091         -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
3092         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
3093         Support bf534, bf536 and bf561.
3094         * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
3095
3096 2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
3097
3098         PR target/31854
3099         * config/i386/i386.c (ix86_function_regparm): Process local
3100         functions only when TREE_CODE (decl) equals FUNCTION_DECL.
3101
3102 2007-05-07  Mike Stump  <mrs@apple.com>
3103
3104         * doc/invoke.texi (Warning Options): Document that -Wempty-body
3105         also checks for and while statements in C++.
3106
3107 2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
3108
3109         * gcc.c (at_file_supplied): New variable.
3110         (main): Set it if we expanded argv.
3111         (do_spec_1): Pass an @-file to the linker if we were called with
3112         an @-file argument and HAVE_GNU_LD.
3113         * collect2.c (at_file_supplied): New variable.
3114         (response_file): New variable.
3115         (collect_exit): Unlink response_file if necessary.
3116         (handler): Likewise.
3117         (do_wait): Likewise.
3118         (main): Set at_file_supplied if we expanded argv.
3119         (collect_execute): Pass an @-file to subprocesses if we were called
3120         with an @-file argument.
3121         * configure.ac: Add define for HAVE_GNU_LD.
3122         * configure: Regenerate.
3123         * config.in: Regenerate.
3124
3125 2007-05-07  Naveen.H.S  <naveen.hs@kpitcummins.com>
3126
3127         * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
3128         operand to HI mode.
3129         (mulsi3): New.
3130         (divsi3): New.
3131         (udivsi3): New.
3132
3133 2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
3134
3135         * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
3136         (TARGET_ENCODE_SECTION_INFO): Re-define.
3137         (m32c_encode_section_info): New
3138         (function_vector_handler): New
3139         (current_function_special_page_vector): New
3140         (m32c_special_page_vector_p): New.
3141         * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
3142         Prototype.
3143         * config/m32c/jump.md: Added instruction JSRS for functions
3144         with attribute "function_vector".
3145         * doc/extend.texi (function_vector): Added description
3146         for M16C, M32C targets.
3147
3148 2007-05-07  DJ Delorie  <dj@redhat.com>
3149
3150         PR 31794
3151         * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
3152         ashrpsi3, lshrpsi3): Update shift count constraint.
3153
3154 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
3155             Nathan Froyd  <froydnj@codesourcery.com>
3156
3157         PR 22133
3158         * c-incpath.c (add_path): Strip trailing path separators.
3159
3160 2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
3161
3162         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
3163         Free dominance info before purging EH edges.
3164         (eliminate_degenerate_phis): Likewise.
3165         (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
3166
3167 2007-05-07  Jan Hubicka  <jh@suse.cz>
3168
3169         * gimplify.c (gimplify_expr): Do not crash when folding
3170         (void *)(int)&a + 4.
3171
3172 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3173
3174         PR driver/31694
3175         * c-opts.c (lang_fortran): Make it non static.
3176         * c-common.h (lang_fortran): New prototype.
3177         * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
3178         -lang-fortran option was passed by the driver.
3179
3180 2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
3181
3182         * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
3183         of ASSERT_CHECKING.  Tweak message.
3184
3185 2007-05-06  Revital Eres  <eres@il.ibm.com>
3186
3187         PR 30957
3188         * loop-unroll.c (insert_var_expansion_initialization):
3189         Initialize the expansions with -zero instead of +zero.
3190
3191 2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
3192
3193         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
3194         into pic and non-pic versions. Mark r19 as used for
3195         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
3196         for tgd_load, tld_load and tie_load .
3197         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
3198         version of tgd_load, tld_load and tie_load depending on the
3199         value of flag_pic.
3200
3201 2007-05-04  Ulrich Drepper  <drepper@redhat.com>
3202             Jakub Jelinek  <jakub@redhat.com>
3203
3204         * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
3205         (__do_global_dtors_aux): Use more paranoid loop to run
3206         destructors if HIDDEN_DTOR_LIST_END.
3207         (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
3208
3209 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
3210
3211         * varasm.c (align_variable): Don't increase alignment for
3212         DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
3213         DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
3214
3215 2007-05-04  Josh Conner  <jconner@apple.com>
3216
3217         * basic-block.h (cdi_direction): Assign values to all enumeration
3218         constants.
3219         (dom_computed): Remove.
3220         (dom_info_state): New.
3221         (set_dom_info_availability): New.
3222         * tree-ssa-loop-im.c (determine_invariantness): Initialize
3223         walk_data.dom_direction.
3224         * cfghooks.c (delete_basic_block): Use dom_info_available_p()
3225         instead of dom_computed[].
3226         (split_edge): Likewise.
3227         (create_basic_block): Likewise.
3228         (merge_blocks): Likewise.
3229         * ifcvt.c (find_if_header): Likewise.
3230         * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
3231         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
3232         * tree-ssa.c (verify_ssa): Likewise.
3233         * tree-cfg.c (tree_verify_flow_info): Likewise.
3234         (remove_edge_and_dominated_blocks): Likewise.
3235         * dominance.c (dom_computed): Make static.
3236         (calc_dfs_tree_nonrec): Change third param to a bool.
3237         (calc_dfs_tree): Change second param to a bool.
3238         (calc_idioms): Change second param to a bool.  Use
3239         dom_convert_dir_to_idx.
3240         (init_dom_info): Validate dir before using.
3241         (dom_convert_dir_to_idx): New.
3242         (calculate_dominance_info): Use dom_convert_dir_to_idx.  New
3243         variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
3244         (free_dominance_info): Use dom_convert_dir_to_idx.
3245         (get_immediate_dominator): Likewise.
3246         (set_immediate_dominator): Likewise.
3247         (get_dominated_by): Likewise.
3248         (redirect_immediate_dominators): Likewise.
3249         (nearest_common_denominator): Likewise.
3250         (dominated_by_p): Likewise.
3251         (bb_dom_dfs_in): Likewise.
3252         (bb_dom_dfs_out): Likewise.
3253         (recount_dominator): Likewise.
3254         (iterate_fix_dominators): Likewise.
3255         (add_to_dominance_info): Likewise.
3256         (delete_from_dominance_info): Likewise.
3257         (first_dom_son): Likewise.
3258         (next_dom_son): Likewise.
3259         (dom_info_available_p): Likewise.
3260         (dom_info_state): New.
3261         (set_dom_info_availability): New.
3262
3263 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
3264
3265         * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
3266         Expander removed.
3267         ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
3268
3269 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
3270
3271         * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
3272         (subdi3, subdi_carry): Delete.
3273
3274 2007-05-04  Jan Hubicka  <jh@suse.cz>
3275             Richard Guenther  <rguenther@suse.de>
3276
3277         * opts.c (decode_options): Do not fiddle with inlining
3278         parameters in case of optimizing for size.
3279         * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
3280         for size do nothing.
3281         (cgraph_decide_inlining_of_small_function): When optimizing for
3282         size never inline functions increasing caller size.
3283         (cgraph_early_inlining): Inline for size when optimizing for size.
3284
3285 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
3286
3287         * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
3288         logical operations piecewise.
3289         (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
3290         zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
3291         subdi_sesidi_di): Delete.
3292         (add_with_carry): Produce carry in CC instead of a DREG to shorten
3293         the generated sequence.  Allow three-reg add in constraints.  Rewrite
3294         the rtl expression for carry to avoid zero_extend of a constant.
3295         (sub_with_carry): New pattern.
3296         (adddi3, subdi3): Change into define_expand.  For subtract, generate a
3297         different sequence not involving jumps.
3298         (notbi): Now a named pattern.
3299
3300 2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
3301
3302         * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
3303         Add the note about a significant loss of accuracy of some
3304         mathematical routines when these options are used.
3305
3306 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3307
3308         * haifa-sched.c (rtx_vec_t): New typedef.
3309         (contributes_to_priority_p): Extract piece of priority () into new
3310         static function.
3311         (priority): Use the function.  Add assertion.
3312         (rank_for_schedule, set_priorities): Add assertion to check that
3313         insn's priority is initialized.
3314         (clear_priorities, calc_priorities): Change signature.  Make it update
3315         all relevant insns.  Update all callers ('add_to_speculative_block ()'
3316         and 'create_block_check_twin ()').
3317         * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
3318         Add new field 'priority_status'.
3319         (INSN_PRIORITY_STATUS): New macro.
3320         (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
3321
3322 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3323
3324         * sched-ebb.c (debug_ebb_dependencies): New static function.
3325         (init_ready_list): Use it.
3326
3327         * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
3328         with changed signature and 'debug_rgn_dependencies ()'.
3329         (debug_rgn_dependencies): New static function.
3330         (init_ready_list): Use it.
3331
3332         * sched-int.h (debug_dependencies): Declare.
3333
3334 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
3335
3336         * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
3337
3338 2007-05-04  Dirk Mueller  <dmueller@suse.de>
3339
3340         * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
3341
3342 2007-05-03  Jan Hubicka  <jh@suse.cz>
3343
3344         * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y),
3345         for pointer type in more cases than before.
3346
3347         * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
3348
3349         * tree-object-size.c (plus_expr_object_size): When operand size is
3350         unknown, return unknown.
3351
3352 2007-05-03  Dirk Mueller  <dmueller@suse.de>
3353
3354         * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
3355
3356         * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
3357         options.
3358
3359         * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
3360
3361 2007-05-03  Janis Johnson  <janis187@us.ibm.com>
3362
3363         * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
3364
3365 2007-05-03  Joseph Myers  <joseph@codesourcery.com>
3366
3367         * config/soft-fp/double.h, config/soft-fp/extended.h,
3368         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
3369         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
3370         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
3371         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
3372         glibc CVS.
3373
3374 2007-05-03  Ian Lance Taylor  <iant@google.com>
3375
3376         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
3377         MASK_PPC_GFXOPT for 8540 or 8548.
3378
3379 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
3380
3381         * tree-vect-transform.c (vect_update_inits_of_drs): Use
3382         vect_print_dump_info() to output debug information.
3383